1. Class abstract untuk menu-menu dalam i-Kios
public abstract class buyMenu {
int biaya;
int harga;
void buy() {
this.biaya -= harga;
}
int getBiaya() {
return this.biaya;
}
void unknown() {
System.out.println("Perintah tidak diketahui!");
}
}
2. Class untuk menu pembelian pulsa
import java.util.Random;
import java.util.Scanner;
public class buyPulsa extends buyMenu {
private String nohp;
private String[] amount = {"10000", "25000", "50000", "100000", "250000", "500000"};
private String[] kartu = {"XL", "Telkomsel", "Indosat", "3"};
Scanner scan = new Scanner(System.in);
Random rand = new Random();
public buyPulsa(int biaya) {
this.biaya = biaya;
System.out.println("===Pembelian Pulsa===");
System.out.print("Masukkan no. HP Anda: ");
nohp = scan.next();
String kartu = this.kartu[rand.nextInt(3)];
System.out.println("Daftar jumlah pulsa yang bisa dibeli:");
for(int i=1;i<=6;i++) {
System.out.println(i + ". Rp " + amount[i-1]);
}
System.out.println("Semua pembelian dikenakan biaya tambahan 2000 untuk biaya administrasi");
while(true) {
System.out.print("Pilih nomor jumlah pulsa yang ingin dibeli: ");
int mode = scan.nextInt();
if(mode>=1 && mode<=6) {
this.harga = Integer.parseInt(amount[mode-1]) + 2000;
break;
}
else{
unknown();
}
}
boolean confirm = false;
while(true) {
System.out.println("Apakah Anda ingin membeli pulsa sebesar Rp " + (harga - 2000) + "(+Rp2000) untuk no. HP " + nohp + "(kartu " + kartu + ")?");
System.out.println("1. Ya\n2. Tidak");
int conf = scan.nextInt();
switch(conf) {
case 1:
confirm = true;
break;
case 2:
confirm = false;
break;
default:
unknown();
break;
}
if(conf==1 || conf==2)
break;
}
if(confirm==false) {
System.out.println("Pembelian Pulsa Dibatalkan");
}
else {
if(this.biaya<harga) {
System.out.println("Saldo Anda tidak cukup untuk melakukan transaksi. Harap mengisi ulang saldo di kasir");
}
else {
buy();
System.out.println("Pembelian Pulsa berhasil!");
System.out.println("===-+-===Struk Pembayaran===-+-===");
System.out.println("Jenis Pembayaran: Pembelian Pulsa");
System.out.println("Harga : " + harga);
System.out.println("No. HP:" + nohp);
System.out.println("Kartu :" + kartu);
System.out.println("===-+-======+===++===+======-+-===");
}
}
}
}
3. Class untuk pembelian barang online
import java.util.Scanner;
import java.util.Random;
public class buyOnline extends buyMenu{
private String kodeBarang;
private String onlineShop[] = {"Tokopedia", "Bukalapak", "Shopee", "Lazada"};
private String jenisShop;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
public buyOnline(int biaya) {
this.biaya = biaya;
System.out.println("Daftar Online Shop:");
for(int i=1; i<=4; i++) {
System.out.println(i + ". " + onlineShop[i-1]);
}
while(true) {
System.out.println("Pilih online shop: ");
int shop = scan.nextInt();
if(shop>=1 && shop<=4) {
jenisShop = onlineShop[shop-1];
break;
}
else {
unknown();
}
}
System.out.println("Masukkan kode pembayaran: ");
kodeBarang = scan.next();
this.harga = rand.nextInt(1000000 - 50000 + 1) + 50000;
boolean confirm = false;
while(true) {
System.out.println("Anda akan melakukan pembelian dari online shop " + jenisShop + " dengan kode barang " + kodeBarang + " seharga " + harga);
System.out.println("Apakah anda ingin melanjutkan?");
System.out.println("1. Ya");
System.out.println("2. Tidak");
int mode = scan.nextInt();
switch(mode) {
case 1:
confirm = true;
break;
case 2:
confirm = false;
break;
default:
unknown();
break;
}
if(mode==1 || mode==2) {
break;
}
}
if (confirm == false) {
System.out.println("Pembelian online dibatalkan");
}
else {
if(biaya<harga) {
System.out.println("Saldo Anda tidak cukup untuk melakukan transaksi. Harap mengisi ulang saldo di kasir");
}
else {
buy();
System.out.println("Pembelian Online berhasil!");
System.out.println("===-+-===Struk Pembayaran===-+-===");
System.out.println("Jenis Pembayaran: Pembelian Online");
System.out.println("Online Shop : " + jenisShop);
System.out.println("Kode :" + kodeBarang);
System.out.println("Harga :" + harga);
System.out.println("===-+-======+===++===+======-+-===");
}
}
}
}
4.Class untuk menu i-Delivery
import java.util.Scanner;
import java.util.Random;
public class buyIDelivery extends buyMenu{
private String barang[] = {"Gas 12 kg", "Galon Aqua", "Kardus Air Mineral Club 600ml"};
private int hargaBarang[] = {60000, 70000, 25000};
private String namaBarang;
private String alamat;
private int tanggal,bulan,tahun;
private String nama;
private String nohp;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
public buyIDelivery(int biaya) {
this.biaya = biaya;
System.out.println("Daftar Barang:");
for(int i=1; i<=3; i++) {
System.out.println(i + ". " + barang[i-1] + " (Rp " + hargaBarang[i-1] + ")");
}
while(true) {
System.out.println("Pilih barang: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=3) {
namaBarang = barang[pilih-1];
harga = hargaBarang[pilih-1];
break;
}
else {
unknown();
}
}
System.out.print("Masukkan banyak barang yang ingin dibeli: ");
int multi = scan.nextInt();
harga = harga * multi;
System.out.println("Masukkan data diri: ");
System.out.print("Nama: ");
nama = scan.next();
System.out.print("No. HP: ");
nohp = scan.next();
System.out.print("Alamat: ");
alamat = scan.next();
while(true) {
System.out.print("Tanggal Pengantaran: ");
tanggal = scan.nextInt();
if(tanggal<1 || tanggal>31) {
System.out.println("Format Salah!");
}
else {
break;
}
}
while(true) {
System.out.print("Bulan Pengantaran: ");
bulan = scan.nextInt();
if(bulan<1 || bulan>12) {
System.out.println("Format Salah!");
}
else {
break;
}
}
System.out.print("Tahun Pengantaran: ");
tahun = scan.nextInt();
boolean confirm = false;
while(true) {
System.out.println("Anda akan melakukan pembelian " + namaBarang + " sebanyak " + multi + " unit, seharga Rp " + harga);
System.out.println("Apakah anda ingin melanjutkan?");
System.out.println("1. Ya");
System.out.println("2. Tidak");
int mode = scan.nextInt();
switch(mode) {
case 1:
confirm = true;
break;
case 2:
confirm = false;
break;
default:
unknown();
break;
}
if(mode==1 || mode==2) {
break;
}
}
if (confirm == false) {
System.out.println("Pembelian i-Delivery dibatalkan");
}
else {
if(biaya<harga) {
System.out.println("Saldo Anda tidak cukup untuk melakukan transaksi. Harap mengisi ulang saldo di kasir");
}
else {
buy();
System.out.println("Pembelian Barang melalui i-Delivery berhasil!");
System.out.println("===-+-===Struk Pembayaran===-+-===");
System.out.println("Jenis Pembayaran: i-Delivery");
System.out.println("Barang : " + namaBarang);
System.out.println("Nama : " + nama);
System.out.println("Alamat : " + alamat);
System.out.println("No. HP : " + nohp);
System.out.println("Tanggal Pengantaran : " + tanggal + "/" + bulan + "/" + tahun);
System.out.println("Banyak : " + multi);
System.out.println("Harga : " + harga);
System.out.println("===-+-======+===++===+======-+-===");
}
}
}
}
5. Class untuk pembelian tiket kereta
import java.util.Scanner;
import java.util.Random;
public class buyKereta extends buyMenu{
private String kota[] = {"Surabaya", "Semarang", "Bandung"};
private String nama;
private int asal,tujuan,tanggal,bulan,tahun;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
public buyKereta(int biaya) {
this.biaya = biaya;
System.out.println("Daftar Kota:");
for(int i=1; i<=3; i++) {
System.out.println(i + ". " + kota[i-1]);
}
while(true) {
System.out.println("Pilih asal kota: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=3) {
asal = pilih;
break;
}
else {
unknown();
}
}
while(true) {
System.out.println("Pilih tujuan kota: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=3) {
tujuan = pilih;
if(tujuan == asal) {
System.out.println("Tidak dapat memesan tiket kereta ke tujuan sendiri");
}
else {
break;
}
}
else {
unknown();
}
}
if(asal == 1 && tujuan == 2 || asal == 2 && tujuan == 1) {
harga = 80000;
}
else if(asal == 1 && tujuan == 3 || asal == 3 && tujuan == 1) {
harga = 150000;
}
else if(asal == 2 && tujuan == 3 || asal == 3 && tujuan == 2) {
harga = 85000;
}
System.out.print("Masukkan banyak tiket yang ingin dibeli: ");
int multi = scan.nextInt();
harga = harga * multi;
System.out.println("Masukkan data diri: ");
System.out.print("Nama: ");
nama = scan.next();
while(true) {
System.out.print("Tanggal Keberangkatan: ");
tanggal = scan.nextInt();
if(tanggal<1 || tanggal>31) {
System.out.println("Format Salah!");
}
else {
break;
}
}
while(true) {
System.out.print("Bulan Keberangkatan: ");
bulan = scan.nextInt();
if(bulan<1 || bulan>12) {
System.out.println("Format Salah!");
}
else {
break;
}
}
System.out.print("Tahun Keberangkatan: ");
tahun = scan.nextInt();
boolean confirm = false;
while(true) {
System.out.println("Anda akan melakukan pembelian tiket kereta dari " + kota[asal-1] + " ke " + kota[tujuan-1] + " sebanyak " + multi + " unit, seharga Rp " + harga);
System.out.println("Apakah anda ingin melanjutkan?");
System.out.println("1. Ya");
System.out.println("2. Tidak");
int mode = scan.nextInt();
switch(mode) {
case 1:
confirm = true;
break;
case 2:
confirm = false;
break;
default:
unknown();
break;
}
if(mode==1 || mode==2) {
break;
}
}
if (confirm == false) {
System.out.println("Pembelian Tiket Kereta dibatalkan");
}
else {
if(biaya<harga) {
System.out.println("Saldo Anda tidak cukup untuk melakukan transaksi. Harap mengisi ulang saldo di kasir");
}
else {
buy();
System.out.println("Pembelian Tiket Kereta berhasil!");
System.out.println("===-+-===Struk Pembayaran===-+-===");
System.out.println("Jenis Pembayaran: Pembelian Tiket Kereta");
System.out.println("Asal : " + kota[asal-1]);
System.out.println("Tujuan : " + kota[tujuan-1]);
System.out.println("Nama : " + nama);
System.out.println("Tanggal Pengantaran : " + tanggal + "/" + bulan + "/" + tahun);
System.out.println("Banyak : " + multi);
System.out.println("Harga : " + harga);
System.out.println("===-+-======+===++===+======-+-===");
}
}
}
}
6.Class untuk pembelian tiket pesawat
import java.util.Scanner;
import java.util.Random;
public class buyPesawat extends buyMenu{
private String kota[] = {"Surabaya", "Jakarta", "Medan"};
private String maskapai[] = {"Air Asia", "Citilink", "Garuda Indonesia", "Lion Air"};
private String nama;
private int asal,pesawat,tujuan,tanggal,bulan,tahun;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
public buyPesawat(int biaya) {
this.biaya = biaya;
System.out.println("Daftar Kota:");
for(int i=1; i<=3; i++) {
System.out.println(i + ". " + kota[i-1]);
}
while(true) {
System.out.println("Pilih asal kota: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=3) {
asal = pilih;
break;
}
else {
unknown();
}
}
while(true) {
System.out.println("Pilih tujuan kota: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=3) {
tujuan = pilih;
if(tujuan == asal) {
System.out.println("Tidak dapat memesan tiket pesawat ke tujuan sendiri");
}
else {
break;
}
}
else {
unknown();
}
}
if(asal == 1 && tujuan == 2 || asal == 2 && tujuan == 1) {
harga = 900000;
}
else if(asal == 1 && tujuan == 3 || asal == 3 && tujuan == 1) {
harga = 1500000;
}
else if(asal == 2 && tujuan == 3 || asal == 3 && tujuan == 2) {
harga = 2000000;
}
for(int i=1; i<=4; i++) {
System.out.println(i + ". " + maskapai[i-1]);
}
while(true) {
System.out.println("Pilih maskapai: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=4) {
pesawat = pilih;
break;
}
else {
unknown();
}
}
if(pesawat==1)
harga -= 100000;
else if(pesawat==2)
harga -= 50000;
else if(pesawat==3)
harga += 150000;
else if(pesawat==4)
harga -= 110000;
System.out.println("Masukkan data diri: ");
System.out.print("Nama: ");
nama = scan.next();
while(true) {
System.out.print("Tanggal Keberangkatan: ");
tanggal = scan.nextInt();
if(tanggal<1 || tanggal>31) {
System.out.println("Format Salah!");
}
else {
break;
}
}
while(true) {
System.out.print("Bulan Keberangkatan: ");
bulan = scan.nextInt();
if(bulan<1 || bulan>12) {
System.out.println("Format Salah!");
}
else {
break;
}
}
System.out.print("Tahun Keberangkatan: ");
tahun = scan.nextInt();
boolean confirm = false;
while(true) {
System.out.println("Anda akan melakukan pembelian tiket pesawat dari " + kota[asal-1] + " ke " + kota[tujuan-1] + " seharga Rp " + harga);
System.out.println("Apakah anda ingin melanjutkan?");
System.out.println("1. Ya");
System.out.println("2. Tidak");
int mode = scan.nextInt();
switch(mode) {
case 1:
confirm = true;
break;
case 2:
confirm = false;
break;
default:
unknown();
break;
}
if(mode==1 || mode==2) {
break;
}
}
if (confirm == false) {
System.out.println("Pembelian Tiket Pesawat dibatalkan");
}
else {
if(biaya<harga) {
System.out.println("Saldo Anda tidak cukup untuk melakukan transaksi. Harap mengisi ulang saldo di kasir");
}
else {
buy();
System.out.println("Pembelian Tiket Pesawat berhasil!");
System.out.println("===-+-===Struk Pembayaran===-+-===");
System.out.println("Jenis Pembayaran: Pembelian Tiket Pesawat");
System.out.println("Asal : " + kota[asal-1]);
System.out.println("Tujuan : " + kota[tujuan-1]);
System.out.println("Maskapai : " + maskapai[pesawat-1]);
System.out.println("Nama : " + nama);
System.out.println("Tanggal Pengantaran : " + tanggal + "/" + bulan + "/" + tahun);
System.out.println("Harga : " + harga);
System.out.println("===-+-======+===++===+======-+-===");
}
}
}
}
7.Class untuk pembelian tiket konser
import java.util.Scanner;
import java.util.Random;
public class buyKonser extends buyMenu{
private String[] jenisTiket = {"Regular", "VIP", "VVIP"};
private String[] jenisHarga = {"0%", "20%", "50%"};
private String nama,namaKonser;
private int jenis;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
public buyKonser(int biaya) {
this.biaya = biaya;
System.out.println("Masukkan Nama Konser:");
namaKonser = scan.next();
harga = (rand.nextInt(450) + 50) * 1000;
System.out.println("Harga Tiket: " + harga);
System.out.println("Jenis Tiket:");
for(int i=1; i<=3; i++) {
System.out.println(i + ". " + jenisTiket[i-1] + "(Harga tiket +" + jenisHarga[i-1] + ")");
}
while(true) {
System.out.println("Pilih jenis tiket: ");
int pilih = scan.nextInt();
if(pilih>=1 && pilih<=3) {
jenis = pilih;
break;
}
else {
unknown();
}
}
if(jenis == 2)
harga = harga + (harga*1/5);
else if(jenis==3)
harga = harga + (harga*1/2);
System.out.print("Masukkan nama: ");
nama = scan.next();
System.out.print("Masukkan jumlah tiket yang ingin dibeli: ");
int multi = scan.nextInt();
harga = harga * multi;
boolean confirm = false;
while(true) {
System.out.println("Anda akan melakukan pembelian tiket konser " + namaKonser + " sebanyak " + multi + " seharga Rp " + harga);
System.out.println("Apakah anda ingin melanjutkan?");
System.out.println("1. Ya");
System.out.println("2. Tidak");
int mode = scan.nextInt();
switch(mode) {
case 1:
confirm = true;
break;
case 2:
confirm = false;
break;
default:
unknown();
break;
}
if(mode==1 || mode==2) {
break;
}
}
if (confirm == false) {
System.out.println("Pembelian Tiket Konser dibatalkan");
}
else {
if(biaya<harga) {
System.out.println("Saldo Anda tidak cukup untuk melakukan transaksi. Harap mengisi ulang saldo di kasir");
}
else {
buy();
System.out.println("Pembelian Tiket Konser berhasil!");
System.out.println("===-+-===Struk Pembayaran===-+-===");
System.out.println("Jenis Pembayaran: Pembelian Tiket Konser");
System.out.println("Nama Konser : " + namaKonser);
System.out.println("Nama : " + nama);
System.out.println("Jenis Tiket : " + jenisTiket[jenis-1]);
System.out.println("Jumlah : " + multi);
System.out.println("Harga : " + harga);
System.out.println("===-+-======+===++===+======-+-===");
}
}
}
}
8. Program untuk mesin i-Kios
import java.util.Scanner;
public class iKios {
private int money;
private boolean exit = false;
Scanner scan = new Scanner(System.in);
public iKios() {
System.out.println("Selamat datang di i-kios");
operator();
}
public iKios(int money) {
System.out.println("Selamat datang di i-kios");
setMoney(money);
operator();
}
public void setMoney(int money) {
this.money = money;
}
public void addMoney(int money) {
this.money += money;
}
public int getMoney() {
return money;
}
public void operator() {
while(true) {
System.out.println("Pilih menu i-kios:");
System.out.println("1. Pembelian Pulsa");
System.out.println("2. Pembelian Online");
System.out.println("3. i-Delivery");
System.out.println("4. Pembelian Tiket Kereta");
System.out.println("5. Pembelian Tiket Pesawat");
System.out.println("6. Pembelian Tiket Konser");
System.out.println("7. Isi Ulang Saldo i-Kios");
System.out.println("8. Informasi Saldo i-Kios");
System.out.println("9. Keluar");
int mode = scan.nextInt();
switch(mode) {
case 1:
buyPulsa pulsa = new buyPulsa(money);
this.money = pulsa.getBiaya();
System.out.println();
break;
case 2:
buyOnline online = new buyOnline(money);
this.money = online.getBiaya();
System.out.println();
break;
case 3:
buyIDelivery delivery = new buyIDelivery(money);
this.money = delivery.getBiaya();
System.out.println();
break;
case 4:
buyKereta train = new buyKereta(money);
this.money = train.getBiaya();
System.out.println();
break;
case 5:
buyPesawat plane = new buyPesawat(money);
this.money = plane.getBiaya();
System.out.println();
break;
case 6:
buyKonser konser = new buyKonser(money);
this.money = konser.getBiaya();
System.out.println();
break;
case 7:
System.out.println("Masukkan jumlah saldo yang akan diisi: ");
int topup = scan.nextInt();
addMoney(topup);
System.out.println("Pengisian sebanyak " + topup + " berhasil, Saldo sekarang: Rp " + money);
break;
case 8:
System.out.println("Saldo sekarang: Rp " + money);
break;
case 9:
exit = true;
break;
default:
System.out.println("Perintah tidak diketahui!");
break;
}
if(exit==true) {
break;
}
}
}
}
9. Program untuk eksekusi:
import java.util.Scanner;
public class iKios_Mesin {
public static void main(String[] args) {
System.out.println("Selamat datang di i-Kios");
System.out.print("Masukkan jumlah saldo: ");
Scanner scan = new Scanner(System.in);
int saldo = scan.nextInt();
iKios kios = new iKios(saldo);
}
}
Comments
Post a Comment