Anda di halaman 1dari 41

Pengantar Algoritma

Pengertian Algoritma : adalah urutan langkah-langkah logis dalam penyelesaian masalah yang disusun secara sistematis. Contoh 1: Tentukan nilai a dengan rumus a=b+c Urutan penyelesaian masalah : 1. Tentukan output 2. tentukan data input ( b dan c ) 3. lakukan proses (a=b+c) 4. tampilkan output (a)
A?---------- Untuk menentukan nilai A maka yang harus kita ketahui terlebih dahulu adalah nilai B dan nilai C Keterangan : Untuk nilai a dan b ini dapat berupa konstanta atau merupakan hasil proses yang lainnya. Jadi Nilai A tidak akan bisa didapatkan sebelum kita mengetahui nilai B dan nilai C. Jadi langkah pertama kita adalah menentukan nilai B dan C, kemudian baru menghitung pertambahan kedua nilai tersebut. Hasil dari proses ini merupakan output yang dinginkan. Urutan proses inilah yang disebut sebagai urutan logis.

Contoh 2: Y=A+B dengan nilai B merupakan perkalian nilai x dan Z


Contoh 3 : Total Harga =harga * jumlah Barang Disk = 10 % dari total harga Pembayaran = Total Harga - Disk Contoh 4: Bejana A berisi air berwarna Biru dan bejana B berisi air berwarna Merah. Tukarkan isi dari bejana tersebut sehingga bejana A berisi air berwarna merah dan bejana B berisi air berwarna Biru. Siapkan Satu bejana C. Pindahkan isi bejana A Ke C, kemudian pindahkan isi bejana B ke A, kemudian pindahkan isi bejana C ke B

Alat-alat Bantu dalam menggambarkan Algoritma


- Algoritma - Ipo Chart - Flow Chart Program

Contoh penggunaan alat Bantu diatas: (kasus dari contoh pertama) A=B+C

1. Algoritma
Urutan instruksi yang diberikan adalah : -Tentukan nilai B dan C -Proses nilai B ditambah nilai C -Cetak hasil

2. Flow Chart
start A,B,C

2. IPO Chart
Dipanggil Memanggil

Input B,C

A=B+C

Input B,C

Output A

Cetak A

Stop Proses A=B+C

Pertemuan 2

Simbol-Simbol Flow Chart

Awal dan akhir suatu proses


Inisialisasi variable ( persiapan awal ) Input dan output ( masukan dan keluaran ) program

Proses program Percabangan / perulangan


Perulangan

Conector (tanda sambung untuk halaman sama ) Conector ( tanda sambung untuk halaman berbeda ) Arah proses Procedure ( blok program ) / Function

Struktur Bahasa Pascal - Judul Program - Blok Program - Bagian Deklarasi - variable - label - konstanta - type - procedure - function - Bagian Pernyataan Perintah Input Output - Read dan readln (perintah input ) - Write dan writeln (perintah output) contoh : readln(a) ------ input nilai A write(A) ------ cetak nilai A write(A) ------ cetak A

Contoh Soal :
1. Buat flowchart program dan program Pascal untuk menampilkan hasil perkalian sebagai berikut : A=B x C ------- Nilai B Dan C Diinputkan P=Q(R+S) + R(Q+S) ------- Nilai Q,R,dan S diinputkan 2. Tentukan Nilai P, dimana p merupakan perkalian dari nilai q dan r, sedangkan nilai q adalah hasil penjumlahan nilai r dan s Deklarasi Variabel, Label, Konstanta Deklarasi variable dinyatakan dengan statemen Var Contoh : Var A:integer; Deklarasi Label dinyatakan dengan statemen Label Contoh : Label 100 Deklarasi konstanta dinyatakan dengan statemen Const Contoh : Const a:=100;

Syarat-syarat pemberian nama variable 1. harus dimulai dengan huruf 2. harus merupakan satu kesatuan 3. Tidak boleh ada symbol-simbol khusus kecuali _ (garis bawah) 4. Huruf besar dan kecil dianggap sama 5. Panjang tidak terbatas 6. Tidak boleh merupakan perintah (statement) yang tersedia di system Deklarasi Fungsi dan prosedure Fungsi dan prosedure merupakan blok program yang terpisah dari program utama yang mempunyai struktur program hampir sama dengan program utama. Prosedure dinyatakan dengan statemen PROCEDURE sedangkan fungsi dinyatakan dengan statemen FUNCTION

CONTOH PROSEDUR PROCEDURE SATU; VAR BEGIN END;

CONTOH FUNGSI FUNCTION AKAR; BEGIN END;

Tipe Data Pada Program Pascal Program komputer bekerja dengan memanipulasi data didalam memori. Data yang dimanipulasi mempunyai beberapa tipe data seperti : nilai numerik karakter string rekaman (record) Tipe data dapat dikelompokkan dalam dua kelompok yaitu : Tipe Dasar (nilainya bisa langsung dipakai) Tipe Bentukan (tipe data yang didefeisikan dari tipe dasar) I. Tipe Dasar Yang termasuk tipe dasar adalah : - bilangan - karakter - logika A. Tipe bilangan ada beberapa macam a. Bilangan bulat - Shortint -128 s/d +127 - Byte 0 s/d 255 - Integer -32768 s/d +32767 - Longint -2147483648 s/d +2147483648 - Word 0 s/d 65535

b. Bilangan pecahan - Real 2.9 X 10 39 s/d 1,7 X 10 38 - Single 1.5 X 10 45 s/d 3,4 X 10 38 - Double 5.0 X 10 324 s/d 1,7 X 10 308 - Extend 3.4 X 10 4932 s/d 1,1 X 10 4932
B. Tipe data Karakter Yang termasuk kedalam tipe data karakter adalah : huruf-huruf alfabet, tanda baca, angka 0,1,.9 dan karakter khusus &,^,.. Tipe data yang disediakan adalah char dan string C. Logika Tipe data ini mempunyai nilai Benar dan Salah. Tipe data yang disediakan sistem adalah Tipe data Boolean dengan nilai true atau false II. Tipe Bentukan Tipe bentukan adalah tipe data yang didefenisikan sendiri oleh pemrogram. Ada 3 tipe data bentukan - String - Tipe data dasar yang diberi nama dengan nama tipe baru. - Rekaman (record)

a. String Adalah deretan karakter dengan panjang tertentu Contoh : a:string[15] b. Tipe data dasar yang diberi nama baru Contoh : Type BilBulat : Integer: c. Rekaman Contoh : Type mahasiswa=record Nbp :string[13]; Nm :string[25]; End;

Operator Pada Program


1.Operator Aritmatika +, - , * , / , div , mod Keterangan : - operator / digunakan untuk pembagian dengan hasil adalah bilangan pecahan - operator div digunakan untuk pembagian dengan hasil adalah bilagan bulat - mod adalah operator yang digunakan untuk mencari sisa hasil bagi Berikut prioritas pengerjaan dari masing-masing operator. 1. * , /, mod , div 2. + dan 2. Operator Relasional Adalah operator yang digunakan untuk perbandingan, sebagai berikut : < , > , >= , <= , not , and , or . Hasil dari operator ini adalah benar atau salah

Runtunan
Merupakan urutan proses program yang terurut tanpa adanya proses percabangan dan perulangan. Contoh : Nilai x bisa didapatkan dari hasil perkalian p dan q. dimana nilai p didapatkan dari formula berikut : P=3a+b *c Sedangkan nilai q didapat kan dari formula q=4b*c+d

USES CRT; VAR A,B,C,D,P,Q,X : LONGINT;

BEGIN

CLRSCR;
WRITELN(PROGRAM ARITMATIKA); WRITELN(---------------------------------- ); WRITE(NILAI A : ); READLN(A);

WRITE(NILAI B : ); READLN(B);
WRITE(NILAI C : ); READLN(C); WRITE(NILAI D : ); READLN(D); P :=3*A+B*C;

Q :=4*B*C+D;
X:=P*Q; WRITE(NILAI P ADALAH :);WRITELN(P); WRITE(NILAI Q ADALAH :);WRITELN(Q); WRITE(NILAI X ADALAH :);WRITELN(X); REPEAT UNTIL KEYPRESSED; END.

Struktur Percabangan
Yaitu pemilihan suatu instruksi yang akan dikerjakan sesuai dengan kondisi / syarat tertentu
A. IFTHEN Digunakan jika pada pemilihan hanya ada satu aksi yang akan dilakukan jika kondisi tertentu terpenuhi dan tidak ada aksi yang lain yang akan dikerjakan jika kondisi tidak terpenuhi. Contoh :jika nilai rata besar dari 3 maka ket dapat bonus jika tidak tidak dapat apa-apa.

ATAU :
Write (nilai rata-rata:); Readln(nil_rata); If nil_rata > 3 then ket:=Dapat Bonus;

Ket:=Data Bonus

B. IFTHEN.ELSE Digunakan jika pada pemilihan ada dua aksi yang akan dilakukan Contoh : jika nilai besar dari 60 maka keterangan lulus jika tidak keterangan gagal

Ket:=Gagal Ket:=Lulus

Write(Inputkan nilai: ); Readln(nilai); If nilai > 60 then Begin Ket:=Lulus; End Else Begin Ket:=Gagal; End;

ATAU :

Write (Input nilai :); Readln(nilai); If nilai > 60 then ket:=Lulus Else ket :=Gagal;

C. IFTHENELSE IF.THENELSE
Digunakan jika pada pemilihan ada beberapa aksi yang akan dilakukan berdasarkan beberapa syarat yang harus terpenuhi. Contoh : a. Tentukan apakah wujud air dalam keadaan cair, padat, atau gas.
Uses crt; Var suhu :byte; Ket:string[10]; Begin Clrscr; Write(Inputkan Suhu: ); Readln(suhu); If suhu <= 0 then Begin Ket:=Padat end Else if suhu >= 100 then Begin Ket:=Gas end Else Begin Ket:=Cair end; Write(Keterangan :, Ket); Readln; End.

atau
Uses crt; Var suhu :byte; Ket:string[10]; Begin Clrscr; Write(Inputkan Suhu: ); Readln(suhu); If suhu <= 0 then Ket:=Padat Else if suhu >= 100 then Ket:=Gas Else Ket:=Cair; Write(Keterangan:); write(ket); Readln; End.

Ket=Padat Ket=Gas

Ket=Cair

Cetak Ket

b. Tentukan apakah suatu bilangan negati, positif, atau nol Struktur Case Struktur case adalah cara lain yang bisa digunakan untuk memilih suatu kondisi tertentu. Syntax: Case (var) Var = ..: hasil =.. Var = ...: hasil =.. . . Endcase

Latihan : Buat flowchart untuk menentukan nilai huruf mahasiswa berikut ini dengan output program adalah sebagai berikut :

Program Percabangan ---------------------------Input Nomor Bp :....... Input Nama Matakuliah Nilai Mid :. Nilai Semester Input Nilai Akhir Nilai Huruf adalah :... Mutu :

:............. : :. :.......

Nilai Ahir = 40%*mid+60%*sem Ketentuan proses : Jika nilai akhir >= 80 maka nilai huruf adalah A, mutu = 4 Jika nilai akhir >= 65 maka nilai huruf adalah B, mutu = 3 Jika nilai akhir >= 55 maka nilai huruf adalah C, mutu = 2 Jika nilai akhir >= 40 maka nilai huruf adalah D, mutu = 1 Jika nilai akhir < 40 maka nilai huruf adalah E, mutu = 0

USES CRT; VAR NBP : STRING[16]; NM : STRING[25]; NA : REAL; NH : CHAR; BEGIN CLRSCR; WRITELN('MENENTUKAN NILAI HURUF'); WRITELN('-----------------------------------------'); WRITE ( INPUT NOMOR BP : ');READLN(NBP); WRITE ( INPUT NAMA : ');READLN(NM); WRITE ( INPUT NILAI ANGKA : ');READLN(NA); IF NA>=80 THEN BEGIN NH:='A' END ELSE IF NA>=65 THEN BEGIN NH:='B' END ELSE IF NA>=55 THEN BEGIN NH:='C' END ELSE IF NA>=40 THEN BEGIN NH:='D' END

ELSE BEGIN NH:='E' END; WRITE('NILAI HURUF :'); WRITELN(NH); READLN; END.

LATIHAN
TUGAS 1 (DI DOUBLE FOLIO) UNTUK MINGGU DEPAN

Buat flowchart dan program Pascal untuk output berikut ini dengan jumlah barang sebanyak 5 jenis barang: Program Penjualan ----------------------Data Barang Ke Input Nama Barang Input Harga Barang Input Jumlah Jual Total Harga Jumlah Discount Pembayaran Total Pembayaran

:. :................... :........... :..... :............ :........... :............... :..

Jika total harga >500000 maka discount adalah 15 % dari total harga Jika total harga >250000 maka discount adalah 5 % dari total harga Jika total harga <= 250000 maka discount 0 Pembayaran adalah total harga kurang discount

TUGAS 2 (DI DOUBLE FOLIO) UNTUK MINGGU DEPAN Buat flowchart dan program untuk menghasilkan output berikut DENGAN JUMLAH MAHASISWA SEBANYAK 50 ORANG:

Program Percabangan ----------------------------Nomor Bp Nama IPK : : :

Keterangan :
Jika ipk >3.50 ket Dengan Pujian Jika ipk >3.00 ket Sangat Memuaskan Jika ipk <=3.00 ket Memuaskan

Buat Flowchart dan program untuk menghasilkan output berikut :


Pembayaran Listrik No.rek Nama Besar Daya Meter Bulan Lalu Meter Bulan Ini Biaya Beban Pakai Harga / Kwh Pembayaran
Ketentuan Proses : Jika Daya = 450, maka biaya beban = 10000 Jika daya = 900, maka biaya beban = 15000 Jika daya = 1200, maka biaya beban = 20000 Pakai = meter b ini- meter b lalu Harga/kwh = 500 Pembayaran = b.beban+pakai*harga/kwh

:X(10).. :X(25). :999. :.9999. :.. : :.. :.. :

Uses crt; Var nr : string[10]; nm : string[20]; bd,mbi,mbl,pakai,pby,harga,beban :longint; Begin clrscr; writeln(Pembayaran Listrik); writeln(==============); write(No. Rekening :) ; readln(nr); write(Nama :) ; readln(nm); write(Besar Daya :) ; readln(bd); write(Meteran Bulan Lalu :) ; readln(mbl); write(Meteran Bulan Ini :) ; readln(mbi); if bd=450 then bb:=10000 else if bd=900 then bb:=15000 else bb:=20000;
pakai:=mbi-mbl; harga:=500; pby := bb + pakai * harga ; writeln(Biaya Beban : , bb); writeln(Pakai : , pakai); writeln(Harga : , harga); writeln(Pembayaran : ,pby); Readkey; End.

Buat Flowchart dan Program untuk menghasilkan output berikut:


ENTRY DATA GAJI -------------------------Nip : Nama : Golongan : Status [M/D/S] :. Jam Kerja : Tunjangan I/S :.. Gaji Pokok : Gaji Lembur :.. Total Gaji :..

Ketentuan proses : Jam Kerja wajib perbulan adalah 160 jam, jika lebih dihitung sebagai lembur dengan gaji lembur per jam adalah 15000. Gaji pokok berdasarkan golongan dengan ketentuan sebagai berikut: Jika gol=A maka gaji pokok 1000000 Jika gol=B maka gaji pokok 1500000 Jika gol=C maka gaji pokok 2000000 Jika gol=D maka gaji pokok 2500000 Tunjangan I/s diberikan jika status adalah M atau D sebanyak 10 % dari gaji pokok Total gaji = gaji pokok + tunjangan i/s + gaji lembur

Buat Flowchart dan program untuk menghasilkan output berikut : Pembayaran Listrik No.rek :.. Nama :. Besar Daya :. Meter Bulan Lalu :.. Meter Bulan Ini :.. Biaya Beban : Pakai :.. Blok1 = Blok2 = Blok3 =.. Harga Blok 1 :.. Harga Blok 2 :.. Harga Blok 3 :.. Pembayaran : Ketentuan Proses :

Jika Daya = 450, maka biaya beban = 10000 Jika daya = 900, maka biaya beban = 15000 Jika daya = 1200, maka biaya beban = 20000

Pakai = meter b ini- meter b lalu Pembayaran = b.beban+b3*h3+b2*h2+b1*h1

Jika Pakai > 750, maka blok3=pakai-750, blok2=250, blok1=500 Jika pakai > 500, maka blok3=0, blok2=pakai-500, blok1=500 Jika pakai <= 500, maka blok3=0,blok2=0,blok1=pakai

Harga blok1 = 500, harga blok2 = 750, harga blok3 = 1000

Perulangan 1. For ..todo


- Nilai awal perulangan akan bertambah secara otomatis 1 ketika statemen end dibaca oleh sistem

For X := ..awal.. to ..akhir.. Do Begin .. - Perulangan dengan statemen For jumlahnya .. terbatas sesuai dengan yang sudah End; ditentukan diawal perulangan Ket : - awal, akhir adalah batas perulangan . For x := awal to akhir do - Perulangan dengan statement for to..do akan dilakukan mulai ..Pernyataan 1.. dari nilai x = awal sampai dengan ..Pernyataan 2.. x = akhir. ..Pernyataan n.. - Semua pernyataan yang terdapat diantara begin dan end akan dilakukan secara berulang sebanyak jumlah perulangan yang ditetapkan.

2. Whiledo awal:=;
While X < akhir do Begin X := X +1; End;
Ket:

- Perulangan dengan statemen While Do bisa terbatas dan bisa tidak terbatas. Jumlah perulangan akan terbatas jika nilai akhir merupakan hasil proses sedangkan tidak terbatas jika nilai akhir merupakan data input.
X:=......

While x < akhir do

-Nilai awal perulangan diberikan sebelum pernyataan while. -Perulangan akan dilakukan selama syarat perulangan terpenuhi. -Nilai var perulangan tidak bisa bertambah secara otomatis tetapi harus dibuatkan proses penambahan. ( x := x + 1 )

..Pernyataan 1.. ..Pernyataan 2.. ..Pernyataan n..

X := x + 1

Buat flowchart dan program untuk menampilkan kata pascal sebanyak 5 kali dengan menggunakan perulangan for .to..do dan while.do

Start

For x := 1 to 5 do

Cetak Pascal Stop

Program : Uses Crt; Var x : byte ; Begin Clrscr; Writeln (Program Perulangan); Writeln (-------------------------); For x:= 1 to 5 do Begin Writeln(Pascal); End; Readln; End.

TUGAS 2 (DI DOUBLE FOLIO)

Tugas Perulangan
Buat flowchart dan program dengan menggunakan perulangan Fortodo dan While .do untuk soal berikut : 1. Menampilkan Bilangan ganjil mulai dari 15 s/d 25 2. Menampilkan bilangan yang habis dibagi dengan lima antara 100 dan 200

USES CRT; VAR NB:STRING[20]; HB,TH,JJ,X : LONGINT; DISC,PB,tpb:REAL; BEGIN for x:=1 to 5 do begin CLRSCR; WRITELN('DATA BARANG KE :',X); WRITELN; WRITELN('PROGRAM PENJUALAN'); WRITELN('-----------------'); WRITE('NAMA BARANG :');READLN(NB); WRITE('HARGA BARANG :');READLN(HB); WRITE('JUMLAH JUAL :');READLN(JJ); TH:=HB*JJ; WRITE('TOTAL HARGA:');WRITELN(TH); IF TH>500000 THEN BEGIN DISC := 0.15*TH END

ELSE IF TH>250000 THEN BEGIN DISC := 0.05*TH; END ELSE BEGIN DISC := 0; END; WRITEln('DISCOUNT :',DISC:7:2); PB:=TH-DISC; WRITE('PEMBAYARAN :');WRITELN(PB:7:2); tpb:=tpb+pb; WRITE('TOTAL PEMBAYARAN :');WRITELN(TPB:7:2); READKEY; end; END.

Buat flowchart dan program untuk soal berikut : ENTRY DATA BUKU NAMA BUKU :.. PENGARANG :.. PENERBIT :. JUMLAH :. HARGA : NILAI PERSEDIAAN :. ADA DATA LAGI [Y/T] :.. TOTAL NILAI PERSEDIAAN BUKU :. Proses : Nilai Persediaan = harga * Jumlah Total Nilai Pers = Total Nilai Pers + Nilai Pers Buat dengan menggunakan perulangan while.do

uses crt; var nb,peng,pen :string; jml,hg,np,tnp:longint; adl:char; begin adl:='y'; while adl='y' do begin clrscr; writeln('ENTRY DATA BUKU'); writeln('----------------------------'); write('NAMA BUKU :');readln(nb); write('PENGARANG :');readln(peng); write('PENERBIT :');readln(pen); write('JUMLAH :');readln(jml); write('HARGA :');readln(hg); np:=jml*hg; tnp:=tnp+np; writeln('NILAI PERSEDIAAN :',np); write('ADA DATA LAGI [Y/T]');readln(ADL); END; write('TOTAL NILAI PERSEDIAAN : ',TNP); READKEY;

ENTRY DATA NASABAH Kode Nasabah : X(6) Nama Nasabah : X(25) Type Rumah : X(4) Uang Muka : 999999 Lama Angsuran : 999 Harga Rumah : 9999999 Angsuran Pokok Per Bulan : 99999999.9 Bunga Kredit : 9999999.9 Jumlah Angsuran : 9999999.9 Ada Data Lagi [Y/T] :X Ketentuan Proses : a. Jika type rumah adalah RS21 maka harga adalah 40000000 Jika type rumah adalah RS36 maka harga adalah 71000000 Jika type rumah adalah RS45 maka harga adalah 125000000 Jika type rumah adalah RS72 maka harga adalah 175000000 b. Jumlah Angsuran dapat dicari dengan rumus sebagai berikut : Angsuran Pokok = ((harga rumah uang muka )/ lama angsuran) Bunga = 0.16/12 *Angsuran pokok Jumlah Angsuran = Angsuran pokok + bunga

uses crt; var nm:string[15]; tr:string[4]; um,la,hg:longint; ap,bg,ja:real; adl:char; begin adl:='y'; while upcase(adl)='Y' do begin clrscr; writeln('Entry Data Angsuran'); writeln('==================='); write('Nama Nasabah :');readln(nm); write('Type Rumah :');readln(tr); write('Uang Muka :');readln(um); write('Lama Angsuran :');readln(la); if tr='RS21' then hg:=40000000 else if tr='RS36' then hg:=71000000 else if tr='RS45' then hg:=125000000 else if tr='RS72' then hg:=175000000;

ap:=(hg-um)/la; bg:=0.16/12*ap; ja:=ap+bg; writeln('Harga :',hg); writeln('Angsuran Pokok :',ap:8:1); writeln('Bunga :',bg:8:1); writeln('Jumlah Angsuran :',ja:8:1); write('Ada Data Lagi[Y/T] :');readln(adl); end; end.

Entry Data Penjualan Obat Nama Obat :..X(10)............................... Kode Jenis :..X... Keterangan :.. Harga :..9(6)....... Satuan :..X(10)............ Jumlah :..9(3)......... Total Harga : PPh : Total Penjualan :. Ada Data Lagi[Y/T]:..X Jika kode jenis obat = 1, maka keterangan Kapsul Jika kode jenis obat = 2, maka keterangan Syrup Jika kode jenis obat = 3, maka keterangan Saket Total Harga = Harga * jumlah Total Harga PPH >1500000 2.5 % dari total harga >1000000 1.5 % dari total harga >500000 1 % dari total harga <=500000 0 % dari total harga Total Penjualan = total harga + Pph

ARRAY / LARIK VARIABEL DENGAN TYPE DATA ARRAY ADALAH VARIABEL YANG BISA MENAMPUNG LEBIH DARI SATU DATA SESUAI DENGAN INDEK YANG DIDEKLARASIKAN CONTOH : NAMA : ARRAY [1..50] OF STRING [25];

ARTINYA : NAMA ADALAH VARIABEL ARRAY DENGAN TYPE STRING DENGAN MAKSIMAL KARAKTER 25 DAN JUMLAH DATA YANG BISA DITAMPUNG MAKSIMAL ADALAH 50 BUAH DATA. SETIAP DATA YANG DISIMPAN HARUS DITENTUKAN INDEK DARI PENYIMPANAN. DALAM MEMASUKKAN DATA KE VARIABEL ARRAY DAPAT DIGUNAKAN PERULANGAN DENGAN MAKSIMAL PERULANGAN ADALAH SESUAI DENGAN JUMLAH INDEK YANG DIDKELARASIKAN.

Buat flowchart dan program untuk soal berikut :


20 30 45

1 2 3.. 4.. 5.. 6.. 7.. 8.. 1


1 2 3.. 4.. 5..

ENTRY DATA BUKU ---------------------------NAMA BUKU :.. PENGARANG :.. PENERBIT :. JUMLAH :. HARGA : ADA DATA LAGI [Y/T] :..
4 20 25 30 40 47 57 67

LAPORAN DATA BUKU


NO NAMA BUKU PENGARANG PENERBIT JUMLAH HARGA PERSEDIAAN

TOTAL NILAI PERSEDIAAN BUKU

:.

Proses : Maksimal data adalah 10 buah data Nilai Persediaan = harga * Jumlah Total Nilai Pers = Total Nilai Pers + Nilai Pers

Uses crt; jd:=jd+1; Var gotoxy(45,3);readln(nb[ jd ] ); nb,pg,pn : array[1..10] of string[10]; gotoxy(45,4);readln(pg[ jd ]); jml,hg : array[1..10] of longint; gotoxy(45,5);readln(pn[ jd ]); x,jd,br,pers,tpers,no : longint; gotoxy(45,6);readln(jml[ jd ]); adl : char; gotoxy(45,7);readln(hg[jd ]); Begin gotoxy(45,8);readln(adl); adl:=y; end; while (adl=y) and (jd<=10) do begin clrscr; gotoxy(30,1);write(entry data buku); gotoxy(30,2);write(---------------------); gotoxy(20,3);write(Nama Buku :); gotoxy(20,4);write(Pengarang :); gotoxy(20,5);write(Penerbit :); gotoxy(20,6);write(Jumlah :); gotoxy(20,7);write(Harga :); gotoxy(20,8);write(Ada Data Lagi [y/t] :);

Clrscr; Gotoxy(25,1);write(Laporan Data Buku); Gotoxy(1,2);write(--------------------------------------------------------------------------------);


Gotoxy(1,3) ;write(|no|nama buku|pengarang|penerbit|harga|jumlah|persediaan|);

Gotoxy(1,4);write(--------------------------------------------------------------------------------);
{ { 6.. } Br:=5; 1234567890....0123.89012.89012.9012....67890678} 1 2 3 4 5

For x:=1 to jd do Br:=br+1; Begin Gotoxy(1,br);write(Total Persediaan :,tpers); no:=no+1; Readkey; pers := hg[x] * jml[x]; End. tpers:= tpers + pers; gotoxy(1,br);write(|,no:2); gotoxy(4,br);write(|,nb[x]); gotoxy(20,br);write(|,pg[x]); gotoxy(30,br);write(|,pn[x]); gotoxy(40,br);write(|,hg[x]); gotoxy(50,br);write(|,jml[x]); gotoxy(57,br);write(|,pers); gotoxy(67,br);write(|); br:=br+1; End; Gotoxy(1,br);write( -----------------------------------------------------------------------------------);

Anda mungkin juga menyukai