Skip to main content

ETS Pemrograman Berorientasi Objek Membuat Aplikasi ATM

Berikut ini adalah rancangan pembuatan aplikasi ATM dengan menggunakan bahasa pemrograman Java dan BlueJ.

Skenario Aplikasi ATM di Real Environment

Ketika melakukan pembayaran melalui ATM, ada berbagai macam menu dengan berbagai macam metode transaksi. Berikut ini adalah langkah-langkah untuk melakukan pembayaran melalui ATM.

1. Masukkan kartu ATM

2. Sebuah menu pilih Bahasa Indonesia atau Bahasa Inggris akan muncul

3. Masukkan 6 digit PIN ATM

4. Muncul menu Penarikan Cepat
Ada menu lain, pilih menu lainnya

5. Muncul menu berbagai jenis transaksi
Pilih metode transfer

6. Muncul menu pemilihan pemindahbukuan
Pilih dari rekening tabungan

7. Muncul menu tujuan transfer
- ke rekening BNI
- ke rekening bank lain

Pilih ke rekening BNI

8. Muncul input masukan nomor rekening tujuan
Masukan nomor rekening tujuan

Pilih benar

9. Muncul input masukan jumlah uang yang akan ditransfer
Masukkan jumlah uang

Pilih benar

10. Muncul berita
Kosongkan

Pilih benar

11. Muncul konfirmasi transfer
Dari:
Ke:
Nama:
Jumlah:

Pilih benar

12. Muncul pemberitahuan transaksi telah selesai
Perlu transaksi yang lain?

Pilih tidak

13. Ambil kartu ATM dan ambil struk atau bukti transfer

Definisi Class dan Penggambaran Diagram Class untuk Membangun Aplikasi ATM

Kelas-kelas yang dibutuhkan untuk membangun suatu aplikasi ATM yang sederhana adalah sebagai berikut:

  • class ATM_Machine
  • class Penabungan
  • class Penarikan
  • class Transfer
  • class Saldo

Berikut ini adalah penggambaran diagram kelasnya.

Implementasi Rancangan Kelas dengan Java

Berikut ini adalah gambar diagram kelas dari project ATM Application setelah rancangan kelas diimplementasikan.

The Penyetoran class

Kelas Penyetoran digunakan untuk mengatur jumlah setoran.

Implementation of the Penyetoran class


/**
 * class Penyetoran digunakan untuk mengatur jumlah setoran.
 *
 * @author Ramadhan Arif Hardijansyah
 * @version 0.1 26 November 2020
 */
public class Penyetoran
{
    // instance variables
    static double setoran;
    
    /**
     * Method untuk mengatur jumlah setoran.
     *
     * @param  t  jumlah uang yang akan disetorkan
     */
    public void setSetoran(double s)
    {
        // code untuk mengatur jumlah setoran
        setoran = s;
    }

    /**
     * Method untuk mengembalikan setoran.
     *
     * @return    setoran
     */
    public static double getSetoran()
    {
        // mengembalikan setoran yang disimpan dalam instance variable setoran
        return setoran;
    }

}

The Saldo class

Kelas Saldo berfungsi untuk mengatur dan mengembalikan saldo (balance).

Implementation of the Saldo class


/**
 * class Saldo berfungsi untuk mengatur dan mengembalikan saldo (balance).
 *
 * @author Ramadhan Arif Hardijansyah
 * @version 0.1 26 November 2020
 */
public class Saldo
{
    // instance variables
    static double saldo = 0;

    /**
     * Method untuk mengatur jumlah saldo.
     *
     * @param  s  jumlah saldo yang akan diatur.
     */
    public void setSaldo(double s)
    {
        saldo = s;
    }
    
    /**
     * Method untuk mendapatkan jumlah saldo.
     *
     * @return    jumlah saldo
     */
    public static double getSaldo()
    {
        return saldo;
    }

}

The Penarikan class

Kelas Penarikan digunakan untuk menarik uang.

Implementation of the Penarikan class


/**
 * class Penarikan digunakan untuk menarik uang.
 *
 * @author Ramadhan Arif Hardijansyah
 * @version 0.1 26 November 2020
 */
public class Penarikan
{
    // instance variables
    static double tarikan = 0;

    /**
     * Method untuk mengatur jumlah penarikan uang.
     *
     * @param  t  jumlah tarikan uang
     */
    public void setTarikan(double t)
    {
        tarikan = t;
    }
    
    /**
     * Method untuk mengembalikan uang tarikan.
     *
     * @return    tarikan
     */
    public static double getTarikan()
    {
        return tarikan;
    }

}

The Transfer class

Kelas Transfer digunakan untuk mentransfer uang.

Implementation of the Transfer class


/**
 * class Transfer digunakan untuk mentransfer uang.
 *
 * @author Ramadhan Arif Hardijansyah
 * @version 0.1 26 November 2020
 */
public class Transfer
{
    // instance variables
    static double transfer = 0;
    
    /**
     * Method untuk mengatur jumlah transfer uang.
     *
     * @param  t  jumlah transfer uang
     */
    public void setTransfer(double t)
    {
        transfer = t;
    }

    /**
     * Method untuk mengembalikan uang transfer.
     *
     * @return    transfer
     */
    public static double getTransfer()
    {
        return transfer;
    }
}

The ATM_Machine class

Kelas ATM_Machine berfungsi sebagai program utama dari project ini.

Implementation of the ATM_Machine class

import java.util.Scanner;
import java.io.*;

/**
 * class ATM_Machine berfungsi sebagai program utama dari project ini.
 *
 * @author Ramadhan Arif Hardijansyah
 * @version 0.1 26 November 2020
 */
public class ATM_Machine {
    public static void clearScreen() {  
        System.out.print('\u000C');
    }  
    
    /**
     * Method untuk mecetak jumlah saldo saat ini.
     */
    public static void cekSaldo() {
        System.out.println("\tSaldo Anda saat ini " + Saldo.getSaldo());
    }

    /**
     * Method untuk menarik uang.
     */
    public static void tarikUang() {
        if (Saldo.saldo == 0) {
            System.out.println("\tSaldo Anda saat ini nol.");
            System.out.println("\tAnda tidak bisa menarik");
            System.out.println("\tAnda perlu menyetor uang terlebih dahulu.");
        } else if (Saldo.saldo<= 500) {
            System.out.println("\tAnda tidak memiliki cukup uang untuk ditarik.");
            System.out.println("\tCoba periksa saldo Anda");
        } else if (Penarikan.tarikan > Saldo.saldo) {
            System.out.println("\tJumlah yang Anda tarik lebih besar daripada saldo Anda");
            System.out.println("\tCoba periksa jumlah yang Anda masukkan.");
        } else {
            Saldo.saldo = Saldo.saldo - Penarikan.tarikan;
            System.out.println("\n\tAnda menarik jumlah Rp" + Penarikan.tarikan);
        }
    }
    
    /**
     * Method untuk mentransfer uang.
     */
    public static void transferUang() {
        if (Saldo.saldo == 0) {
            System.out.println("\tSaldo Anda saat ini nol.");
            System.out.println("\tAnda tidak bisa  mentransfer");
            System.out.println("\tAnda perlu menyetor uang terlebih dahulu.");
        } else if (Saldo.saldo <= 500) {
            System.out.println("\tAnda tidak memiliki cukup uang untuk ditransfer.");
            System.out.println("\tCoba periksa saldo Anda");
        } else if (Transfer.transfer > Saldo.saldo) {
            System.out.println("\tJumlah yang Anda transfer lebih besar daripada saldo Anda");
            System.out.println("\tCoba periksa jumlah yang Anda masukkan.");
        } else {
            Saldo.saldo = Saldo.saldo - Transfer.transfer;
            System.out.println("\n\tAnda  mentransfer jumlah Rp" + Transfer.transfer);
        }
    }

    /**
     * method ini berfungsi untuk menampilkan jumlah penyetoran.
     *
     * @param  y  a sample parameter for a method
     * @return    the sum of x and y
     */
    public static void setorUang() {
        System.out.println("\tAnda menyetor sejumlah " + Penyetoran.getSetoran());
    }

    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);
        int select = 0;
        int choice = 0;

        System.out.println("============================================================");
        System.out.println("\tSelamat datang di aplikasi ATM sederhana ini");
        System.out.println("============================================================");

        do {
            try {
                do {
                    System.out.println();
                    System.out.println("\tPilih Transaksi ATM");
                    System.out.println("\tTekan [1] Setor");
                    System.out.println("\tTekan [2] Tarik");
                    System.out.println("\tTekan [3] Informasi Saldo");
                    System.out.println("\tTekan [4] Keluar");
                    System.out.println("\tTekan [5] Transfer");

                    System.out.print("\n\tApa yang ingin Anda lakukan?");
                    select = read.nextInt();
                    clearScreen();

                    if (select > 5) {
                        System.out.println("\n\tPilih transaksi yang benar.");
                    } else {
                        switch (select) {
                            case 1:
                                System.out.print("\n\tMasukkan jumlah uang yang akan disetor: ");
                                Penyetoran.setoran = read.nextDouble();
                                Saldo.saldo = Penyetoran.setoran + Saldo.saldo;
                                setorUang();
                                break;

                            case 2:
                                System.out.print("\n\tUntuk menarik, pastikan Anda memiliki saldo yang cukup di akun Anda.");
                                System.out.println();
                                System.out.print("\tMasukkan jumlah uang yang akan ditarik:");
                                Penarikan.tarikan = read.nextDouble();
                                tarikUang();
                                break;

                            case 3:
                                cekSaldo();
                                break;
                                
                            case 5:
                                System.out.print("\n\tUntuk mentransfer, pastikan Anda memiliki saldo yang cukup di akun Anda.");
                                System.out.println();
                                System.out.print("\tMasukkan jumlah uang yang akan ditransfer:");
                                Transfer.transfer = read.nextDouble();
                                transferUang();
                                break;

                            default:
                                System.out.print("\n\tTransaksi keluar.");
                                break;
                        }
                    }
                } while (select > 5);

                do {
                    try {
                        System.out.println("\n\tApakah Anda ingin mencoba transaksi lain? ");
                        System.out.println("\n\tTekan [1] Ya \n\tTekan [2] Tidak");
                        System.out.print("\tMasukkan pilihan: ");
                        choice = read.nextInt();
                        clearScreen();
                    
                        if (choice > 2) {
                            System.out.print("\n\tHarap pilih pilihan yang benar.");
                        }
                    } catch (Exception e) {
                        System.out.println("\tKesalahan Input! Harap masukkan angka saja.");
                        read = new Scanner(System.in);
                        System.out.println("\tMasukkan pilihan Anda:");
                        choice = read.nextInt();
                    }
                } while (choice > 2);
            } catch (Exception e) {
                System.out.println("\tError Input! Harap masukkan angka saja.");
                read = new Scanner(System.in);
                System.out.println("\tMasukkan pilihan Anda:");
                select = read.nextInt();
            }
        } while (choice <= 1);
        
        System.out.println("\n\tTerima kasih telah menggunakan Mesin ATM sederhana ini.");
    }
}

Berikut ini adalah sebuah video penjelasan pembuatan aplikasi beserta langkah-langkah untuk mencoba ATM Application.

Sekian post tentang ATM Application. Semoga bermanfaat.


Comments

Popular posts from this blog

Java Classes and Objects: A Deeper Look

Pada post kali ini, kita ingin melihat lebih dalam pada pembuatan class , mengontrol akses kepada member dari sebuah class dan membuat constructors . Kita juga ingin mendiskusikan composition - sebuah kemampuan yang bisa membuat suatu kelas memiliki referensi kepada objek dari kelas-kelas lainnya sebagai member. 8.2 TIME CLASS CASE STUDY Time1 Class Declaration Contoh awal ini kita memiliki 2 kelas, Time1 dan Time1Test. Kelas Time1 merepresentasikan waktu hari ini. Kelas Time1Test adalah kelas aplikasi dimana main  membuat satu objek kelas Time1 dan memanggil method -nya. Fig. 8.1. Time1 class declaration maintains the time in a 24-hour format. /** * // Fig. 8.1: Time.java * // Time1 class declaratoin maintains the time in 24-hour format. * * @author Ramadhan Arif Hardijansyah * @version 0.1 10 October 2020 */ public class Time1 { private int hour; // 0 - 23 private int minute; // 0 - 59 private int second; // 0 - 59 /* set a new time value using univers...

Website Catalog Product

 Postingan berikut menjelaskan dokumentasi proses pembuatan website catalog. Website di-hosting menggunakan github pages yang dapat meng-host  static webpages . Link Website Catalog Product:  https://dani-ramadhan7.github.io/catalog_product/index.html# Cascading Style Sheets adalah bahasa style sheet yang digunakan untuk menggambarkan presentasi dokumen yang ditulis dalam bahasa markup seperti HTML. CSS adalah teknologi landasan World Wide Web, di samping HTML dan JavaScript.  CSS (n.d.). Wikipedia. Retrieved September 28, 2021.  Prosedur Pembuatan Website Catalog Product 1. Ikuti langkah-langkah pada modul pembelajaran yang sudah tersedia. Coba untuk menulis ulang contoh kode pada modul pembelajaran atau langsung memilih bagian-bagian kode yang diinginkan untuk digunakan. 2. Buat file html baru, buat page html dengan acuan modul pembelajaran. Lakukan modifikasi dan penambahan. 3. Untuk desain, dapat meniru juga file css pada modul pembelajaran. Tambahkan bagian...

Website Registrasi Kuliah Tatap Muka

  Postingan berikut menjelaskan dokumentasi proses pembuatan website registrasi kuliah tatap muka. Website di-hosting menggunakan github pages yang dapat meng-host  static webpages . Link Website Catalog Product:  https://dani-ramadhan7.github.io/registrasi/index.html Langkah-Langkah Pembuatan Website Registrasi Kuliah Tatap Muka 1. Ikuti langkah-langkah pada website pembelajaran. Salah satu website yang cukup bagus untuk dipelajari adalah  belajarphp.net/tutorial-validasi-form-menggunakan-html-dan-javascript/ . Coba untuk menulis ulang contoh kode pada modul pembelajaran atau langsung memilih bagian-bagian kode yang diinginkan untuk digunakan. 2. Buat file html baru, buat page html dengan acuan modul pembelajaran. Lakukan modifikasi dan penambahan. HTML JavaScript 3. Untuk desain, digunakan file css sebagaimana yang digunakan pada website, yakni menggunakan  https://stackpath.boo...