Pascal : Program Toko
Hasil tampilan program |
disini saya akan berbagi tentang membuat contoh sebuah program sederhana menggunakan bahasa pemrograman pascal. Dimana saya disini menggunakan beberapa system algoritma, seperti sistem urut, perulangan dan keputusan. Dibawah ini merupakan source code nya. Terus masala tampilan table harap di perbaiki, karena seharusnya menggunakan kode ascii. langsung aja !
program toko;
uses crt;
label
mulai;
const
stok=4;
nama_barang : array [1..stok] of string =('TV 21"', 'DVD PLAYER', 'SOUND SYSTEM', 'AMPLIFIER');
harga_barang: array [1..stok] of real =(990000, 500000, 890000, 750000);
(* deklarasi varibel *)
var
j : real;
k : string;
nama, alamat, coba: String;
tanya : char;
barang, banyak, no, baris, kapital,i : byte;
total,totald, diskon, tunai, kembalian : real;
begin
clrscr;
textcolor(3+blink);
writeln('+------------------------+);
writeln('| Selamat datang di toko kami |’);
writeln('+-----------------------------+);
textcolor(yellow);
write('Silahkan masukkan nama anda : ');readln(nama);
write('Silahkan masukkan alamat anda : ');readln(alamat);
textcolor(white);
(* mengakpitalkan inputan *)
for kapital:= 1 to Length(nama) do
nama[kapital] := UpCase(nama[kapital]);
for kapital:= 1 to Length(alamat) do
alamat[kapital] := UpCase(alamat[kapital]);
(*prose pengkapitalan selesai *)
baris:=9;
writeln('+---+----------+-----------+’);
writeln('|NO | BARANG | HARGA |’);
writeln('+-----+-----------------+-----------------+’);
for no:=1 to stok do
begin
writeln('| | | |);
gotoxy(3,baris); writeln(no);
gotoxy(8,baris); writeln(nama_barang[no]);
gotoxy(24,baris); writeln('Rp. ',harga_barang[no]:0:2);
baris:=baris+1;
end;
writeln('+---+--------------+-----------+‘);
mulai:
textcolor(yellow);
writeln('Silahkan pilih barang yang akan dibeli');
write('Dengan cara menuliskan nomor barang : '); readln(barang);
(* pengujian nomor barang jika salah *)
if barang > stok then
begin
delay(1000);
textcolor(red);
writeln(' ===================================================');
writeln('|| Nomor barang belum tersdia silahkan di perbaiki ||');
writeln(' ===================================================');
writeln('1. Ulangi pembelian');
writeln('x. Keluar');
textcolor(yellow);
write('Silahkan masukkan pilihan anda ? [1/X] : ');
readln(coba);
if coba='1' then
begin
Goto mulai;
end;
if coba='x' then
begin
textcolor(red);
k:='Program akan menutup otomastis ...... ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(100);
end;
delay(1000);
exit
end
else
begin textcolor(red);
writeln('Anda memasukkan karakter yang salah.');
k:='Program akan menutup otomastis ...... ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(100);
end;
delay(1000);
exit
end;
end
(* proses jika memasukkan angka barang yang benar *)
else delay(1000);
textcolor(yellow);
write ('Berapa unit yang akan anda beli ? : ');readln(banyak);
delay(1000);
writeln('--------------------------------------------------------------------');
k:='Anda membeli ';
for i:=1 to length(k) do
begin
textcolor(white);
write(k[i]);
delay(70);
end;
write(nama_barang[barang]);
k:=' banyak ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
writeln(banyak ,' Unit');
textcolor(yellow);
delay(1000);
write('Apakah data diatas benar ? [Y/T] : ');readln(tanya);
(* proses jika data sudah benar *)
if tanya='y' then
begin
total := harga_barang[barang]*banyak;
k:='Total harga barang adalah : Rp. ';
for i:=1 to length(k) do
begin
textcolor(white);
write(k[i]);
delay(70);
end;
delay(1500);
writeln(total:0:0);
textcolor(yellow);
k:='Tunai / Cash : Rp. ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
readln(tunai);
writeln('--------------------------------------------------------------------');
(* proses penghitungan bayaran *)
if total >=4000000 then
begin
textcolor(white);
diskon:=total*10/100;
totald:=total-diskon;
kembalian:=tunai-totald;
k:='Pembelian lebih dari Rp. 3.999.999, anda mendapat diskon 10%';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
writeln;
k:='Jadi total pembayaran adalah : Rp. ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
writeln(totald:0:0);
k:='Kembaliannya : Rp. ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
writeln(kembalian:0:2);
end;
if total <4000000 then
begin
kembalian:=tunai-total;
delay(1000);
k:='Total pembayaran adalah : Rp. ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
writeln(total:0:0);
delay(1000);
writeln('Kembaliannya : Rp. ',kembalian:0:0);
end;
end
else if tanya = 't' then
begin
goto mulai;
end
else begin
k:='Anda memasukkan karakter yang salah system akan menutup ..... ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
delay(2000);
exit
end;
delay(2000);
k:='Barang akan segera dikirim ke alamat : ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
write(alamat);
k:=' Atas nama ';
for i:=1 to length(k) do
begin
write(k[i]);
delay(70);
end;
writeln(nama);
writeln('----------------------------------------------------------');
readln;
end.
Diatas adalah source code aplikasi toko sederhana. Dimana dalam proses kerjanya, saya menggunakan beberapa fungsi atau apalah namanya. Yang pertama sayang menggunakan ARRAY yang berfungsi sabagai tempat menampung data barang.
Saya juga menggunakan fungsi label, yang mana berfungsi sebagai penamaan dalam sebuah proses ( menurut saya hehehe ).
Ada juga perintah for, dalam program ini saya gunakan untuk mengulang banyak baris pada tabel sesuai denga banyak data yang ada. Saya gunakan juga untuk menampilkan tulisan satu persatu.
Kemudian saya menggunakan percabangan, yaitu if then else, yang berfungsi sebagai pengambil keputusan. Contoh saya ambil dari program diatas, pada barsi ke-149. Disana terlihat statement nya, penjabarannya kurang lebih seperti in. Jika varibel total bernilai lebih besar dari 4000000 maka ketentuannya terpenuhi, dan langsung proses dilanjutkan, jika tidak maka proses lain yang akan melanjutkannya.
Kemudian saya menggunakan kode goto yang brfungsi untuk berpindah ke label yang ditentukan. contoh pada baris 67. Goto mulai; yang hasilnya akan berpindah ke label mulai.
Saya juga menggunakan delay([interval]); yang berfungsi untuk memberikan jeda sesuai yang ditentukan.
Selain itu saya juga meggunakan fungsi upcase, yang berfungsi untuk mengubah huruf kecil menjadi huruf kapital.
0 komentar: