Assalamu'alaikum WR.WB.
Kali ini saya mendapat tugas dari dosen Algoritma & Pemrograman Visual yaitu tentang percabangan SWITCH CASE dimana operasi switch case ini sebagai ganti if-else, pada saat jumlah if-else sangat besat dan sulit dibaca.
Didalam tugas ini terdapat 2 tugas yaitu :
1. Membuat Aplikasi penentuan Gaji Karyawan berdasarkan golongan A,B,C dengan
ketentuan seperti dibawah ini :
2. Membuat program pelayanan pick-up barang dengan menu Paket Reguler, Paket
Khusus, Paket VIP dengan ketentuan seperti dibawah ini :
Setiap tugas saya susun mulai dari PSEUDOCODE, FLOWCHART, SOURCE CODE, dan HASIL OUTPUT dari program yang sudah dibuat dengan Java NetBeans IDE.
Program/ Aplikasi yang saya buat dalam bentuk CONSOLE (hanya berupa text) seperti halnya CMD.
Dalam codingan juga sudah saya sisipkan kode try and catch yang berguna untuk mengatasi syntax error akibat inputan yang tidak sesuai dengan aturan yang sudah ditetapkan.
Saya rasa sudah cukup sampai sini saja penjelasannya, mari simak materi dibawah ini :
TUGAS #1 (Menentukan Gaji Karyawan berdasarkan Golongan A,B,C)
PSEUDOCODE
Judul : Algoritma_Gaji_Karyawan
/*{Menentukan gaji karyawan berdasarkan golongan A,B,C. Algoritma menerima input string, byte, int, menampilan swith casenya lalu mencetaknya dalam bentuk piranti keluaran}*/
Deklarasi :
String nama, nik, bagian
byte golongan_karyawan, jumlah_hari_masuk
int tunjangan_transport, gaji_pokok, potongan_asuransi, gaji, total_gaji
Deskripsi :
1. START2. input data karyawan //nama, nik, bagian//
3. system print
switch (golongan_karyawan) {
case 1:
gaji_pokok = 3000000;
potongan_asuransi = gaji_pokok*5/100;
gaji = gaji_pokok-potongan_asuransi;
total = gaji+tunjangan_transport;
break;
case 2:
gaji_pokok = 2500000;
potongan_asuransi = gaji_pokok*3/100;
gaji = gaji_pokok-potongan_asuransi;
total = gaji+tunjangan_transport;
break;
case 3:
gaji_pokok = 2000000;
total = gaji_pokok+tunjangan_transport;
break;
default:
print message "Pilihan Golongan tidak sesuai, Silahkan Input Ulang !!!"
break;
}
4. select menu Golongan Karyawan //1.A, 2.B, 3.C// dengan input angka 1,2,3
4. select menu Golongan Karyawan //1.A, 2.B, 3.C// dengan input angka 1,2,3
5. input jumlah_hari_masuk
6. print nama, nik, bagian, tunjangan_transport, gaji_pokok, potongan_asuransi,
total_gaji
7. END
FLOWCHART

SOURCE CODE
import java.util.InputMismatchException;
import java.util.Scanner;
public static void main(String[] args) {
Scanner majid = new Scanner (System.in);
String nama,nik,bagian;
byte golongan_karyawan = 0,jumlah_hari_masuk;
int potongan_asuransi,gaji_pokok,tunjangan_transport = 0,total,gaji;
System.out.println (" Aplikasi Penentu Gaji karyawan Berdasarkan Golongan A,B,C ");
System.out.println ("=================================================================");
System.out.print ("Masukkan Nama : ");
nama = majid.nextLine();
System.out.print ("Masukkan NIK : ");
nik = majid.nextLine();
System.out.print ("Masukkan Bagian : ");
bagian = majid.nextLine();
boolean golongan_karyawanData = false;
while ( !golongan_karyawanData )
{
System.out.println ("Golongan Karyawan : \n 1.A \n 2.B \n 3.C" );
System.out.print ("Masukkan Pilihan : ");
try
{
golongan_karyawan = majid.nextByte();
golongan_karyawanData = true;
}
catch (InputMismatchException ex )
{
System.out.println("\nData yang Kamu masukkan SALAH." );
System.out.println("Silahkan Coba Lagi.\n" );
String flush = majid.next();
}
}
boolean jumlah_hari_masukData = false;
while ( !jumlah_hari_masukData )
{
System.out.print ("Masukkan Jumlah Hari Masuk : ");
try
{
jumlah_hari_masuk = majid.nextByte();
tunjangan_transport = jumlah_hari_masuk*25000;
jumlah_hari_masukData = true;
}
catch (InputMismatchException ex )
{
System.out.println("\nData yang Kamu masukkan SALAH." );
System.out.println("Silahkan Coba Lagi.\n" );
String flush = majid.next();
}
}
System.out.println ("\n=================================================================");
System.out.println ("Nama : "+nama);
System.out.println ("NIK : "+nik);
System.out.println ("Bagian : "+bagian);
switch (golongan_karyawan) {
case 1:
gaji_pokok = 3000000;
potongan_asuransi = gaji_pokok*5/100;
gaji = gaji_pokok-potongan_asuransi;
total = gaji+tunjangan_transport;
System.out.println ("Tunjangan Transport : Rp."+tunjangan_transport+",-");
System.out.println ("Gaji Pokok : Rp."+gaji_pokok+",-");
System.out.println ("Potongan Asuransi : Rp."+potongan_asuransi+",-");
System.out.println ("Total Gaji : Rp."+total+",-");
System.out.println ("\b=================================================================");
break;
case 2:
gaji_pokok = 2500000;
potongan_asuransi = gaji_pokok*3/100;
gaji = gaji_pokok-potongan_asuransi;
total = gaji+tunjangan_transport;
System.out.println ("Tunjangan Transport : Rp."+tunjangan_transport+",-");
System.out.println ("Gaji Pokok : Rp."+gaji_pokok+",-");
System.out.println ("Potongani Asuransi : Rp."+potongan_asuransi+",-");
System.out.println ("Total Gaji : Rp."+total+",-");
System.out.println ("\b=================================================================");
break;
case 3:
gaji_pokok = 2000000;
total = gaji_pokok+tunjangan_transport;
System.out.println ("Tunjangan Transport : Rp."+tunjangan_transport+",-");
System.out.println ("Gaji Pokok : Rp."+gaji_pokok+",-");
System.out.println ("Total Gaji : Rp."+total+",-");
System.out.println ("\b=================================================================");
break;
default:
System.out.println ("Pilihan Golongan tidak sesuai, Silahkan Input Ulang !!!");
System.out.println ("\n========================= INPUT ERROR ===========================");
break;
}
}
HASIL OUTPUT
TUGAS #2 (Membuat Aplikasi pickup barang dengan pilihan paket regular, khusus, VIP)
PSEUDOCODE
Judul : Algoritma_Pickup_Barang
/*{Aplikasi pickup barang dengan pilihan paket regular, khusus, VIP. Algoritma menerima input string, byte, int, menampilan swith casenya lalu mencetaknya dalam bentuk piranti keluaran}*/
1. START
2. input data pelanggan //nama, alamat, alamat_pengiriman//
Deklarasi :
String nama, alamat, alamat_pengiriman
byte jarak, berat, paket
int berat_total, jarak_total, biaya_paket, ppn, biaya_total
Deskripsi :
2. input data pelanggan //nama, alamat, alamat_pengiriman//
3. input jarak dengan angka
4. input berat dengan angka
6. select menu layanan//1.Paket Reguler, 2.Paket Khusus, 3.Paket VIP// dengan
input angka 1,2,3
4. input berat dengan angka
5. system print
switch (paket) {
switch (paket) {
case 1:
berat_total=berat*10000;
jarak_total=jarak*20000;
biaya_paket=berat_total+jarak_total;
ppn=biaya_paket*10/100;
biaya_total=biaya_paket+ppn;
break;
case 2:
berat_total=berat*20000;
jarak_total=jarak*35000;
biaya_paket=berat_total+jarak_total;
ppn=biaya_paket*10/100;
biaya_total=biaya_paket+ppn;
break;
case 3:
berat_total=berat*30000;
jarak_total=jarak*50000;
biaya_paket=berat_total+jarak_total;
ppn=biaya_paket*10/100;
biaya_total=biaya_paket+ppn;
break;
default:
print message " Pilihan Paket tidak sesuai, Silahkan Input Ulang !!!"
break;
}
6. select menu layanan//1.Paket Reguler, 2.Paket Khusus, 3.Paket VIP// dengan
input angka 1,2,3
7. print nama, alamat, alamat_pengiriman, jarak, berat, berat_total, jarak_total, ppn,
biaya_total
biaya_total
8. END
FLOWCHART

SOURCE CODE
import java.util.InputMismatchException;
import java.util.Scanner;
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
String nama,alamat,tujuan;
byte jarak = 0,berat = 0,paket = 0;
int berat_total,jarak_total,biaya_paket,ppn,biaya_total;
System.out.println (" PROGRAM PICKUP BARANG ");
System.out.println ("=================================================================");
System.out.print ("Masukkan Nama Pelanggan : ");
nama = scan.nextLine();
System.out.print ("Masukan Alamat : ");
alamat= scan.nextLine();
System.out.print ("Masukan Alamat Pengiriman : ");
tujuan = scan.nextLine();
boolean jarakData = false;
while ( !jarakData )
{
System.out.print ("Masukan Jarak Pengiriman (km) : ");
try
{
jarak = scan.nextByte();
jarakData = true;
}
catch (InputMismatchException ex )
{
System.out.println("\nData yang Kamu masukkan SALAH." );
System.out.println("Silahkan Coba Lagi.\n" );
String flush = scan.next();
}
}
boolean beratData = false;
while ( !beratData )
{
System.out.print ("Masukan Berat Barang (kg) : ");
try
{
berat = scan.nextByte();
beratData = true;
}
catch (InputMismatchException ex )
{
System.out.println("\nData yang Kamu masukkan SALAH." );
System.out.println("Silahkan Coba Lagi.\n" );
String flush = scan.next();
}
}
boolean paketData = false;
while ( !paketData )
{
System.out.println ("Menu layanan : \n 1.Paket Reguler \n 2.Paket Khusus \n 3.Paket VIP ");
System.out.print ("Masukan pilihan paket : ");
try
{
paket = scan.nextByte();
paketData = true;
}
catch (InputMismatchException ex )
{
System.out.println("\nData yang Kamu masukkan SALAH." );
System.out.println("Silahkan Coba Lagi.\n" );
String flush = scan.next();
}
}
System.out.println ("\n=================================================================");
System.out.println ("Nama Pelanggan : "+ nama);
System.out.println ("Alamat : "+ alamat);
System.out.println ("Alamat Pengiriman : "+ tujuan);
System.out.println ("Jarak Pengiriman : "+ jarak+" Km");
System.out.println ("Berat Barang : "+ berat+" Kg");
switch (paket) {
case 1:
berat_total=berat*10000;
jarak_total=jarak*20000;
biaya_paket=berat_total+jarak_total;
ppn=biaya_paket*10/100;
biaya_total=biaya_paket+ppn;
System.out.println ("Total Biaya Kg : Rp."+ berat_total+",-");
System.out.println ("Total Biaya Km : Rp."+ jarak_total+",-");
System.out.println ("Nilai PPN 10% : Rp."+ ppn+",-");
System.out.println ("Biaya Total : Rp."+ biaya_total+",-");
System.out.println ("\b=================================================================");
break;
case 2:
berat_total=berat*20000;
jarak_total=jarak*35000;
biaya_paket=berat_total+jarak_total;
ppn=biaya_paket*10/100;
biaya_total=biaya_paket+ppn;
System.out.println ("Total Biaya Kg : Rp."+ berat_total+",-");
System.out.println ("Total Biaya Km : Rp."+ jarak_total+",-");
System.out.println ("Nilai PPN 10% : Rp."+ ppn+",-");
System.out.println ("Biaya Total : Rp."+ biaya_total+",-");
System.out.println ("\b=================================================================");
break;
case 3:
berat_total=berat*30000;
jarak_total=jarak*50000;
biaya_paket=berat_total+jarak_total;
ppn=biaya_paket*10/100;
biaya_total=biaya_paket+ppn;
System.out.println ("Total Biaya Kg : Rp."+ berat_total+",-");
System.out.println ("Total Biaya Km : Rp."+ jarak_total+",-");
System.out.println ("Nilai PPN 10% : Rp."+ ppn+",-");
System.out.println ("Biaya Total : Rp."+ biaya_total+",-");
System.out.println ("\b=================================================================");
break;
default:
System.out.println ("\nPilihan Paket tidak sesuai, Silahkan Input Ulang !!!");
System.out.println ("\n========================= INPUT ERROR ===========================");
break;
}
}
HASIL OUTPUT
Mohon maaf bila ada kesalahan penulisan maupun kesalahan dari penyampaian tugas, karena saya masih belajar. It's OKAY to be FALSE but remember, TRUE always come after FALSE.
Jangan takut karena salah, yang membuat gagal bukan karena salah akan tetapi karena rasa takut.
Tugas ini dibuat untuk memenuhi nilai tugas 20% Algoritma & Pemrogramman di STMIK Mercusuar.
Diposting Oleh : Makmur Abdul Majid
NIM : 1755201053
Prodi : S1 Teknik Informatika
Dosen : Slamet Sucipto, S.Kom, M.Kom.
0 Response to "Tugas pertemuan 8"
Posting Komentar