Tugas pertemuan 8

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. START
2. 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
5. input jumlah_hari_masuk
6. print nama, nik, bagian, tunjangan_transport, gaji_pokok, potongan_asuransi, 
    total_gaji
7. END

FLOWCHART

Gambar Kurang JELAS ? Klik Disini untuk mengunduh file


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

Golongan A

Golongan B

Golongan C

Jika Pilihan Golongan selain A,B,C


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}*/

Deklarasi :

String nama, alamat, alamat_pengiriman
byte jarak, berat, paket
int berat_total, jarak_total, biaya_paket, ppn, biaya_total

Deskripsi :

1. START
2. input data pelanggan //nama, alamat, alamat_pengiriman//
3. input jarak dengan angka
4. input berat dengan angka
5. system print

         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
8. END

FLOWCHART

Gambar Kurang JELAS ? Klik Disini untuk mengunduh file

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

Paket Reguler

Paket Khusus

Paket VIP

Jika Pilihan Paket selain 1,2,3


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.

Subscribe to receive free email updates:

0 Response to "Tugas pertemuan 8"

Posting Komentar