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...!!
sangat bermanfaat mas bro, semoga menjadi sebuah ladang amal buat masbro, dan semoga ane bisa terbantu atas tutorial yang masbro brikan,
ReplyDeleteane mau nanya sikit nie mas bro, klo program ini di tambah dengan sistem discount na gmana model sintak program na mas bro,, maaf sebelumnya ane masih pemula