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 Exception Handling

Postingan ini membahas sebuah program tambahan tentang exception handling . Disini seolah-olah bertindak sebagai tester. Dan program yang akan dimodifikasi adalah program SimpleCalculator . Program SimpleCalculator adalah sebuah program kalkulator sederhana yang menggunakan switch..case dalam Java. Program bisa melakukan operasi pertambahan, pengurangan, perkalian, dan pembagian. Program SimpleCalculator ini dibuat menggunakan bahasa pemrograman Java dan bisa di-compile menggunakan IDE BlueJ. Dalam aplikasi ini, dicoba untuk ditambahkan catch exception untuk mengetes bagimana pembagian suatu angka dengan angka nol. Dicari modul kelas yang merupakan operasi pembagian dan dimodifikasi agar bisa mengetes operasi pembagian dengan penyebut angka nol. Exception Handling Exception Handling adalah sebuah proses menanggapi terjadinya exception, menangani runtime error seperti ClassNotFound, IO, SQL, Remote , dsb.  Exception adalah suatu kondisi tidak normal yang membutuhkan pemrosesan khu

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.bootstrapcdn.com/bootstrap/

Website Pendaftaran Siswa Baru

Postingan berikut menjelaskan dokumentasi website Pendaftaran Siswa Baru. Website di-hosting di local PC menggunakan XAMPP serta menggunakan MySQL untuk menangani database dari para pendaftarnya. Halaman Utama Pendaftar dapat melakukan pendaftaran pada menu Daftar Baru atau melihat list pendaftar pada bagian Pendaftar. Formulir Pendaftaran Siswa Baru Disini, siswa dapat mengisikan formulir pendaftaran dan men-submit. Menu Pendaftar Menu Pendaftar isi menyajikan tabel yang berisi siswa yang telah mendaftar. Dapat dilakukan tindakan Edit atau Hapus pada setiap baris. Formulir Edit Siswa Formulir Edit Siswa menyajikan formulir untuk mengedit data siswa yang telah mendaftar. Setelah melakukan edit, dapat menekan tombol Simpan untuk menyimpan data siswa yang telah diperbarui. Source Code Untuk source code dari website Pendaftaran Siswa Baru ini adalah sebagai berikut. Link GitHub Gist:  https://gist.github.com/dani-ramadhan7/7838e42982a0488fcc170