Anda di halaman 1dari 8

Politeknik Negeri Pengampu : Mc Chambali

JUDUL
Semarang B.Eng, M.Komp
Nama : Dwi Kurniawan Tanggal : 1 Mei 2020
Kelas : LT -2B Coding Program Semester : 4
No.Absen: 07 Searching Data Paraf:
Matkul : Komputasi Teknik Listrik

 Coding Program pada Turbo Pascal :

Berikut ini adalah Deskripsi coding pascal dari Program Sequential Search Harga
Barang Elektronik.
Berdasarkan tugas membuat flowchart minggu lalu.

Disini saya akan menjelaskan langkah-langkah perstatement disertai dengan gambar dari
program yang telah saya buat,
1. Pertama-tama menuliskan judul program yang akan dibuat, disini saya memberi judul:
program Sequenctial_Search_Harga_Barang_Elektronik;
2. Setelah menuliskan judul program selanjutnya adalah mendeklarasikan variable dan type
data array,
Variable yang di gunakan dalam program ini adalah :
L = {array data}
B = {Nama Barang}
MB = {Merek Barang}
HB = {Harga Barang}
P = {Pajak}
HT = {Harga Total}
i = {indeks Larik}
n = {banyaknya elemen Larik}
x = {nilai dicari}
idx = {variabel searching}
variable yang telah disebutkan diatas nantinya akan berfungsi sebagai inisialisasi dari input.
L : larikint;
B :string;
MB: string;
HB: integer;
P: integer;
HT:integer;
i : integer;
n : integer;
x : integer;
idx : integer;
3. Selanjutnya adalah memasukan nilai n yakni berapa banyak barang yang akan didata pada
program,
begin
clrscr;
write('Berapa Banyak Barang : '); readln(n);
writeln;
Kemudian adalah memasukan nilai dari input dengan menggunakan perintah Procedure yang
berfungsi sebagai subprogram terpisah, dengan menggunakan procedure suatu program yang
rumit akan terbagi menjadi bagian-bagian yang sederhana,
Input yang dimasukan dalam program ini adalah Nama Barang(B) , Merek Barang(MB), Harga
Barang (HB), Pajak (P)
Dari nilai input tersebut program akan memproses untuk dikalkulasi sehingga diperoleh nilai
output yakni Harga Total (HT)
Harga Total (HT) = Harga Barang (HB) + Pajak (P) Pada tahap ini program akan melakukan
proses looping sebanyak n sampai semua input dan output terpenuhi.
procedure bacaLarik(var L:larikInt; n : integer);
var
i : integer;
begin
for i := 1 to n do
begin
writeln('Barang ke=[',i,']');
write('Nama Barang=');readln(B);
write('Merek Barang=');readln(MB);
write(‘Harga Barang=Rp.’);readln(HB);
write(‘Pajak=');readln(P);
HT:=HB+P;
writeln(‘Total Harga=Rp.');readln(HT);
writeln;
end;
end;
4. Langkah selanjutnya adalah membuat perintah Procedure cetak indeks array (larik) yang
nanti berfungsi sebagai output dari proses searching data, pada tahap ini terjadi looping
sebanyak n
procedure cetakLarik(L:larikInt; n : integer);
var
i : integer;
begin
for i := 1 to n do
begin
writeln(L[i]);
end;
end;

5. Kemudian adalah membuat Procedure Searching dengan metode Sequential


Dimulai dari indeks array larik ke-1
Pada prses ini perintah yang digunakan adalah while … do prinsip kerjanya adalah kondisi
dimana jumlah pengulangan belum bisa di pastikan sehingga harus diperiksa terlebih dahulu
setiap indeks array larik,
Ketika i kurang dari n dan ketika L[i] tidak sama dengan x maka i := i + 1
yang artinya ketika indeks array larik L[i] tidak cocok dengan nilai X yang dicari maka akan
terjadi proses pengulangan ke array selanjutnya (ingat i+1) , indeks array akan diperiksa dan
dicocokan dengan nilai X.
Dan jika if L[i] = x then idx := 1 else idx := -1
Yang artinya jika indeks array larik cocok dengan nilai X yang dicari maka program akan
membaca nilai telah sesuai sebaliknya jika indeks array tidak cocok maka program akan
membaca nilai tidak sesuai dengan X
procedure seqSearch2(L : LarikInt; n : integer; x : integer; var idx:integer);
var
i : integer;
begin
i := 1;
while (i < n) and (L[i] <> x) do
begin
i := i + 1;
end;
if L[i] = x then
idx := i
else
idx := -1;
end;

6. Tahap berikutnya adalah memasukan nilai X yang akan dicari dan mencetak output dari hasil
proses searching, seperti yang telah dijabarkan pada procedure sequential search (langkah
nomer 5) jika X tidak sesuai dengan indeks array larik maka pada Hasil Pencarian program
akan mencetak keterangan ‘Tidak Ditemukan!’ sebaliknya jika nilai x sesuai dengan indeks
larik maka program akan mencetak ‘ Barang Ditemukan Pada Data ke-sekian’
write('Masukkan Jumlah Harga Yang Dicari: '); readln(x);
writeln;
writeln(' Hasil Pencarian ');
seqSearch2(L, n, x, idx);
if idx = -1 then
writeln('Tidak ditemukan!')
else
writeln(x, ' ditemukan pada jurusan ke-', idx);
repeat until keypressed;
readln;
end.
7. Program Searcing telah SELESAI

Berikut adalah hasil test dari program yang telah dibuat :


program Sequenctial_Search_Harga_Barang_Elektronik;
uses crt;
type
larikInt = array[1..100] of integer;
var
L : larikint;
B : string; {Nama Barang}
MB : string; {Merek Barang}
HB : integer; {Harga Barang}
P : integer; {Pajak}
HT : integer; {Harga Total}
i : integer; {indeks Larik}
n : integer; {banyaknya elemen Larik}
x : integer; {nilai dicari}
idx : integer; {variabel searching}

procedure bacaLarik(var L:larikInt; n : integer);


var
i : integer;
begin
for i := 1 to n do
begin
writeln('Barang ke = [',i,']');
write('Nama Barang = ');readln(B);
write('Merek Barang = ');readln(MB);
write('Harga Barang = Rp.');readln(HB);
write('Pajak = Rp.');readln(P);
HT:=HB+P;
write('Harga Total = Rp.');readln(L[i]);
writeln;
writeln;
end;
end;

procedure cetakLarik(L:larikInt; n : integer);


var
i : integer;
begin

for i := 1 to n do
begin writeln(L[i]);
end;
end;

procedure seqSearch2(L : LarikInt; n : integer; x : integer;


var
idx:integer);
var
i : integer;
begin
i := 1;

while (i < n) and (L[i] <> x) do


begin
i := i + 1;

end;

if L[i] = x then
idx := i
else
idx := -1;
end;

begin
clrscr;
write('Berapa Banyak Barang : '); readln(n);
writeln;
BacaLarik(L,n);
write('Masukkan Jumlah Harga Yang Dicari: '); readln(x);
writeln;
writeln(' Hasil Pencarian ');
seqSearch2(L, n, x, idx);
if idx = -1 then
writeln('Barang Tidak Ditemukan!')
else
writeln('Barang Ditemukan Pada Data ke-', idx);

repeat until keypressed; readln;


end.

Anda mungkin juga menyukai