• Tidak ada hasil yang ditemukan

Struktur Data MODUL 04 STACK KONTIGU

N/A
N/A
Protected

Academic year: 2018

Membagikan "Struktur Data MODUL 04 STACK KONTIGU"

Copied!
4
0
0

Teks penuh

(1)

1

MODUL 4 - STACK KONTIGU

I. Tujuan

1. Memahami konsep stack dan penggunaan array sebagai stack 2. Memahami operasi-operasi dasar stack

3. Mampu mengembangkan penggunaan stack dalam bahasa C

II. Dasar Teori

Tumpukan (stack) adalah tipe data yang dapat dianalogikan seperti tumpukan kertas yang berlapis-lapis. Untuk melakukan operasi pengubahan data (push dan pop), akses melalui ujung yang sama yang disebut dengan ujung atas tumpukan (top of stack). Oleh karena itu operasi pada stack dikenal bersifat LIFO (Last In First Out).

Operasi dasar pada tipe data stack antara lain: ฀฀ Operasi penambahan data (push)

Data akan ditambahkan ke dalam stack sehingga data baru tersebut akan menempati urutan paling atas dari stack.

a b

b

a a

฀฀ Operasi pengambilan data (pop)

Data teratas dalam stack akan diambil dari stack. Bila ada n data, data pada tumpukan teratas adalah urutan ke-n, maka setelah dilakukan operasi pop data pada urutan ke-(n-1) akan menempati urutan paling atas.

b a

a

Pada modul ini akan digunakan array untuk mengimplementasikan stack, dimana jumlah elemen array ditentukan pada awal program dan tidak dapat ditambah maupun dikurangi di tengah program (array statis).

(2)

2 Sehingga jika hasil pemerikasaan dihasilkan bahwa stack dalam keadaan penuh maka proses push tidak boleh dilakukan. Begitu pula jika stack dalam keadaan kosong maka proses pop tidak boleh dilakukan.

III. Langkah Kerja

1. Demo

Ketiklah program di bawah ini, amati hasilnya dan pahami cara kerjanya

//file header.h #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX_STACK 5

typedef int infotype;

typedef struct {

infotype top;

int content[MAX_STACK]; }Stack;

void init(Stack *S); /*

IS: input Stack

FS: Stack terinisialisasi kosong */

void push(Stack *S, int value); /*

IS: input Stack, mungkin kosong, mungkin penuh

FS: satu elemen baru di-push ke stack jika masih cukup, menampilkan peringatan jika stack penuh

*/

infotype pop(Stack *S); /*

IS: input Stack, mungkin kosong, mungkin penuh

FS: satu elemen di-pop dari stack jika tidak kosong,

menampilkan peringatan jika stack kosong */

void show(Stack S); /*

IS: input Stack, mungkin kosong, mungkin penuh FS: seluruh elemen stack ditampilkan

*/

//file function.c #include “header.h”

void init(Stack *S) {

(3)

3

void push(Stack *S, infotype value) {

if ((*S).top < (MAX_STACK – 1)) {

} else

}

(*S).top++;

(*S).content[(*S).top] = value;

printf(“\nStack sudah penuh!”);

infotype pop(Stack *S) {

infotype a;

if ((*S).top > -1) {

} else {

} }

a=(*S).content[(*S).top]; (*S).top--;

return a;

printf(“\nStack kosong!”); return 0;

void show(Stack S) {

if (S.top > -1) {

while (S.top != -1) {

} } else

printf(“\n %d”, S.content[S.top]); S.top--;

printf(“\nStack kosong!”); }

//file main.c

#include “header.h”

void main() {

Stack myStack; char pilih,a; infotype newVal;

init(&myStack);

do {

system(“cls”);

(4)

4

printf(“\n2. Pop”); printf(“\n3. Show All”); printf(“\n\nMasukkan pilihan: “); pilih = getch();

switch(pilih) {

case „1‟:

printf(“\nMasukkan nilai yang akan di-push: “); scanf(“%d”, &newVal);

push(&myStack,newVal); getch();

break;

case „2‟:

a=pop(&myStack);

printf(“\nNilai yang di-pop dari stack: %d”,a); getch();

break;

case „3‟:

show(myStack); getch();

break; }

}while (pilih != 27); }

Pisahkan file program di atas menjadi 3 file antara lain:

฀฀ File header: berisi deklarasi ADT, deklarasi fungsi dengan keterangan

kondisi awal dan akhir (header.h).

฀฀ File fungsi: berisi pendefinisian fungsi-fungsi yang akan dipanggil di

program utama/main (function.c).

฀฀ File utama: yang berisi badan program utama dan pemanggilan fungsi-fungsi

yang ada dalam file fungsi (main.c).

Referensi

Dokumen terkait

Tepung pupa dapat menggantikan 75% dari tepung ikan yang digunakan (8%) dalam ransum petelur tanpa mempengaruhi konsumsi pakan, produksi telur, konversi pakan, dan berat telur..

Selanjutnya berdasarkan hasil pengolahan data, dapat diketahui gambaran masalah berat yang dirasakan oleh 5 orang siswa kelas VIII 4 sesudah diberikan layanan

Akan tetapi hakim tetap pada Undang-Undang yang berlaku selama tidak ada perjanjian yang mengikat antara keduanya dalam membagi harta bersama selama dalam

dikuasai langsung oleh Negara dalam waktu yang tertentu guna.. perusahaan pertanian, perikanan

Bila kita tanyakan satu persatu kepada para penerima beasiswa studi ke luar negeri, kita akan mendapatkan satu hal yang sama diantara mereka, yaitu mereka sudah membangun

Seorang Muslim shalaat witir setelah shalat tahajjud, jika hawatir tidak bangun, maka shalat witir sebelum tidur, berdasarkan sabda nabi : "Barangsiapa yang hawatir tidak bangun

Sebagaimana disebutkan dalam butir 13 Pasal 1 Undang-Undang Nomor 10 Tahun 1998 memberikan batasan pengertian prinsip syariah sebagai aturan perjanjian berdasarkan

1. Kesan:- Memberikan Tambahan ilmu yang lebih banyak serta mampu menyupai wawasan untuk mata kuliah teori Mineralogi dan