Anda di halaman 1dari 8

Politeknik Negeri Pengampu : Mc Chambali

JUDUL
Semarang B.Eng, M.Komp
Nama : Sindu Yoga Pratama Tanggal : 17 April 2020
Kelas : LT -2B Coding Program Semester : 4
No.Absen: 19 Sorting Data Paraf:
Matkul : Komputasi Teknik Listrik

 Coding Program pada Turbo Pascal :

Berikut ini adalah Deskripsi coding pascal dari Program Sorting Ascending Harga Menu
Makanan di Kantin Kodok Politeknik Negeri Semarang dengan Metode Bubble Sort,
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
SORTING_HARGA_MENU_MAKANAN_DENGAN_METODE_BUBBLE_ASCENDING;
2. Setelah menuliskan judul program selanjutnya adalah mendeklarasikan variable dan type
data record yang nantinya berfungsi sebagai inisialisasi input,
Variable yang saya gunakan dalam program ini adalah :
N = banyak data
I , J = elemen dari data array
NM(nama menu), H(harga), P(pajak) = input dari program
B(bayar) = output dari proses kalkulasi program
SW(swap), DS(data sorting) = variable yang digunakan saat proses sorting
TYPE DATA=RECORD
NM:STRING;
H,P,B,SW:INTEGER;
END;
VAR
NM:STRING;
H,P,SW,B:INTEGER;
N,K,J:INTEGER;
DS:ARRAY [1..100] OF DATA;
3. Kemudian menuliskan perintah agar user menginputkan nilai N,
WRITE('BERAPA BANYAK MENU=');READLN(N);
4. Lalu menuliskan perintah kepada user untuk menginputkan nilai NM(nama menu), H(harga),
P(Pajak) dan cetak K(sebagai tanda Data Ke sekian),
WRITELN('DATA KE=',K);
WRITELN;
WRITE('NAMA MENU=');READLN(DS[K].NM);
WRITE('HARGA=');READLN(DS[K].H);
WRITE('PAJAK=');READLN(DS[K].P);
5. Pada tahap ini program akan melakukan proses looping sebanyak jumlah N hingga terpenuhi
nilai dari input,
FOR K:=1 TO N DO

END;
6. Langkah selanjutnya adalah tahap pemrosesan Input agar diperoleh nilai Output
Pada program ini output yang hitung adalah total B(bayar) yang diperoleh dari hasil
penjumlahan H(harga) dan P(pajak), nilai dari B(bayar) akan berpengaruh pada saat sorting,
diproses ini terjadi looping sebanyak N
FOR K:=1 TO N DO
BEGIN
DS[K].B:=DS[K].H+DS[K].P;
END;
7. Setelah semua output diperoleh selanjutnya adalah tahap Sorting data output, diprogram ini
saya menggunakan metode Bubble Sort Ascending jadi nantinya akan terurutkan otomatis
nilai dari yang terkecil hingga terbesar, prinsip kerja dari metode bubble sort adalah
membandingkan besaran nilai dari suatu data DS[K]>DS[J].
jika DS[K] lebih besar dari DS[J] maka posisi akan ditukar (SWAP), sebaliknya jika DS[K]
lebih kecil dari DS[J] maka posisi nya tidak akan ditukar.
Contoh :
70 20 90 40

Tahap pertama program akan membandingkan DS[K]>DS[J] dicontoh 70>20? Karena benar
maka program akan menukar posisi 70 dan 20,
20 70 90 40

Selanjutnya program akan membandingkan 70>90? Karena tidak maka posisi tetap, tidak
ditukar,
Kemudian 90>40? Karena benar maka program akan menukar posisi 90 dan 40,
20 70 40 90

Karena telah sampai diujung maka proses sorting akan dimulai dari awal lagi sebelah kiri
hingga tersusun urut nilai terkecil hingga terbesar. Maka di proses ini program akan terus
melakukan proses looping hingga data terurutkan yang semula acak.
20 40 70 90

FOR K:=1 TO (N-1) DO


BEGIN
FOR J:=(K+1) TO N DO
BEGIN
IF DS[K].B>DS[J].B THEN
BEGIN
SW:=DS[K].B;
DS[K]:=DS[J];
DS[J].B:=SW;
END;
END;
END;
8. Taahap terakhir adalah proses cetak Output NM(nama menu), B(bayar) dan KET(keterangan),
Pada program ini jika B>10000 maka program akan memberi keterangan MAHAL,
sebaliknya jika B<10000 maka program akan memberi keterangan MURAH, sehingga pada
layar monitor akan di tampilkan hasil cetak Data Setelah diurutkan dari nilai bayar yang
terkecil hingga terbesar, di proses ini terjadi looping sebanyak N.
Program Sorting Telah SELESAI
FOR K:=1 TO N DO
BEGIN
WRITELN('NAMA MENU=',NM[K]);
WRITELN('BAYAR=',DS[K].B);
IF DS[K].B>10000 THEN
BEGIN
WRITELN('KET = MAHAL');
END;
IF DS[K].B<10000 THEN
BEGIN
WRITELN('KET = MURAH');
END;
END;

Dan berikut ini adalah hasil test dari program yang telah dibuat :
PROGRAM
SORTING_HARGA_MENU_MAKANAN_DENGAN_METODE_BUBBLE_ASCENDI
NG;
USES CRT;
TYPE DATA=RECORD
NM:STRING;
H,P,B,SW:INTEGER;
END;
VAR
NM:STRING;
H,P,SW,B:INTEGER;
N,K,J:INTEGER;
DS:ARRAY [1..100] OF DATA;
BEGIN
CLRSCR;
WRITE('BERAPA BANYAK MENU=');READLN(N);
WRITELN('----------------------------------------------------------');
FOR K:=1 TO N DO
BEGIN
WRITELN('DATA KE=',K);
WRITELN;
WRITE('NAMA MENU=');READLN(DS[K].NM);
WRITE('HARGA=');READLN(DS[K].H);
WRITE('PAJAK=');READLN(DS[K].P);

WRITELN('========================================================
==');
END;
FOR K:=1 TO N DO
BEGIN
DS[K].B:=DS[K].H+DS[K].P;
END;
WRITELN('------------------DATA SETELAH DIURUTKAN------------------');
FOR K:=1 TO (N-1) DO
BEGIN
FOR J:=(K+1) TO N DO
BEGIN
IF DS[K].B>DS[J].B THEN
BEGIN
SW:=DS[K].B;
DS[K]:=DS[J];
DS[J].B:=SW;
END;
END;
END;
FOR K:=1 TO N DO
BEGIN

WRITELN('========================================================
==');
WRITELN('BAYAR=',DS[K].B);
IF DS[K].B>10000 THEN
BEGIN
WRITELN('KET = MAHAL');
END;
IF DS[K].B<10000 THEN
BEGIN
WRITELN('KET = MURAH');
END;
END;
WRITELN('========================================================
==');
READLN;
END.

Anda mungkin juga menyukai