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
1.
2.
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.
3.1.
Persyaratan
Interface Eksternal.
1.
2.
3.
3.1.
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.
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
1.
2.
3.
3.1.
3.2.
3.2.1.
3.2.2.
3.2.3.
3.2.4.
3.2.5.
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.3.
3.4.
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.
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/