Kamis, 08 Desember 2016

ATM Case Study (Deitel Book)


Assalamu’alaikum.

Pagi ini, saya akan sedikit men-demonstrasikan sebuah program Java yang melibatkan banyak Class dengan banyak kompleksitas pula tentunya.
Program kali ini adalah program mesin ATM.
Untuk source code aslinya sendiri bisa dilihat pada buku “Java – How to Program, 9th edition by Deitel”.
Disini saya mungkin hanya akan sekedar copy paste saja, karena ini adalah demonstrasi. Tapi akan saya sedikit jelaskan gambaran dari program ini.

Berikut adalah bentuk arus dari programnya, yang tersusun atas beberapa class dan hubungan antar class-nya.
 
Kemudian untuk source code dari masing-masing class sendiri bisa dilihat dibawah ini.

ATM class
Class yang ini adalah class yang menjadi penghubung dari 3 major class, yaitu UI (User-Interface) ATM, Transaksi ATM dan Database ATM.
Class ATM ini hanya difungsikan sebagai penghubung saja, ibarat seperti mesin ATM itu sendiri.

4 class selanjutnya adalah class yang membentuk UI dari ATM.

DepositSlot class

Class ini adalah salah satu dari 4 UI ATM class pada program ini.
Fungsi dari class ini sendiri sebenarnya tidak terlalu penting jika diaplikasikan kedalam sebuah program ini. Akan tetapi penggunaan class ini menjadi penting di dunia nyata. Karena ini diibaratkan seperti kita menerima bon / struk dari mesin ATM yang menandakan bahwa saldo kita berhasil ditambahkan.

Screen class
Class Screen ini adalah class yang paling nampak berperan dalam salah satu UI ATM class.
Seperti namanya, screen. Class ini berfungsi untuk menampilkan UI itu sendiri pada user.
Jadi isinya adalah opsi2 apa saja yang dapat ditawarkan mesin kepada user.

Keypad class
Class Keypad ini adalah class yang berfungsi untuk mengambil input dari user.

CashDispenser class
Class ini berfungsi untuk melakukan pengecekan dari input user terhadap arus variabel uang dalam program.

4 class selanjutnya adalah class yang mengatur Transaksi pada program.

Transaction class
Class ini adalah class yang menjadi inti dari pengaturan transaksi pada program.
Class Transaction ini akan membuat 3 kelas turunan yang mengatur transaksi utama pada program, yaitu Withdrawal, Deposit, dan penyeimbangan Balance uang.

 Withdrawal class
Class turunan dari Transaction, class ini berfungsi untuk mengatur proses pengambilan uang dengan melakukan pengecekan-pengecekan pada variabel2 tertentu dalam program.

Deposit class
Class turunan dari Transaction, class ini berfungsi untuk mengatur proses pemasukan uang dengan melakukan pengecekan-pengecekan pada variabel2 tertentu dalam program.
BalanceInquiry class
Class turunan dari Transaction, class ini berfungsi untuk mengeluarkan output berupa total penyimpanan dan yang bisa diambil dari ATM.
Selain itu class ini juga mengatur balance dari uang dalam mesin ATM supaya tidak bisa bertambah seperti uang dari user itu sendiri.
2 class selanjutnya adalah class yang mengatur database dari ATM.

BankDatabase class
Class ini berfungsi untuk pengaturan database pada mesin ATM. Digunakan untuk menyimpan total saldo user, ID user dan PIN user.

Account class
Class ini berfungsi sebagai pengecekan apakah pemberian input sesuai dengan database.
Kemudian melakukan panggilan fungsi ke Balance yang masih ada (uang dalam ATM)

ATM case study (core class runner)

Dan ini adalah class utama yang difungsikan sebagai penjalan program.
Uniknya class ini hanya memiliki satu perintah saja dalam fungsi main() nya, yaitu run() yang sebenarnya adalah method dari class ATM. Maka program mesin ATM dapat dijalankan.

Contoh pengeksekusian program


Sekain dulu penjelasan singkat dari saya tentang mesin ATM ini.
Jika ada saran atau pertanyaan, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.