Upload
james-montolalu
View
39
Download
2
Embed Size (px)
Citation preview
1 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
MODUL PRAKTIKUM “STRUKTUR DATA”
Modul 6 : Stack Dosen Pembimbing : Xaverius Najoan, ST. MT. Bahasa Pemrograman : C Software : Notepad++ dan GCC
LABORATORIUM TEKNOLOGI INFORMASI DAN KOUNIKASI UNIVERSITAS SAM RATULANGI
2012
2 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
TUJUAN
1. Mahasiswa dapat memahami tentang stack 2. Mahasiswa dapat menggunakan stack untuk memecahkan masalah pemrograman
ALAT DAN BAHAN 1. PC 2. Compiler (GCC) 3. Text Editor (Notepad++)
DASAR TEORI
Secara sederhana stack atau tumpukan bisa diartikan sebagai kumpulan data yang seolah-olah
diletakkan diatas data yang lain. Kita bisa menambahkan (menyisipkan) data dan mengambil (menghapus)
data melalui ujung yang sama, yang disebut sebagai ujung atas stack.
Sederhananya sebuah stack dapat diiustraskan sebagai berikut :
Gambar diatas menunjukkan bahwa dalam stack hanya bisa menambah atau mengambil sebuah
kotak lewat satu ujung, yaitu bagian atas. Yang menjadi ujung atas stack adalah kotak F. jadi jika ada kotak
lain yang disisipkan, maka kotak tersebut akan diletakkan diatas kotak F dan jika ada kotak yang akan
diambil, maka kotak F yang pertama diambil.
A
B
C
D
F
E
Atas
3 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Operasi pada Stack
Ada dua operasi dasar yang bisa dilakukan pada sebuah stack, yaitu operasi menyisipkan data (push)
dan operasi menghapus data (pop).
Operasi Push
Perintah push digunakan unutk memasukan data kedalam stack. Untuk lebih jelasnya perhatikan
gambar ini :
Proses operasi push :
void Push (NOD **T, char item) { NOD *n; n = NodBaru(item); n->next = *T; *T = n; }
Operasi Pop
Operasi Pop adalah operasi untuk menghapus elemen yang terletak pada posisi paling atas dari
sebuah stack.
4 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Proses operasi push :
char Pop(NOD **T) { NOD *P; char item; if (! StackKosong(*T)) {
P = *T; *T = (*T)->next; Item = P->data; free(P);
} return item;
}
Bagaimana jika stack itu kosong ? Cara untuk melihat stack itu kosong atau tidak dengan membuat
suatu fungsi yang menghasilkan suatu data yang bertipe boolean.
Fungsi untuk mengetahui kosong tidaknya suatu stack :
//uji stack kosong BOOL StackKsong (NOD *T) { retrun ((BOOL)(T == NULL)); }
5 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
PROSEDUR PERCOBAAN
1. Kompilasi kode sumber stack.c dibawah ini! Kode Sumber : stack.c
6 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
7 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
2. Jalankan dan catat keluaran stack ! 3. Pelajari dan bandingkan antara kode sumber dan hasil eksekusi stack ini! 4. Berikan penjelasan anda tentang fungsi pop dan push! 5. Berikan kesimpulan anda!