Minggu, 27 November 2016

EAS APSI Bank BCA

Disusun Oleh :

Evan Bangun ( 5114100169 )
Rizal Septiarakhman ( 5114100180 )
Saddhana Arta Dhaniswara ( 5114100191 )



DESKRIPSI STUDI KASUS
Kasus yang kami ambil adalah sistem informasi Bank BCA. Bank BCAadalah bank swasta terbesar di Indonesia. Bank ini didirikan pada 21 Februari 1957 dengan nama Bank Central Asia NV dan pernah menjadi bagian penting dari Salim Group. Sekarang bank ini dimiliki oleh salah satu grup perusahaan rokok terbesar di dunia, Djarum.
Sistem yang kita ambil adalah Mesin ATM dari bank BCA. ATM adalah sebuah alat elektronik yang melayani nasabah bank untuk mengambil uang dan mengecek rekening tabungan mereka tanpa perlu dilayani oleh seorang "teller" manusia. Banyak ATM juga melayani penyimpanan uang atau cek, transfer uang atau bahkan membeli perangko.

ATM sering ditempatkan di lokasi-lokasi strategis, seperti restoran, pusat perbelanjaan, bandar udara, stasiun kereta api, terminal bus, pasar tradisional, dan kantor-kantor bank itu sendiri.

PERTANYAAN
1. Adakah masalah dibidang performa disistem yang sudah berjalan saat ini?
2. Bagaimana cara memperoleh informasi disistem yang saat ini berlaku?
3. Apakah pengelolaan ekonomi di Bank BCA sudah efisien?
4. Bagaimana Bank BCA melakukan pengamanan dan kontrol?
5. Apakah Bank BCA sudah menggunakan sumber daya secara maksimal?
6. Apakah ada kekurangan dari service yang diberikan oleh Bank BCA?

WAWANCARA
 
ANALISIS PIECES
Pengembangan sistem informasi dilakukan untuk menyelesaikan masalah yang terjadi pada suatu organisasi, terutama untuk masalah-masalah yang menyangkut ketersediaan informasi bagi pengambil keputusan dalam organisasi tersebut. Masalah tersebut dapat diidentifikasi dari analisis PIECES (Performance, Information, Economics, Control, Efficiency, dan Service) yang diusulkan oleh James Wetherbe dalam bukunya Systems Analysis and Design : Traditional, Best Practices 4th Ed. . James Wetherbe menyebutkan bahwa tujuan dari analisis PIECES ini adalah untuk mengoreksi atau pemperbaiki sistem dalam hal yang telah disebutkan di atas.
Dari hal-hal yang telah diidentifikasi tersebut dapat diambil beberapa masalah yang sesuai dengan yang dihadapi oleh organisasi, kemudian dideskripsikan. Sehingga masalah tersebut dapat dipahami dengan baik. Berikut ini daftar identifikasi masalah, kesempatan, dan perintah.

Performance
Analisis Performance atau kinerja adalah mengidentifikasi kemampuan organisasi didalam menyelesaikan tugas bisnis dengan cepat sehingga sasaran dapat segera tercapai. Kinerja diukur dengan jumlah produksi (throughput) dan waktu jawaban (respontime) dari suatu system. Masalah BCA yang terkait dengan performance adalah :
1. Produksi : produksi atau jumlah kerja yang dilakukan selama periode waktu tertentu. Sesuai dengan riset yang kami lakukan . Bank BCA Slawi melakukan pelayanan dengan jumlah pekerja pada counter yang melayani deposito dan transfer sebanyak 3 orang . Ditambah dengan 1 manajer yang mengkepalai bank tersebut. Selain itu terdapat sekitar 4 orang , yang melakukan deposito keliling wilayah Slawi yang terdiri dari ( 2 Teller , 1 Satpam , 1 Training ) . Dalam proses produksi pencarian deposito yang dilakukan bank BCA kuranglah efektif , dikarenakan untuk melakukan deposito keliling dibutuhkan waktu 2 sampai 3 hari untuk dapat mengungjungi orang yang sama lagi kedua kalinya . Hal tersebut menandakan kurang pekerja dalam melakukan deposito keliling.
2. Waktu respons : penundaan rata-rata antara transaksi atau permintaan dengan respons ke transaksi atau permintaan tersebut. Dalam waktu respons , bank BCA selalu mematikan layanan transaksi dalam arti pending untuk maintenance setiap hari dari jam 11 malam sampai skitar 2 pagi . Hal ini dinilai kurang efektif dikarenakan banyaknya transaksi yang dilakukan setiap malam akan terpending hingga pagi hari . Lebih baik untuk maintenance server dilakukan pada hari tertentu tidak setiap hari.
Information
                Analisis Informasi dilakukan dengan mengidentifikasi ketersediaan informasi atau laporan-laporan yang dibutuhkan oleh komponen-komponen organisasi. Kemampuan sistem informasi dalam menghasilkan informasi yang bermanfaat dapat dievaluasi untuk menangani masalah. Ketersediaan informasi juga merupakan  peluang untuk mendapatkan keuntungan yang lebih besar.
                Jika dilihat dari segi informasi Bank BCA Slawi sudah memiliki pengolahan informasi yang bagus dikarenakan semua Bank BCA terintegrasi dengan database pusat ( server ) sehingga tidak memerlukan data yang berlebihan ( redundancy )

Economics
               Adalah penilaian sistem didalam pengurangan dan keuntungan yang akan didapatkan dari system yang dikembangkan. System ini akan memberikan penghematan operasional dan meningkatkan keuntungan perusahaan. Penghematan didapat melalui pengurangan bahan baku dan perawatan. Sedangkan keuntungandidapat dari peningkatan nilai informasi dan keputusan yang dihasilkan. Ekonomi Bank BCA sudah efisien terlihat dengan banyaknya konsumen yang mendeposito uangnya di bank ini . Hal itu memperlihatkan Bank BCA sudah mampu mengontrol ekonomi dengan baik.

               
Control / Security
                Sistem keamanan yang digunakan harus dapat mengamankan data dari kerusakan, misalnya dengan membuat BackUp data. Selain itu system keamanan juga harus dapat mengamankan data dari akses yang tidak diijinkan, biasanya dilakukan dengan password terutama pada form aplikasi dan databasenya.
            Bank BCA sudah memiliki sistem keamanan yang sangat ketat , dilihat dari MBankingnya yang memiliki password Atm dan Pin Banking . Terlebih lagi untuk EBanking , BCA terdapat password VPN untuk terkoneksi dengan VPN BCA , ditambah pin keybca dan id user dan pas klik BCA. Keamanan baik dari segi user dan database sudah tidak perlu pertanyaan.

Efficiency
                Berhubungan dengan sumber daya yang ada guna meminimalkan pemborosan. Efisiensi dari system yang dikembangkan adalah pemakaian secara maksimal atas sumber daya yang tersedia yang meliputi manusia, informasi, waktu, uang, peralatan, ruang dan keterlambatan pengolahan data.Sudah efisien , contoh untuk penjagaan disetiap ATM , Bank BCA hanya mengalokasikan 1 Satpam ditambah kamera pengawas , hal tersebut sudah membuktikan efisiensinya.

Service
                Perkembangan organisasi dipicu dengan peningkatan pelayanan yang lebih baik. Dari segi pelayanan Bank BCA memiliki sebuah kendala yang sangat membuat pelanggan merasa terhambat dalam arti lain sangat tidak efisien , hal tersebut terjadi pada sektor web . Masalah tersebut adalah jika kita secara tidak sengaja mengclose web browser sementara user kita masih ter login dalam situs ebanking BCA di www.klikbca.com . Maka user kita seperti akan tersangkut dan kita tidak dapat login lagi dalam interval yang cukup lama .



Software Requirement Specification

1.    Pendahuluan

1.1    Tujuan Dokumen Persyaratan.

Dokumen ini menjelaskan tentang spesifikasi persyaratan perangkat lunak untuk mesin ATM (Anjungan Tunai Mandiri). Dokumen ini ditujukan pada pelanggan dan pengembang (desainer, penguji, pengelola). Pembaca diasumsikan memiliki pengetahuan dasar tentang rekening perbankan dan layanan akun. Pengetahuan and understanding of Unified Modeling Language (UML) diagrams is also required. dan pemahaman tentang Unified Modeling Language (UML) diagram juga diperlukan. Dokumen ini juga diharapkan dapat menjadi langkah awal untuk fase design.

 

1.2    Cakupan Produk.

Perangkat lunak ini mendukung jaringan perbankan yang terkomputerisasi.Jaringan ini memungkinkan customers to complete simple bank account services via automated teller machines (ATMs) that maypelanggan untuk melakukan transaksi perbankan sederhana melalui Anjungan Tunai Mandiri (ATM).Transaksi perbankan sederhana yang dimaksud yaitu: penarikan tunai, transfer, Informasi saldo, serta pembayaran tagihan (listrik, telepon, telepon selular, dan kartu kredit). Mesin ATM ini akan identifies a customer by a cash card and password. It collects information about a simple account mengidentifikasi pelanggan dengan kartu dan password. Perangkat lunak ini mampu menyimpan tiap transaksi dan memiliki ketentuan persyaratan. Selain itu perangkat lunak harus dapat menangani terjadinya akses yang bersamaan terhadapakun yang sama secara benar.

 

1.3    Definisi, Akronim, dan Singkatan.

Nasabah            :      pelanggan dari bank yang akan melakukan transaksi menggunakan mesin ATM.
PIN                     :      Personal Identification Number, merupakan serangkaian angka yang dapat digunakan untuk mengidentifikasi dan memvalidasi login ATM pengguna.
Informasi tambahan, bahwa Jaringan ATM tidak bekerja secara independen bersama-sama.Ia bekerja dengan system dari beberapa bank.

2.    Deskripsi Umum

2.1. Prespektif Produk.

Mesin ATM adalah perangkat telekomunikasi terkomputerisasi yang menyediakan customers of a financial institution with access to financial transactions in a public space without theakses bagi nasabah utuk melakukan transaksi keuangan di ruang publik tanpa harus berhubungan langsung dengan petugas teller bank. Pada ATM paling modern, pelanggan diidentifikasi dengan memasukkan a plastic ATM card with a magnetic stripe or a plastic smartcard with a chip, that contains a uniquekartu ATM yang memiliki pita magnetik atau smartcard plastik dengan chip, yang berisi nomor kartu yang unik card number and some security information, such as an expiration date or CVC (CVV). Security isdan beberapa informasi keamanan, seperti tanggal kedaluwarsa atau CVC (CVV). System keamanan provided by the customer entering a personal identification number (PIN).diberikan kepada pelanggan dengan memasukkan PIN atau nomor identifikasi pribadi.

 

2.2. Fungsi Produk.

Mesin ATM memungkinkan nasabah dapat mengakses rekening bank mereka. Fungsi-sungsi dari mesin ATM ini adalah:

2.2.1        Login
2.2.2        Informasi saldo
2.2.3        Penarikan Tunai
2.2.4        Transfer
2.2.5        Pembayaran Tagihan
Fungsi-fungsi ini akan dijelaskan lebih lanjut pada bagian 3.2 pada dokumen ini


2.3. Karakteristik User.

User bersifat terbuka untuk semua yang memiliki akses atau pengguna resmi.Nasabah hanyalah anggota masyarakat tanpa pelatihan khusus dan hanya memiliki sedikit pengetahuan tentang system automatisasi.Oleh karena itu bahasa yang digunakan harus singkat, jelas, dan tidak ambigu sehingga dapat dengan mudah dipahami oleh nasabah.Petugas keamanan bank tidak perlu memiliki pendidikan dan pengalaman khusus. Pengelola (maintainers) haruslah seorang administrator jaringan, yang dapat menghubungkan mesin ATM baru pada jaringan. 

Customers are simply members of the public with no special trai

2.4. Batasan-Batasan Umum.

Nasabah hanya dapat melakukan transaksi-transaksi yang telah disebutkan pada bagian 2.2.System ini dibuat khusus untuk penarikan pecahan Rp. 50.000.

 

2.5. Asumsi dan Ketergantungan.

2.5.1        Tidak ada kerusakan pada hardware.
2.5.2        Ketersediaan uang tunai.
2.5.3        Ketersediaan kertas yang digunakan untuk mencatat transaksi keuangan.

3.    Persyaratan Khusus

3.1.   Persyaratan Interface Eksternal.

3.1.1.      User Interface.

User interface nasabah harus intuitif, seperti bahwa 99% dari nasabah yang baru menggunakan ATM dapat menyelesaikan transaksi perbankannya tanpa bantuan orang lain. 

3.1.2.      Interface Perangkat Keras.

Perangkat keras yang digunakan harus memiliki spesifikasi sebagai berikut:

3.1.2.1  Kemampuan untuk membaca kartu ATM

3.1.2.2  • Ability to count the currency notesKemampuan untuk menghitung catatan mata uang

3.1.2.3  Touch screen for convenience Layar sentuh (touchpad) untuk kenyamanan

3.1.2.4  • Keypad (in case touchpad fails)Tombol (dalam kasus touchpad gagal)

3.1.2.5  Continuous power supply

3.1.2.6  Kemampuan untuk terhubung ke jaringan bank-bank

3.1.2.7  Ability to take input from user Kemampuan

3.1.2.8  Ability to validate usern untuk memvalidasi user.

3.1.2.9  Aliran listrik stabil

3.1.3.      Interface Perangkat Lunak.

Interface dengan database system dan database bank akan dijelaskan pada DOKUMEN1.

3.1.4.      Interface untuk Berkomunikasi.

Tidak diterapkan pada system ini.

3.2.   Persyaratan Fungsional

3.2.1.      Fungsi Login. Nasabah akan diminta untuk memasukkan kartu ATM. Ini akan menjadi tampilan default pada saat mesin ATM tidak digunakan. Pada saat kartu nasabah telah dimasukkan system akan melakukan beberapa validasi, yaitu:

§  Validasi kartu ATM
Dilakukan untuk memvalidasi waktu kadaluarsa kartu ATM. Kartu ATM dinyatakan kadaluarsa jika tanggal hari ini lebih dari tanggal kadaluarsa kartu. Jika kartu ATM yang dimasukkan ternyata kadaluarsa, maka akan muncul pesan ‘kartu tidak dapat digunakan karena kadaluarsa dan nasabah diminta untuk menghubungi pihak Bank’
§  Validasi kartu yang telah dilaporkan hilang atau dicuri
Validasi kartu yang tidak terdaftar dalam list hilang atau dicuri. Jika kartu ATM tersebut telah dilaporkan hilang, maka akan muncul pesan ‘kartu tidak dapat digunakan karena telah dilaporkan hilang’. Jika kartu ATM tersebut telah dilaporkan dicuri, maka akan muncul pesan ‘kartu tidak dapat digunakan karena telah dilaporkan dicuri’.Jika tidak lolos validasi kartu ini secara otomatis kartu ATM tidak dapat diambil kembali oleh Nasabah yang bersangkutan.
§  Validasi kartu cacat
Validasi kartu yang dapat digunakan. Jika kartu cacat, maka akan muncul pesan ‘kartu tidak dapat digunakan karena cacat dan nasabah diharap untuk menghubungi pihak Bank’.
§  Validasi akun dibekukan
Validasi kartu untuk akun yang masih aktif.Jika tidak, muncul pesan bahwa ‘akun terkunci’
Untuk kartu ATM yang telah divalidasi, nasabah akan diminta untuk memilih bahasa. Bahasa yang tersedia hanya dua, yaitu Bahasa Indonesia dan Bahasa Inggris. Selain itu akan muncul juga pesan agar nasabah menutup jarinya ketika memasukkan PIN. Pada dokumen ini hanya akan dijelaskan untuk system berbahasa Indonesia saja.
Nasabah diminta untuk memasukkan nomor PIN. Nasabah juga diingatkan untuk tidak memberitahukan PIN kepada orang lain. Validasi PIN yang sama dengan PIN yang terdapat pada database system. Jika PIN yang dimasukkan tidak cocok, maka system akan meminta nasabah untuk memasukkan kembali PIN yang benar. Jika nasabah memasukkan PIN yang salah sebanyak 3 kali berturut-turut pada hari yang sama, maka kartu ATM tersebut tidak dapat dikeluarkan lagi dari mesin ATM.
Setelah validasi kartu ATM dan PIN sukses, Nasabah diminta memilih jenis transaksi perbankan yang diinginkan.Jenis-jenis transaksi itu akan dijelaskan pada bagian 3.2.2, 3.2.3, 3.2.4, dan 3.2.5 dari dokumen ini. menu ini disebut menu utama.
Setiap menu yang meminta nasabah untuk memasukkan nilai, terdapat opsi salah dan benar. Jika opsi salah dipilih atau nilai yang dimasukkan salah maka system akan kembali menampilkan menu tersebut.

3.2.2.      Fungsi Informasi Saldo.System akan menampilkan informasi saldo nasabah yang bersangkutan.

3.2.3.      Fungsi Penarikan Tunai. System akan menampilkan opsi nominal rupiah yang bisa ditarik oleh Nasabah. Nominal rupiah yang ditampilkan yaitu:

§  Rp. 100.000
§  Rp. 300.000
§  Rp. 500.000
§  Rp. 1.000.000
§  Rp. 1.250.000
§  Lainnya, (nasabah dimungkinkan untuk memasukkan  nominal yang diinginkan. Apabila nilai yang dimasukan >Rp. 1.250.000 maka system akan memunculkan kembali form input nominal yang ingin ditarik.

3.2.4.      Fungsi Transfer. System akan menampilkan bank-bank yang tergabung dengan Sistem ATM ini, dan meminta kepada Nasabah untuk memilih bank yang dituju. Bank yang tergabung dalam system ini terdapat pada DOKUMEN2. Setelah itu nasabah akan diminta memasukkan nomor rekening yang dituju. Selanjutnya nasabah juga diminta memasukkan nominal rupiah yang akan ditransfer. System kemudian akan mengkonfirmasi nomor rekening, pemilik rekening, dan nominal rupiah yang akan dikirim. Jika Nasabah sudah membenarkan data tersebut maka transaksi akan dilakukan, jika tidak system akan kembali meminta memasukkan nomor rekening seperti di atas.

3.2.5.      Fungsi Pembayaran Tagihan.System akan menampilkan jenis-jenis pembayaran yang bisa dipilih oleh Nasabah. Pembayaran yang dimaksud yaitu:

§  Listrik/PLN
§  Telepon/HP
§  Kartu Kredit

3.2.5.1.     Fungsi Pembayaran Listrik/PLN. System meminta nasabah untuk memasukkan nomor pelanggan PLN-nya.System kemudian akan menampilkan ID pelanggan, Nama Pelanggan, dan jumlah tagihan, serta periode pembayaran. Jika nasabah telah mengkonfirm, system akan melakukan pembayaran Listrik/PLN sesuai dengan ID tesebut.

3.2.5.2.     Fungsi Pembayaran Telepon/HP. System meminta nasabah untuk memilih provider yang digunakan. Untuk list provider ada pada DOKUMEN2. System kemudian akan meminta nasabah untuk memasukkan nomor teleponnya. System kemudian akan menampilkan Nomor telepon pelanggan, Nama Pelanggan, dan jumlah tagihan, serta periode pembayaran. Jika nasabah telah mengkonfirm, system akan melakukan pembayaran Telepon/HP sesuai dengan ID tesebut.

3.2.5.3.     Fungsi Pembayaran Kartu Kredit. System meminta nasabah untuk memilih jenis kartu kredit yang digunakan. Untuk list jenis kartu kredit ada pada DOKUMEN2. System kemudian akan meminta nasabah untuk memasukkan nomor kartu kreditnya. System akan meminta pelanggan untuk memasukkan jumlah pembayarannya. System kemudian akan mengkonfirmasi data yang dimasukan dengan menampilkan nomor kartu kredit pelanggan, Nama Pelanggan, dan jumlah tagihan pelanggan. Jika nasabah telah mengkonfirm, system akan melakukan pembayaran Kartu Kredit sesuai dengan ID tesebut.

3.2.6.      Fungsi Logout.Setiap menu, terdapat opsi batal. Jika opsi itu dipilih maka system akan logout dan kartu akan otomatis keluar dari mesin. Setiap selesai melakukan transaksi perbankan, jika nasabah memilih opsi ingin melakukan transaksi lainnya, akan kembali ke menu utama. Jika tidak, system akan otomatis logout dan kartu akan secara otomatis keluar dari mesin.

3.3.   Persyaratan Performa. Sistem ini tetap dapat bekerja dalam kondisi cuaca yang buruk sekalipun (misalnya: pada suhu yang terlalu panas atau terlalu dingin). System ini harus memiliki kecepatan transfer data tinggi.

3.4.   Batasan Desain.

3.4.1.      Standar Keluhan. Daftar keluhan harus diarahkan sesuai dengan format yang terdapat pada DOKUMEN3.


3.4.2.      Keterbatasan Perangkat Keras. Dapat dilihat pada 3.1.2. pada dokumen ini.

3.5.   Atribut Sistem Perangkat Lunak.

3.5.1.      Kemampuan. Sistem ini bekerja 24 jam tiap hari. 7 hari dalam seminggu.

3.5.2.      Keamanan.

3.5.2.1  Nasabah disarankan untuk mengubah PIN-nya pada pemakaian pertama.
3.5.2.2  Nasabah diminta untuk tidak memberikan nomor PIN-nya kepada siapapun
3.5.2.3  Sistem akan otomatis menelan Kartu ATM jika PIN yang dimasukkan salah tiga kali berturut-turut dalam sehari.

3.5.3.      Perawatan.Akan ada pemberitahuan ke system utama, jika uang dan kertas yang digunakan untuk mencatat transaksi dalam mesin ATM habis.


Use Case





Context Diagram





Flow Diagram





PROTOTYPE SISTEM INFORMASI ( ATM )
Seperti yang dijelaskan dalam deskripsi untuk Sistem Bank BCA yang kami ambil kali ini adalah
Sistem ATMnya. Kami membuat Prototype ATM dengan menggunakan Bahasa Java.
Untuk design prototype ATM yang kami buat sbb:



Class Bank

1:  import java.util.*;  
2:  public class Bank  
3:  {  
4:    private String bank_name;  // Name of the Bank.  
5:    private Scanner input;   // private scanner to retrieve  
6:                  // user input.  
7:    // Some Booleans to control program flow //  
8:    private boolean bContinue = true;  
9:    private boolean bAcc = true;  
10:    // constructors  
11:    Bank() {}  
12:    Bank(String b_name)  
13:    {  
14:      // Name of Bank is set in constructor //  
15:      bank_name = b_name;  
16:    }  
17:    int processClients()  
18:    {  
19:      System.out.println("\t" + bank_name.toUpperCase());  
20:      System.out.println("==========================================");  
21:      // System has a possible 32 accounts to be used //  
22:      Account[] pAccounts = new Account[32];  
23:      // In the following loop we initialise the accounts all to null //  
24:      // which makes it easier to find a terminating account when   //  
25:      // looping later on in the code - as we can check if an account //  
26:      // is null and subsequently know that no accounts in the array //  
27:      // after such point have been initialised.           //  
28:      int counter = 0;  
29:      while( counter < 32)  
30:      {  
31:        pAccounts[counter] = null;  
32:        counter++;  
33:      }  
34:      // Some variables for temporarily storing      //  
35:      // account credentials in before setting up account //  
36:      String tmp_name_f, tmp_name_l;  
37:      double tmp_bal;  
38:      long tmp_num;  
39:      // initalise scanner here to begin gathering user input //  
40:      input = new Scanner(System.in);  
41:      // Below we will being adding accounts to the database / array //  
42:      // this loop continues till a terminating condition is met.  //  
43:      System.out.println("Pembuatan Akun\n==========================================");  
44:      for( int i = 0; i < pAccounts.length; i++)  
45:      {  
46:        System.out.print("Nama Depan :: ");  
47:        tmp_name_f = input.next();  
48:        System.out.print("Nama Belakang :: ");  
49:        tmp_name_l = input.next();  
50:        System.out.print("Password :: ");  
51:        tmp_num = input.nextLong();  
52:        System.out.print("Saldo Awal :: ");  
53:        tmp_bal = input.nextDouble();  
54:        // Store Information in Account Object Array by //  
55:        // initialising accounts as we precede     //  
56:        pAccounts[i] = new Account(new Client( tmp_name_f, tmp_name_l ), tmp_bal, tmp_num);  
57:        // Check if user wishes to add another account, if "N" //  
58:        // is entered, we break out of account creation loop  //  
59:        System.out.println("Apakah ingin menambahkan akun lagi ? (Y / N) :: ");  
60:        if(input.next().equals("N"))  
61:        {  
62:          break;  
63:        }  
64:      }  
65:      // The boolean here, indicates user wishes to continue utilising the Banking System //  
66:      while (bContinue)  
67:      {  
68:        int acc;  // account index to access.  
69:        System.out.println("\nPilih Akun - Index\n==========================================");  
70:        for ( int k = 0; k < pAccounts.length; k++)  
71:        {  
72:          // earlier we initialised accounts to null                   //  
73:          // this check is just to ensure the account is valid and has been instantiated //  
74:          if(pAccounts[k] != null)  
75:          System.out.println(k + " ) " + pAccounts[k].get_name());  
76:        }  
77:        acc = input.nextInt();  
78:        int tries = 0;  
79:        while (true)  
80:        {  
81:          System.out.print("Input Password : ");  
82:          long pwd = input.nextLong();  
83:          if (pwd == pAccounts[acc].get_password())  
84:            break;  
85:          else  
86:          {  
87:            System.out.println("PASSWORD SALAH !");  
88:            tries++;  
89:          }  
90:          if (tries == 3)  
91:          {  
92:            System.exit(0);  
93:          }  
94:        }  
95:        // This Boolean indicates the user wishes to continue on with the same account //  
96:        while (bAcc)  
97:        {  
98:          // This could be done in a switch statement, however i prefer if's. //  
99:          // basically, we select which member function of Account to call  //  
100:          // for the account designated in the code above, each selection   //  
101:          // either fetches or changes values of a specific account denoted  //  
102:          // by index.                            //  
103:          System.out.println("\nPilihan : \n1 ) Deposit\n2 ) Tarik Uang\n3 ) Sisa Saldo\n4 ) Transfer Uang");  
104:          int sel = input.nextInt();  
105:          if ( sel == 1)  
106:          {  
107:            System.out.print("Masukkan jumlah yang ingin di deposit = IDR ");  
108:            pAccounts[acc].deposit_funds(input.nextDouble() );  
109:          }  
110:          else if ( sel == 2)  
111:          {  
112:            System.out.print("Masukkan jumlah yang ingin ditarik = IDR ");  
113:            if( pAccounts[acc].withdraw_funds(input.nextDouble() ) == -1)  
114:            {  
115:              System.out.println("SALDO TIDAK MENCUKUPI");  
116:            }  
117:            else  
118:              System.out.println("Silahkan ambil uang anda");  
119:          }  
120:          else if ( sel == 3)  
121:          {  
122:            System.out.println("Sisa saldo = IDR " + String.format("%.2f", pAccounts[acc].get_balance()) );  
123:          }  
124:          else if (sel == 4)  
125:          {  
126:            int target;  
127:            int otheracc=0;  
128:            for ( int k = 0; k < pAccounts.length; k++)  
129:            {  
130:              if(pAccounts[k] != null)  
131:              {  
132:                if (k!=acc)  
133:                {  
134:                  otheracc++;  
135:                  System.out.println(k + " ) " + pAccounts[k].get_name());  
136:                }  
137:              }  
138:            }  
139:            if (otheracc > 0)  
140:            {  
141:              System.out.print("Pilih Tujuan Transfer : ");  
142:              target = input.nextInt();  
143:              if(target <= otheracc && target != acc)  
144:              {  
145:                System.out.print("Masukkan jumlah uang yang ingin ditransfer : ");  
146:                double amount = input.nextDouble();  
147:                if( pAccounts[acc].withdraw_funds(amount) == -1)  
148:                {  
149:                  System.out.println("SALDO TIDAK MENCUKUPI");  
150:                }  
151:                else  
152:                {  
153:                  pAccounts[target].deposit_funds(amount);  
154:                }  
155:              }  
156:              else  
157:              {  
158:                System.out.println("ERROR");  
159:              }  
160:            }  
161:            else  
162:            {  
163:              System.out.println("Tidak ada akun lain");  
164:            }  
165:          }  
166:          else  
167:            System.out.println("Pilihan tidak Valid");  
168:          // Check if user would like to change accounts or continue with current account //  
169:          System.out.println("Apakah ingin melakukan transaksi lain ? \n1 ) Yes\n2 ) No");  
170:          if( input.nextInt() == 1)  
171:              bAcc = true;  
172:          else bAcc = false;  
173:        }  
174:        bAcc = true;  
175:        // Check if to continue on with banking system.  
176:        System.out.println("Ingin menggunakan akun lain : \n1 ) Yes\n2 ) No");  
177:        if (input.nextInt() == 1) bContinue = true;  
178:        else  
179:          return 0;  // we return early and essentially exit program //  
180:      }  
181:      return 0;  
182:    }  
183:    public static void main(String[] args)  
184:    {  
185:      Bank myBank = new Bank("SIMULASI BANK");  
186:      System.exit( myBank.processClients() );  
187:    }  
188:  }  

Class Account

1:  public class Account  
2:  {  
3:    // variables contained within class account //  
4:    // accessible only via methods/functions as //  
5:    // they are private and subsequently can  //  
6:    // only be changed via member functions.  //  
7:    private Client person;      // account holders client  
8:    private double balance;      // current account balance  
9:    private long password;   // account number  
10:    // Constuctor for Objects of type account //  
11:    Account( Client c_client, double c_balance, long c_num)  
12:    {  
13:      person = c_client;  
14:      balance = c_balance;  
15:      password = c_num;  
16:    }  
17:    // Function to deposit funds into an account //  
18:    public void deposit_funds( double p_amount)  
19:    {  
20:      balance += p_amount;  
21:    }  
22:    // function to withdraw funds from an account //  
23:    // checks to see whether funds are available. //  
24:    public int withdraw_funds( double p_amount)  
25:    {  
26:      // check if enough funds  
27:      if ( p_amount > balance )  
28:        return -1;  
29:      else  
30:        balance -= p_amount;  
31:      return 0;  
32:    }  
33:    // returns account balance //  
34:    public double get_balance()  
35:    {  
36:      return balance;  
37:    }  
38:    // returns account holders name //  
39:    public String get_name()  
40:    {  
41:      // Access our client object (person)  
42:      // then access getName() function  
43:      // of Client class  
44:      return person.getName();  
45:    }  
46:    // returns account number //  
47:    public long get_password()  
48:    {  
49:      return password;  
50:    }  
51:    public Client getClient()  
52:    {  
53:      return person;  
54:    }  
55:  }  

Class Client


1:  public class Client {  
2:    private String name_first, name_last;  
3:    private long phone_contact;  
4:    // default constructor  
5:    Client()  {}  
6:    // Overload Constructor  
7:    Client(String name_f, String name_lst)  
8:    {  
9:      name_first = name_f;  
10:      name_last = name_lst;   
11:    }  
12:    // method to return full name  
13:    String getName()  
14:    {  
15:      return (name_first + " " + name_last);  
16:    }  
17:  }  

Output


 Nama Depan :: Rizal Septiarkhman  
 Nama Belakang :: Password :: 12345  
 Saldo Awal :: 250000  
 Apakah ingin menambahkan akun lagi ? (Y / N) ::   
 Y  
 Nama Depan :: Saddhana  
 Nama Belakang :: Arta  
 Password :: 12345  
 Saldo Awal :: 125000  
 Apakah ingin menambahkan akun lagi ? (Y / N) ::   
 N  
 Pilih Akun - Index  
 ==========================================  
 0 ) Evan Bangun  
 1 ) Rizal Septiarkhman  
 2 ) Saddhana Arta  
 1  
 Input Password : 12345  
 Pilihan :   
 1 ) Deposit  
 2 ) Tarik Uang  
 3 ) Sisa Saldo  
 4 ) Transfer Uang  
 4  
 0 ) Evan Bangun  
 2 ) Saddhana Arta  
 Pilih Tujuan Transfer : 2  
 Masukkan jumlah uang yang ingin ditransfer : 500000  
 Saldo tidak mencukupi  
 Apakah ingin melakukan transaksi lain ?   
 1 ) Yes  
 2 ) No  
 2  
 Ingin menggunakan akun lain :   
 1 ) Yes  
 2 ) No  
 2  
      SIMULASI BANK  
 ==========================================  
 Pembuatan Akun  
 ==========================================  
 Nama Depan ::        

REFERENSI

http://fajarbaskoro.blogspot.co.id/2016/11/apsi-8-tools-analisis.html
http://fajarbaskoro.blogspot.co.id/2016/11/apsi-9-teknik-analisis-sistem.html
http://painfulbyroses.blogspot.co.id/2014/02/analisa-sistem-bank.html
https://yaqinov.wordpress.com/2013/10/16/analisis-pieces/

Tidak ada komentar:

Posting Komentar