0 penilaian0% 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.
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 penilaian0% 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.
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.
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 +