Sabtu, 03 Desember 2011

Contoh Kasus algoritma


TUGAS  ALGORITMA


Contoh kasus :
Sebuah toko buku  “A” pada akhir tahun menjual buku-buku kesehatan dengan harga khusus, transaksi penjualannya dilakukan dengan ketentuan sebagai berikut :
Pada akhir transaksi ditampilkan total harga yang harus dibayar dan saldo pembayarannya.

Penyelesaian kasus :

Algoritma_Name  PenjualanBuku

Var
          Kd_buku, Ulang,Jn_buku : String
          Hrg_buku, Jml_buku, jml_harga, Potongan, Total_harga, bayar,saldo : numerik

Begin
          Ulang     ¬’Y’

                    While Ulang=’Y’ or Ulang=’y’ do

                            Read(Kd_buku,Jml_buku)

                            If (Kd_buku = 'A') or (Kd_buku='a') then
                                      Jn_buku ¬ 'Kedokteran’
                                      Hrg_buku ¬ 100000
                            Else
                                      If (Kd_buku='B')or (Kd_buku='b')  then
                                                  Jn_buku  ¬ 'Farmasi'
                                                   Hrg_buku¬ 90000
                                       Else
                                                  Jn_buku ¬ 'Keperawatan'
                                                 Hrg_buku ¬  75000
                                      Endif
                            Endif

                            Jml_Harga  ¬ Jml_buku * Hrg_buku
                            Total_harga ¬ Total_harga + Jml_Harga
                            Write(Jn_buku,Hrg_buku,Jml_harga,Total_harga)
                             Read(Ulang)
                   Endwhile

       Read(bayar)
        saldo ¬ bayar - Total_harga                                        

        Write(saldo)
        Writeln('Terima kasih, silakan datang kembali')

End

 



Algoritma di atas dapat diimplementasikan ke dalam program pascal sebagai berikut :

Program PenjualanBuku;

Uses wincrt;

Var
       Kd_buku, Ulang,Jn_buku : String;
       Hrg_buku, Jml_buku, jml_harga, Total_harga, Hrg_byr,bayar,kembali: longint;
        Potongan : real;

Begin
Ulang:='Y';

       While (Ulang='Y') or (Ulang='y')  do

        Begin
                   clrscr;
                    Write('Kode buku[A/B/C] :');Readln(Kd_buku);
                    Write('Jumlah buku      :');Readln(jml_buku);
      
                   If (Kd_buku = 'A') or (Kd_buku='a') then
                            begin
                                     Jn_buku  :='Kedokteran';
                                    Hrg_buku := 100000;
                            end;

                    If (Kd_buku='B')or (Kd_buku='b')  then
                                    begin
                                     Jn_buku  :='Farmasi';
                                    Hrg_buku :=90000;
                                    end;
                   If  (kd_buku ='C') or (Kd_buku='c') then
                                    begin              
                                    Jn_buku:='Keperawatan';
                                    Hrg_buku := 75000;
                                    End;

                   Jml_Harga := Jml_buku * Hrg_buku;
                   Total_harga:=Total_harga + Jml_Harga;

                   Writeln('Jenis Buku       :',Jn_buku);
                   Writeln('Harga buku       :',Hrg_buku);
                   Writeln('Jumlah Harga     :',Jml_harga);
                   Writeln('Total Harga      :',Total_harga);
                   writeln;
                   Write('Ada buku yang dibeli lagi (Y/T):');readln(ulang);
          End;
       Writeln;
       Write('Pembayaran       :');readln(bayar);
        kembali:= bayar - Total_harga;                                          
        Writeln('Kembalian        :',kembali);
        Writeln;
        Writeln('Terima kasih, silakan datang kembali')

End.

Tidak ada komentar:

Posting Komentar