Rabu, 12 Desember 2018

Listing struktur data praktikum 8

PRAKTIKUM 8

MAHASISWA DIMINTA UNTUK MEMBUAT SEBUAH PROGRAM UNTUK MENDETEKSI PASSWORD/KATA SANDI, GUNAKAN METODE SINGLE LINKED LIST, JIKA PASSWORDNYA BENAR MAKA PROGRAM AKAN SELESAI, JIKA SALAH MAKA USER DIMINTA MEMASUKKAN PASSWORD KEMBALI.

PROGRAM LINKLISTSINGLE;
USESCRT;
TYPE
    POINT   = ^REC;
    REC     = RECORD
              ISI   : CHAR;
              NEXT  : POINT;
    END;
CONST
     PASSWORD = 'DARNA';        {PASSWORD YANG HARUS DIMASUKKAN}
VAR
     I             : BYTE;
     TEKAN         : CHAR;
     PASSWD        : BOOLEAN;
     HEAD,TAIL,NOW : POINT;

PROCEDURE CREATE;
BEGIN
     HEAD:=NIL; TAIL:=NIL;
END.

PROCEDURE PUSH (ISI:CHAR);
VAR NOW:POINT;
BEGIN
     NEW(NOW);                  {MEMBUAT SIMPUL BARU}
     IF HEAD= NIL THEN          {MENDETEKSI SIMPUL AWAL}
     BEGIN
          HEAD:=NOW;
          TAIL:=HEAD;
     END ELSE
     BEGIN                      {MENYAMBUNG SIMPUL YANG BARU PADA SIMPUL YANG SUDAH ADA}
         TAIL^.NEXT := NOW;
         TAIL       := TAIL^.NEXT;
     END.
     NOW^.ISI:=ISI;             {MENGISI SIMPUL YANG BARU}
     NOW^.NEXT:=NIL;
END.

FUNCTION CHECK:BOOLEAN; {FUNCTION UNTUK MENCHECK INPUT}
VAR TEMP: STRING [15];
BEGIN
     TEMP:=''; NOW:=HEAD;
     WHILE NOW <> NIL DO
       BEGIN
         TEMP:=TEMP + NOW^.ISI;
         NOW:=NOW^.NEXT;
       END.
     IF TEMP <> PASSWORD THEN CHECK:=FALSE;
END.

PROCEDURE BUATBINGKAI (X1,Y1,X2,Y2:BYTE);       {TAMPILAN APLIKASI}
VAR I:BYTE;
    BEGIN
       GOTOXY (X1,Y1); WRITE ('['); GOTOXY (X2,Y1);WRITE (']');
       GOTOXY (X2,Y2); WRITE ('['); GOTOXY (X2,Y2);WRITE (']');
       FOR I:=X1+1 TO X2-1 DO
       BEGIN
         GOTOXY (I,Y1); WRITE('-');
         GOTOXY (I,Y2); WRITE('-');
       END.
    FOR I:=Y1+1 TO Y2-1 DO
      BEGIN
        GOTOXY (X1,I); WRITE ('|');
        GOTOXY (X2,I); WRITE ('|');
      END.
    END.

PROCEDURE BLUESCREEN (X1,Y1,X2,Y2:BYTE);        {MENCETAK LAYAR BIRU}
BEGIN
     TEXTATTR:=$07; CLRSCR;             {PROCEDURE INI SIFATNYA OPTIONAL/TAK WAJIB}
     WINDOW (X1,Y1,X2,Y2);              {MEMBUAT AREA LAYAR}
     TEXTBACKGROUND (BLUE);
     CLRSCR; WINDOW (1,1,80,25);
     BUATBINGKAI (X1,Y1,X2,Y2);
     GOTOXY (X1+2,Y1+1); WRITE ('ENTER YOUR PASSWORD:');
END.

PROCEDURE POP;  {PROSEDUR PENGHAPUS SIMPUL}
BEGIN
     NOW:=HEAD; HEAD:=HEAD^.NEXT;
     WHILE NOW <> NIL DO
     BEGIN
        DISPOSE (NOW);
        NOW:=HEAD;
        HEAD:=HEAD^.NEXT;
     END.
END.

BEGIN           {PROGRAM UTAMA}
REPEAT
      BLUESCREEN (25,8,60,10);
      CREATE; I:=0;
      REPEAT
         TEKAN:=READKEY;
         WRITE(TEKAN);
         IF TEKAN <>#13 THEN PUSH (TEKAN); INC(I);
         UNTIL (TEKAN=#13) OR (I=10);      {ENTER DITEKAN ATAU PANJANG=10}
         PASSWD:=CHECK; POP;
      UNTIL PASSWD;
END.

3 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...