0% menganggap dokumen ini bermanfaat (0 suara)
370 tayangan8 halaman

Modul 2 - Stack

Modul ini membahas tentang tipe data stack dan implementasinya dalam bahasa C. Terdapat penjelasan tentang konsep dasar stack seperti operasi push dan pop. Kemudian dijelaskan representasi stack menggunakan array dan linked list beserta contoh kode program. Modul ini berisi contoh soal latihan penerapan stack seperti kalkulator sederhana.

Diunggah oleh

Andina Titra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
370 tayangan8 halaman

Modul 2 - Stack

Modul ini membahas tentang tipe data stack dan implementasinya dalam bahasa C. Terdapat penjelasan tentang konsep dasar stack seperti operasi push dan pop. Kemudian dijelaskan representasi stack menggunakan array dan linked list beserta contoh kode program. Modul ini berisi contoh soal latihan penerapan stack seperti kalkulator sederhana.

Diunggah oleh

Andina Titra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

Modul Praktikum Struktur Data

Disusun oleh: TIM Asisten Struktur Data



MODUL 2
STACK

A. Tujuan Praktikum
Setelah mempelajari modul ini, mahasiswa diharapkan mampu untuk memahami dan
mengimplementasikan tipe data abstrak berupa stack
B. Indikator
Mahasiswa mampu untuk membuat program dengan menggunakan stack, dan
mengimplementasikannya untuk suatu contoh kasus.
C. Materi
Stack
Stack adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah
hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring
di sebuah restoran yang tumpukannya dapat ditambah pada bagian paling atas dan jika
mengambilnya pun dari bagian paling atas pula. Karena secara urutan yang terakhir masuk
itulah yang lebih dulu keluar, sehingga prinsip atau konsep prosesnya disebut: L I F O (Last In
First Out) Lihat gambar 1.



Gambar 1. Macam-macam tumpukan


Ada 2 operasi paling dasar dari stack yang dapat dilakukan, yaitu :
1. Operasi push yaitu operasi menambahkan elemen pada urutan terakhir (paling atas).
Modul Praktikum Struktur Data
Disusun oleh: TIM Asisten Struktur Data
2. Operasi pop yaitu operasi mengambil sebuah elemen data pada urutan terakhir dan menghapus
elemen tersebut dari stack.
Sebagai contoh, misalkah ada data sebagai berikut : 1 3 5 6, maka data tersebut dapat tersimpan
dalam bentuk sebagai berikut :


Gambar 2. Asumsi-asumsi penyimpanan stack

Contoh lain adalah ada sekumpulan perintah stack yaitu push(5), push(7), pop, push(3), pop. Jika
dijalankan, maka yang akan terjadi adalah :



Gambar 3. Proses operasi stack




Representasi stack dalam pemrograman, dapat dilakukan dengan 2 cara yaitu :
1. Representasi stack dengan array
2. Representasi stack dengan single linked list
Sebagai contoh representasi kedua cara tersebut dengan operasi yang dilakukan adalah push(1),
push(2), pop, push(5), push(8), pos. Untuk lebih detail, perhatikan gambar di bawah ini :
Representasi stack dengan menggunakan array dengan maksimal data 5 adalah
Modul Praktikum Struktur Data
Disusun oleh: TIM Asisten Struktur Data


Elemen berisi ? berarti nilai elemen tidak diketahui.
Gambar 4. Representasi stack dengan menggunakan array

Pendeklarasian stack yang menggunakan array memiliki beberapa bagian yaitu:
o top yang menunjuk posisi data terakhir (top)
o elemen yang berisi data yang ada dalam stack. Bagian ini lah yang berbentuk array.
o maks_elemen yaitu variable yang menunjuk maksimal banyaknya elemen dalam stack.










Inisialisasi Inisialisasi stack adalah proses pembuatan suatu stack kosong. Adapun langkah-langkah
Inisialisasi stack yang menggunakan array:
Proses inisialisasi untuk stack yang menggunakan array adalah dengan mengisi nilai field top dengan 0
(nol) jika elemen pertama diawali dengan nomor 1. Kalau elemen pertama array dimulai dengan 0
(contoh bahasa C), maka top diisi dengan nilai -1.
Implementasinya dalam bahasa C adalah :


Top = -1;



Modul Praktikum Struktur Data
Disusun oleh: TIM Asisten Struktur Data
Operasi Push
Operasi push adalah operasi dasar dari stack. Operasi ini berguna untuk menambah suatu elemen
data baru pada stack dan disimpan pada posisi top yang akan mengakibatkan posisi top akan
berubah. Langkah operasi ini adalah :
a. Operasi push pada stack yang menggunakan array.
Langkah operasi push dalam array adalah dengan :
Periksa apakah stack penuh (isfull). Jika bernilai false/0 (tidak penuh) maka proses push
dilaksanakan dan jika pemeriksaan ini bernilai true/1 (stack penuh), maka proses push
digagalkan.
Proses push-nya sendiri adalah dengan menambah field top dengan 1, kemudian elemen
pada posisi top diisi dengan elemen data baru.
Untuk lebih jelas, perhatikan lagi gambar 4 mengenai representasi stack dengan array..
Implementasinya dalam bahasa C adalah :


Top = Top + 1;
S[Top] = X;

Atau:

S[++Top] = X;

Algoritma yang lengkap untuk proses PUSH:

if (Top < n-1)
{
Top = Top +1; S[Top]=X;
}
else
{
printf ("Stack Penuh");
}

Operasi Pop
Operasi pop adalah salah satu operasi paling dasar dari stack. Operasi ini berguna untuk mengambil
elemen terakhir (top) dan kemudian menghapus elemen tersebut sehingga posisi top akan berpindah.
Operasi ini biasanya dibuat dalam bentuk function yang me-return-kan nilai sesuai data yang ada di
top.
Operasi pop pada stack yang menggunakan array.
Modul Praktikum Struktur Data
Disusun oleh: TIM Asisten Struktur Data
Langkah operasi pop pada stack yang menggunakan array adalah terlebih dahulu memeriksa apakah
stack sedang keadaan kosong, jika tidak kosong maka data diambil pada posisi yang ditunjuk oleh
posisi top, kemudian simpan dalam variable baru dengan nama data, kemudian posisi top 1,
kemudian nilai pada variable data di-return-kan ke function. Untuk lebih jelas perhatikan kembali
gambar 4 di halaman 3.
Implementasi operasi ini dalam bahasa C adalah :
X = S[Top];
Top = Top 1;

Algoritma yang lengkap untuk proses PUSH:
if(Top > -1)
{
X=S[Top];
Top = Top -1;
}
else
printf("Stack Kosong");



Contoh program a:
1. Buatlah program dengan bahasa C untuk menyiapkan array 1 dimensi yang akan digunakan
sebagai stack sebanyak 10 element, bertipe integer. Kemudian lakukan proses simpan data ke
stack (PUSH) atau mengeluarkan isi stack (POP) dengan ketentuan sebagai berikut:
a. Inputkan data dari keyboard
b. Bila data yang diinput >=30 maka periksa kondisi stack. Bila stack masih bisa diisi,
maka simpan data tersebut (PUSH) kedalam stack, dan proses diulang kembali mulai
no.1. tapi bila stack sudah penuh, data tidak jadi disimpan, kemudian cetak perkataan
Stack Penuh, dan proses selesai.
c. Bila data yang diinput <30, maka periksa kondisi stack. Bila stack ada isinya, maka
ambil isi stack dan cetak ke layar, kemudian proses diulang kembali mulai no.1. Bila
stack tak ada isinya, maka cetak perkataan Stack Kosong, dan proses selesai.
d. Untuk lebih jelas silahkan dicoba langsung sesuai contoh program stack1 dibawah ini:
Modul Praktikum Struktur Data
Disusun oleh: TIM Asisten Struktur Data

Contoh Stack 1


Contoh program b:
2. Buatlah program dengan bahasa C untuk menyiapkan array 1 dimensi yang akan digunakan
sebagai stack sebanyak 10 element, bertipe integer. Kemudian inputkan data (nilai numerik) dan
simpan (PUSH) ke stack S. Proses input dan PUSH selesai bila data yang diinputkan bernilai
=999, atau Stack S penuh. (Nilai 999 dipakai sebagai end of data, tidak ikut di PUSH ke stack
S). setelah itu keluarkan (POP) isi stack dan cetak ke layar satu persatu sampai stack menjadi
kosong. Untuk lebih jelas silahkan dicoba langsung sesuai contoh program stack2 dibawah ini:

Modul Praktikum Struktur Data
Disusun oleh: TIM Asisten Struktur Data


Contoh Stack 2


3. TUGAS:
1. Ubahlah contoh program a diatas dengan mengimplementasikan konsep struct.
2. Ubahlah program stack pada soal no 1 ke dalam bentuk menu dan terdiri dari fungsi-fungsi
yang terpisah dari program utama (fungsi IsFull, IsEmpty, Push, Pop, Tampil)
3. Buatlah program kalkulator sederhana (pengoperasian 2 bilangan aritmatika sederhana)!
Operasi aritmatika tersebut (dalam notasi infiks), harus diubah kedalam bentuk notasi
postfiks.

Contoh:
INFIKS POSTFIKS
3 + 7 3 7 +
2 - 9 2 9 -
8 * 7 8 7 *
9 / 3 9 3 /
Misal algoritma: 3 7 +

indeks stack process
2 + add
1 7 push operand
0 3 push operand
STACK Praktikum Struktur Data
8

4. Buatlah program kalkulator sederhana dengan menggunakan lebih dari 1
operand (di mana masing-masing bilangan terdiri dari 1 digit)!
Contoh: 3 + 2 * 7 notasi postfiks: 2 7 * 3 +

Anda mungkin juga menyukai