Rabu, 12 Desember 2018

Listing struktur data praktikum 10



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

Kumpulan perintah mysql di CMD

MySQL  adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithrea...