PRAKTIKUM ALGORITMA DAN STRUKTUR DATA2 FAKULTAS TEKNOLOGI INFORMASI

STACK
DEFINISI:
1. ADALAH SUATU MANIPULASI DATA DENGAN MENGGUNAKAN LIFO METHODE 2. YANG BERARTI DATA YANG TERAKHIR MASUK (LAST IN) AKAN DI DIKELUARKAN PERTAMA KALI (FIRST OUT) TAMPILKAN ATAU

ILUSTRASI DAN SIMULATOR:
PADA SEBUAH PERUSAHAAN SWASTA DI SEMARANG MEMBUKA LOWONGAN PEKERJAAN, DIMANA SURAT LAMARAN HARUS DIKIRIM LANGSUNG OLEH PARA PELAMAR (PELAMAR DATANG SENDIRI), PADA HARI RABU TANGGAL 07 JUNI 2006. DENGAN KETENTUAN WARNA AMPLOP LAMARAN YANG TELAH DITENTUKAN OLEH PERUSAHAAN SESUAI DEPARTMENT YANG DIPILIH OLEH PARA PELAMAR. DAN LAMARAN DIUKUMPULKAN LEWAT POS SATPAM. KEMUDIAN DI POS SATPAM INI PETUGAS (SATPAM) MENARUH LAMARAN YANG ADA DENGAN CARA MENUMPUK LAMARAN DENGAN URUT SESUAI KEDATANGAN DARI SURAT LAMARAN TERSEBUT.(GAMBAR 1.0)

TUMPUKAN LAMARAN

PETUGAS PELAMAR

GAMBAR 1.0. SIMULASI STACK INPUT

KEMUDIAN PETUGAS(SATPAM) MENGIRIMKAN BERKAS LAMARAN TERSEBUT KE HRD-DEPARTMENT. SELANJUTNYA TIM HRD AKAN MEMBACA SURAT LAMARAN YANG ADA DENGAN CARA MENGAMBIL URUT DARI ATAS TUMPUKAN LAMARAN TERSEBUT.(GAMBAR 1.1)

TUMPUKAN LAMARAN

TIM HRD

GAMBAR 1.1.SIMULASI STACK OUTPUT

FROM TO

: KEINA : MY STUDENT

1 of 3

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA2 FAKULTAS TEKNOLOGI INFORMASI

CONTOH PROGRAM STACK
{PROGRAM STACK DENGAN TAMPILAN MENU PILIHAN} {INPUTAN DATA INTEGRE} USES CRT; CONST MAX=5; TYPE TYPEARRAY=ARRAY[1..MAX]OF INTEGER; TYPEINFO=INTEGER; TYPESTACK=RECORD ELEMEN:TYPEARRAY; TOP:INTEGER; END; VAR STACK:TYPESTACK; PROCEDURE BUATSTACK(VAR STACK:TYPESTACK); BEGIN STACK.TOP:=0; END; FUNCTION STACKKOSONG(STACK:TYPESTACK):BOOLEAN; BEGIN STACKKOSONG:=(STACK.TOP=0); END; FUNCTION STACKPENUH(STACK:TYPESTACK):BOOLEAN; BEGIN STACKPENUH:=(STACK.TOP=MAX); END; PROCEDURE PUSH(VAR STACK:TYPESTACK; ISI:TYPEINFO); BEGIN IF NOT(STACKPENUH(STACK)) THEN BEGIN STACK.TOP:=STACK.TOP+1; STACK.ELEMEN[STACK.TOP]:=ISI; END ELSE WRITELN('STACK PENUH'); END;

PROCEDURE POP(VAR STACK:TYPESTACK; VAR INFOPOP:INTEGER); BEGIN IF NOT(STACKKOSONG(STACK)) THEN BEGIN INFOPOP:=STACK.ELEMEN[STACK.TOP]; STACK.TOP:=STACK.TOP-1; END ELSE WRITELN('STACK KOSONG'); END; PROCEDURE TAMPILSTACK; VAR I:INTEGER; BEGIN FOR I:=STACK.TOP DOWNTO 1 DO WRITELN(STACK.ELEMEN[I]); END; PROCEDURE KOSONGKAN(VAR S:TYPESTACK); BEGIN STACK.TOP:=0; END; {MAIN PROGRAM}

FROM TO

: KEINA : MY STUDENT

2 of 3

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA2 FAKULTAS TEKNOLOGI INFORMASI
VAR DATA:INTEGER; I:BYTE; TANYA:CHAR; BEGIN CLRSCR; KOSONGKAN(STACK); BUATSTACK(STACK); REPEAT CLRSCR; WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN; WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN; WRITELN(' MENU PILIHAN'); WRITELN(' ============================================'); WRITELN(' [1].PUSH (MASUK)'); WRITELN(' [2].POP (AMBIL)'); WRITELN(' [3].TAMPIL'); WRITELN(' [4].KELUAR'); WRITELN('============================================='); WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN;WRITELN; WRITE(' PILIHAN ANDA : '); READLN(TANYA); CASE TANYA OF '1':BEGIN CLRSCR; WRITELN('DATA YANG DIISIKAN : '); WRITELN('ANGKA INTEGER'); READLN(DATA); PUSH(STACK,DATA); END; '2':POP(STACK,DATA); '3':BEGIN CLRSCR; WRITELN;WRITELN;WRITELN;WRITELN; WRITELN(' DATA STACK ANDA'); WRITELN('==============================='); WRITELN;WRITELN; TAMPILSTACK; TEXTCOLOR(RED); GOTOXY(25,25); WRITELN('TEKAN ENTER UNTUK KEMBALI KE MENU UTAMA'); TEXTCOLOR(WHITE); READLN; END; END; UNTIL TANYA='4'; END.

FROM TO

: KEINA : MY STUDENT

3 of 3