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)
Good Luck
Semoga bermanfaat...!!