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.