Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hands on OOP submission by Muhammad Equilibrie Fajria #76

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions Muhammad Equilibrie Fajria_Institut Teknologi Bandung/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Program Penjualan Buah
Program ini merupakan program skala kecil oop terkait penjualan buah di toko Pak Warmi. Pada program ini pengguna dapat membeli buah sesuai dengan masukan pengguna. Harga per kilogram dan persediaan setiap buah dapat diedit manual pada Main.java.

# Design Pattern
Design pattern yang digunakan pada program ini adalah design pattern singleton. Dapat dilihat dari class mangga, apel, durian, melon, semangka, pisang setiap class tersebut terdapat satu instance sebuah kelas. Saya memilih singleton karena paling mudah diimplementasikan.

# Bahasa yang Digunakan
Program ini dibuat dengan menggunakan bahasa java versi 19.

# Requirement Program
Untuk menjalankan program ini, cukup menyediakan environment yang biasa digunakan untuk menjalankan program java pada umumnya. Pengguna hanya perlu menyiapkan Java Development Kit (JDK) pada perangkat yang digunakan.

# Cara Menggunakan
Pengguna dapat mengubah file Main.java pada folder ``src`` menjadi Main.class atau langsung menjalankan Main.class pada folder ``bin``. Jika pengguna ingin mengubah file Main.java menjadi Main.class terlebih dahulu, maka dapat dilakukan dengan
1. Membuka terminal pada folder dimana Main.java berada.
2. ketik ``javac Main.java`` pada terminal.

Setelah Main.class ada, pengguna dapat menjalankan program dengan mengetik ``java Main`` pada terminal.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Apel extends Buah {
public Apel(int persediaan, int hargaPerKilo) {
this.persediaan = persediaan;
this.hargaPerKilo = hargaPerKilo;
}

@Override
public int getHarga(int bobot) {
return hargaPerKilo * bobot;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
abstract public class Buah {
int persediaan; // Bobot semua buah yang tersedia (Dalam Kg)
int hargaPerKilo;
abstract int getHarga(int bobot);
boolean bisaBeli(int amount) {
return amount <= persediaan;
}
void beli(int amount) {
this.persediaan = persediaan - amount;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Durian extends Buah {
public Durian(int persediaan, int hargaPerKilo) {
this.persediaan = persediaan;
this.hargaPerKilo = hargaPerKilo;
}

@Override
public int getHarga(int bobot) {
return hargaPerKilo * bobot;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
// Set up objek dan variabel
Scanner input = new Scanner(System.in);
String buyExit;
int pilihanBuah;

// Set up bobot dan persediaan
Buah mangga = new Mangga(15, 23000);
Buah pisang = new Pisang(18,23000);
Buah apel = new Apel(12, 41000);
Buah durian = new Durian(7, 50000);
Buah melon = new Melon(14, 26000);
Buah semangka = new Semangka(13, 17000);

Output.tampilkanWelcome();
buyExit = input.next();
while (!(buyExit.equals("1") || buyExit.equals("2"))) {
System.out.println("Masukan tidak sesuai\n");
Output.tampilkanWelcome();
buyExit = input.next();
}

while (buyExit.equals("1")) {
Output.tampilkanPilihanBuah();
pilihanBuah = input.nextInt();
while (!(1 <= pilihanBuah && pilihanBuah <= 6)) {
System.out.println("Masukan tidak sesuai\n");
Output.tampilkanPilihanBuah();
pilihanBuah = input.nextInt();
}
System.out.println();
Output.tampilkanDetailBuah(pilihanBuah, mangga, apel, durian, melon, pisang, semangka);
Output.tampilkanWelcome();
buyExit = input.next();
while (!(buyExit.equals("1") || buyExit.equals("2"))) {
System.out.println("Masukan tidak sesuai\n");
Output.tampilkanWelcome();
buyExit = input.next();
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Mangga extends Buah {
public Mangga(int persediaan, int hargaPerKilo) {
this.persediaan = persediaan;
this.hargaPerKilo = hargaPerKilo;
}

@Override
public int getHarga(int bobot) {
return hargaPerKilo * bobot;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Melon extends Buah {
public Melon(int persediaan, int hargaPerKilo) {
this.persediaan = persediaan;
this.hargaPerKilo = hargaPerKilo;
}

@Override
public int getHarga(int bobot) {
return hargaPerKilo * bobot;
}
}
116 changes: 116 additions & 0 deletions Muhammad Equilibrie Fajria_Institut Teknologi Bandung/src/Output.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
import java.util.Scanner;

public class Output {
public static void tampilkanWelcome() {
System.out.println("Selamat datang di toko buah Pak Warmi");
System.out.println("1. Belanja");
System.out.println("2. Exit");
}
public static void tampilkanPilihanBuah() {
System.out.println("Berikut buah-buahan yang tersedia di toko kami:");
System.out.println("1. Mangga");
System.out.println("2. Apel");
System.out.println("3. Durian");
System.out.println("4. Melon");
System.out.println("5. Pisang");
System.out.println("6. Semangka");
System.out.println("Silahkan pilih buah yang ingin anda beli");
}
public static void tampilkanDetailBuah(int pilihanBuah, Buah mangga, Buah apel, Buah durian, Buah melon, Buah pisang, Buah semangka) {
Scanner input = new Scanner(System.in);
int amountBeli;

switch (pilihanBuah) {
case (1) -> {
System.out.println("Mangga");
System.out.printf("Persediaan: %d Kg%n", mangga.persediaan);
System.out.printf("Harga per Kilogram: Rp %d%n%n", mangga.hargaPerKilo);
System.out.println("Ingin beli berapa Kilogram?");
amountBeli = input.nextInt();
if (mangga.bisaBeli(amountBeli)) {
System.out.printf("Harga yang harus dibayar: Rp %d%n", mangga.getHarga(amountBeli));
mangga.beli(amountBeli);
System.out.println("Terima kasih sudah berbelanja di toko Pak Warmi\n");
}
else {
System.out.println("Maaf, jumlah pemesanan melebihi persediaan\n");
}
}
case (2) -> {
System.out.println("Apel");
System.out.printf("Persediaan: %d Kg%n", apel.persediaan);
System.out.printf("Harga per Kilogram: Rp %d%n%n", apel.hargaPerKilo);
System.out.println("Ingin beli berapa Kilogram?");
amountBeli = input.nextInt();
if (apel.bisaBeli(amountBeli)) {
System.out.printf("Harga yang harus dibayar: Rp %d%n", apel.getHarga(amountBeli));
apel.beli(amountBeli);
System.out.println("Terima kasih sudah berbelanja di toko Pak Warmi\n");
}
else {
System.out.println("Maaf, jumlah pemesanan melebihi persediaan\n");
}
}
case (3) -> {
System.out.println("Durian");
System.out.printf("Persediaan: %d Kg%n", durian.persediaan);
System.out.printf("Harga per Kilogram: Rp %d%n%n", durian.hargaPerKilo);
System.out.println("Ingin beli berapa Kilogram?");
amountBeli = input.nextInt();
if (durian.bisaBeli(amountBeli)) {
System.out.printf("Harga yang harus dibayar: Rp %d%n", durian.getHarga(amountBeli));
durian.beli(amountBeli);
System.out.println("Terima kasih sudah berbelanja di toko Pak Warmi\n");
}
else {
System.out.println("Maaf, jumlah pemesanan melebihi persediaan\n");
}
}
case (4) -> {
System.out.println("Melon");
System.out.printf("Persediaan: %d Kg%n", melon.persediaan);
System.out.printf("Harga per Kilogram: Rp %d%n%n", melon.hargaPerKilo);
System.out.println("Ingin beli berapa Kilogram?");
amountBeli = input.nextInt();
if (melon.bisaBeli(amountBeli)) {
System.out.printf("Harga yang harus dibayar: Rp %d%n", melon.getHarga(amountBeli));
melon.beli(amountBeli);
System.out.println("Terima kasih sudah berbelanja di toko Pak Warmi\n");
}
else {
System.out.println("Maaf, jumlah pemesanan melebihi persediaan\n");
}
}
case (5) -> {
System.out.println("Pisang");
System.out.printf("Persediaan: %d Kg%n", pisang.persediaan);
System.out.printf("Harga per Kilogram: Rp %d%n%n", pisang.hargaPerKilo);
System.out.println("Ingin beli berapa Kilogram?");
amountBeli = input.nextInt();
if (pisang.bisaBeli(amountBeli)) {
System.out.printf("Harga yang harus dibayar: Rp %d%n", pisang.getHarga(amountBeli));
pisang.beli(amountBeli);
System.out.println("Terima kasih sudah berbelanja di toko Pak Warmi\n");
}
else {
System.out.println("Maaf, jumlah pemesanan melebihi persediaan\n");
}
}
default -> {
System.out.println("Semangka");
System.out.printf("Persediaan: %d Kg%n", semangka.persediaan);
System.out.printf("Harga per Kilogram: Rp %d%n%n", semangka.hargaPerKilo);
System.out.println("Ingin beli berapa Kilogram?");
amountBeli = input.nextInt();
if (semangka.bisaBeli(amountBeli)) {
System.out.printf("Harga yang harus dibayar: Rp %d%n", semangka.getHarga(amountBeli));
semangka.beli(amountBeli);
System.out.println("Terima kasih sudah berbelanja di toko Pak Warmi\n");
}
else {
System.out.println("Maaf, jumlah pemesanan melebihi persediaan\n");
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Pisang extends Buah {
public Pisang(int persediaan, int hargaPerKilo) {
this.persediaan = persediaan;
this.hargaPerKilo = hargaPerKilo;
}

@Override
public int getHarga(int bobot) {
return hargaPerKilo * bobot;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class Semangka extends Buah {
public Semangka(int persediaan, int hargaPerKilo) {
this.persediaan = persediaan;
this.hargaPerKilo = hargaPerKilo;
}

@Override
public int getHarga(int bobot) {
return hargaPerKilo * bobot;
}
}