LAPORAN PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA I
TUMPUKAN (STACK)
Oskar Ika Adi Nugroho S.T., MT
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER (STIKOM)
“YOS SUDARSO”
PURWOKERTO
2016
BAB I
Stack atau tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top)
Prinsip Stack adalah
LAST-IN-FIRST-OUT (LIFO)
OPERASI STACK
1. ISEMPTY : Untuk memeriksa apakah stack kosong.
2. ISFULL : Untuk memeriksa apakah stack sudah penuh.
3. PUSH : Untuk menambahkan item pada posisi paling atas (TOP).
4. POP : Untuk menghapus item paling atas (TOP).
5. CLEAR : Untuk mengosongkan stack.
STACK PADA ARRAY
Deklarasi MAX_STACK
#define MAX_STACK 6
Deklarasi STACK dengan struct dan array data typedef struct STACK{
int top; int data[6]; };
Deklarasi variabel stack dari struct STACK tumpuk;
Pada mulanya isi top dengan -1, karena array dalam C/C++ dimulai dari 0, berarti stack adalah KOSONG
TOP adalah variabel penanda dalam STACK yang menunjukkan elemen teratas Stack.
TOP of STACK akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH
1. Fungsi IsEmpty
Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong
Dengan cara memeriksa TOP of STACK. Jika TOP masih = -1 maka berarti stack masih kosong
2. Fungsi IsFull
Dengan cara memeriksa TOP of Stack.
o Jika TOP of STACK = MAX_STACK-1 maka FULL (Penuh).
o Jika TOP of STACK < MAX_STACK-1 maka belum penuh
Fungsi IsFull
3. Fungsi PUSH
Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack
Dengan cara :
Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh.
Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah ditambah satu (diincrement).
4. Fungsi POP
int IsFull () {
if (tumpuk.top == MAX_STACK-1 return 1;
else
return 0; }
void push (char d[6]) {
tumpuk.top++
Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack. Dengan cara :
o Ambil dahulu nilai elemen teratas stack dengan mengakses TOP of STACK.
o Tampilkan nilai yang akan diambil.
o Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
5. Fungsi CLEAR
Digunakan untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada kembali di posisi Top = -1
BAB II
void pop () {
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]); tumpuk.top--;
}
void clear () {
tumpuk.data=tumpuk.top=-1 printf(“Data clear”);
ANALISA PROGRAM
Source. cpp
Program diatas mempunyai 3 file header, yaitu:
1. Program utama dengan nama file header Source. cpp. Program utama (include) memanggil file header tipeTumpukan.h, kemudian di dalam file header
tipeTumpukan.h (include) memanggil isi file header tumpukanADT.h
2. tipeTumpukan.h berisi defenisi class tipeTumpukan dan berisi defenisi template kelas
tipeTumpukan, template kelas seperti berikut ini :
DEFENISI TEMPLATE KELAS TIPETUMPUKAN Menginisialisasi Tumpukan
Menetapkan atas tumpukan menjadi 0 untuk menginisialisasi tumpukan. Defenisi atas fungsi InisialisasiTumpukan adalah sebagai berikut:
Tumpukan Kosong
Kita telah melihat bahwa nilai dari atasTumpukan mengindikasikan apakah tumpukan kosong atau tidak. Jika atasTumpukan adalah 0, maka tumpukan kosong. Selain itu, tumpukan tidak kosong. Defenisi apaTumpukanKosong adalah sebagai berikut:
Tumpukan Penuh
Selanjutnya, operasi apaTumpukanPenuh jika atasTumpukan sama dengan
Push
Menambahkan atau menempatkan sebuah elemen keatas tumpukan adalah sebuah proses dua langkah. Ingat nilai dari atasTumpukan mengindikasikan jumlah elemen pada tumpukan, dan atasTumpukan-1 mengindikasikan posisi dari elemen teratas tumpukan. Oleh karena itu operasi Push adalah sebagai berikut:
1. Menyimpan itemBaru didalam komponen array yang diindikasikan oleh
atasTumpukan.
2. Menginkremen atasTumpukan.
Defenisi atas fungsi Push adalah sebagai berikut:
Jika mencoba menambahkan item baru ke sebuah tumpukan penuh, maka akan overflow.
Pemeriksaan kerusakan overflow dapat ditangani dalam beberapa cara, salah satunya ditunjukkan pada segmen kode tersebut yaitu sebelum pemanggilan fungsi Push
(diasumsikan bahwa tumpukan adalah sebuah objek bertipe tipeTumpukan). if (!tumpukan.apaTumpukanPenuh( ) )
tumpukan.push(itemBaru);
Menghasilkan Elemen Teratas Tumpukan (operasi Top)
Pop
Untuk menghapus atau membuang sebuah elemen dari tumpukan, yaitu cukup dengan mengdekremen atasTumpukan.
Defenisi atas fungsi Pop adalah sebagai berikut:
Fungsi SalinTumpukan
Konstruktor dan Destruktor
Fungsi-fungsi untuk mengimplementasikan Konstruktor dan Destruktor, Konstruktor dengan parameter dengan menetapakan ukuran tumpukan menjadi ukuran yang ditentukan oleh pengguna, menetapkan atasTumpukan menjadi 0, dan menciptakan sebuah array untuk menampung elemen-elemen tumpukan. Jika tidak menentukan ukuran array, konstruktor akan mengunakan ukuran default 100 untuk menciptakan array berukuran 100. Destructor berfungsi hanya mendealokasi memori yang ditempati oleh array dan menetapkan
atasTumpukan menjadi 0. Defenisi atas Konstruktor dan Destruktor adalah sebagai berikut:
Konstruktor
Konstruktor Penyalin
Konstruktor Penyalin dipanggil ketika sebuah objek tumpukan dilewatkan sebagai parameter nilai kepada sebuah fungsi. Ia menyalin nilai dari parameter aktual ke parameter formal terkait. Defenisi atas Konstruktor Penyalin adalah sebagai berikut:
Meng-overload Operator Penugasan (=)
3. File header tumpukanADT.h berisi defenisi class tumpukanADT inisialisasitumpukan ( ) : void
apa tumpukankosong ( ) :boolean
apa tumpukanpenuh ( ) : Boolean
push(tipe) : void
top ( ) : tipe