Wednesday, 13 November 2013

Contoh Kasir Sederhana Menggunakan Java part_b

Contoh Kasir Sederhana Menggunakan Java part_b

Ini adalah lanjutan postingan yang tadi, hanya sekarang menggunakan OOP tau tugas part_b, sourcode disini saya bagi menjadi 3 class untuk memenuhi tugas yang menggunakan fungsi java sub class (class warisan), dalam 3 class ini semuanya saling berkaitan karena menggunakan fungsi warisan.


Codingnya sebagai berikut...

Class Menu Utama

/*
 Program kasir sederhana
 By: Ozan Hacker
 */

package part_b;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.Scanner;

public class menu_utama {

    static BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
    static Scanner inputan = new Scanner(System.in);
    static DecimalFormat titik_uang = new DecimalFormat("#,##0");
    static String menu = "";
    static String tanya = "";
    static int jumlah=0;
    static int pesan, banyak;
    static int b_kopi, kopi;
    static int b_shake, shake;
    static int b_cake, cake;
    static int j_cake = 25;
    static int uang = 0;
    static int kembalian = 0;
    static int b_semua = 0;
    static int j_semua = 0;
    static int harga1 = 5000;
    static int harga2 = 7000;
    static int harga3 = 6000;
    static int h_s_k, h_s_s, h_s_c;
    static int j_k_kopi, j_k_shake, j_k_cake;
    static int j_h_kopi, j_h_shake, j_h_cake;
    

    static void menu_utama() {
        System.out.println("================================");
        System.out.println("The Geek Caffee");
        System.out.println("================================");
        System.out.println("a) Pesan");
        System.out.println("b) Buat cake");
        System.out.println("c) Laporan penjualan");
        System.out.println("d) Rubah harga");
        System.out.println("e) Keluar");
        System.out.print("Masukkan pilihan : ");

        try {
            menu = dataIn.readLine();
        } catch (IOException e) {
            System.out.println("Error!");
        }

        if ("a".equals(menu)) {
            menu_makanan.menu_makanan();
        }

        if ("b".equals(menu)) {
            menu_b();
        }

        if ("c".equals(menu)) {
            menu_c();
        }

        if ("d".equals(menu)) {
            menu_d();
        }

        if ("e".equals(menu)) {
            menu_e();
        }
    }

    static void menu_b() {
        j_cake = j_cake + 25;
        System.out.println("25 cake telah ditambahkan, total cake " + (j_cake));
        menu_utama();
    }

    static void menu_c() {
        System.out.println("---------------------------------------------");
        System.out.println(">> Cake yang belum terjual      = " + j_cake);
        System.out.println("---------------------------------------------");
        System.out.println("Total penjualan...");
        System.out.println("---------------------------------------------");
        System.out.println("Kopi    = " + j_k_kopi + "   Rp." + titik_uang.format(j_h_kopi));
        System.out.println("Shake   = " + j_k_shake + "   Rp." + titik_uang.format(j_h_shake));
        System.out.println("Cake    = " + j_k_cake + "   Rp." + titik_uang.format(j_h_cake));
        System.out.println("---------------------------------------------");
        j_semua = j_h_shake + j_h_kopi + j_h_cake;
        System.out.println("Jumlah  =      Rp." + titik_uang.format(j_semua));
        System.out.println("Apakah anda ingin mereset laporan?");
        System.out.println("Jika iya tekan 'y' jika tidak tekan 'n'");
        System.out.print("Masukkan jawaban anda : ");
        try {
            tanya = dataIn.readLine();
        } catch (IOException e) {
            System.out.println("Error!");
        }
        if ("y".equals(tanya) || "Y".equals(tanya)) {
            b_semua = 0;j_k_shake = 0;j_k_kopi = 0;j_k_cake = 0;
            j_semua = 0;j_h_shake = 0;j_h_kopi = 0;j_h_cake = 0;
            menu_utama();
        }

        if ("n".equals(tanya) || "N".equals(tanya)) {
            menu_utama();
        }
    }

    static void menu_d() {
        System.out.println("---------------------------------------------");
        System.out.println("Rubah harga barang-barang di Cafe");
        System.out.println("---------------------------------------------");
        System.out.print("1. Kopi   = Rp. ");
        harga1 = inputan.nextInt();
        System.out.print("2. Shake  = Rp. ");
        harga2 = inputan.nextInt();
        System.out.print("3. cake   = Rp. ");
        harga3 = inputan.nextInt();
        System.out.println("---------------------------------------------");
        menu_utama();
    }

    static void menu_e() {
        System.out.println("Good bey");
    }

    public static void main(String[] agrs) {
        menu_utama();
    }
}


Class Menu Makanan
/*
 Program kasir sederhana
 By: Ozan Hacker
 */
package part_b;

public class menu_makanan extends menu_utama {

    static void menu_makanan() {
        System.out.println("---------------------------------------------");
        System.out.println("Pilih menu makanan atau minuman");
        System.out.println("---------------------------------------------");
        System.out.println("1) Kopi");
        System.out.println("2) Shake");
        System.out.println("3) Cake");
        System.out.println("4) Selesai pilih");
        System.out.print("Pilih menu  : ");
        pesan = inputan.nextInt();

        if (pesan == 1) {
            pesan_1();
        }
        if (pesan == 2) {
            pesan_2();
        }
        if (pesan == 3) {
            pesan_3();
        }
        if (pesan == 4) {
            pesan_4();
        }
    }

    static void pesan_1() {
        System.out.print("Berapa banyak kopi yang ingin dibeli  : ");
        b_kopi = inputan.nextInt();
        kopi = harga1 * b_kopi;
        h_s_k = kopi + h_s_k;
        j_k_kopi = b_kopi + j_k_kopi;
        j_h_kopi = kopi + j_h_kopi;
        menu_makanan();
    }

    static void pesan_2() {
        System.out.print("Berapa banyak shake yang ingin dibeli : ");
        b_shake = inputan.nextInt();
        shake = harga2 * b_shake;
        h_s_s = shake + h_s_s;
        j_k_shake = b_shake + j_k_shake;
        j_h_shake = shake + j_h_shake;
        menu_makanan();
    }

    static void pesan_3() {
        System.out.print("Berapa banyak cake yang ingin dibeli  : ");
        b_cake = inputan.nextInt();

        if (b_cake > j_cake) {
            System.out.println("Maaf..kita kehabisan stok cake...silahkan buat lagi");
            menu_utama();
        } 
        
        if (b_cake<=j_cake) {
            cake = harga3 * b_cake;
            j_cake = j_cake - b_cake;
            h_s_c = cake + h_s_c;
            j_k_cake = b_cake + j_k_cake;
            j_h_cake = cake + j_h_cake;
            menu_makanan();
        }
    }

    static void pesan_4() {
        jumlah = h_s_k + h_s_s + h_s_c;
        System.out.println("Total biaya adalah Rp. " + titik_uang.format(jumlah) + ",-");

        System.out.print("Masukkan jumlah uang pelanggan Rp. ");
        uang = inputan.nextInt();

        kembalian = uang - jumlah;
        System.out.println("Kembalian pelanggan Rp. " + titik_uang.format(kembalian) + ",-");
        h_s_k = 0;h_s_s = 0;h_s_c = 0;  //Untuk mereset jumlah harga sementara
        menu_utama();
    }

    public static void main(String[] args) {
        menu_makanan();
    }
}

Class Akses
/*
 Program kasir sederhana
 By: Ozan Hacker
 */
package part_b;

public class akses_final_part_b extends menu_makanan{
    public static void main (String [] agrs){
        menu_utama();
    }
}



/* Class ini hanya digunakan untuk penerapan sub class dai sub class
 * Dan juga untuk akses semua fungsi yang ada pada geek Caffe
 */


Sebenarnya class akses tidak perlu, itu hanya class untuk memudahkan akses semua fungsi, namun jika anda ingin mengakses melalui class menu utama sudah cukup dan bisa.

Ini menggunakan asumsi part_a hanya menggunakan OOP (Opjeck)
Silahkan download sourcodenya disini

Good Luck
Semoga bermanfaat...!!
Previous Post
Next Post

0 comments: