Anda di halaman 1dari 5

{NAMA {NIM {KELAS {ALPRO}

: HERWIN YUDHA SETYAWAN} : 114120055} : SK-36-02}

Program FILE_LOMBA; uses wincrt; type lempar = record atribut sesuai soal } { membuat tipe lempar yang memiliki

lemparan_ke : integer; nama umur point end; type TotalNilai = record asal dan nilai } nama umur point end; var flempar: File of lempar; { mendeklarasikan variable flempar yang merupakan variable file sequensial } {Jawab : No.1} Serial : integer; Nama umur point Nilai Total : string[20]; : integer; : integer; : array [1..5] of lempar; : array [1..5] of TotalNilai; : string[20]; : integer; : integer; { membuat tipe totalnilai untuk nama, : string[20]; : integer; : integer;

i,n, pass, k: integer; Procedure CatatLempar; var i,k: integer; Begin

rewrite(flempar); {Jawab : No.2} for k:=1 to 3 do for i:=1 to 5 do begin writeln;

{ menyiapkan file untuk ditulis } { pengulangan sebanyak lemparan } { pengulangan sebanyak peserta }

writeln('Masukkan data lemparan ke-',k, ' peserta ke-',i); nilai[i].lemparan_ke:=k; if k=1 then begin write('Masukkan nama : ');readln(nilai[i].nama); {Jawab : No.3} write('Masukkan umur : ');readln(nilai[i].umur); {Jawab : No.4} end; writeln; write('Masukkan nilai : ');readln(nilai[i].point); {Jawab : No.5} write(flempar,nilai[i]); {Jawab : No.6} end; close(flempar); end; Procedure Jumlah; var n,k,i : integer; Begin reset (flempar); } n:=5; for k:=1 to 3 do for i:=1 to n do begin read(flempar,nilai[i]); {Jawab : No.7} { membaca data dari file } { membuka file untuk dibaca { ada 5 data, tiap seri } { ada 3 seri } {Data disimpan di file.} { Memasukkan data lemparan ke array }

total[i].nama:=nilai[i].nama;{ mencatat nama dari file ke array } total[i].umur:=nilai[i].umur;{ mencatat umur dari file ke array } total[i].point:=total[i].point+nilai[i].point; nilai dari file ke array } {Jawab : No.8} end; End; { menjumlahkan

Procedure Sort_BubbleModif; { Pengurutan memakai Bubble Sort Modifikasi, urutan membesar, berhenti ketika sudah terurut } var pass, k : integer; tukar : boolean; temp : TotalNilai; Begin for pass := 1 to n-1 do tukar := true; while (pass <= n) and tukar do array pertama }{Jawab : No.10} tukar := false; for k := 2 to n-pass+1 do if (total[k-1].point > total[k].point) then No.12} begin temp:=total[k]; total[k]:=total[k-1]; {Jawab : No.13} total[k-1]:=temp; end; End; {penukaran elemen array ke-k dg k-1} {Jawab : {Jawab : No.9} {syarat pengulangan, dimulai dari {Jawab : No.11}

Procedure Terbaik; var i : integer; Begin writeln;

{ Menampilkan 3 terbaik }

writeln('Tiga terbaik adalah :'); writeln; for i:= 5 downto 1 do {Jawab : No.14}

writeln(total[i].nama,' umur : ',total[i].umur,',',' nilai : ', total[i].point); end;

begin assign (flempar,'C:\Lempar.txt'); CatatLempar; Jumlah; Sort_BubbleModif; {Jawab : No.17} Terbaik; {panggil prosedur CatatLempar} {panggil prosedur Jumlah} {Jawab : No.15} {Jawab : No.16}

{panggil prosedur sorting} {Jawab : No.18}

{panggil prosedur tampilkan terbaik}

close(flempar); readln; end.

Tipe Bubblesort yang kedua dibawah ini berdasarkan Diktat Kuliah Dasar Pemrograman oleh Inggriani Liem STEI ITB Edisi April 2007 dan Berdasarkan sumber dari Buku Modul Praktikum Implementasi

Algoritma Lab Informatika Institut Teknologi Telkom Bandung didapatkan tipe bublesort seperti dibawah ini : Procedure Sort_BubbleModif; { Pengurutan memakai Bubble Sort Modifikasi, urutan membesar, berhenti ketika sudah terurut } var pass, k : integer; temp : TotalNilai; Begin for pass := 5 downto 2 do for k := 2 to pass do if (total[k-1].point > total[k].point) then {Jawab : No.12} begin temp:=total[k]; total[k]:=total[k-1]; {Jawab : No.13} total[k-1]:=temp; end; End; {penukaran elemen array ke-k dg k-1}

Anda mungkin juga menyukai