Sabtu, 18 Oktober 2014

PROGRAM KASIR






STEP BY STEP :

program step0;
uses crt;
{mengubah kode barang dan mengubahnya menjadi harga dengan menggunakan case}
VAR
    iNoItem: integer;
    sKodeBarang : string;
    rHargaBarang : real;

BEGIN
    clrscr;
    //meminta inputan kode barang
    write('masukkan kode barang: ');readln(sKodeBarang);
   
    //menterjemahkan kode barang menjadi harga
    case sKodeBarang of
      'k01' : rHargaBarang := 50000;                     
      'k02' : rHargaBarang := 65000;
    end;                       
       
    writeln('kode barang ',sKodeBarang,' harganya: ', rHargaBarang:0:0);
   
    readln;
END.



PROGRAM step1;
uses crt;
{mengubah kode barang dan mengubahnya menjadi harga dan nama barang}
VAR
    iNoItem: integer;
    sKodeBarang, sNamaBarang : string;
    rHargaBarang : real;

BEGIN
    clrscr;
   
    //inputan kode barang
    write('masukkan kode barang: ');readln(sKodeBarang);
   
    //menterjemahkan kode menjadi harga barang dan nama barang
    case sKodeBarang of
      'k01' : begin
               sNamaBarang := 'Buku dengan judul: The Travelers Gift';
               rHargaBarang := 50000;       
              end;
      'k02' : begin
                sNamaBarang := 'Buku dengan judul: The Alchemist';
                rHargaBarang := 65000;       
              end;
       
    end;
   
    writeln('kode barang ', sKodeBarang,' adalah ',sNamaBarang ,' dengan harga ', rHargaBarang:0:0);
   
    readln;
END.


PROGRAM step2;
uses crt;

VAR
    cPilihan: char;
    iNoItem: integer;
    sKodeBarang, sNamaBarang : string;
    rJmlTotBelanja, rHargaBarang : real;

BEGIN
    clrscr;
    cPilihan := 'y'; //inisialisasi awal agar bisa masuk ke dalam perulangan
    iNoItem := 0; //untuk menyimpan banyaknya barang
    rHargaBarang := 0; //sebagai acuan awal penjumlahan

    //akan terus berulang selama nilai cPilihan adalah y
    While (cPilihan = 'y') do
    begin
      //penambahan jumlah item   
      iNoItem := iNoItem + 1;
      write('masukkan kode barang ke ',iNoItem,': ');readln(sKodeBarang);
     
      case sKodeBarang of
      'k01' : begin
               sNamaBarang := 'Buku dengan judul: The Travelers Gift';
               rHargaBarang := 50000;       
              end;
      'k02' : begin
                sNamaBarang := 'Buku dengan judul: The Alchemist';
                rHargaBarang := 65000;       
              end;
       
      end;
     
      //penjumlahan harga barang di dalam perulangan
      rJmlTotBelanja := rJmlTotBelanja + rHargaBarang;                   
      write('apakah masih mau menambahkan kode barang? (y/t): ');readln(cPilihan);
    end;
   
    //output berupa jumlah barang yang diinputkan dan juga jumlah dari harga barang
    writeln('Jumlah barang yang harus dibayar adalah ', iNoItem, ' barang');
    writeln('Dengan total harga ', rJmlTotBelanja:0:0);
   
    readln;
END.



PROGRAM atep3;
uses crt;

VAR
    cPilihan: char;
    iNoItem: integer;
    sKodeBarang, sNamaBarang : string;
    rJmlTotBelanja, rHargaBarang : real;

BEGIN
    clrscr;
    cPilihan := 'y'; //inisialisasi awal agar bisa masuk ke dalam perulangan
    iNoItem := 0; //untuk menyimpan perhitungan harga
    rHargaBarang := 0; //sebagai acuan awal penjumlahan

    While (cPilihan = 'y') do
    begin
      iNoItem := iNoItem + 1;
      write('masukkan kode barang ke ',iNoItem,': ');readln(sKodeBarang);
     
      case sKodeBarang of
        'k01' : begin
                  sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                  rHargaBarang := 50000;       
                end;
        'k02' : begin
                  sNamaBarang := 'Buku dengan judul: The Alchemist';
                  rHargaBarang := 65000;       
                end;
        else     // menangani kode yang salah
                begin               
                    writeln('kode barang salah...');
                    write('masukkan kode yang benar: ');readln(sKodeBarang);
                   
                    //selama kode bukan k01 dan kode bukan k02 maka akan terus meminta kode yg benar
                    while ((sKodeBarang <> 'k01') and (sKodeBarang <> 'k02')) do
                    begin
                        writeln('kode barang salah...');
                        write('masukkan kode yang benar: ');readln(sKodeBarang);
                    end;
                   
                    //setelah didapat kode yang benar maka akan diterjemahkan menjadi nama barang dan harga
                    case sKodeBarang of
                        'k01': begin
                                sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                                rHargaBarang := 50000;
                               end;
                        'k02': begin
                                sNamaBarang := 'Buku dengan judul: The Alchemist';
                                rHargaBarang := 65000;
                               end;
                    end; //end dari case sKodebarang          
                end    //end dari else case                
       
      end; //end dari case sKodeBarang
     
      //penjumlahan harga barang di dalam perulangan
      rJmlTotBelanja := rJmlTotBelanja + rHargaBarang;                   
      write('apakah masih mau menambahkan kode barang? (y/t): ');readln(cPilihan);
    end;
   
    //output berupa jumlah barang yang diinputkan dan juga jumlah dari harga barang
    writeln('Jumlah barang yang harus dibayar adalah ', iNoItem, ' barang');
    writeln('Dengan total harga ', rJmlTotBelanja:0:0);
   
    readln;
END.

PROGRAM step4;
uses crt;

VAR
    cPilihan: char;
    iNoItem: integer;
    sKodeBarang, sNamaBarang,sPromoDiskon : string; //penambahan variabel sPromoDiskon
    rJmlTotBelanja, rHargaBarang, rHargaDiskonBarang : real; //penambahan variabel rHargaBarang

BEGIN
    clrscr;
    cPilihan := 'y'; //inisialisasi awal agar bisa masuk ke dalam perulangan
    iNoItem := 0; //untuk menyimpan perhitungan harga
    rHargaBarang := 0; //sebagai acuan awal penjumlahan

    While (cPilihan = 'y') do
    begin
      iNoItem := iNoItem + 1;
      write('masukkan kode barang ke ',iNoItem,': ');readln(sKodeBarang);
     
      case sKodeBarang of
        'k01' : begin
                  sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                  rHargaBarang := 50000;       
                end;
        'k02' : begin
                  sNamaBarang := 'Buku dengan judul: The Alchemist';
                  rHargaBarang := 65000;       
                end;
        else    
                begin               
                    writeln('kode barang salah...');writeln();
                    write('masukkan kode yang benar: ');readln(sKodeBarang);
                   
                    while ((sKodeBarang <> 'k01') and (sKodeBarang <> 'k02')) do
                    begin
                        writeln('kode barang salah...');writeln();
                        write('masukkan kode yang benar: ');readln(sKodeBarang);
                    end;
                   
                    case sKodeBarang of
                        'k01': begin
                                sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                                rHargaBarang := 50000;
                               end;
                        'k02': begin
                                sNamaBarang := 'Buku dengan judul: The Alchemist';
                                rHargaBarang := 65000;
                               end;
                    end;          
                end                    
       
      end;
     
      //meminta inputan kode diskon. tidak di atas karena nanti jika kode salah akan tetap keluar
      //padahal kita ingin pengecekan kode benar terlebih dahulu
      write('masukkan promo diskon barang (jika ada): '); readln(sPromoDiskon);
     
      //tambahkan info dari harga barang asli
      writeln('kode barang: ',sKodeBarang, ' dengan nama barang: ', sNamaBarang);
      writeln('harga asli: ',rHargaBarang:0:0);
      if (sPromoDiskon = 'p50') then
        begin               
            rHargaDiskonBarang := rHargaBarang * 0.5;   
            writeln('mendapatkan diskon 50% yaitu ',rHargaDiskonBarang:0:0);
            rHargaBarang := rHargaBarang - rHargaDiskonBarang;
            writeln('harga setelah diskon: ',rHargaBarang:0:0);
        end   
      else
        begin
            writeln('mendapatkan diskon 10%');
            rHargaDiskonBarang := rHargaBarang * 0.1;
            rHargaBarang := rHargaBarang - rHargaDiskonBarang;
            writeln('harga setelah diskon: ',rHargaBarang:0:0);
        end;           
     
      rJmlTotBelanja := rJmlTotBelanja + rHargaBarang;                   
      write('apakah masih mau menambahkan kode barang? (y/t): ');readln(cPilihan);writeln();
    end;
   
    writeln('Jumlah barang yang harus dibayar adalah ', iNoItem, ' barang');
    writeln('Dengan total harga ', rJmlTotBelanja:0:0);
   
    readln;
END.
 

PROGRAM step5;
uses crt;

VAR
    cPilihan: char;
    iNoItem: integer;
    sKodeBarang, sNamaBarang,sPromoDiskon : string; //penambahan variabel sPromoDiskon
    rJmlTotBelanja, rHargaBarang, rHargaDiskonBarang, rJmlUangBayar : real; //penambahan variabel rHargaBarang

BEGIN
    clrscr;
    cPilihan := 'y'; //inisialisasi awal agar bisa masuk ke dalam perulangan
    iNoItem := 0; //untuk menyimpan perhitungan harga
    rHargaBarang := 0; //sebagai acuan awal penjumlahan

    While (cPilihan = 'y') do
    begin
      iNoItem := iNoItem + 1;
      write('masukkan kode barang ke ',iNoItem,': ');readln(sKodeBarang);
     
      case sKodeBarang of
        'k01' : begin
                  sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                  rHargaBarang := 50000;       
                end;
        'k02' : begin
                  sNamaBarang := 'Buku dengan judul: The Alchemist';
                  rHargaBarang := 65000;       
                end;
        else    
                begin               
                    writeln('kode barang salah...');writeln();
                    write('masukkan kode yang benar: ');readln(sKodeBarang);
                   
                    while ((sKodeBarang <> 'k01') and (sKodeBarang <> 'k02')) do
                    begin
                        writeln('kode barang salah...');writeln();
                        write('masukkan kode yang benar: ');readln(sKodeBarang);
                    end;
                   
                    case sKodeBarang of
                        'k01': begin
                                sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                                rHargaBarang := 50000;
                               end;
                        'k02': begin
                                sNamaBarang := 'Buku dengan judul: The Alchemist';
                                rHargaBarang := 65000;
                               end;
                    end;          
                end                    
       
      end;
     
      //meminta inputan kode diskon. tidak di atas karena nanti jika kode salah akan tetap keluar
      //padahal kita ingin pengecekan kode benar terlebih dahulu
      write('masukkan promo diskon barang (jika ada): '); readln(sPromoDiskon);
     
      //tambahkan info dari harga barang asli
      writeln('kode barang: ',sKodeBarang, ' dengan nama barang: ', sNamaBarang);
      writeln('harga asli: ',rHargaBarang:0:0);
      if (sPromoDiskon = 'p50') then
        begin               
            rHargaDiskonBarang := rHargaBarang * 0.5;   
            writeln('mendapatkan diskon 50% yaitu ',rHargaDiskonBarang:0:0);
            rHargaBarang := rHargaBarang - rHargaDiskonBarang;
            writeln('harga setelah diskon: ',rHargaBarang:0:0);
        end   
      else
        begin
            writeln('mendapatkan diskon 10%');
            rHargaDiskonBarang := rHargaBarang * 0.1;
            rHargaBarang := rHargaBarang - rHargaDiskonBarang;
            writeln('harga setelah diskon: ',rHargaBarang:0:0);
        end;           
     
      rJmlTotBelanja := rJmlTotBelanja + rHargaBarang;                   
      write('apakah masih mau menambahkan kode barang? (y/t): ');readln(cPilihan);writeln();
    end;
   
    writeln('Jumlah barang yang harus dibayar adalah ', iNoItem, ' barang');
    writeln('Dengan total harga ', rJmlTotBelanja:0:0);
   
    //meminta masukan uang pembayaran
    write('masukkan jml uang pembayaran: ');readln(rJmlUangBayar);
   
    while (rJmlUangBayar < rJmlTotBelanja) do
    begin
        write('jml uang bayar kurang, masukkan kembali: ');readln(rJmlUangBayar);
    end;
   
   
    readln;
END.



PROGRAM step6;
uses crt;

VAR
    cPilihan: char;
    iNoItem: integer;
    sKodeBarang, sNamaBarang,sPromoDiskon : string; //penambahan variabel sPromoDiskon
    rTotalBayar, rJmlTotBelanja, rHargaBarang, rHargaDiskonBarang, rJmlUangBayar, rPotongan, rKembalian : real; //penambahan variabel rHargaBarang

BEGIN
    clrscr;
    cPilihan := 'y'; //inisialisasi awal agar bisa masuk ke dalam perulangan
    iNoItem := 0; //untuk menyimpan perhitungan harga
    rHargaBarang := 0; //sebagai acuan awal penjumlahan

    While (cPilihan = 'y') do
    begin
      iNoItem := iNoItem + 1;
      write('masukkan kode barang ke ',iNoItem,': ');readln(sKodeBarang);
     
      case sKodeBarang of
        'k01' : begin
                  sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                  rHargaBarang := 50000;       
                end;
        'k02' : begin
                  sNamaBarang := 'Buku dengan judul: The Alchemist';
                  rHargaBarang := 65000;       
                end;
        else    
                begin               
                    writeln('kode barang salah...');writeln();
                    write('masukkan kode yang benar: ');readln(sKodeBarang);
                   
                    while ((sKodeBarang <> 'k01') and (sKodeBarang <> 'k02')) do
                    begin
                        writeln('kode barang salah...');writeln();
                        write('masukkan kode yang benar: ');readln(sKodeBarang);
                    end;
                   
                    case sKodeBarang of
                        'k01': begin
                                sNamaBarang := 'Buku dengan judul: The Travelers Gift';
                                rHargaBarang := 50000;
                               end;
                        'k02': begin
                                sNamaBarang := 'Buku dengan judul: The Alchemist';
                                rHargaBarang := 65000;
                               end;
                    end;          
                end                    
       
      end;
     
      //meminta inputan kode diskon. tidak di atas karena nanti jika kode salah akan tetap keluar
      //padahal kita ingin pengecekan kode benar terlebih dahulu
      write('masukkan promo diskon barang (jika ada): '); readln(sPromoDiskon);
     
      //tambahkan info dari harga barang asli
      writeln('kode barang: ',sKodeBarang, ' dengan nama barang: ', sNamaBarang);
      writeln('harga asli: ',rHargaBarang:0:0);
      if (sPromoDiskon = 'p50') then
        begin               
            rHargaDiskonBarang := rHargaBarang * 0.5;   
            writeln('mendapatkan diskon 50% yaitu ',rHargaDiskonBarang:0:0);
            rHargaBarang := rHargaBarang - rHargaDiskonBarang;
            writeln('harga setelah diskon: ',rHargaBarang:0:0);
        end   
      else
        begin
            writeln('mendapatkan diskon 10%');
            rHargaDiskonBarang := rHargaBarang * 0.1;
            rHargaBarang := rHargaBarang - rHargaDiskonBarang;
            writeln('harga setelah diskon: ',rHargaBarang:0:0);
        end;           
     
      rJmlTotBelanja := rJmlTotBelanja + rHargaBarang;                   
      write('apakah masih mau menambahkan kode barang? (y/t): ');readln(cPilihan);writeln();
    end;
   
    writeln('Jumlah barang yang harus dibayar adalah ', iNoItem, ' barang');
    writeln('Dengan total harga ', rJmlTotBelanja:0:0);
   
    //meminta masukan uang pembayaran
    write('masukkan jml uang pembayaran: ');readln(rJmlUangBayar);
   
    while (rJmlUangBayar < rJmlTotBelanja) do
    begin
        write('jml uang bayar kurang, masukkan kembali: ');readln(rJmlUangBayar);
    end;
   
    //penghitungan rumus diskon total
    if (rJmlTotBelanja < 100000) then
        rPotongan := 0
    else if ( (rJmlTotBelanja >= 100000) and (rJmlTotBelanja < 200000)) then
        rPotongan := rJmlTotBelanja * 0.01
    else if (rJmlTotBelanja >= 200000) then
        rPotongan := rJmlTotBelanja * 0.05;
   
    writeln; //ganti baris untuk output   
    writeln('detil pembayaran')    ;
    writeln('total belanja: ', rJmlTotBelanja:0:0)    ;
    writeln('potongan: ', rPotongan:0:0);
    rTotalBayar := rJmlTotBelanja - rPotongan;
    writeln('total bayar setelah potongan: ', rTotalBayar:0:0);
    writeln('uang pembayaran: ', rJmlUangBayar:0:0);
    rKembalian := rJmlUangBayar - rTotalBayar;
    writeln('kembalian: ', rKembalian:0:0);
   
    readln;
END.

Tidak ada komentar:

Posting Komentar