Notasi Algoritma Menghitung Jumlah Keramik (Tugas 1)

 

Berikut merupakan contoh notasi algoritma :

Kasus

– Sebuah rumah ukuran 15m x 10m

  • Kamar ada 3:
    • Dua Kamar Biasa
    • Kamar VIP
  • Ruang Tamu dan 2 Lorong
  • Kamar Mandi
  • Dapur

– Keramik yang digunakan harus ada 4 jenis

  • Keramik Putih untuk Ruang Tamu,Lorong,Dapur dan WC
  • Keramik Merah untuk Kamar Biasa Pertama
  • Keramik Hijau untuk Kamar Biasa Kedua
  • Keramik Motif untuk Kamar VIP

– Setiap Dus Keramik, isinya ditentukan dari ukuran keramik besar ukuran 120cm x 100cm

Tentukan

– Berapa jumlah keramik yang dibutuhkan dalam 1 rumah ?
– Berapa dus keramik yang akan di beli sang kontraktor ?

Penyelesaian di dalam Notasi Algoritma

Judul :
Program Menghitung Jumlah keramik yang dibutuhkan dalam 1 rumah.

Kamus :
 Pnjg_Rmh, Lbr_Rmh, L_Rmh <-- real             // Panjang, Lebar dan Luas Rumah
 Pnjg_Rg_Tm, Lbr_Rg_Tm,L_Rg_Tm <-- Real        // Panjang, Lebar dan Luas Ruang Tamu
 Pnjg_Kmr1, Lbr_Kmr1, L_Kmr1 <-- Real          // Panjang, Lebar dan Luas Kamar Biasa 1
 Pnjg_Kmr2, Lbr_Kmr2, L_Kamar2 <-- Real        // Panjang, Lebar dan Luas Kamar Biasa 2
 Pnjg_Kmr_VIP, Lbr_Kmr_VIP, L_Kmr_VIP <-- Real // Panjang, Lebar dan Luas Kamar VIP
 Pnjg_Dpr,Lbr_Dpr, L_Dpr <-- Real              // Panjang, Lebar dan Luas Dapur
 Pnjg_WC, Lbr_WC, L_WC <-- Real                // Panjang, Lebar dan Luas WC
 Pnjg_Lrng1, Lbr_Lrng1, L_Lrng1 <-- Real       // Panjang, Lebar dan Luas Lorong 1
 Pnjg_Lrng2, Lbr_Lrng2, L_Lrng2 <-- Real       // Panjang, Lebar dan Luas Lorong 2
 Pnjg_Pth,Lbr_Pth, Pnjg_Mrh,Lbr_Mrh  <-- integer //Panjang dan lebar keramik
 Pnjg_Hj,Lbr_Hj, Pnjg_Mtf,Lbr_Mtf    <-- integer //Panjang dan lebar keramik
 Krmk_Pth,Krmk_Mrh,Krmk_Hj,Krmk_Mtf  <-- integer //Jenis (Putih,Merah,Hijau,Motif)
 Jml_Krmk_Kmr1,Jml_Krmk_Kmr2  <-- Real         //Jumlah Keramik yg dibutuhkan
 Jml_Krmk_Kmr_VIP,Jml_Krmk_WC <-- Real         //Jumlah Keramik yg dibutuhkan
 Jml_Krmk_Rg_Tm, Jml_Krmk_Lrng1 <-- Real       //Jumlah Keramik yg dibutuhkan
 Jml_Krmk_Lrng2, Jml_Krmk_Dpr <-- Real         //Jumlah Keramik yg dibutuhkan
 Tot_Krmk_Pth, Tot_Krmk_Mrh <-- Real           //Total keramik
 Tot_Krmk_Hj, Tot_Krmk_Mtf  <-- Real           //Total keramik
 Krmk_Besar <-- integer                        //Ukuran keramik standar
 Dus_Krmk_Pth, Dus_Krmk_Mrh <-- integer        //Jumlah keramik dalam satu dus.
 Dus_Krmk_Hj, Dus_Krmk_Mtf  <-- integer        //Jumlah keramik dalam satu dus.
 Bth_Dus_Krmk_Pth, Bth_Dus_Krmk_Mrh <-- integer //Jumlah Dus yang harus dibeli.
 Bth_Dus_Krmk_Hj, Bth_Dus_Krmk_Mtf <-- integer  //Jumlah Dus yang harus dibeli.
 Hrg_Krmk_Pth, Hrg_Krmk_Mrh <-- integer         //Harga Keramik per dus nya
 Hrg_Krmk_Hj, Hrg_Krmk_Mtf  <-- integer         //Harga Keramik per dus nya
 Byr_Pth,Byr_Mrh,Byr_Hj, Byr_Mtf <-- integer    //Total membayar sang kontraktor
 Bayar_Pth,Bayar_Mrh, Bayar_Hj, Bayar,Mtf <-- String      //Kondisi 
 Uang <-- integer                                         //Jumlah uang yang di bawa

Deskripsi :
 output "Program Menghitung Jumlah Keramik dan Jumlah Dus"
//Assignment
 { 
   Pnjg_Rmh     -> 1500
   Lbr_Rmh      -> 1000
   Pnjg_Rg_Tm   -> 1000
   Lbr_Rg_Tm    -> 500 
   Pnjg_Kmr1    -> 400               //Ukuran ruangan yang telah ditetapkan
   Lbr_Kmr1     -> 400
   Pnjg_Kmr2    -> Pnjg_Kmr1
   Lbr_Kmr2     -> Pnjg_Kmr1
   Pnjg_Kmr_VIP -> 500
   Lbr_Kmr_VIP  -> 400
   Pnjg_Lrng1   -> 600
   Lbr_Lrng1    -> 300 
   Pnjg_Lrng2   -> 500
   Lbr_Lrng2    -> 200
   Pnjg_Dpr     -> 600
   Lbr_Dpr      -> 200
   Pnjg_WC      -> 400
   Lbr_WC       -> 200
 }
L_Rmh     -> Pnjg_Rmh * Lbr_Rmh
L_Rg_Tm   -> Pnjg_Rg_Tm * Lbr_Rg_Tm
L_Kmr1    -> Pnjg_Kmr1 * Lbr_Kmr1
L_Kmr2    -> Pnjg_Kmr2 * Lbr_Kmr2
L_Kmr_VIP -> Pnjg_Kmr_VIP * Lbr_Kmr_VIP          //Luas ruangan
L_Dpr     -> Pnjg_Dpr * Lbr_Dpr
L_WC      -> Pnjg_WC * Lbr_WC
L_Lrng1   -> Pnjg_Lrng1 * Lbr_Lrng1
L_Lrng2   -> Pnjg_Lrng2 * Lbr_Lrng2

//Assign ukuran keramik dalam cm
 {
   Pnjg_Pth   -> 20
   Lbr_Pth    -> 20
   Pnjg_Mrh   -> 15
   Lbr_Mrh    -> 15                 //Ukuran Keramik
   Pnjg_Hj    -> 20
   Lbr_Hj     -> 15
   Pnjg_Mtf   -> 30
   Lbr_Mtf    -> 30
   Pnjg_Besar -> 120
   Lbr_Besar  -> 100
 }
Krmk_Pth -> Pnjg_Pth * Lbr_Pth
Krmk_Mrh -> Pnjg_Mrh * Lbr_Mrh
Krmk_Hj  -> Pnjg_Hj * Lbr_Hj
Krmk_Mtf -> Pnjg_Mtf * Lbr_Mtf

Jml_Krmk_Rg_Tm   -> L_Rg_Tm / Krmk_Pth
Jml_Krmk_Kmr1    -> L_Kmr1 / Krmk_Mrh
Jml_Krmk_Kmr2    -> L_Kmr2 / Krmk_Hj
Jml_Krmk_Kmr_VIP -> L_Kmr_VIP / Krmk_Motif    //Jumlah Keramik Per Ruangan
Jml_Krmk_WC      -> L_WC / Krmk_Pth
Jml_Krmk_Dpr     -> L_Dpr / Krmk_Pth
Jml_Krmk_Lrng1   -> L_Lrng1 / Krmk_Pth
Jml_Krmk_Lrng2   -> L_Lrng2 / Krmk_Pth

Tot_Krmk_Pth -> Jml_Krmk_Rg_Tm+Jml_Krmk_WC+Jml_Krmk_Dpr+Jml_Krmk_Lrng1+Jml_Krmk_Lrng2
Tot_Krmk_Mrh -> Jml_Krmk_Kmr1       //Total dari masing - masing jenis keramik
Tot_Krmk_Hj  -> Jml_Krmk_Kmr2
Tot_Krmk_Mtf -> Jml_Krmk_Kmr_VIP
Output "Jumlah Keramik Putih dalam satu rumah sebanyak..", Tot_Krmk_Pth
Output "Jumlah Keramik Merah dalam satu rumah sebanyak..", Tot_Krmk_Mrh
Output "Jumlah Keramik Hijau dalam satu rumah sebanyak..", Tot_Krmk_Hj
Output "Jumlah Keramik Motif dalam satu rumah sebanyak..", Tot_Krmk_Motif

//Assignment dalam cm
 { 
   Krmk_Besar -> 120 * 100
 }

Dus_Krmk_Pth -> div(Krmk_Besar/Krmk_Pth)
Dus_Krmk_Mrh -> div(Krmk_Besar/Krmk_Mrh)     //Jumlah Keramik dalam setiap dus
Dus_Krmk_Hj  -> div(Krmk_Besar/Krmk_Hj)
Dus_Krmk_Mtf -> div(Krmk_Besar/Krmk_Mtf)

Bth_Dus_Krmk_Pth -> mod(Tot_Krmk_Pth / Dus_Krmk_Pth)
Bth_Dus_Krmk_Mrh -> mod(Tot_Krmk_Mrh / Dus_Krmk_Mrh)
Bth_Dus_Krmk_Hj  -> mod(Tot_Krmk_Hj / Dus_Krmk_Hj) //Jumlah Dus yang harus dibeli
Bth_Dus_Krmk_Mtf -> mod(Tot_Krmk_Mtf / Dus_Krmk_Mtf)
Output "Jumlah Dus Keramik Putih yang harus dibeli ..", Bth_Dus_Krmk_Pth
Output "Jumlah Dus Keramik Merah yang harus dibeli ..", Bth_Dus_Krmk_Mrh
Output "Jumlah Dus Keramik Hijau yang harus dibeli ..", Bth_Dus_Krmk_Hj
Output "Jumlah Dus Keramik Motif yang harus dibeli ..", Bth_Dus_Krmk_Mtf

//Assignment dalam rupiah
  Hrg_Krmk_Pth -> 60000
  Hrg_Krmk_Mrh -> 80000            //Harga masing-masing dus
  Hrg_Krmk_Hj  -> 80000
  Hrg_Krmk_Mtf -> 100000

Byr_Pth   -> Bth_Dus_Krmk_Pth * Hrg_Krmk_Pth
Byr_Mrh   -> Bth_Dus_Krmk_Mrh * Hrg_Krmk_Mrh
Byr_Hj    -> Bth_Dus_Krmk_Hj * Hrg_Krmk_Hj        //Total yang harus dibayarkan
Byr_Mtf   -> Bth_Dus_Krmk_Mtf * Hrg_Krmk_Mtf
Tot_Bayar -> Bayar_Pth + Bayar_Mrh + Bayar_Hj + Bayar_Mtf
Output "Jumlah uang yang harus dibayarkan .. ", Tot_Bayar

input "Uang yang dibayarkan..", Uang

if (Uang < Tot_bayar)
 {
   "Mohon Maaf,Uang anda tidak mencukupi"
    if(Uang > Bayar_Pth or Bayar_Mrh or Bayar_Hj or Bayar_Motif)
    {
     "Apakah anda mau membeli satu jenis keramik terlebih dahulu?",boolean
     if(boolean = 'true')
     {
       "OKE"
       input "silahkan ketik jenis keramik yg akan anda beli : " 
       case pilih                       //Pilihan jika uang yang dibawa tidak cukup
       {
         Bayar_Pth : input ('Putih')
         Bayar_Mrh : input ('Merah')
         Bayar_Hj  : input ('Hijau')
         Bayar_Mtf : input ('Motif') 
       }
       otherwise : output "Jenis Keramik yang anda masukkan tak ada"
       endcase
       output pilih
       }
       else
       {
         Output "Silahkan kembali lagi"
       } endif
     else
     {
       Output "Pulang saja" 
     }
     endif
   }
else
 {
   "Pembelian Berhasil"
 }
endif

Klik link ini untuk melihat tugas selanjutnya.

Advertisements

2 thoughts on “Notasi Algoritma Menghitung Jumlah Keramik (Tugas 1)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s