PRAKTIKUM 10
MAHASISWA
DIMINTA MEMBUAT PROGRAM DAFTAR MATA KULIAH, PERTAMA TANYAKAN APA MATA KULIAH
AKAN DIURUTKAN SECARA FIFO (FIRST IN FISRT OUT) ATAU SECARA LIFO (LAST IN FIRST
OUT). KEMUDIAN LAKUKAN PROSEDUR INPUT YANG MELIPUTI KODE MATA KULIAH, NAMA MATA
KULIAH DAN JUMLAH SKS-NYA SATU PERSATU. TAMPILKAN DAFTAR MATA KULIAH YANG TELAH
DIINPUT DENGAN URUTAN SESUAI PILIHAN (FIFO/LIFO).
PROGRAM LIFOFIFO;
USESCRT;
TYPE
POINTMK
=^RECMK;
RECMK
= RECORD
KDMK
: STRING [15]; {KODE MATA
KULIAH}
NMMK
: STRING [20]; {NAMA MATA
KULIAH}
SKS
: BYTE; {SKS}
NEXT
: POINTMK; {POINTER}
END;
VAR
HEAD, TAIL, NOW : POINTMK;
PROSEDURE
JUDUL; {JUDUL APLIKASI}
BEGIN
CLSRCR;
WITELN ('UNIVERSITAS COKROAMINOTO
PALOPO');
WITELN ('JL. LATAMACELLING');
WITELN ('KOTA PALOPO');
GOTXY (26,5); WRITELN ('PENDATAAN MATA
KULIAH');
GOTXY (26,6); WRITELN
('=====================');
END;
PROSEDURE
BUAT_SIMPUL_FIFO;
BEGIN
NEW(NOW); {MEMBUAT SIMPUL BARU}
IF HEAD=NIL THEN {BELUM ADA SIMPUL}
BEGIN
NOW^.NEXT:=NIL;
HEAD:=NOW;
TAIL:=NOW;
END ELSE {SUDAH ADA SIMPUL}
BEGIN
TAIL^.NEXT:=NOW;
TAIL:=NOW;
TAIL^.NEXT:=NIL;
END;
END;
PROSEDURE
BUAT_SIMPUL_LIFO;
BEGIN
NEW(NOW); {MEMBUAT SIMPUL BARU}
IF HEAD=NIL THEN {JIKA BELUM ADA SIMPUL AWAL}
NOW^.NEXT:=NIL
ELSE {JIKA SUDAH ADA SIMPUL}
NOW^.NEXT:=HEAD;
HEAD:=NOW;
END;
PROSEDURE INPUT;
VAR
N
: BYTE;
PIL
: CHAR;
TEMP
: STRING[5];
BEGIN
N:=0;
HEAD:=NIL; TAIL:=NIL;
CLRSCR; JUDUL;
GOTOXY (21,7); WRITE ('LIFO OR FIFO [L/F]:'); {MEMILIH LIFO/FIFO}
REPEAT
GOTOXY (42,7); CLREOL;
PIL:=UPCASE(READKEY);
UNTIL PIL IN ['L','F'];
REPEAT
CLRSCR;
JUDUL;
GOTOXY (21,7); CLREOL;
GOTOXY (21,8); WRITE ('KODE MATA
KULIAH:');
READLN (TEMP);
IF TEMP <> '' THEN
BEGIN
INC(N);
IF PIL='L' THEN
BUAT_SIMPUL_LIFO {MENGISI SIMPUL DENGAN CARA LIFO}
ELSE
BUAT_SIMPUL_FIFO; {MENGISI SIMPUL DENGAN CARA FIFO}
NOW^.KDMK:=TEMP;
GOTOXY (21,9); WRITE ('NAMA MATA
KULIAH:');
READLN (NOW^.NMMK);
GOTOXY (21,10); WRITE ('JUMLAH
SKS:');
READLN (NOW^.SKS);
END;
UNTIL (TEMP='') OR (N=10);
END;
PROSEDURE
OUTPUT; {MEMBUAT
LAPORAN}
VAR Y:BYTE;
BEGIN
CLSRCR;
JUDUL;
GOTOXY (26,5); WRITELN ('DAFTAR MATA
KULIAH');
GOTOXY (26,6); WRITELN
('==================');
GOTOXY (17,8); WRITELN ('KDMK NAMA MATA KULIAH SKS');
GOTOXY (17,9); WRITELN
('=============================================');
(*********************************************)
(*
MENAMPILKAN DATA YANG ADA
*)
(*********************************************)
NOW:=HEAD; Y:=9;
WHILE (NOW<>NIL) DO
BEGIN
INC(Y);
GOTOXY (17,Y); WRITE (NOW^.KDMK);
GOTOXY (26,Y); WRITE (NOW^.NMMK);
GOTOXY (50,Y); WRITE (NOW^.SKS);
NOW:=NOW^.NEXT;
END;
READKEY;
(**********************************************)
(*
HAPUS SIMPUL YANG TELAH DIBUAT
*)
(**********************************************)
NOW:=HEAD;
WHILE (NOW <> NIL) DO
BEGIN
HEAD:=NOW^.NEXT;
DISPOSE (NOW);
NOW:=HEAD;
END;
END;
BEGIN {MAIN PROGRAM}
INPUT;
OUTPUT;
END.
Tidak ada komentar:
Posting Komentar