praktikum 6 stack.docx
DESCRIPTION
Pemrograman dasar 2 STACKTRANSCRIPT
PRAKTIKUM 6STACK
2.1Tujuan
Setelah melakukan praktikum ini siswa diharapkan mengerti :
1. Cara lain untuk merepresentasikan sekumpulan data menggunakan stack
2. Anggota/elemen struktur dari sebuah stack dengan array atau linked list
3. Cara penggunaan stack dengan array ataupun dengan linked list
4. Penelusuran simpul/pembacaan stack : LIFO (Last In First Out)
2.2Dasar Teori
Representasi stack:
push pop
Operasi-operasi dasar pada stack adalah sebagai berikut :
1. Operasi menciptakan T sebagai stack kosong
Void initializeStack(Stack*S) { S->count=0; }
2. Fungsi yang melakukan pengecekan apakah stack dalam kondisi kosong
Int Empty(Stack*S)
{ return(S->count==0); }
3. Fungsi yang melakukan pengecekan apakah stack dalam kondisi penuh
Int Full(Stack*S)
{ return(S->Count==MAXSTACK); }
4. Operasi menyisipkan elemen x ke stack T dan mengembalikan stack baru
Void Push(ItemType x, Stack *S)
{ If(S->Count==MAXSTACK)
Printf(“Stack penuh! Data tidak dapat masuk!”);
Else
{ S->Item[S->Count]=x; ++(S->Count); }
5. Operasi mengambil elemen puncak stack T, (pop(T,x))Int Pop(Stack *S, ItemType *x){
If(S->Count==0) //stack kosong Printf(“Stack masih kosong”);Else
{ --(S->Count); *x=S->Item[S->Count]; }}
2.3 Latihan Program
1. Mendeklarasikan, memasukkan data, dan menampilkan pada stack
menggunakan array (=penelusuran LIFO)
Hasil run :
2. Mendeklarasikan, memasukkan data, dan menampilkan pada stack
menggunakan linked list (=penelusuran LIFO)
Hasil run :
3. Aplikasi stack pada program konversi infix ke postfix
Algoritma :
1. Inputkan string persamaan dalam notasi infix (=var s)->panjang string
s(=var N)
2. Sediakan fungsi derajat operator ^=3, *dan/ = 2, +dan- = 1
3. Dimulai dari i = 1 s/d N lakukan :
R=s[i];
Test nilai r:
Jika operand : langsung ditulis
Jika operator :
- Jika tumpukan kosong/derajat r>derajat TOP stack -> PUSH
operator ke dalam tumpukan
- Jika tidak POP TOP stack dan tulis
4. jika diakhir notasi infix telah tercapai, tumpukan masih belum kosong ->
POP semua isi tumpukan dan tulis hasilnya .
4. Aplikasi program menghitung nilai ekspresi postfix
Hasil run :
Setelah memilih y dan memasukkan kembali fungsi :
2.4 Soal-soal Tugas Pemrograman
1. Untuk latihan program no 1 dan 2 buatlah bagan proses dari stack, untuk
setiap operasi push dan pop pada representasi array dan linked list . Jangan
lupa memasukkan juga perubahan nilai indek array dan perubahan nilai
pointernya .
2. Buatlah program konversi system bilangan dengan stack, dapat menggunakan
array atau linked list
Decimal ke biner
Decimal ke octal
Decimal ke hexadecimal
Hasil run :
Jawaban no.1
Struct tumpukan t;
strnilai
Push(atoi(strnilai));
Jika t.atas=10; maka tumpukan sudah penuh
10push(atoi(strnilai)); Jika t.atas belum 10.t.atas=top+1; t.isi[t.atas]=xtop=t.atas;
Atas
isi
Jika top=0, tumpukan sudah kosong
Program 2