Struktur data adalah cara menyimpan atau mempresentasikan data di dalam komputer agar bisa di pakai ecara eksiten.
- Contoh Error:
1.error in real constant
konstanta tipe real salah
2.error in type
simbol ini tidak dapat digunakan untk memulai suatu deklarasi type.
3.file not found
file tidak ditemukan ditemukan di directori tyang aktif
- Contoh Soal
Contoh 1
MAHASISWA
DIMINTA MEMBUAT SEBUAH PROGRAM SORTING DENGAN METODE BUBBLE SORT. MINTALAH USER
UNTUK MEMASUKKAN 10 ANGKA. LALU TAMPILKAN ANGKA-ANGKA TERSEBUT SETELAH DI SORT
BAIK SECARA ASCENDING MAUPUN DESCENDING.
PROGRAM
URUT_INSERTION;
USES CRT;
CONST
MAX
= 10;
TYPE
ARR = ARRAY [1..MAX] OF BYTE;
VAR
I :
BYTE;
DATA: ARR;
PROCEDURE INPUT;
BEGIN
CLRSCR;
WRITELN ('INSERT 10 BILANGAN:');
WRITELN ('===================');
FOR I := 1 TO MAX DO
BEGIN
WRITE ('DATA KE-', I ,'='); READLN
(DATA[I]);
END;
CLRSCR;
FOR I:=1 TO MAX DO
WRITE (DATA[I],'');
WRITELN;
WRITELN ('DATA YANG TERURUT:');
WRITELN ('==================');
END;
PROCEDURE MOVE
(X,Y BYTE); {UNTUK MENGGESER DATA KE
DEPAN}
VAR I:BYTE; {SATU LANGKAH}
BEGIN
FOR I:=Y DOWNTO X DO
DATA [I] := DATA [I-1];
END;
PROCEDURE FINDPOS
(X BYTE; VAR Y BYTE);
VAR I:BYTE;
BEGIN
Y:=X; I:=0;
REPEAT
INC(I)
UNTIL DATA [X] <= DATA [I];
Y:=I;
END;
PROCEDUR INSERT;
VAR
I,J,TEMP :BTE;
BEGIN
FOR I:=2 TO MAX DO
BEGIN
TEMP:=DATA [I]; FINDPOS (I,J);
MOVE (J,I); DATA [J]:=TEMP;
END;
END.
PROCEDUR CARI;
FUNCTION SEARCH (X,N:INTEGER):INTEGER;
VAR
FIND : BOOLEAN;
L,R,MID,TEMP: INTEGER;
BEGIN
L:=1; R:=N;
FIND:=FALSE;
REPEAT
MID:=(L+R) DIV 2;
IF X = DATA [MID] THEN
BEGIN
TEMP:=MID; FIND:=TRUE;
END ELSE
IF X < DATA [MID] THEN
R:=MID-1
ELSE
L:=MID+1;
UNTIL FIND OR (L>R);
IF NOT FIND THEN TEMP:=0;
SEARCH:=TEMP;
END;
VAR BIL: BYTE;
BEGIN
GOTXY (1,7); WRITE ('BILANGAN YANG
DICARI:'); READLN (BIL);
GOOXY (1,8); WRITE ('DATA YANG DICARI
PADA URUTAN KE-',
SEARCH(BIL,MAX));
END;
PROCEDURE OUTPUT;
BEGIN
FOR I:= 1 TO MAX DO
WRITE (DATA[I],'');
END;
BEGIN
INPUT;
INSERT;
OUTPUT;
CARI; READKEY
END.
Contoh 2
Contoh 2
MAHASISWA
DIMINTA UNTUK MEMBUAT SEBUAH PROGRAM YANG MENAMPILKAN ANIMASI SALJU BERJATUHAN.
BUTIRAN SALJU BISA DIGAMBARAKN DENGAN SEBUAH KARAKTER MISALNYA’@’. BUTIRAN
SALJU HARUS BERMUNCULAN DENGAN POSISI ACAK DAN JIKA DITEKAN TOMBOL (+) MAKA BUTIRAN
SALJU AKAN BERTAMBAH SATU, DAN SETERUSNYA, UNTUK BERHENTI TEKAN ESCAPE.
PROGRAM
SINGLE_LINKED_LIST_FIFO;
USES CRT;
CONST
S
='@';
MAX=100;
TYPE
PKAR
=^RECKAR;
RECKAR
= RECORD
ISI : CHAR;
X,Y,COL : BYTE;
NEXT : PKAR;
END;
VAR
HEAD, TAIL, NOW :PKAR;
PROCEDURE PUSH;
BEGIN
NEW(NOW); {MEMBUAT SIMPUL BARU}
IF HEAD=NIL THEN
HEAD:=NOW
ELSE
TAIL^.NEXT:=NOW;
TAIL:=NOW; TAIL^.NEXT:=NIL;
NOW^.ISI:=S;
NOW^.X:=RANDOM (79)+1; {MENGISI NILAI X DENGAN NILAI ACAK}
NOW^.COL:=RANDOM(16); {MENGISI NILAI COL DENGAN NILAI ACAK}
NOW^.Y:=1;
END;
PROCEDURE ANIM;
VAR
CH
:CHAR;
I,JML:BYTE;
PROCEDURE TEKAN;
BEGIN
CH
:=READKEY;
IF (CH <> #27) AND (CH='+') AND
(JML<MAX) THEN {MENAMBAH SALJU}
BEGIN
PUSH;
INC(JML);
END;
END;
BEGIN
REPEAT
NOW:=HEAD;
WHILE (NOW <> NIL ) DO
BEGIN
TEXTCOLOR (NOW^.COL); {MENGESET WARNA TULISAN}
GOTOXY (NOW^.X,NOW^.Y); WRITE
(NOW^.ISI);
IF NOW^.Y=25 THEN NOW^.Y:=1;
INC(NOW^.Y);
NOW:=NOW^.NEXT;
END;
DELAY (10); CLRSCR; {MENGHAPUS LAYAR}
IF KEYPRESSED THEN TEKAN;
UNTIL CH=#27; {TOMBOL ESCAPE DITEKAN}
END;
PROCEDURE
CURSOR_OFF; ASSEMBLER; {MEMATIKAN
KURSOR SIFATNYA OPTIONAL/TAK WAJIB DIBUAT}
ASM
MOV AH,01;
MOV CX, 2020H;
INT 10H;
END;
PROCEDURE
CURSOR_ON; ASSEMBLER;
{MENYALAKAN KURSOR SIFATNYA OPTIONAL/TAK WAJIB DIBUAT}
ASM
MOV AH,01;
MOV CX,1314H;
INT 10H;
END;
BEGIN {MAIN PROGRAM}
CLRSCR;
HEAD:=NIL; TAIL:=NIL;
CURSOR_OFF;
RANDOMIZE;
PUSH;
ANIM;
CURSOR_ON;
END.
Contoh 3
MAHASISWA
DIMINTA MEMBUAT SEBUAH PROGRAM SORTING DENGAN METODE BUBBLE SORT. MINTALAH USER
UNTUK MEMASUKKAN 10 ANGKA. LALU TAMPILKAN ANGKA-ANGKA TERSEBUT SETELAH DI SORT
BAIK SECARA ASCENDING MAUPUN DESCENDING.
PROGRAM
URUT_INSERTION;
USES CRT;
CONST
MAX
= 10;
TYPE
ARR = ARRAY [1..MAX] OF BYTE;
VAR
I :
BYTE;
DATA: ARR;
PROCEDURE INPUT;
BEGIN
CLRSCR;
WRITELN ('INSERT 10 BILANGAN:');
WRITELN ('===================');
FOR I := 1 TO MAX DO
BEGIN
WRITE ('DATA KE-', I ,'='); READLN
(DATA[I]);
END;
CLRSCR;
FOR I:=1 TO MAX DO
WRITE (DATA[I],'');
WRITELN;
WRITELN ('DATA YANG TERURUT:');
WRITELN ('==================');
END;
PROCEDURE MOVE
(X,Y BYTE); {UNTUK MENGGESER DATA KE
DEPAN}
VAR I:BYTE; {SATU LANGKAH}
BEGIN
FOR I:=Y DOWNTO X DO
DATA [I] := DATA [I-1];
END;
PROCEDURE FINDPOS
(X BYTE; VAR Y BYTE);
VAR I:BYTE;
BEGIN
Y:=X; I:=0;
REPEAT
INC(I)
UNTIL DATA [X] <= DATA [I];
Y:=I;
END;
PROCEDUR INSERT;
VAR
I,J,TEMP :BTE;
BEGIN
FOR I:=2 TO MAX DO
BEGIN
TEMP:=DATA [I]; FINDPOS (I,J);
MOVE (J,I); DATA [J]:=TEMP;
END;
END.
PROCEDUR CARI;
FUNCTION SEARCH (X,N:INTEGER):INTEGER;
VAR
FIND : BOOLEAN;
L,R,MID,TEMP: INTEGER;
BEGIN
L:=1; R:=N;
FIND:=FALSE;
REPEAT
MID:=(L+R) DIV 2;
IF X = DATA [MID] THEN
BEGIN
TEMP:=MID; FIND:=TRUE;
END ELSE
IF X < DATA [MID] THEN
R:=MID-1
ELSE
L:=MID+1;
UNTIL FIND OR (L>R);
IF NOT FIND THEN TEMP:=0;
SEARCH:=TEMP;
END;
VAR BIL: BYTE;
BEGIN
GOTXY (1,7); WRITE ('BILANGAN YANG
DICARI:'); READLN (BIL);
GOOXY (1,8); WRITE ('DATA YANG DICARI
PADA URUTAN KE-',
SEARCH(BIL,MAX));
END;
PROCEDURE OUTPUT;
BEGIN
FOR I:= 1 TO MAX DO
WRITE (DATA[I],'');
END;
BEGIN
INPUT;
INSERT;
OUTPUT;
CARI; READKEY
END.
Tidak ada komentar:
Posting Komentar