SYNTAX
1. Program Daftar_Harga;
2. uses crt;
3. Type pembelian = record
a)
nama_barang :string[12];
b)
jumlah,harga_satuan,jumlah_harga
:longint;
c)
end;
4. var
5. beli : pembelian;
6. filebeli : file of pembelian;
7. l : array [1..20] of pembelian;
8. i,pil, total_harga, diskon, total_bayar,n : longint;
9. begin
10.
repeat
11.
clrscr;
12.
textbackground(red);clrscr;textcolor(white);
13.
total_harga:=0;
14.
writeln('##>=========================================<##');
15.
writeln('##> Menu
Utama <##');
16.
writeln('##> TOKO MAJU JAYA <##');
17.
writeln('##>=========================================<##');
18.
writeln('
## ##');
19.
writeln;
20.
writeln('=>
1. Input pembelian barang');
21.
writeln('=>
2. Lihat daftar pembelian barang');
22.
writeln('=>
3. Keluar');
23.
writeln('##>=========================================<##');
24.
writeln;
25.
write('=> Pilihan Anda = ');readln(pil);
26.
case pil of
a) 1:begin
27.
clrscr;
28.
write('Jumlah
inputan = ');readln(n);
29.
assign(filebeli,'beli.doc');
30.
{$i-}
31.
reset(filebeli);
32.
{$i+}
33.
if ioresult<>0 then
a) rewrite(filebeli);
b) seek(filebeli,filesize(filebeli));
34.
for i
:=1 to n do
35.
begin
36.
clrscr;
37.
writeln('##>=========================================<##');
38.
writeln('##> TOKO MAJU JAYA <##');
39.
writeln('##> Input Pembelian Barang <##');
40.
writeln('##>=========================================<##');
41.
writeln('=>
No. = ',i);
42.
write('=>
Nama Barang =
');readln(l[i].nama_barang);
43.
write('=>
Jumlah = ');readln(l[i].jumlah);
44.
write('=>
Harga Satuan = ');readln(l[i].harga_satuan);
45.
writeln('##>=========================================<##');
46.
l[i].jumlah_harga:=l[i].jumlah*(l[i].harga_satuan);
47.
write(filebeli,beli);
48.
end;
49.
close(filebeli);
50.
clrscr;
51.
end;
52.
2 :begin
53.
clrscr;
54.
writeln('##>=========================================<##');
55.
writeln(' ##> TOKO MAJU JAYA <##');
56.
writeln(' ##> Daftar Pembelian Barang <##');
57.
writeln('##>=========================================<##');
58.
writeln;
59.
writeln('#=============================================#');
60.
writeln('|No|
Nama Barang | Jumlah | Harga Satuan | Jumlah Harga |');
61.
writeln('#=============================================#');
62.
assign(filebeli,'beli.doc');
63.
reset(filebeli);
64.
n:=filesize(filebeli);
65.
for i:=1
to n do
66.
begin
67.
total_harga:=total_harga+l[i].jumlah_harga;
68.
if
total_harga>100000 then
diskon:=(total_harga*5)
div 100
else
diskon:=0;
69.
total_bayar:=total_harga-diskon;
70.
writeln('|',i:2,'|
',l[i].nama_barang:11,' | ',l[i].jumlah:6,' | ',l[i].harga_satuan:12,' |
',l[i].jumlah_harga:12,' |');
71.
writeln('#=======================================================#');
72.
end;
73.
writeln(' Total Harga =
Rp.',total_harga:9);
74.
writeln(' Diskon = Rp.',diskon:9);
75.
writeln(' Total Bayar = Rp.',total_bayar:9);
76.
readln;
77.
close(filebeli);
78.
end;
79.
3 :begin
80.
clrscr;
81.
writeln('##>=========================================<##');
82.
writeln(' TERIMA KASIH ');
83.
writeln('##>=========================================<##');
84.
end;
85.
end;
86.
until
pil=3;
87.
readln;
88.
end.
PENJELASAN
1. Judul progam.
2. Uses(unitnya).
3. (Bagian : deklarasi)
Typenya:Memakai
RECORD yang artinya adalah kumpulan data
yang mempunyai type data yang berbeda-beda.
a) Pakai string : Karena string
digunakan untuk huruf yang lebih dari satu/simbol.
b) Pakai longint : Karena datanya
lebih dari satu / panjang.
c) End : Untuk penutup data RECORD.
4. Var : Untuk mengisi nama/data
variabelnya.
5. beli: pembelian(untuk memanggil data di RECORD).
6. Memakai file of dengan nama
pembelian untuk menyimpan data yang sama dan mengakses data di pembelian.
7. Memakai Array : 1 dimensi, untuk
sejumlah data yang bertipe sama(data di pembelian).
8. Pakai longint : Karena datanya
lebih dari satu / panjang.
9. (Bagian : Pernyataan)
Yang diawali dengan pernyataan :
Begin.
10. Repeat : Digunakan untuk
pengulangan bila ingin memasukkan data di hasil output lagi.
11. Clrscr : agar hasil output yang
ada sebelumnya dibersihkan & yang
ada hanya output yang akan diisi
kembali.
12. Textbackground (red) :Untuk latar
warna merah ;
Textcolor (white) :Untuk warna tulisan putih.
13. Total harga dimulai dari = 0.
14. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##>=========================================<##
15. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##> Menu Utama <##
16. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##> TOKO MAJU JAYA <##
17. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : ##>=========================================<##
18. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : ##
##
19. Writeln : Untuk pindah baris ke
bawah.
20. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Dengan ket : => 1. Input pembelian barang
(untuk menginputkan keterangan barang yang akan di beli).
21. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Dengan ket :=> 2. Lihat daftar pembelian barang
(untuk melihat daftar barang
yang di beli).
22. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Dengan ket : => 3. Keluar
(untuk keluar dari program).
23. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : ##>=========================================<##
24. Writeln : Untuk pindah baris ke
bawah.
25. Write : Untuk text tulisan output
tanpa pindah baris ke bawah.
Dengan ket : => Pilihan Anda =
Readln : inputan data lalu pindah
baris.
26. case pil of :Untuk pernyataan pilihan yang lebih dari satu.
a) Yang diawali dengan pernyataan
:
angka:begin.
27. Clrscr : agar hasil output yang
ada sebelumnya dibersihkan & yang
ada hanya output yang akan diisi
kembali.
28. Write : Untuk text tulisan output
tanpa pindah baris ke bawah.
Dengan ket : Jumlah inputan =
Readln : inputan data lalu pindah baris.
29. Assign : Untuk menghubungkan variabel file
dengan nama file.
filebeli: Nama
variabel file;
beli.doc: Nama file
(dalam bentuk string, format 8:3 penamaan dos, ditulis
dalam
bentuk string.
30. {$i-}:(Untuk
menangani kesalahan pada file) $
Kode Kondisi
( Agar program tidak berhenti ) Secara default {$I-} => OFF.
31. Reset : Untuk
membuka file bertipe ;
Filebeli : Nama
variabel file.
32. {$i+}
: Untuk menangani kesalahan pada file) $ Kode Kondisi
( Agar program tidak berhenti ) Secara default {$I+} => ON.
33. If..then : Untuk menyeleksi kondisi-kondisi suatu proses;
Ioresult : (bernilai 0 jika operasi berhasil);
a)Rewrite : Untuk membuat file bertipe;
Filebeli
: Nama variabel
file.
b)seek
: Untuk menempatkan
pointer ke posisi record ke-N;
filebeli,filesize(filebeli): pointer
akan menunjuk posisi record filesize.
34. For to do : Statement untuk
perulangan.
35. diawali dengan pernyataan :
Begin.
36. Clrscr : agar hasil output yang
ada sebelumnya dibersihkan & yang
ada hanya output yang akan diisi
kembali.
37. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##>=========================================<##
38. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##> TOKO MAJU JAYA <##
39. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##> Input pembelian barang <##
40. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : ##>=========================================<##
41. Writeln : Untuk text tulisan output
dengan pindah baris ke bawah.
Hasil output : => No. =
42. Write : Untuk text tulisan output
tanpa pindah baris ke bawah.
Dengan ket :
=> Nama Barang =
Readln : inputan data lalu pindah
baris.
l[i].nama_barang
ket : nama
record . nama file
43. Write : Untuk text tulisan output
tanpa pindah baris ke bawah.
Dengan ket :
=> Jumlah =
Readln : inputan data lalu pindah
baris.
l[i].jumlah
ket : nama
record . nama file
44. Write : Untuk text tulisan output
tanpa pindah baris ke bawah.
Dengan ket :
=> Harga Satuan =
Readln : inputan data lalu pindah
baris.
l[i].harga_satuan
ket : nama
record . nama file
45. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : ##>=========================================<##
46.
l[i].jumlah_harga:=l[i].jumlah*(l[i].harga_satuan)
ket :(Untuk mencari JUMLAH
HARGA)=jumlah *harga satuan.
47. Write : Untuk text tulisan output
tanpa pindah baris ke bawah.
(filebeli,beli): Memanggil data filebeli.
48. End : Untuk penutup data di
pernyataan 1.
49. Close : Menutup
file;
Filebeli :data yang di tutup.
50. Clrscr : agar hasil output yang
ada sebelumnya dibersihkan & yang
ada hanya output yang akan diisi
kembali.
51. End : Untuk penutup pernyataan
begin .
52. Yang diawali dengan pernyataan selanjutnya:
angka:begin.
53. Clrscr : agar hasil output yang
ada sebelumnya dibersihkan & yang
ada hanya output yang akan diisi
kembali.
54. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##>=========================================<##
55. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##> TOKO MAJU JAYA <##
56. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##> Daftar Pembelian Barang <##
57. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : ##>=========================================<##
58. Writeln : Untuk pindah baris ke
bawah.
59. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : #===========================================#
60. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : |No| Nama Barang | Jumlah | Harga Satuan |
Jumlah Harga |
61. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : #===========================================#
62. Assign : Untuk menghubungkan variabel file
dengan nama file.
filebeli: Nama
variabel file;
beli.doc: Nama file
(dalam bentuk string, format 8:3 penamaan dos, ditulis
dalam
bentuk string.
63. Reset : Untuk
membuka file bertipe ;
Filebeli : Nama
variabel file.
64. n:=filesize(filebeli)
ket: membuka
data yang sudah di inputkan.
65. For to do : Statement untuk
perulangan
66. Yang diawali dengan pernyataan :
Begin.
67. total_harga:=total_harga+l[i].jumlah_harga
ket :(Untuk mencari TOTAL
HARGA)=total harga + jumlah harga.
68. If then
else :Untuk menyeleksi kondisi-kondisi
yang lebih dari satu.
Ket : TOTAL HARGA >100.000
mendapat diskon dengan
rumus:(total_harga*5) div 100
jika kurang dari 100.000 :diskon:=0
69. total_bayar:=total_harga-diskon
ket :(Untuk mencari TOTAL
BAYAR)=total harga – diskon.
70. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Ket : untuk menampilkan hasil
dari total bayar.
71. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output : #===========================================#
72. End : Untuk penutup pernyataan
begin
73. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Total Harga = Rp.',total_harga:9
Ket: tampilan
hasil output Total Harga = Rp...(dengan
max 9 krakter di belakang koma)
74. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Diskon
= Rp.',diskon:9
Ket: tampilan
hasil output Diskon = Rp...(dengan max 9 krakter di belakang koma)
75. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Total Bayar = Rp.',total_bayar:9
Ket: tampilan
hasil output Total Bayar = Rp...(dengan max 9 krakter di belakang koma)
76. Readln : inputan data lalu pindah
baris.
77. Close : Menutup
file;
Filebeli :data yang di tutup.
78. End : Untuk penutup pernyataan
begin .
79. Yang diawali dengan
pernyataan selanjutnya:
angka:begin.
80. Clrscr : agar hasil output yang
ada sebelumnya dibersihkan & yang
ada hanya output yang akan diisi
kembali.
81. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##>=========================================<##
82. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: Terima
Kasih
83. Writeln : Untuk text tulisan
output dengan pindah baris ke bawah.
Hasil output: ##>=========================================<##
84. End : Untuk penutup pernyataan
begin .
85. End : Untuk penutup pernyataan
begin .
86. until pil=3
ket:
sampai pilihan 3.
87. Readln : inputan data lalu pindah
baris.
88. End : Untuk penutup pernyataan
begin
dan mengakhiri program.