Berlajar java kombinasikan switchcase dan if else if
Kita baca dari judulnya saja sudah kelihatan rumit bahkan
sudah pusing. Tapi tenang jangan ambil pusing jawabanya gampang kok.
Ok biar gak kelamaan bingung kita langsung simak soalnya
baik-baik.
SOAL :
PT. Senang UTS sedang membutuhkan seorang Developer dalam membuat
aplikasi Penyewaan Mobil.
Berdasarkan hasil Analisa kebutuhan aplikasi, data – data yang dibutuhkan
antara lain:
NO.
|
JENIS MOBIL
|
HARGA PER 6 JAM
|
1.
|
BMW
|
Rp 420.000,-
|
2.
|
LAMBORGINI
|
Rp 360.000,-
|
3.
|
HONDA BRIO
|
Rp 300.000,-
|
4.
|
SUZUKI CELERIO
|
Rp 240.000,-
|
Ketentuan aplikasi:
1.
User dapat menginputkan identitas penyewa/user
(No. KTP, Nama, Alamat, No. Telp)
2.
User dapat memilih jenis Mobil yang akan disewa
(1/2/3/4)
3.
User dapat menginputkan lama penyewaan mobil
4.
User dapat menginputkan status penyewa
(member/sewaBaru)
Proses1:
5.
Menghitung totalHarga
·
totalHarga = hargaSewa * lamaSewa
6.
Jika statusPenyewa adalah Member, maka penyewa
akan mendapatkan diskon sebesar 15 % dari totalHarga
7.
Jika statusPenyewa adalah sewaBaru, maka akan
ditampilkan pesan: “Anda belum terdaftar sebagai member kami”, dan totalHarga
tetap
8.
User / penyewa dapat menginputkan
jumlahPembayaran
Proses 2:
9.
Menghitung Kembalian
Output:
1.
Identitas Penyewa (No. Ktp, Nama, Alamat, No.
Telp)
2.
jenisMobil yang disewa
3.
Harga sewa
4.
lamaSewa
5.
statusSewa
6.
totalHarga
7.
diskon
8.
totalBayar
9.
jumlahPembayaran
10.
uangKembalian
Tips
karna ini soal cerita sebaiknya Analisa dulu soalnya biasanya soal cerita sering membuat binggung dan pusing karna harus membaca panjan lebar,yang perlu dianalisa kira-kira brapa jumlah variable/variable apa aja yang perlu dibuat dan tipe data yang pas digunakan untuk setiap variablenya.
OK……..
karna ini soal cerita sebaiknya Analisa dulu soalnya biasanya soal cerita sering membuat binggung dan pusing karna harus membaca panjan lebar,yang perlu dianalisa kira-kira brapa jumlah variable/variable apa aja yang perlu dibuat dan tipe data yang pas digunakan untuk setiap variablenya.
OK……..
Dan saya akan memberikan jawaban dengan dua versi
1.
versi if else if
2.
versi Switch case
JAWABANNYA versi if else if :
/*
* NAMA : putu eka
mulyana
* SITE :
putuekamulyana.blogspot.com
* Facebook :
www.facebook/putuekamulyana
*/
package jawaban;
import java.util.Scanner;
/**
*
* @author putu
*/
public class PTSenangUTS {
public static void
main(String[] args) {
Scanner scan =
new Scanner(System.in);
//variablenya
int pilih,
harga = 0, lamaSewa, totalHarga, diskon = 0, totalBayar, jumlahBayar,
kembalian;
String noKTP,
nama, alamat, noTelp, statusPenyewa, jenisMobil = "";
String
dataMobil = "Merk Mobil\n"
+
"BMW\t: Rp 420.000/ 6 jam\n"
+
"Lamborgini\t: Rp 360.000/ 6 jam\n"
+
"Honda Brio\t: Rp 300.000/ 6 jam\n"
+
"Suzuki Celerio\t: Rp 240.000/ 6 jam";
//system input
System.out.println(dataMobil);
System.out.print("Masukkan No. KTP anda: ");
noKTP =
scan.nextLine();
System.out.print("Masukkan Nama anda: ");
nama =
scan.nextLine();
System.out.print("Masukkan
Alamat anda: ");
alamat =
scan.nextLine();
System.out.print("Masukkan No. TeleponL: ");
noTelp =
scan.nextLine();
System.out.print("Pilih Jenis Mobil yang akan anda sewa (1/2/3/4):
");
pilih =
scan.nextInt();
if (pilih ==
1) {
jenisMobil
= "BMW";
harga =
70000;
} else if
(pilih == 2) {
jenisMobil
= "Lamborgini";
harga =
60000;
} else if
(pilih == 3) {
jenisMobil
= "Honda Brio";
harga =
50000;
} else if
(pilih == 4) {
jenisMobil
= "Suzuki Celerio";
harga =
40000;
} else {
System.out.println("pilihan tidak tersedia");
}
System.out.print("Masukkan
lama sewa Mobil perjam:");
lamaSewa =
scan.nextInt();
System.out.print("Masukkan status penyewa(member/sewaBaru):
");
statusPenyewa
= scan.next();
totalHarga =
harga * lamaSewa;
if (statusPenyewa.equalsIgnoreCase("member"))
{
diskon =
totalHarga * 10 / 100;
} else if
(statusPenyewa.equalsIgnoreCase("sewaBaru")) {
System.out.println("Anda belum terdaftar sebagai member
kami");
diskon =
0;
} else {
System.out.println("anda telah melakukan kesalahan dalam
input");
System.exit(0);
}
totalBayar =
totalHarga - diskon;
String nota =
"No. Ktp anda\t: " + noKTP
+
"\nNama anda \t:" + nama
+
"\nAlamat anda \t:" + alamat
+
"\nNo. Telepon anda\t: " + noTelp
+
"\nJenis Mobil \t:" + jenisMobil
+
"\nharga sewa \t:" + harga
+
"\nlama Sewa \t:" + lamaSewa
+ "\nStatus penyewa \t:" +
statusPenyewa
+
"\ntotal Harga \t:" + totalHarga
+
"\ndiskon \t\t:" + diskon
+
"\nTotal Bayar \t:" + totalBayar;
System.out.println(nota);
System.out.println("Masukkan jumlah Pembayaran: ");
jumlahBayar =
scan.nextInt();
kembalian =
jumlahBayar - totalBayar;
System.out.println("Jumlah Bayar: " + jumlahBayar);
System.out.println("Uang Kembalian: " + kembalian);
}
}
Jawaban
Versi Switch case
/* * NAMA : putu eka mulyana
* SITE :
putuekamulyana.blogspot.com
* Facebook :
www.facebook/putuekamulyana
*/
package jawaban;
import java.util.Scanner;
/**
*
* @author brother
*/
public class VersiSwitCase {
public static void
main(String[] args) {
Scanner scan
= new Scanner(System.in);
int pilih,
harga = 0, lamaSewa, totalHarga, diskon = 0, totalBayar, jumlahBayar,
kembalian;
String noKTP,
nama, alamat, noTelp, statusPenyewa, jenisMobil = "";
String
dataMobil = "Merk Mobil\n"
+
"BMW\t: Rp 420.000/ 6 jam\n"
+
"Lamborgini\t: Rp 360.000/ 6 jam\n"
+
"Honda Brio\t: Rp 300.000/ 6 jam\n"
+
"Suzuki Celerio\t: Rp 240.000/ 6 jam";
System.out.println(dataMobil);
System.out.print("Masukkan No. KTP anda: ");
noKTP =
scan.nextLine();
System.out.print("Masukkan Nama anda: ");
nama =
scan.nextLine();
System.out.print("Masukkan Alamat anda: ");
alamat =
scan.nextLine();
System.out.print("Masukkan No. TeleponL: ");
noTelp =
scan.nextLine();
System.out.print("Pilih Jenis Mobil yang akan anda sewa (1/2/3/4):
");
pilih =
scan.nextInt();
switch(pilih){
case 1:
jenisMobil = "BMW";
harga =
70000;
break;
case 2 :
jenisMobil = "Lamborgini";
harga =
60000;
break;
case 3:
jenisMobil = "Honda Brio";
harga = 50000;
break;
case 4:
jenisMobil = "Suzuki Celerio";
harga =
40000;
break;
default:
System.out.println("pilihan tidak tersedia");
}
System.out.print("Masukkan
lama sewa Mobil perjam:");
lamaSewa =
scan.nextInt();
System.out.print("Masukkan status penyewa(member/sewaBaru):
");
statusPenyewa
= scan.next();
totalHarga =
harga * lamaSewa;
if (statusPenyewa.equalsIgnoreCase("member"))
{
diskon =
totalHarga * 10 / 100;
} else if
(statusPenyewa.equalsIgnoreCase("sewaBaru")) {
System.out.println("Anda belum terdaftar sebagai member
kami");
diskon =
0;
} else {
System.out.println("anda telah melakukan kesalahan dalam
input");
System.exit(0);
}
totalBayar =
totalHarga - diskon;
String nota =
"No. Ktp anda\t: " + noKTP
+
"\nNama anda \t:" + nama
+
"\nAlamat anda \t:" + alamat
+
"\nNo. Telepon anda\t: " + noTelp
+
"\nJenis Mobil \t:" + jenisMobil
+
"\nharga sewa \t:" + harga
+
"\nlama Sewa \t:" + lamaSewa
+
"\nStatus penyewa \t:" + statusPenyewa
+
"\ntotal Harga \t:" + totalHarga
+
"\ndiskon \t\t:" + diskon
+
"\nTotal Bayar \t:" + totalBayar;
System.out.println(nota);
System.out.println("Masukkan
jumlah Pembayaran: ");
jumlahBayar =
scan.nextInt();
kembalian =
jumlahBayar - totalBayar;
System.out.println("Jumlah Bayar: " + jumlahBayar);
System.out.println("Uang Kembalian: " + kembalian);
}
}
Dari kedua
versi jawaban diatas hasilnya sama kalo gak percaya silahkan coba dua-duanya .
Tergantung kalian mau pakai yang mana. Saran saya sih pakai yang dipahami dan
dimengerti.
Kalau ada pertanyaan tentang postingan ini bisa langsung
komentar atau hubungi saya di facebook.. OK
Semoga
Sukses
Komentar
Posting Komentar