laporan praktikum algoritma dan struktur (4)

22  26 

Teks penuh

(1)

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

(2)

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;

(3)

 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

(4)

 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++

(5)

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”);

(6)

ANALISA PROGRAM

Source. cpp

(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)

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

(17)

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)

(18)

Pop

Untuk menghapus atau membuang sebuah elemen dari tumpukan, yaitu cukup dengan mengdekremen atasTumpukan.

Defenisi atas fungsi Pop adalah sebagai berikut:

Fungsi SalinTumpukan

(19)

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

(20)

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 (=)

(21)

3. File header tumpukanADT.h berisi defenisi class tumpukanADT  inisialisasitumpukan ( ) : void

 apa tumpukankosong ( ) :boolean

 apa tumpukanpenuh ( ) : Boolean

 push(tipe) : void

 top ( ) : tipe

(22)

BAB III

KESIMPULAN

Figur

Memperbarui...

Referensi

Memperbarui...