SlideShare une entreprise Scribd logo
1  sur  32
TUGAS MANDIRI
STRUKTUR DATA DENGAN
OPERASI STACK (TUMPUKAN)
MATA KULIAH : STRUKTUR DATA
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS PUTERA BATAM
2013
Nama : Asep Jaenudin
NPM : 120210034
Kode kelas : 122-IF211-M5
Dosen : Ganda Sirait, S.Si., M.SI.
i
KATA PENGANTAR
Segala puji dan syukur penyusun panjatkan kehadirat Allah SWT yang
telah menganugerahkan rahmat, karunia serta ridha-Nya, sehingga penyusun dapat
menyelesaikan makalah Tugas mandiritentang ”STRUKTUR DATA DENGAN
OPERASI STACK (TUMPUKAN)”.Makalah Tugas mandiriini disusun sebagai
salah satu tugas pada mata kuliah Struktur Data.
Dalam penyusunan makalah ini, penyusun telah banyak menerima
bimbingan dan saran-saran dari berbagai pihak. Maka pada kesempatan ini
penyusuningin mengucapkan terima kasih yang setulusnya kepada:
1. BapakGanda Sirait, selaku Dosen mata kuliah Struktur Datadi Universitas
Putera Batam yang telah banyak memberikan penjelasan teori yang
berkaitan dengan tugas makalah ini.
2. Rekan-rekan serta semua pihak yang tidak dapat penyusun sebutkan satu
persatu yang telah membantu dalam pembuatan makalah ini.
Akhirnya penyusun berharap makalah ini dapat berguna dan dapat
dipergunakan sebagaimana mestinya. Penyusun mengharapkan kritik dan saran
untuk kemajuan di masa-masa mendatang. Atas perhatiannya penyusunucapkan
terima kasih.
Batam, 3 Juni 2013
Penyusun
ii
DAFTAR ISI
KATA PENGANTAR......................................................................................... i
DAFTAR ISI........................................................................................................ ii
BAB I. PENDAHULUAN................................................................................... 1
1.1 Latar Belakang Masalah ........................................................................... 1
1.2 Rumusan Masalah..................................................................................... 2
1.3Tujuan dan Manfa‘at Penyusunan.............................................................. 2
BAB II. PEMBAHASAN.................................................................................... 3
2.1 PengertiandariStack .................................................................................. 3
2.2Pendeklarasian Stack ................................................................................. 6
2.3Skema Traversal Pada Stack...................................................................... 7
2.4Skema Search Pada Stack. ......................................................................... 7
2.5Operasi Dan FungsiPada Stack.................................................................. 7
2.6Deklarasi Stack Pada Bahasa Pemrograman.............................................. 11
2.7Penggunaan/Aplikasi Stack........................................................................ 13
2.8Operasi Logika Pada Struktur Data Stack ................................................. 14
2.9Aplikasi Stack Pada Pemrograman Pascal................................................. 19
BAB III. PENUTUP............................................................................................ 25
3.1 Kesimpulan............................................................................................... 25
3.2 Saran ........................................................................................................ 26
DAFTAR PUSTAKA.......................................................................................... 27
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pemakaian struktur data yang tepat di dalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadi program secara
keseluruhan lebih efisien dan sederhana seperti stack merupakan bagian dari struktur
data yang dikategorikan ke dalam bentuk linier data, dimana operasi pemasukan
maupun pengeluaran data selalu dilakukan pada salah satu sisinya.
Dalam dunia komputer, penggunaan stack (tumpukan) merupakan suatu hal
yang umum digunakan seperti untuk penentuan alamat memory, penempatan ruang
data dan aplikasi lain. Stack bersifat LIFO (Last In First Out) dan benda yang terakhir
masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack itu.
Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan
kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Pada stack
jarang sekali dilakukan operasi traversal, karena keunikan stack justru pada operasi
yang hanya menyangkut elemen TOP (atas).
Struktur ini sering dipakai dalam informatika misalnya untuk
merepresentasikan pemanggilan prosedur, perhitungan ekspresi aritmatika,
rekursifitas, dan backtracking. Satu hal yang perlu diingat adalah bahwa didalam
suatu tumpukan dapat menambah (menyisipkan) data dan mengambil (menghapus)
data lewat ujung yang sama yang disebut sebagai ujung atas tumpukan.
Penyajian stack bisa menggunakan array, namun kurang tepat. Array bisa
digunakan kalau elemen stack tidak melebihi batas maksimum. Tipe yang bisa
digunakan adalah record.
Manipulasi dengan menggunakan record mempunyai dua medan, yaitu medan
penyimpanan elemen tumpukan dan medan pencatat posisi ujung atas tumpukan.
Stack dapat diimplementasikan sebagai representasi berkait atau kontinyu (dengan
tabel fix). ―TOP― merupakan pintu untuk keluar masuknya elemen – elemen stack.
2
1.2 Rumusan Masalah
Berdasarkan latar belakang tadi, maka penyusun menemukan beberapa
permasalahan yang kiranya akan menjadi bahasan pada penyusunan makalah ini,
diantaranya yaitu :
1. Apa pengertian dari stack pada struktur data?
2. Bagaimana pendeklarasian Stack?
3.Bagaimana skema traversal dari stack?
4. Bagaimana skema search dari stack?
5.Apa saja operasi-operasi dan fungsi dasar pada stack?
6. bagaimanadeklarasi stack pada Bahasa Pemrograman?
7. Bagaimana penggunaan/aplikasi dari stack?
8. Bagaimana operasi logika pada Struktur Data stack?
9. Bagaimana aplikasi Stack pada pemrograman pascal?
1.3 Tujuan dan Manfaat Penyusunan
Tujuan makalah ini adalah untuk mengetahui lebih jauh tentang penggunaan
operasi stack dalam struktur data. Sehingga tentunya akan dapat memberikan sebuah
manfaat bagi diri kita maupun orang lain. Dengan penyusunan makalah ini, semoga
ada manfaat yang dapat kita rasakan, terutama bagi rekan-rekan yang belajar tentang
struktur data dan bagaimana implementasi dari struktur data tersebut dalam suatu
aplikasi sederhana.
3
BAB II
PEMBAHASAN
2.1 Pengertian Stack
Stack (tumpukan) dapat dikatakan sebagai list yang operasi penghapusan dan
pemyisipan elemennya dilakukan disatu ujung. Dalam kehidupan sehari-hari, terdapat
banyak kejadian yang mempunyai sifat seperti stack, salah satunya adalah
ceritadibawah ini:
Perhatikan sebuah tumpukian piring disebuah warung makan.Piring-piring
tersebut tersusun rapat dari atas ke bawah(membentuk barisan berurutan). Setiap kali
ada pembeli datang, maka piring yang paling atas akan diambil(menghapus elemen)
yang berarti mengurangi jumlah piring dalam tumpukan. Bila tumpukan
itu sudah habis atau tinggal sedikitmaka pegawai warung akan menambahkan piring
lain yang masih bersih (menambah elemen) piring yang paling terakhir diletakkan
pasti akan terletak ditumpukan paling atas dan piring yang terletak paling atas dalam
tumpukan itu pasti merupakan tumpukan piring yang terakhir kali dimasukkan.
Kesimpulannya adalah penambahan dan penghapusan elemen hanya dapat
dilakukan diujung atas tumpukan piring. Proses seperti itu biasa disebut Last In First
Out(LIFO).
Secara formal sebuah stack bertipe T didefinisikan sebagai sebuah barisan
berhingga atas elemen-elemen bertipe T, bersama-sama dengan operasinya berikut:
1) Inisiasi stack menjadi kosong.
2) Mencari tahu status stack kosong atau tidak.
3) Mencari tahu stack penuh atau tidak.
4) Mencari panjang stack(jumlah elemen stack).
5) Memasukkan elemen baru pada stack, yaitu top stack jika stack tidak penuh.
6) Jika stack tidak kosong, mengambil elemen teratas(top stack).
Stack pada Struktur Data dapat diilustrasikan dengan dua buah kotak yang
ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian
stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka
akan diperoleh sebuah stack kotak yang terdiri dari N kotak.
4
Gambar 1. Ilustrasi Stack 1
Gambar 2. Ilustrasi Stack 2
Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan
kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push, dan untuk
memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam
penyajiannya, stack bisa memakai array atau linked list.
Adapun definisi-definisi seperti :
Definisi 1: Stack adalah suatu koleksi atau kumpulan item data yang teroganisasi
dalam bentuk urutan linear, yang operasi pemasukan dan penghapusan datanya
dilakukan pada salah satu sisinya.
Definisi 2: Diberikan suatu himpunan yang terurut himpunan sebagai S = {S1, S2,
......., ST}, T pada anggota S merupakan linier order, sehingga stack dari himpunan
tersebut memiliki informasi sebagai berikut:
1. Elemen puncak dari stack dalam himpunan S dikatakan sebagai TOP, sehingga :
TOP[S} = ST ............................................................................(1)
2. Banyaknya elemen stack dalam himpunan S dikatakan sebagai NOEL, sehingga
NOEL = T, dimana himpunan dari S tersebut dapat disusun sebagai :
S = {S1, S2, .........., SNOEL} ..................................................(2)
5
Dari dua definisi tersebut di atas maka suatu stack dapat digambarkan sebagai
berikut :
1. Suatu stack dalam keadaan kosong akan memiliki informasi NOEL(S) = 0 dan
TOP(S)= undefined.
S
2. Untuk stack yang bukan kosong, maka akan memiliki informasi seperti yang
digambarkan di bawah ini dimana informasi yang ada adalah NOEL(S) = 1 dan
TOP(S) = Merah.
S
3. Untuk stack yang berisi lebih dari n jumlah data maka informasi yang ada pada
stack tersebut berisikan NOEL(S) = 2 (jika berisi 2 data) dan TOP(S) = Biru
seperti ditunjukan pada gambar di bawah ini :
S
Elemen-elemen yang berada dalam stack tersebut di atas, memiliki prinsip
dasar dalam pengoperasiannya yaitu prinsip LIFO (Last In First Out) atau yang masuk
paling belakang akan memiliki prioritas untuk keluar paling depan.
6
Suatu stack dapat digambarkan sebagai suatu array (larik) berdimensi satu
yang elemen-elemennya berkisar antara 1 sampai n elemen. Dengan demikian jika
suatu stack didefinisikan dengan n elemen maka dapat dikatakan jumlah maksimum
dari stack atau NOEL(S) nya adalah n, sehingga penambahan elemen stack yang ke
n+1 tidak diperkenankan atau stack tersebut dalam kondisi overflow.
Hal tersebut juga berlaku untuk stack dengan nilai minimum yaitu NOEL(S)
dari stack dalam kondisi 0, jika dilakukan operasi pengambilan elemen atas stack
tersebut akan mengakibatkan stack tersebut dalam kondisi underflow. Dua kondisi
tersebut merupakan dasar dalam merancang suatu aplikasi pemrograman komputer.
2.2 Pendeklarasian Stack
Stack dapat dideklarasikan sebuah record yang mempunyai sebuah array data
untuk menyimpan elemen stack dan sebuah variabel Top untuk menunjuk stack
elemen atas (top element). Deklarasi selengkapnya sebagai berikut:
 Tipestack adalah nama pengenal tipe untuk stack.
 Maks_stack merupakan jumlah meksimum elemen stack.
 Dataadalah array yang digunakan untuk menyimpan data-data stack. Array
yang digunakan disini adalah model array linier. Indeks array dimulai dari s/d
maks_stack.
 Tipedata adalah tipe data dari elemen-elemen stack.
 Top dipakai untuk menunjuka elemen teratas dari stack. Nilai yang diizinkan
adalah 0 s.d. maks-stack. Jika array diakses dari indeks kecil (1) ke arah
indeks besar (maks_stack), maka nilai ini akan bertambah 1 bila ada
penambahan elemen; dan berkurang 1 jika ada penghapusan elemen.
 S adalah nama variabel yang bertipe stack.
Tipestack = record
Data : array[1..maks_stack] of tipe data
Top : 0..maks_stack;
End;
Var S : tipestack;
7
2.3 Skema TraversalPada Stack
Pada stack, jarang sekali dilakukan traversal, karena keunikan Stack justru
pada operasi yang hanya menyangkut elemen TOP. Namun dibutuhkan traversal
misalnya untuk mencetak isi Stack.Pemrosesan traversal yaitu mengolah seluruh
elemen tabel secara sistematik.Skemanya adalah :
Contoh penggunaan skema pada pascal:
- Prosedur memasukkan nilai seluruh elemen tabel.
2.4 Skema Search Pada Stack
Skema search adalah algoritma pencarian yang mirip dengan pencarian berkas.
Pada stack, elemen yang diproses hanyalah elemen pada TOP. Maka hampir tidak
pernah dilakukan search. Penggunaan search pada stack tidak dijamin untuk
menemukan solusi optimal untuk masalah pencarian.
2.5 Operasi dan Fungsi Dasar Pada Stack
Dalam penggunaannya suatu stack memiliki beberapa operasi yang dapat
diterapkan seperti membuat stack, penambahan elemen ke dalam stack, menghapusan
elemen dari dalam stack, dan operasi lain yang berhubungan dengan stack tersebut.
Procedure ProsesTraversal (Var TI:TabInt);
Var
i:integer;
Begin
Inisialisasi; {prosedur persiapan sebelum pemrosesan}
For i:=IdxMin to IdxMax do
Begin
Proses (TI[i]); {proses terhadap elemen saat itu}
End;
Terminasi; {prosedur aksi setelah pemrosesan selesai}
End;
Procedure InputTabInt (Var TI : TabInt);
Var
i : Integer;
Begin
For i := IdxMin to IdxMax do
Begin
Write (‘Elemen ke-‘,i);
Readln (TI[i] );
End;
End;
8
Ada empat operasi dasar yang didefinisikan pada stack, yaitu :
1. CREATE(stack)
2. ISEMPTY(stack)
3. PUSH(elemen,stack)
4. POP(stack)
1. Create
Operasi Create (Stack) digunakan untuk membuat suatu stack baru dengan
nama stack, yang nilai elemen saat stack tersebut dibuat adalah NOEL(S) = 0, TOP(S)
= NULL (tidak terdefinisikan). Operator ini berfungsi untuk membuat sebuah stack
kosong dan didefinisikan bahwa :
NOEL(CREATE(S)) = 0 dan TOP(CREATE(S)) = null
Algoritma Create(S)
Algoritma ini memuat suatu prosedur untuk membuat stack, yang memberikan
kondisi noel dari stack akan bernilai nol dan top dari stack tersebut belum dapat
didefinisikan, sehingga implementasi dari algoritma create stack adalah:
2. IsEmpty
Operasi ini merupakan operasi untuk mencek isi dari suatu stack dalam
keadaan kosong atau berisi. Operasi ini memiliki 2 (dua) kondisi boolean yaitu :
a. True jika stack tersebut kosong atau dapat dikatakan NOEL(S) = 0.
b. False jika stack tersebut tidak dalam kondisi kosong atau dapat dikatakan
NOEL(S) > 0.
Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack
kosong. Operasinya akan bernilai boolean, dengan definisi sebagai berikut :
ISEMPTY(S) = true, jika S adalah stack kosong.
= false, jika S bukan stack kosong.
atau
ISEMPTY(S) = true, jika NOEL(S) = 0.
= false, jika NOEL(S) 0.
Procedure Create(var S : Stack);
Begin
S.Noel := 0; .
End;
Catatan :
ISEMPTY(CREATE(S)) = true
9
Algoritma IsEmpty(S)
Algoritma untuk operasi Isempty memberikan informasi Boolean yaitu kondisi
benar (true) atau salah (False), sehingga pada implementasinya algoritma ini
menggunakan fungsi yang dibuat sendiri.Implementasinya sebagai berikut :
3. Push
Operasi ini merupakan operasi untuk menambahkan satu elemen dengan nilai
E pada puncak suatu stack, sehingga posisi TOP(S) akan bernilai E, penerapan operasi
push pada suatu stack S akan berakibat overflow jika NOEL(S) dari stack tersebut
telah bernilai maksimum. Operator ini berfungsi untuk menambahkan satu elemen ke
dalam stack. Notasi yang digunakan adalah :
PUSH(E,S)
Artinya : menambahkan elemen E ke dalam stack S.
Elemen yang baru masuk ini akan menempati posisi TOP.
Jadi : TOP(PUSH(E,S)) = E.
Akibat dari operasi ini jumlah elemen dalam stack akan bertambah, artinya
NOEL(S) menjadi lebih besar atau stack menjadi tidak kosong.
(ISEMPTY(PUSH(E,S)) = false).
Algoritma Push(S, E)
Dalam merancang algoritma untuk operasi push dimulai dengan melakukan
pengecekan atas isi dari stack tersebut dalam keadaan penuh atau tidak. Kondisi stack
dalam keadaan maksimum akan mengakibatkan overflow pada stack tersebut
sehingga prosedur error trapping perlu didefinisikan untuk mencegah terjadinya
overflow condition tersebut. Implementasi dari algoritma push tersebut adalah :
Function IsEmpty(Var S : Stack) : Boolean;
Begin
IsEmpty
Procedure Push(Var S : Stack; TipeBAru : Eon);
Begin
If S.Noel = NoelStack Then
Stackerror(1)
Else
Begin
S.Noel := S.Noel + 1;
S.Top[S.Noel] := TipeBaru
End;
End;
10
4. Pop
Operasi ini berfungsi untuk menghapus satu elemen dari stack S, sehingga
posisi NOEL(S) akan berkurang satu elemen, dan TOP(S) akan berubah. Operasi pop
dapat menyebabkan kondisi underflow jika suatu stack S yang berada dalam kondisi
minimum dikenakan operasi pop. Operator ini berfungsi untuk mengeluarkan satu
elemen dari dalam stack. Notasinya :POP(S).
Elemen yang keluar dari dalam stack adalah elemen yang berada pada posisi
TOP. Akibat dari operasi ini jumlah elemen stack akan berkurang atau NOEL(S)
berkurang dan elemen pada posisi TOP akan berubah. Operator POP ini tidak dapat
digunakan pada stack kosong, artinya :
POP(CREATE(S)) = error condition
Catatan : TOP(PUSH(E,S)) = E
Algoritma Pop(S)
Operasi terakhir dari stack adalah operasi pop yang berfungsi untuk
mengeluarkan isi dari dalam stack. Seperti halnya operasi push, pada operasi pop
penggunaan error trapping dipakai untuk men-cek kondisi underflow yaitu kondisi
stack kosong yang dikenakan operasi pop. Algoritma dari pop ini adalah :
Penggunaan error trapping untuk operasi push dan pop didefinisikan lebih
lanjut dalam algoritma stackerror yang digunakan untuk menentukan kondisi
overflow atau underflow suatu stack. Adapun algoritma dari error trapping ini adalah:
Procedure Pop(Var S : Stack; Var NilaiStack : Eon);
Begin
If S.Noel = 0 Then
StackError(2)
Else
Begin
NilaiStack := S.Top[s.Noel];
S.Noel := S.Noel -1
End;
End;
Procedure StackError(TingkatanError : Integer);
Begin
Case TingkatanError of
1 : WriteLn(‘Isi Stack sudah penuh... kondisi overflow’);
2 : WriteLn(‘Isi Stack Kosong ... kondisi underflow’)
End;
End;
11
2.6 Deklarasi Stack pada Bahasa Pemrograman (Pascal)
Dalam bahasa pemrograman, untuk menempatkan stack biasanya digunakan
sebuah array. Tetapi perlu diingat di sini bahwa stack dan array adalah dua hal yang
berbeda. Misalkan suatu variabel S adalah sebuah stack dengan 100 elemen.
Diasumsikan elemen S adalah integer dan jumlah elemennya maksimum adalah 100
elemen.
Untuk mendeklarasikan stack dengan menggunakan array, harus
dideklarasikan pula variabel lain yaitu TOP_PTR yang merupakan indeks dari array.
Variabel TOP_PTR ini digunakan untuk menyatakan elemen yang berada pada posisi
TOP dalam stack tersebut.
Selanjutnya gabungan kedua variabel ini diberi nama STACK_STRUCT.
Kemudian didefinisikan bahwa :
NOEL(S)=TOP_PTR
ISEMPTY(S)= TRUE, jika TOP_PTR = 0 dan FALSE, jika TOP_PTR > 0.
Maka bentuk deklarasinya dalam PASCAL adalah :
Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu
prosedur tersendiri, yaitu :
TYPE Stack_Struct = Record
Stack:array[1..100] of integer;
TopPtr : integer;
End;
VAR S : Stack_Struct;
PROCEDURE PUSH(Eon : integer);
Begin
If (S.TopPtr < NoelMax) Then Begin
S.TopPtr := S.TopPtr + 1;
S.Stack [S.TopPtr] := Eon
End
Else Overflow_Condition
End;
PROCEDURE POP(Eoff : integer);
Begin
If (S.TopPtr > 0) Then Begin
Eoff := S.Stack[S.TopPtr];
S.TopPtr := S.TopPtr-1
End
Else Underflow_Condition
End;
12
Catatan :Overflow adalah suatu keadaan di mana kita melakukan operasi PUSH
terhadap stack dalam keadaan penuh. Underflow adalah keadaan di mana kita
melakukan operasi POP terhadap stack kosong. Eon adalah elemen yang
akandimasukkan ke dalam stack dan Eoff adalah elemen yang akan dikeluarkan dari
dalam stack.
Tabel 1. Perbandingan Operator dalam stack dan operator yang dibaca
Operator Nilai operator dalam stack Nilai operator yang dibaca
) 0
( 0 5
+,- 2 1
*,/ 4 3
Berdasarkan tabel tersebut suatu operator yang dibaca dan akan dimasukan ke
dalam stack, terlebih dahulu melalui proses perbandingan nilai dengan operator yang
ada di dalam stack sebelumnya.
Dalam arti kata lain jika nilai dari operator yang berada dalam stack lebih
besar dari nilai operator yang dibaca maka operator yang berada di dalam stack akan
dikeluarkan sampai nilai tersebut sama atau lebih kecil. Implementasi dari
algoritmanya dapat dijabarkan dalam bentuk fungsi berikut ini :
Fungsi IsiDlmstack tersebut di atas merupakan fungsi level operator yang
posisinya berada dalam suatu stack, adapun fungsi untuk menentukan level operator
yang dibaca adalah :
Function IsiDlmStack(Operator:Char):Integer;
Begin
Case Operator Of
‘(‘ : IsiDlmStack := 0;
‘+‘,’-‘ : IsiDlmStack := 2;
‘*‘,’/’ : IsiDlmStack := 4;
End
End;
Function Stackyangdibaca(Operator : Char) : Integer;
Begin
Case Operator Of
‘)‘ : Stackyangbaca := 0;
‘+‘,’-‘ : Stackyangbaca := 1;
‘*‘,’/’ : Stackyangbaca := 3;
‘(‘ : Stackyangbaca := 5
End
End;
13
Setelah fungsi pengecekan dilakukan, proses yang perlu dirancang selanjutnya
adalah membentuk suatu prosedur untuk menyimpan operator yang dibaca ke dalam
suatu susunan array yang implementasinya dibuat sebagai berikut :
2.7 Penggunaan/Aplikasi Stack
Suatu perhitungan aritmatika biasanya berhubungan dengan operand dan
operator.Operand merupakan suatu karakter atau elemen yang nilainya dioperasikan
dengan bantuan suatu operator untuik menghasilkan suatu solusi.
Misalkan jika diberikan suatu ekspresi aritmatika 2*3, maka elemen ‗dua‘ dan
elemen ‗tiga‘ merupakan operand dari ekspresi tersebut dan elemen ‗*‘ merupakan
operator perkalian atas dua operand yang menghasilkan suatu solusi.
Suatu ekspresi aritmatika dapat dibedakan dalam tiga bentuk notasi
perhitungan yaitu :
1) Notasi prefix, jika operator ditempatkan sebelum dua operand.
2) Notasi infix, jika operator ditempatkan diantara dua operand.
3) Notasi postfix, jika operator ditempatkan setelah dua operand.
Dalam penggunaannya di kehidupan sehari-hari, notasi infix merupakan notasi
aritmatika yang paling banyak digunakan untuk mengekspresikan suatu perhitungan
artimatik dibanding dengan dua notasi yang lain, akan tetapi notasi postfix merupakan
notasi yang digunakan oleh mesin kompilasi pada komputer dengan maksud untuk
mempermudah proses pengkodean, sehingga mesin kompilasi membutuhkan stack
untuk proses translasi ekspresi tersebut.
Berdasarkan teori yang diterangkan tersebut di atas, proses konversi infix
menjadi notasi postfix dalam implementasinya membutuhkan stack pada proses
konversinya, adapun proses tersebut memilikiaturan yang digunakan, yaitu :
1) Jika ditemukan simbol kurung buka ―(―, maka operasi push pada stack akan
digunakan untuk menyimpan simbol tersebut ke dalam stack.
Procedure SimpanChar(Ch : Char);
Var Ekspost : TipeEks;
Var Indekspost : TipeIndex);
Begin
Indekspost :=Indekspost + 1;
Ekspost := ch
End;
14
2) Jika ditemukan simbol kurung buka ―)‖, operasi pop digunakan untuk
mengeluarkan operator-operator yang berada di dalam stack.
3) Jika terdapat simbol operator, maka operasi yang dilakukan pada stack terbagi
atas:
a. Jika TOP(S) dari stack tersebut kosong atau berisi simbol ―(― maka
operasi push akan digunakan untuk memasukan operator tersebut pada
posisi di TOP(S).
b. Jika operator yang berada dipuncak stack merupakan elemen yang
memiliki tingkat yang sama atau lebih tinggi maka operasi pop
digunakan untuk mengeluarkan operator tersebut diikuti operasi push
untuk menyimpan operator hasil scanning untai.
c. Jika operator yang berada di puncak stack memiliki tingkat yang lebih
rendah dari operator yang discan, maka operator baru akan langsung
dimasukan ke dalam stack dengan operasi push.
Adapun tingkatan operator yang dilacak menurut urutan tingkat adalah:
Tabel 2. Level Operator dalam Stack
Operator Level Operator
** Tinggi
* atau / Menengah
+ atau - Rendah
2.8Operasi Logika Pada Struktur Data Stack
Seorang ahli matematika ―Jan Lukasiewicz― mengembangkan satu cara
penyusunan ungkapan numeris yang selanjutnya disebut ―Notasi Polish― atau ―Notasi
Prefix‖ yang artinya: operator ditulis sebelum kedua operand yang akan disajikan.
Dalam struktur data yang banyak dipelajari, kita ketahui adanya 3 notasi
operasi yang dilakukan untuk suatu operasi aritmatika, yaitu prefix, infix, dan
postfix.
Sebelum kita kupas mengenai notasi di atas, perlu dipahami terlebih dahulu
indikator yang membentuk terjadinya notasi dalam struktur data.Notasi terbentuk dari
operand dan operator.Operand adalah data atau nilai yang membantu dalam proses
sedangkan operator adalah fungsi yang digunakan dalam proses.
15
Contoh :
A + B * C
2 + 3 * 5
Keterangan :A, B, C, 2, 3, 5 adalah operand , + dan * adalah operator.
Sekarang kita sudah dapat mengetahui indikator yang membentuk suatu notasi.
Selanjutnya kita harus mengetahui level/hirarkhi dari operator seperti:
1. ^ (pangkat).
2. * (kali) atau / (bagi).
3. + (jumlah) atau – (kurang).
Seperti yang telah dibahas di awal, diketahui notasi pada struktur data terdiri atas
3 macam, yaitu:
1. Prefix
Yaitu notasi yang terbentuk atas operator dengan operand, dimana operator
berada didepan operand.
Contoh :
A + B * C (Infix)
Maka notasi prefix-nya adalah +A*BC
Pemecahannya :
A + B * C
Diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *.
Proses dimulai dengan melihat dari hirarkhi operator. Contoh diatas operator
yang tertinggi adalah * kemudian +.
Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C ,prefixnya dengan
menggabungkan operand dan memindahkan operator kedepan dari operand, sehingga
fungsi B * C, notasi prefixnya menjadi *BC. Sehingga hasil sementara dari notasi
prefix adalahA + *BC.
Selanjutnya mencari prefix untuk operator yang berikutnya, yaitu +, cara yang
dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan *BC,
gabungkan operand, sehingga menjadi A*BC, lalu pindahkan operator kedepan
operand, sehingga hasil akhir menjadi + A * B C.
16
Contoh yang lain:
1. A + B – C * D
2 3 1 —–> hirarkhi level
A + B – *CD —–> 1
+AB – *CD —–> 2
– +AB *CD —–> 3
2. A * B ^ C – D
2 1 3 —–> hirarkhi
A*^BC – D —–> 1
*A^BC – D —–> 2
–*A^ BCD —–> 3
3. A + ( B – C ) * D
3 1 2 —–>hirarkhi
A + – BC * D —–> 1 (karena diapit tanda paranthesis atau kurung buka/tutup,( ))
A + *– BCD —–> 2
+ A *– BCD —–> 3
2. Infix
Yaitu notasi yang terbentuk atas operator dengan operand, dimana operator
berada diantara operand.Notasi ini hanya dikenal oleh manusia dan selalu digunakan
dalam perhitungan aritmatika.
Contoh :
A + B * C
( A + B ) * C
A – ( B + C ) * D ^ E
3. Postfix
Yaitu notasi yang terbentuk atas operator dengan operand, dimana operator
berada dibelakang operand.Notasi ini hanya dikenal oleh processor dan dipahami
dalam ALU.
Contoh : A + B * C (Infix)
maka notasi postfix-nya adalah ABC*+
17
Pemecahannya :
A + B * C
Diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses
dimulai dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi
adalah * kemudian +.
Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C ,
Postfixnya dengan menggabungkan operand B dan C menjadi BC lalu
memindahkan operator ke belakang operand C, sehingga fungsi B * C, notasi
postfixnya menjadi BC*.
Sehingga hasil sementara dari notasi postfix adalah:A + BC*
Selanjutnya mencari postfix untuk operator yang berikutnya, yaitu +, cara
yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan
BC*, gabungkan operand tersebut, sehingga menjadi ABC*, lalu pindahkan operator
+ ke belakang operand ABC*, sehingga hasil akhir menjadi :ABC*+
Contoh yang lain:
1. A + B – C * D
2 3 1 —–> hirarkhi level
A + B – CD* —–> 1
AB+ – * CD —–> 2
AB+*CD– —–> 3
2. A * B ^ C – D
2 1 3 —–> hirarkhi
A * BC^ – D —–> 1
ABC^* –D —–> 2
ABC^*D– —–> 3
3. A + ( B – C ) * D
3 1 2 —–>hirarkhi
A + BC– * D —–> 1 (karena diapit tanda paranthesis atau kurung buka/tutup,( ) )
A + BC–D * —–> 2
ABC–D* + —–> 3
18
Contoh lain:
Notasi Infix-Prefix
Cara penyusunan ungkapan yaitu dengan menggunakan notasi infix, yang
artinya operator ditulis diantara 2 operator. Jan Lukasiewiccz mengembangkan suatu
carapenyusunan ungkapan numeris yang disebut prefix, yang artinya operator ditulis
sebelum kedua operand yang akan disajikan.
Contoh :
Proses konversi
dari infix ke prefix :
–
= [ + A B ] * [– C D ]
= * [ + A B ] [– C D ]
= * + A B – C D
Notasi Infix-Postfix
Cara penyusunan ungkapan yaitu dengan menggunakan notasi postfix, yang
artinya operator ditulis sesudah operand.
Contoh :
Proses konversi dari infix ke postfix :
–
= [ 6 2 – ] * [ 5 4 + ]
= [ 6 2 – ] [ 5 4 + ] *
= 6 2 – 5 4 + *
19
2.9 Contoh Aplikasi Stack Pada Pemrograman Pascal
1. Program Pascal Dengan Operasi Stack Pada Nilai
Program Nilai_Stack;
uses wincrt;
const MaxElemen=5;
type Tumpukan =record
isi:array[1..MaxElemen] of integer;
atas: 0..MaxElemen
end;
type isi=array[0..maxelemen] of integer;
const isilama1:isi=(3,7,2,6,4,8);
isibaru1:isi=(4,8,3,6,5,1);
var
Nilailama,Nilaibaru:isi;
T:tumpukan;
{———————————————————————}
Procedure Ganti_NilaiStack(T:tumpukan;Nilailama,Nilaibaru:isi);
var
penuh,habis: boolean;
x,i:integer;
{———————————————————————}
procedure push( var T:tumpukan; var penuh:boolean;x:integer);
begin
if T.atas = maxElemen then penuh:=true
else
begin
penuh :=false;
T.isi[T.atas]:=x;
T.atas:=T.atas+1;
end;
end;
{———————————————————————}
procedure pop(var T:tumpukan;var habis:boolean; var x:integer);
begin
if T.atas =0 then habis:=true
else
begin
habis:=false;
T.atas:=T.atas-1;
x:=T.isi[T.atas];
end;
end;
{———————————————————————}
begin
clrscr;
write('Nilai Lama Sebelum Masuk Tumpukan : ');
for i:=0 to maxelemen do
write(isilama1[i]);
writeln;
write('Nilai Baru Sebelum Masuk Tumpukan : ');
for i:=0 to maxelemen do
write(isibaru1[i]);
20
writeln;
penuh:=false;
while penuh=false do
begin
push(T,penuh,Nilailama[T.atas]);
end;
write('Isi Tumpukan Lama : ');
while T.atas<>0 do
begin
pop(T,habis,x);
write(x);
end;
writeln;penuh:=false;
while penuh=false do
begin
push(T,penuh,Nilaibaru[T.atas]);
end;
write('Isi Tumpukan Baru : ');
while T.atas<>0 do
begin
pop(T,habis,x);
write(x);
end;
end;
{———————————————————————}
begin
Nilailama:=isilama1;Nilaibaru:=isibaru1;
Ganti_NilaiStack(T,Nilailama,Nilaibaru);
readkey;
end.
Output Program:
21
2. Program Pascal Membalik Sebuah Kalimat
Program Membalik_Kalimat;
Uses wincrt;
Const Elemen = 255;
Type S255 = String[Elemen];
Tumpukan = record
isi : s255;
atas : 0..elemen
end;
Var
T : Tumpukan;
I : Integer;
Kalimat : S255;
Procedure Awalan(Var T : Tumpukan);
Begin
T.Atas := 0
End;
Procedure PUSH (Var T : Tumpukan; X : char);
Begin
T.Atas := T.Atas + 1;
T.Isi[T.Atas] := X
End;
Function POP (Var T : Tumpukan) : char;
Begin
POP := T.Isi[T.Atas];
T.Atas := T.Atas - 1;
End;
{Program Utama}
Begin
clrscr;
Awalan(T);
write ('Masukan sembarang kalimat : ');
ReadLn (Kalimat);
WriteLn;
{ mempush kalimat ke dalam tumpukan}
For I := 1 to length(Kalimat) do
PUSH(T, Kalimat[I]);
{mempop isi tumpukan sehingga diperoleh kalimat yang dibaca terbalik}
For I := 1 to length(Kalimat) do
write(POP(T));
WriteLn;
End.
Output Program :
22
3. Program Pascal Membuat animasi STACK
Program AnimasiStack;
Uses wincrt;
const
max = 10;
var
top,i : byte;
pil,tem,E : char;
stack : array [1..max] of char;
procedure pushanim;
begin
for i :=1 to 18 do
begin
gotoxy(23+i,7); write(tem);
{Delay(30);}
gotoxy(23,7); clreol;
end;
for i:=1 to 14-top do
begin
{delay(30);}
gotoxy(41,6+i); write(' ');
gotoxy(41,7+i); write(tem);
end;
end;
procedure popanim(tem:char);
begin
for i:=1 to 14-top do
begin
{delay(30);}
gotoxy(41,22-i-top); write(' ');
gotoxy(41,21-i-top); write(tem);
end;
for i:=1 to 19 do
begin
gotoxy(40+i,7); write(tem);
{delay(30);}
gotoxy(16,7); clreol;
end;
end;
procedure push(e:char);
begin
inc(top);
stack[top] :=e;
pushanim;
end;
procedure pop(e:char);
begin
if top<> 0 then
begin
E:=stack[top];popanim(e);
dec(top);
end else
begin
gotoxy(1,7); write('stack telah kosong');
readkey;
gotoxy(1,7); clreol;
end;
end;
begin
clrscr;
23
writeln('ANIMASI STACK');
writeln('1. PUSH');
writeln('2. POP');
writeln('3. QUIT');
writeln('Pilihan anda[1/2/3] = ');
gotoxy(37,10);write(' /');
for i:=1 to 11 do
begin
gotoxy(38,10+i);
if i=11 then write('|_____|')else write
('| |');
end;
top := 0;
repeat
gotoxy(23,5);clreol;
pil := readkey;write(pil);
if pil ='1' then
begin
if top<> max then
begin
gotoxy(1,7);write('Masukkan satu Huruf = ');
tem := readkey;write(tem);
push(tem);
gotoxy(1,7);clreol;
end else
begin
gotoxy(1,7);write('Stack sudah penuh');
readkey;
gotoxy(1,7);clreol;
end;
end else
if pil='2' then pop(tem);
until pil='3';
donewincrt;
end.
Output Program:
24
4.Program Pascal Nilai Ganjil-Genap
program tigastack;
uses wincrt;
type tumpukan = record
isi : array[1..25] of byte;
top : 0..25;
end;
var t1,t2,t3 : tumpukan;
x,n,angka,bantu : byte;
procedure tumpuk(var t : tumpukan;angka : byte);
begin
inc(t.top);
t.isi[t.top] := angka;
end;
procedure keluarkan(var t : tumpukan;var angka : byte);
begin
angka := t.isi[t.top];
dec(t.top);
end;
{procedure atur(var t : tumpukan; angka : byte);
begin
repeat
keluarkan(t,bantu);
tumpuk(t3,bantu);
until (t.isi[t.top] > angka) or (t.top = 0);
tumpuk(t,angka);
repeat
keluarkan(t3,bantu);
tumpuk(t,bantu);
until t3.top = 0;
end; }
procedure cetak(t : tumpukan);
begin
repeat
keluarkan(t,angka);
write(angka:3);
until t.top = 0;
end;
begin
t1.top := 0; t2.top := 0; t3.top := 0;
repeat
clrscr;
writeln('PROGRAM APLIKASI STACK(tumpukan data)':50);
writeln;
write('Banyaknya angka acak ?? [5 sampai 25] : ');readln(n);
until n in[5..25];
for x := 1 to n do
begin
write('Angka ke ',x,' : ');readln(angka);
if angka mod 2 = 0 then
tumpuk(t1,angka)
else
tumpuk(t2,angka);
end;
repeat
25
keluarkan(t1,angka);
if t3.top = 0 then
tumpuk(t3,angka)
else
begin
if angka > t3.isi[t3.top] then
tumpuk(t3,angka)
else
begin
repeat
keluarkan(t3,bantu);
tumpuk(t2,bantu);
until (t3.isi[t3.top] < angka) or (t3.top = 0);
tumpuk(t3,angka);
repeat
keluarkan(t2,bantu);
tumpuk(t3,bantu);
until t2.isi[t2.top] mod 2 = 1;
end;
end;
until t1.top=0;
repeat
keluarkan(t3,angka);
tumpuk(t1,angka);
until t3.top = 0;
writeln;
write('Angka genap = ');
if t1.top = 0 then
write('Tidak ada angka genap !')
else
cetak(t1);
writeln;
write('Angka ganjil = ');
if t2.top = 0 then
write('Tidak ada angka ganjil !')
else
cetak(t2);
readkey;
donewincrt;
end.
Output Program :
26
BAB III
PENUTUP
4.1 Kesimpulan
Stack adalah suatu koleksi atau kumpulan item data yang teroganisasi dalam
bentuk urutan linear, yang operasi pemasukan dan penghapusan datanya dilakukan
pada salah satu sisinya.Pada stack, jarang sekali dilakukan traversal, karena keunikan
Stack justru pada operasi yang hanya menyangkut elemen TOP. Namun dibutuhkan
traversal misalnya untuk mencetak isi Stack.
Pada stack, elemen yang diproses hanyalah elemen pada TOP. Maka hampir
tidak pernah dilakukan search.
Operasi-operasi pada Stack :
1) Create(Stack)
Operasi Create(Stack) digunakan untuk membuat suatu stack baru dengan
nama stack, yang nilai elemen saat stack tersebut dibuat adalah NOEL(S) = 0,
TOP(S) = NULL (tidak terdefinisikan).
2) IsEmpty(Stack)
Operasi ini merupakan operasi untuk mencek isi dari suatu stack dalam
keadaan kosong atau berisi.
Operasi ini memiliki 2 (dua) kondisi boolean yaitu :
1) True jika stack tersebut kosong atau dapat dikatakan NOEL(S) = 0.
2) False jika stack tersebut tidak dalam kondisi kosong atau dapat
dikatakan NOEL(S) > 0.
3) Push(Stack, Elemen)
Operasi ini merupakan operasi untuk menambahkan satu elemen dengan nilai
X pada puncak suatu stack, sehingga posisi TOP(S) akan bernilai X,
penerapan operasi push pasa suatu stack S akan berakibat overflow jika
NOEL(S) dari stack tersebut telah bernilai maksimum.
4) Pop(Stack)
Operasi ini berfungsi untuk menghapus satu elemen dari stack S, sehingga
posisi NOEL(S) akan berkurang satu elemen, dan TOP(S) akan berubah.
27
Operasi pop dapat menyebabkan kondisi underflow jika suatu stack S yang
berada dalam kondisi minimum dikenakan operasi pop.
4.2 Saran
Penggunaan stack pada struktur data sangat bermanfaat untuk para pemrogram
untuk melakukan suatu pemakain dalam informatika misalnya untuk meresenpetasi
pemanggilan prosedur, perhitungan ekspresi aritmatika, rekursifitas, backtracking.
Gunakan stack pada program yang operasinya selalu dilakukan pada elemen yang
paling atas.
28
DAFTAR PUSTAKA
M. Shalahuddin, Rosa A.S. 2010. Modul Pembelajaran Struktur Data.Penerbit:
Modula. Bandung.
Marcus, Zakaria, Teddy.Prijono,Agus.Konsep dan Implementasi Struktur Data.
Penerbit: Informatika. Bandung.
Dewa. 2009. Struktur Data – Pengertian Stack. http://dewa18.wordpress.com/
2009/10/28/struktur-data-pengertian-stack/. Diakses pada 30 Mei
2013, Pukul 10.23 WIB.
Hastuti, Nor Fitriana. 2009.Program Implementasi Stack dalam
Pascal.http://terminaltechno.blog.uns.ac.id/2009/11/07/program-
implementasi-stack-dalam-pascal/.Diakses pada 30 Mei2013, Pukul
10.37 WIB.
Hendradhy, Oke. 2008.Aplikasi Stack Pada Struktur Data Untuk Mengkonversikan
Notasi Infix Menjadi Notasi Postfix.http://mugi.or.id/blogs/oke/
archive/2008/08/27/aplikasi-stack-pada-struktur-data-untuk-
mengkonversikan-notasi-infix-menjadi-notasi-postfix.aspx. Diakses
pada 30 Mei 2013, Pukul 11.09 WIB.

Contenu connexe

Tendances

Materi Data Mining - C4.5
Materi Data Mining - C4.5Materi Data Mining - C4.5
Materi Data Mining - C4.5dedidarwis
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorialSiti Khotijah
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Miningdedidarwis
 
Pertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logikaPertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logikaBuhori Muslim
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )istiqlal
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatikasaid zulhelmi
 
Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Nerossi Jonathan
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAri Septiawan
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01KuliahKita
 
INTEGRAL menggunakan MAPLE
INTEGRAL menggunakan MAPLEINTEGRAL menggunakan MAPLE
INTEGRAL menggunakan MAPLEDyas Arientiyya
 
Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Kelinci Coklat
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksNila Aulia
 
Linked List dalam Struktur Data
Linked List dalam Struktur DataLinked List dalam Struktur Data
Linked List dalam Struktur DataFajar Sany
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 

Tendances (20)

Materi Data Mining - C4.5
Materi Data Mining - C4.5Materi Data Mining - C4.5
Materi Data Mining - C4.5
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
Pertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logikaPertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logika
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
 
Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)
 
2. galat
2. galat2. galat
2. galat
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
INTEGRAL menggunakan MAPLE
INTEGRAL menggunakan MAPLEINTEGRAL menggunakan MAPLE
INTEGRAL menggunakan MAPLE
 
Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Linked List dalam Struktur Data
Linked List dalam Struktur DataLinked List dalam Struktur Data
Linked List dalam Struktur Data
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
Latihan soal struktur data
Latihan soal struktur dataLatihan soal struktur data
Latihan soal struktur data
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 

En vedette

Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan biedoen
 
Makalah kelompok Siap Presentasi Struktur Data
Makalah kelompok Siap Presentasi Struktur DataMakalah kelompok Siap Presentasi Struktur Data
Makalah kelompok Siap Presentasi Struktur DataBina Sarana Informatika
 
Makalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMakalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMuhammad Iqbal
 
Sd bab 1 (pengantar struktur data)
Sd bab 1 (pengantar struktur data)Sd bab 1 (pengantar struktur data)
Sd bab 1 (pengantar struktur data)Nm Aditya Danger
 
Tugas struktur data
Tugas struktur dataTugas struktur data
Tugas struktur dataDevandy Enda
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanGeorgius Rinaldo
 
Makalah etika profesi depandi enda
Makalah etika profesi   depandi endaMakalah etika profesi   depandi enda
Makalah etika profesi depandi endaDevandy Enda
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritmaChusnul Khotimah
 
Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++Georgius Rinaldo
 
Tugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputerTugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputerAsep Jaenudin
 
Program Pengurutan (Sorting) dan Pencarian (Searching) Data
Program Pengurutan  (Sorting) dan Pencarian  (Searching) DataProgram Pengurutan  (Sorting) dan Pencarian  (Searching) Data
Program Pengurutan (Sorting) dan Pencarian (Searching) DataSimon Patabang
 
1 Pendahuluan Struktur Data
1 Pendahuluan Struktur Data1 Pendahuluan Struktur Data
1 Pendahuluan Struktur DataSimon Patabang
 
Array dalam Struktur Data
Array dalam Struktur DataArray dalam Struktur Data
Array dalam Struktur DataFajar Sany
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan dataMakalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan dataAli Must Can
 
Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...
Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...
Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...Rizka Putri Silvyaningrum
 

En vedette (20)

Laporan tugas struktur data
Laporan tugas struktur dataLaporan tugas struktur data
Laporan tugas struktur data
 
struktur data
struktur datastruktur data
struktur data
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Makalah kelompok Siap Presentasi Struktur Data
Makalah kelompok Siap Presentasi Struktur DataMakalah kelompok Siap Presentasi Struktur Data
Makalah kelompok Siap Presentasi Struktur Data
 
Makalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMakalah Kunjungan Binary Tree
Makalah Kunjungan Binary Tree
 
Stack
StackStack
Stack
 
Sd bab 1 (pengantar struktur data)
Sd bab 1 (pengantar struktur data)Sd bab 1 (pengantar struktur data)
Sd bab 1 (pengantar struktur data)
 
Tugas struktur data
Tugas struktur dataTugas struktur data
Tugas struktur data
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Makalah etika profesi depandi enda
Makalah etika profesi   depandi endaMakalah etika profesi   depandi enda
Makalah etika profesi depandi enda
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritma
 
Karya ilmiah by salsa
Karya ilmiah by salsaKarya ilmiah by salsa
Karya ilmiah by salsa
 
Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++
 
Tugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputerTugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputer
 
Program Pengurutan (Sorting) dan Pencarian (Searching) Data
Program Pengurutan  (Sorting) dan Pencarian  (Searching) DataProgram Pengurutan  (Sorting) dan Pencarian  (Searching) Data
Program Pengurutan (Sorting) dan Pencarian (Searching) Data
 
1 Pendahuluan Struktur Data
1 Pendahuluan Struktur Data1 Pendahuluan Struktur Data
1 Pendahuluan Struktur Data
 
Modul struktur data
Modul struktur dataModul struktur data
Modul struktur data
 
Array dalam Struktur Data
Array dalam Struktur DataArray dalam Struktur Data
Array dalam Struktur Data
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan dataMakalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan data
 
Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...
Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...
Pendahuluan, pembahasan, penutup dan daftar pustaka Makalah Algoritma dan Pem...
 

Similaire à STRUKDATA

struct & stack
struct & stackstruct & stack
struct & stackM Satrio
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viiiDevi Apriansyah
 
Fathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur dataFathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur dataSTMIK
 
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docxMAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docxDikicandra6
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Setia Juli Irzal Ismail
 
Rangkuman Algoritma Pemerograman 2
Rangkuman Algoritma Pemerograman 2Rangkuman Algoritma Pemerograman 2
Rangkuman Algoritma Pemerograman 2Sukron Makmun
 
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docxMAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docxDikicandra6
 
Modul praktikum ekonometrika
Modul praktikum ekonometrikaModul praktikum ekonometrika
Modul praktikum ekonometrikaRezzy Caraka
 
Makalah Proyek Rangkaian Flip-Flop
Makalah Proyek Rangkaian Flip-FlopMakalah Proyek Rangkaian Flip-Flop
Makalah Proyek Rangkaian Flip-FlopAlicya Putri
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1asep lufian
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul viiDevi Apriansyah
 
Excell dan access
Excell dan accessExcell dan access
Excell dan accessRizki Mala
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptsosbudbappeda41
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganssuser89dc1c
 

Similaire à STRUKDATA (20)

STACK .pdf
STACK .pdfSTACK .pdf
STACK .pdf
 
struct & stack
struct & stackstruct & stack
struct & stack
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 
Fathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur dataFathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur data
 
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docxMAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
MAKALAH ARRAY BAHASA C (DIKI CANDRA) (2).docx
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)
 
teori Struktur data full
teori Struktur data fullteori Struktur data full
teori Struktur data full
 
Makalah Matriks dalam Struktur Data
Makalah Matriks dalam Struktur DataMakalah Matriks dalam Struktur Data
Makalah Matriks dalam Struktur Data
 
Rangkuman Algoritma Pemerograman 2
Rangkuman Algoritma Pemerograman 2Rangkuman Algoritma Pemerograman 2
Rangkuman Algoritma Pemerograman 2
 
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docxMAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
 
Myicourse
MyicourseMyicourse
Myicourse
 
Modul praktikum ekonometrika
Modul praktikum ekonometrikaModul praktikum ekonometrika
Modul praktikum ekonometrika
 
Makalah Proyek Rangkaian Flip-Flop
Makalah Proyek Rangkaian Flip-FlopMakalah Proyek Rangkaian Flip-Flop
Makalah Proyek Rangkaian Flip-Flop
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
Prak strukturdata
Prak strukturdataPrak strukturdata
Prak strukturdata
 
Excell dan access
Excell dan accessExcell dan access
Excell dan access
 
Excell dan access
Excell dan accessExcell dan access
Excell dan access
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.ppt
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembangan
 

Plus de Asep Jaenudin

MANAJEMEN DISK Mata Kuliah Sistem Operasi
MANAJEMEN DISK Mata Kuliah Sistem OperasiMANAJEMEN DISK Mata Kuliah Sistem Operasi
MANAJEMEN DISK Mata Kuliah Sistem OperasiAsep Jaenudin
 
Tugas mandiri bahasa indonesia
Tugas mandiri bahasa indonesiaTugas mandiri bahasa indonesia
Tugas mandiri bahasa indonesiaAsep Jaenudin
 
Tugas mandiri konsep sistem informasi
Tugas mandiri  konsep sistem informasiTugas mandiri  konsep sistem informasi
Tugas mandiri konsep sistem informasiAsep Jaenudin
 
Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...
Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...
Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...Asep Jaenudin
 
Tugas mandiri aljabar linear & matriks
Tugas mandiri aljabar linear & matriksTugas mandiri aljabar linear & matriks
Tugas mandiri aljabar linear & matriksAsep Jaenudin
 
Tugas mandiri bahasa inggris
Tugas mandiri bahasa inggrisTugas mandiri bahasa inggris
Tugas mandiri bahasa inggrisAsep Jaenudin
 
Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...
Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...
Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...Asep Jaenudin
 

Plus de Asep Jaenudin (8)

MANAJEMEN DISK Mata Kuliah Sistem Operasi
MANAJEMEN DISK Mata Kuliah Sistem OperasiMANAJEMEN DISK Mata Kuliah Sistem Operasi
MANAJEMEN DISK Mata Kuliah Sistem Operasi
 
Tugas mandiri agama
Tugas mandiri agamaTugas mandiri agama
Tugas mandiri agama
 
Tugas mandiri bahasa indonesia
Tugas mandiri bahasa indonesiaTugas mandiri bahasa indonesia
Tugas mandiri bahasa indonesia
 
Tugas mandiri konsep sistem informasi
Tugas mandiri  konsep sistem informasiTugas mandiri  konsep sistem informasi
Tugas mandiri konsep sistem informasi
 
Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...
Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...
Analisis Jurnal Ilmiah - Presentasi tugas mandiri arsitektur dan organisasi k...
 
Tugas mandiri aljabar linear & matriks
Tugas mandiri aljabar linear & matriksTugas mandiri aljabar linear & matriks
Tugas mandiri aljabar linear & matriks
 
Tugas mandiri bahasa inggris
Tugas mandiri bahasa inggrisTugas mandiri bahasa inggris
Tugas mandiri bahasa inggris
 
Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...
Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...
Analisis Dampak Penerapan Sistem Kerja Lembur (overtime) Terhadap karyawan Ol...
 

Dernier

CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...asepsaefudin2009
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfbibizaenab
 
Dasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikDasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikThomasAntonWibowo
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptxMateri IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptxmuhammadkausar1201
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTIndraAdm
 
Latsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSLatsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSdheaprs
 
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxPPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxssuser8905b3
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptxPPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptxSaefAhmad
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 

Dernier (20)

CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ika
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
 
Dasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikDasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolik
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptxMateri IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UT
 
Latsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSLatsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNS
 
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxPPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptxPPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 

STRUKDATA

  • 1. TUGAS MANDIRI STRUKTUR DATA DENGAN OPERASI STACK (TUMPUKAN) MATA KULIAH : STRUKTUR DATA PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PUTERA BATAM 2013 Nama : Asep Jaenudin NPM : 120210034 Kode kelas : 122-IF211-M5 Dosen : Ganda Sirait, S.Si., M.SI.
  • 2.
  • 3. i KATA PENGANTAR Segala puji dan syukur penyusun panjatkan kehadirat Allah SWT yang telah menganugerahkan rahmat, karunia serta ridha-Nya, sehingga penyusun dapat menyelesaikan makalah Tugas mandiritentang ”STRUKTUR DATA DENGAN OPERASI STACK (TUMPUKAN)”.Makalah Tugas mandiriini disusun sebagai salah satu tugas pada mata kuliah Struktur Data. Dalam penyusunan makalah ini, penyusun telah banyak menerima bimbingan dan saran-saran dari berbagai pihak. Maka pada kesempatan ini penyusuningin mengucapkan terima kasih yang setulusnya kepada: 1. BapakGanda Sirait, selaku Dosen mata kuliah Struktur Datadi Universitas Putera Batam yang telah banyak memberikan penjelasan teori yang berkaitan dengan tugas makalah ini. 2. Rekan-rekan serta semua pihak yang tidak dapat penyusun sebutkan satu persatu yang telah membantu dalam pembuatan makalah ini. Akhirnya penyusun berharap makalah ini dapat berguna dan dapat dipergunakan sebagaimana mestinya. Penyusun mengharapkan kritik dan saran untuk kemajuan di masa-masa mendatang. Atas perhatiannya penyusunucapkan terima kasih. Batam, 3 Juni 2013 Penyusun
  • 4. ii DAFTAR ISI KATA PENGANTAR......................................................................................... i DAFTAR ISI........................................................................................................ ii BAB I. PENDAHULUAN................................................................................... 1 1.1 Latar Belakang Masalah ........................................................................... 1 1.2 Rumusan Masalah..................................................................................... 2 1.3Tujuan dan Manfa‘at Penyusunan.............................................................. 2 BAB II. PEMBAHASAN.................................................................................... 3 2.1 PengertiandariStack .................................................................................. 3 2.2Pendeklarasian Stack ................................................................................. 6 2.3Skema Traversal Pada Stack...................................................................... 7 2.4Skema Search Pada Stack. ......................................................................... 7 2.5Operasi Dan FungsiPada Stack.................................................................. 7 2.6Deklarasi Stack Pada Bahasa Pemrograman.............................................. 11 2.7Penggunaan/Aplikasi Stack........................................................................ 13 2.8Operasi Logika Pada Struktur Data Stack ................................................. 14 2.9Aplikasi Stack Pada Pemrograman Pascal................................................. 19 BAB III. PENUTUP............................................................................................ 25 3.1 Kesimpulan............................................................................................... 25 3.2 Saran ........................................................................................................ 26 DAFTAR PUSTAKA.......................................................................................... 27
  • 5. 1 BAB I PENDAHULUAN 1.1 Latar Belakang Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadi program secara keseluruhan lebih efisien dan sederhana seperti stack merupakan bagian dari struktur data yang dikategorikan ke dalam bentuk linier data, dimana operasi pemasukan maupun pengeluaran data selalu dilakukan pada salah satu sisinya. Dalam dunia komputer, penggunaan stack (tumpukan) merupakan suatu hal yang umum digunakan seperti untuk penentuan alamat memory, penempatan ruang data dan aplikasi lain. Stack bersifat LIFO (Last In First Out) dan benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack itu. Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Pada stack jarang sekali dilakukan operasi traversal, karena keunikan stack justru pada operasi yang hanya menyangkut elemen TOP (atas). Struktur ini sering dipakai dalam informatika misalnya untuk merepresentasikan pemanggilan prosedur, perhitungan ekspresi aritmatika, rekursifitas, dan backtracking. Satu hal yang perlu diingat adalah bahwa didalam suatu tumpukan dapat menambah (menyisipkan) data dan mengambil (menghapus) data lewat ujung yang sama yang disebut sebagai ujung atas tumpukan. Penyajian stack bisa menggunakan array, namun kurang tepat. Array bisa digunakan kalau elemen stack tidak melebihi batas maksimum. Tipe yang bisa digunakan adalah record. Manipulasi dengan menggunakan record mempunyai dua medan, yaitu medan penyimpanan elemen tumpukan dan medan pencatat posisi ujung atas tumpukan. Stack dapat diimplementasikan sebagai representasi berkait atau kontinyu (dengan tabel fix). ―TOP― merupakan pintu untuk keluar masuknya elemen – elemen stack.
  • 6. 2 1.2 Rumusan Masalah Berdasarkan latar belakang tadi, maka penyusun menemukan beberapa permasalahan yang kiranya akan menjadi bahasan pada penyusunan makalah ini, diantaranya yaitu : 1. Apa pengertian dari stack pada struktur data? 2. Bagaimana pendeklarasian Stack? 3.Bagaimana skema traversal dari stack? 4. Bagaimana skema search dari stack? 5.Apa saja operasi-operasi dan fungsi dasar pada stack? 6. bagaimanadeklarasi stack pada Bahasa Pemrograman? 7. Bagaimana penggunaan/aplikasi dari stack? 8. Bagaimana operasi logika pada Struktur Data stack? 9. Bagaimana aplikasi Stack pada pemrograman pascal? 1.3 Tujuan dan Manfaat Penyusunan Tujuan makalah ini adalah untuk mengetahui lebih jauh tentang penggunaan operasi stack dalam struktur data. Sehingga tentunya akan dapat memberikan sebuah manfaat bagi diri kita maupun orang lain. Dengan penyusunan makalah ini, semoga ada manfaat yang dapat kita rasakan, terutama bagi rekan-rekan yang belajar tentang struktur data dan bagaimana implementasi dari struktur data tersebut dalam suatu aplikasi sederhana.
  • 7. 3 BAB II PEMBAHASAN 2.1 Pengertian Stack Stack (tumpukan) dapat dikatakan sebagai list yang operasi penghapusan dan pemyisipan elemennya dilakukan disatu ujung. Dalam kehidupan sehari-hari, terdapat banyak kejadian yang mempunyai sifat seperti stack, salah satunya adalah ceritadibawah ini: Perhatikan sebuah tumpukian piring disebuah warung makan.Piring-piring tersebut tersusun rapat dari atas ke bawah(membentuk barisan berurutan). Setiap kali ada pembeli datang, maka piring yang paling atas akan diambil(menghapus elemen) yang berarti mengurangi jumlah piring dalam tumpukan. Bila tumpukan itu sudah habis atau tinggal sedikitmaka pegawai warung akan menambahkan piring lain yang masih bersih (menambah elemen) piring yang paling terakhir diletakkan pasti akan terletak ditumpukan paling atas dan piring yang terletak paling atas dalam tumpukan itu pasti merupakan tumpukan piring yang terakhir kali dimasukkan. Kesimpulannya adalah penambahan dan penghapusan elemen hanya dapat dilakukan diujung atas tumpukan piring. Proses seperti itu biasa disebut Last In First Out(LIFO). Secara formal sebuah stack bertipe T didefinisikan sebagai sebuah barisan berhingga atas elemen-elemen bertipe T, bersama-sama dengan operasinya berikut: 1) Inisiasi stack menjadi kosong. 2) Mencari tahu status stack kosong atau tidak. 3) Mencari tahu stack penuh atau tidak. 4) Mencari panjang stack(jumlah elemen stack). 5) Memasukkan elemen baru pada stack, yaitu top stack jika stack tidak penuh. 6) Jika stack tidak kosong, mengambil elemen teratas(top stack). Stack pada Struktur Data dapat diilustrasikan dengan dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari N kotak.
  • 8. 4 Gambar 1. Ilustrasi Stack 1 Gambar 2. Ilustrasi Stack 2 Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push, dan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list. Adapun definisi-definisi seperti : Definisi 1: Stack adalah suatu koleksi atau kumpulan item data yang teroganisasi dalam bentuk urutan linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu sisinya. Definisi 2: Diberikan suatu himpunan yang terurut himpunan sebagai S = {S1, S2, ......., ST}, T pada anggota S merupakan linier order, sehingga stack dari himpunan tersebut memiliki informasi sebagai berikut: 1. Elemen puncak dari stack dalam himpunan S dikatakan sebagai TOP, sehingga : TOP[S} = ST ............................................................................(1) 2. Banyaknya elemen stack dalam himpunan S dikatakan sebagai NOEL, sehingga NOEL = T, dimana himpunan dari S tersebut dapat disusun sebagai : S = {S1, S2, .........., SNOEL} ..................................................(2)
  • 9. 5 Dari dua definisi tersebut di atas maka suatu stack dapat digambarkan sebagai berikut : 1. Suatu stack dalam keadaan kosong akan memiliki informasi NOEL(S) = 0 dan TOP(S)= undefined. S 2. Untuk stack yang bukan kosong, maka akan memiliki informasi seperti yang digambarkan di bawah ini dimana informasi yang ada adalah NOEL(S) = 1 dan TOP(S) = Merah. S 3. Untuk stack yang berisi lebih dari n jumlah data maka informasi yang ada pada stack tersebut berisikan NOEL(S) = 2 (jika berisi 2 data) dan TOP(S) = Biru seperti ditunjukan pada gambar di bawah ini : S Elemen-elemen yang berada dalam stack tersebut di atas, memiliki prinsip dasar dalam pengoperasiannya yaitu prinsip LIFO (Last In First Out) atau yang masuk paling belakang akan memiliki prioritas untuk keluar paling depan.
  • 10. 6 Suatu stack dapat digambarkan sebagai suatu array (larik) berdimensi satu yang elemen-elemennya berkisar antara 1 sampai n elemen. Dengan demikian jika suatu stack didefinisikan dengan n elemen maka dapat dikatakan jumlah maksimum dari stack atau NOEL(S) nya adalah n, sehingga penambahan elemen stack yang ke n+1 tidak diperkenankan atau stack tersebut dalam kondisi overflow. Hal tersebut juga berlaku untuk stack dengan nilai minimum yaitu NOEL(S) dari stack dalam kondisi 0, jika dilakukan operasi pengambilan elemen atas stack tersebut akan mengakibatkan stack tersebut dalam kondisi underflow. Dua kondisi tersebut merupakan dasar dalam merancang suatu aplikasi pemrograman komputer. 2.2 Pendeklarasian Stack Stack dapat dideklarasikan sebuah record yang mempunyai sebuah array data untuk menyimpan elemen stack dan sebuah variabel Top untuk menunjuk stack elemen atas (top element). Deklarasi selengkapnya sebagai berikut:  Tipestack adalah nama pengenal tipe untuk stack.  Maks_stack merupakan jumlah meksimum elemen stack.  Dataadalah array yang digunakan untuk menyimpan data-data stack. Array yang digunakan disini adalah model array linier. Indeks array dimulai dari s/d maks_stack.  Tipedata adalah tipe data dari elemen-elemen stack.  Top dipakai untuk menunjuka elemen teratas dari stack. Nilai yang diizinkan adalah 0 s.d. maks-stack. Jika array diakses dari indeks kecil (1) ke arah indeks besar (maks_stack), maka nilai ini akan bertambah 1 bila ada penambahan elemen; dan berkurang 1 jika ada penghapusan elemen.  S adalah nama variabel yang bertipe stack. Tipestack = record Data : array[1..maks_stack] of tipe data Top : 0..maks_stack; End; Var S : tipestack;
  • 11. 7 2.3 Skema TraversalPada Stack Pada stack, jarang sekali dilakukan traversal, karena keunikan Stack justru pada operasi yang hanya menyangkut elemen TOP. Namun dibutuhkan traversal misalnya untuk mencetak isi Stack.Pemrosesan traversal yaitu mengolah seluruh elemen tabel secara sistematik.Skemanya adalah : Contoh penggunaan skema pada pascal: - Prosedur memasukkan nilai seluruh elemen tabel. 2.4 Skema Search Pada Stack Skema search adalah algoritma pencarian yang mirip dengan pencarian berkas. Pada stack, elemen yang diproses hanyalah elemen pada TOP. Maka hampir tidak pernah dilakukan search. Penggunaan search pada stack tidak dijamin untuk menemukan solusi optimal untuk masalah pencarian. 2.5 Operasi dan Fungsi Dasar Pada Stack Dalam penggunaannya suatu stack memiliki beberapa operasi yang dapat diterapkan seperti membuat stack, penambahan elemen ke dalam stack, menghapusan elemen dari dalam stack, dan operasi lain yang berhubungan dengan stack tersebut. Procedure ProsesTraversal (Var TI:TabInt); Var i:integer; Begin Inisialisasi; {prosedur persiapan sebelum pemrosesan} For i:=IdxMin to IdxMax do Begin Proses (TI[i]); {proses terhadap elemen saat itu} End; Terminasi; {prosedur aksi setelah pemrosesan selesai} End; Procedure InputTabInt (Var TI : TabInt); Var i : Integer; Begin For i := IdxMin to IdxMax do Begin Write (‘Elemen ke-‘,i); Readln (TI[i] ); End; End;
  • 12. 8 Ada empat operasi dasar yang didefinisikan pada stack, yaitu : 1. CREATE(stack) 2. ISEMPTY(stack) 3. PUSH(elemen,stack) 4. POP(stack) 1. Create Operasi Create (Stack) digunakan untuk membuat suatu stack baru dengan nama stack, yang nilai elemen saat stack tersebut dibuat adalah NOEL(S) = 0, TOP(S) = NULL (tidak terdefinisikan). Operator ini berfungsi untuk membuat sebuah stack kosong dan didefinisikan bahwa : NOEL(CREATE(S)) = 0 dan TOP(CREATE(S)) = null Algoritma Create(S) Algoritma ini memuat suatu prosedur untuk membuat stack, yang memberikan kondisi noel dari stack akan bernilai nol dan top dari stack tersebut belum dapat didefinisikan, sehingga implementasi dari algoritma create stack adalah: 2. IsEmpty Operasi ini merupakan operasi untuk mencek isi dari suatu stack dalam keadaan kosong atau berisi. Operasi ini memiliki 2 (dua) kondisi boolean yaitu : a. True jika stack tersebut kosong atau dapat dikatakan NOEL(S) = 0. b. False jika stack tersebut tidak dalam kondisi kosong atau dapat dikatakan NOEL(S) > 0. Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong. Operasinya akan bernilai boolean, dengan definisi sebagai berikut : ISEMPTY(S) = true, jika S adalah stack kosong. = false, jika S bukan stack kosong. atau ISEMPTY(S) = true, jika NOEL(S) = 0. = false, jika NOEL(S) 0. Procedure Create(var S : Stack); Begin S.Noel := 0; . End; Catatan : ISEMPTY(CREATE(S)) = true
  • 13. 9 Algoritma IsEmpty(S) Algoritma untuk operasi Isempty memberikan informasi Boolean yaitu kondisi benar (true) atau salah (False), sehingga pada implementasinya algoritma ini menggunakan fungsi yang dibuat sendiri.Implementasinya sebagai berikut : 3. Push Operasi ini merupakan operasi untuk menambahkan satu elemen dengan nilai E pada puncak suatu stack, sehingga posisi TOP(S) akan bernilai E, penerapan operasi push pada suatu stack S akan berakibat overflow jika NOEL(S) dari stack tersebut telah bernilai maksimum. Operator ini berfungsi untuk menambahkan satu elemen ke dalam stack. Notasi yang digunakan adalah : PUSH(E,S) Artinya : menambahkan elemen E ke dalam stack S. Elemen yang baru masuk ini akan menempati posisi TOP. Jadi : TOP(PUSH(E,S)) = E. Akibat dari operasi ini jumlah elemen dalam stack akan bertambah, artinya NOEL(S) menjadi lebih besar atau stack menjadi tidak kosong. (ISEMPTY(PUSH(E,S)) = false). Algoritma Push(S, E) Dalam merancang algoritma untuk operasi push dimulai dengan melakukan pengecekan atas isi dari stack tersebut dalam keadaan penuh atau tidak. Kondisi stack dalam keadaan maksimum akan mengakibatkan overflow pada stack tersebut sehingga prosedur error trapping perlu didefinisikan untuk mencegah terjadinya overflow condition tersebut. Implementasi dari algoritma push tersebut adalah : Function IsEmpty(Var S : Stack) : Boolean; Begin IsEmpty Procedure Push(Var S : Stack; TipeBAru : Eon); Begin If S.Noel = NoelStack Then Stackerror(1) Else Begin S.Noel := S.Noel + 1; S.Top[S.Noel] := TipeBaru End; End;
  • 14. 10 4. Pop Operasi ini berfungsi untuk menghapus satu elemen dari stack S, sehingga posisi NOEL(S) akan berkurang satu elemen, dan TOP(S) akan berubah. Operasi pop dapat menyebabkan kondisi underflow jika suatu stack S yang berada dalam kondisi minimum dikenakan operasi pop. Operator ini berfungsi untuk mengeluarkan satu elemen dari dalam stack. Notasinya :POP(S). Elemen yang keluar dari dalam stack adalah elemen yang berada pada posisi TOP. Akibat dari operasi ini jumlah elemen stack akan berkurang atau NOEL(S) berkurang dan elemen pada posisi TOP akan berubah. Operator POP ini tidak dapat digunakan pada stack kosong, artinya : POP(CREATE(S)) = error condition Catatan : TOP(PUSH(E,S)) = E Algoritma Pop(S) Operasi terakhir dari stack adalah operasi pop yang berfungsi untuk mengeluarkan isi dari dalam stack. Seperti halnya operasi push, pada operasi pop penggunaan error trapping dipakai untuk men-cek kondisi underflow yaitu kondisi stack kosong yang dikenakan operasi pop. Algoritma dari pop ini adalah : Penggunaan error trapping untuk operasi push dan pop didefinisikan lebih lanjut dalam algoritma stackerror yang digunakan untuk menentukan kondisi overflow atau underflow suatu stack. Adapun algoritma dari error trapping ini adalah: Procedure Pop(Var S : Stack; Var NilaiStack : Eon); Begin If S.Noel = 0 Then StackError(2) Else Begin NilaiStack := S.Top[s.Noel]; S.Noel := S.Noel -1 End; End; Procedure StackError(TingkatanError : Integer); Begin Case TingkatanError of 1 : WriteLn(‘Isi Stack sudah penuh... kondisi overflow’); 2 : WriteLn(‘Isi Stack Kosong ... kondisi underflow’) End; End;
  • 15. 11 2.6 Deklarasi Stack pada Bahasa Pemrograman (Pascal) Dalam bahasa pemrograman, untuk menempatkan stack biasanya digunakan sebuah array. Tetapi perlu diingat di sini bahwa stack dan array adalah dua hal yang berbeda. Misalkan suatu variabel S adalah sebuah stack dengan 100 elemen. Diasumsikan elemen S adalah integer dan jumlah elemennya maksimum adalah 100 elemen. Untuk mendeklarasikan stack dengan menggunakan array, harus dideklarasikan pula variabel lain yaitu TOP_PTR yang merupakan indeks dari array. Variabel TOP_PTR ini digunakan untuk menyatakan elemen yang berada pada posisi TOP dalam stack tersebut. Selanjutnya gabungan kedua variabel ini diberi nama STACK_STRUCT. Kemudian didefinisikan bahwa : NOEL(S)=TOP_PTR ISEMPTY(S)= TRUE, jika TOP_PTR = 0 dan FALSE, jika TOP_PTR > 0. Maka bentuk deklarasinya dalam PASCAL adalah : Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu prosedur tersendiri, yaitu : TYPE Stack_Struct = Record Stack:array[1..100] of integer; TopPtr : integer; End; VAR S : Stack_Struct; PROCEDURE PUSH(Eon : integer); Begin If (S.TopPtr < NoelMax) Then Begin S.TopPtr := S.TopPtr + 1; S.Stack [S.TopPtr] := Eon End Else Overflow_Condition End; PROCEDURE POP(Eoff : integer); Begin If (S.TopPtr > 0) Then Begin Eoff := S.Stack[S.TopPtr]; S.TopPtr := S.TopPtr-1 End Else Underflow_Condition End;
  • 16. 12 Catatan :Overflow adalah suatu keadaan di mana kita melakukan operasi PUSH terhadap stack dalam keadaan penuh. Underflow adalah keadaan di mana kita melakukan operasi POP terhadap stack kosong. Eon adalah elemen yang akandimasukkan ke dalam stack dan Eoff adalah elemen yang akan dikeluarkan dari dalam stack. Tabel 1. Perbandingan Operator dalam stack dan operator yang dibaca Operator Nilai operator dalam stack Nilai operator yang dibaca ) 0 ( 0 5 +,- 2 1 *,/ 4 3 Berdasarkan tabel tersebut suatu operator yang dibaca dan akan dimasukan ke dalam stack, terlebih dahulu melalui proses perbandingan nilai dengan operator yang ada di dalam stack sebelumnya. Dalam arti kata lain jika nilai dari operator yang berada dalam stack lebih besar dari nilai operator yang dibaca maka operator yang berada di dalam stack akan dikeluarkan sampai nilai tersebut sama atau lebih kecil. Implementasi dari algoritmanya dapat dijabarkan dalam bentuk fungsi berikut ini : Fungsi IsiDlmstack tersebut di atas merupakan fungsi level operator yang posisinya berada dalam suatu stack, adapun fungsi untuk menentukan level operator yang dibaca adalah : Function IsiDlmStack(Operator:Char):Integer; Begin Case Operator Of ‘(‘ : IsiDlmStack := 0; ‘+‘,’-‘ : IsiDlmStack := 2; ‘*‘,’/’ : IsiDlmStack := 4; End End; Function Stackyangdibaca(Operator : Char) : Integer; Begin Case Operator Of ‘)‘ : Stackyangbaca := 0; ‘+‘,’-‘ : Stackyangbaca := 1; ‘*‘,’/’ : Stackyangbaca := 3; ‘(‘ : Stackyangbaca := 5 End End;
  • 17. 13 Setelah fungsi pengecekan dilakukan, proses yang perlu dirancang selanjutnya adalah membentuk suatu prosedur untuk menyimpan operator yang dibaca ke dalam suatu susunan array yang implementasinya dibuat sebagai berikut : 2.7 Penggunaan/Aplikasi Stack Suatu perhitungan aritmatika biasanya berhubungan dengan operand dan operator.Operand merupakan suatu karakter atau elemen yang nilainya dioperasikan dengan bantuan suatu operator untuik menghasilkan suatu solusi. Misalkan jika diberikan suatu ekspresi aritmatika 2*3, maka elemen ‗dua‘ dan elemen ‗tiga‘ merupakan operand dari ekspresi tersebut dan elemen ‗*‘ merupakan operator perkalian atas dua operand yang menghasilkan suatu solusi. Suatu ekspresi aritmatika dapat dibedakan dalam tiga bentuk notasi perhitungan yaitu : 1) Notasi prefix, jika operator ditempatkan sebelum dua operand. 2) Notasi infix, jika operator ditempatkan diantara dua operand. 3) Notasi postfix, jika operator ditempatkan setelah dua operand. Dalam penggunaannya di kehidupan sehari-hari, notasi infix merupakan notasi aritmatika yang paling banyak digunakan untuk mengekspresikan suatu perhitungan artimatik dibanding dengan dua notasi yang lain, akan tetapi notasi postfix merupakan notasi yang digunakan oleh mesin kompilasi pada komputer dengan maksud untuk mempermudah proses pengkodean, sehingga mesin kompilasi membutuhkan stack untuk proses translasi ekspresi tersebut. Berdasarkan teori yang diterangkan tersebut di atas, proses konversi infix menjadi notasi postfix dalam implementasinya membutuhkan stack pada proses konversinya, adapun proses tersebut memilikiaturan yang digunakan, yaitu : 1) Jika ditemukan simbol kurung buka ―(―, maka operasi push pada stack akan digunakan untuk menyimpan simbol tersebut ke dalam stack. Procedure SimpanChar(Ch : Char); Var Ekspost : TipeEks; Var Indekspost : TipeIndex); Begin Indekspost :=Indekspost + 1; Ekspost := ch End;
  • 18. 14 2) Jika ditemukan simbol kurung buka ―)‖, operasi pop digunakan untuk mengeluarkan operator-operator yang berada di dalam stack. 3) Jika terdapat simbol operator, maka operasi yang dilakukan pada stack terbagi atas: a. Jika TOP(S) dari stack tersebut kosong atau berisi simbol ―(― maka operasi push akan digunakan untuk memasukan operator tersebut pada posisi di TOP(S). b. Jika operator yang berada dipuncak stack merupakan elemen yang memiliki tingkat yang sama atau lebih tinggi maka operasi pop digunakan untuk mengeluarkan operator tersebut diikuti operasi push untuk menyimpan operator hasil scanning untai. c. Jika operator yang berada di puncak stack memiliki tingkat yang lebih rendah dari operator yang discan, maka operator baru akan langsung dimasukan ke dalam stack dengan operasi push. Adapun tingkatan operator yang dilacak menurut urutan tingkat adalah: Tabel 2. Level Operator dalam Stack Operator Level Operator ** Tinggi * atau / Menengah + atau - Rendah 2.8Operasi Logika Pada Struktur Data Stack Seorang ahli matematika ―Jan Lukasiewicz― mengembangkan satu cara penyusunan ungkapan numeris yang selanjutnya disebut ―Notasi Polish― atau ―Notasi Prefix‖ yang artinya: operator ditulis sebelum kedua operand yang akan disajikan. Dalam struktur data yang banyak dipelajari, kita ketahui adanya 3 notasi operasi yang dilakukan untuk suatu operasi aritmatika, yaitu prefix, infix, dan postfix. Sebelum kita kupas mengenai notasi di atas, perlu dipahami terlebih dahulu indikator yang membentuk terjadinya notasi dalam struktur data.Notasi terbentuk dari operand dan operator.Operand adalah data atau nilai yang membantu dalam proses sedangkan operator adalah fungsi yang digunakan dalam proses.
  • 19. 15 Contoh : A + B * C 2 + 3 * 5 Keterangan :A, B, C, 2, 3, 5 adalah operand , + dan * adalah operator. Sekarang kita sudah dapat mengetahui indikator yang membentuk suatu notasi. Selanjutnya kita harus mengetahui level/hirarkhi dari operator seperti: 1. ^ (pangkat). 2. * (kali) atau / (bagi). 3. + (jumlah) atau – (kurang). Seperti yang telah dibahas di awal, diketahui notasi pada struktur data terdiri atas 3 macam, yaitu: 1. Prefix Yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada didepan operand. Contoh : A + B * C (Infix) Maka notasi prefix-nya adalah +A*BC Pemecahannya : A + B * C Diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses dimulai dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi adalah * kemudian +. Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C ,prefixnya dengan menggabungkan operand dan memindahkan operator kedepan dari operand, sehingga fungsi B * C, notasi prefixnya menjadi *BC. Sehingga hasil sementara dari notasi prefix adalahA + *BC. Selanjutnya mencari prefix untuk operator yang berikutnya, yaitu +, cara yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan *BC, gabungkan operand, sehingga menjadi A*BC, lalu pindahkan operator kedepan operand, sehingga hasil akhir menjadi + A * B C.
  • 20. 16 Contoh yang lain: 1. A + B – C * D 2 3 1 —–> hirarkhi level A + B – *CD —–> 1 +AB – *CD —–> 2 – +AB *CD —–> 3 2. A * B ^ C – D 2 1 3 —–> hirarkhi A*^BC – D —–> 1 *A^BC – D —–> 2 –*A^ BCD —–> 3 3. A + ( B – C ) * D 3 1 2 —–>hirarkhi A + – BC * D —–> 1 (karena diapit tanda paranthesis atau kurung buka/tutup,( )) A + *– BCD —–> 2 + A *– BCD —–> 3 2. Infix Yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada diantara operand.Notasi ini hanya dikenal oleh manusia dan selalu digunakan dalam perhitungan aritmatika. Contoh : A + B * C ( A + B ) * C A – ( B + C ) * D ^ E 3. Postfix Yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada dibelakang operand.Notasi ini hanya dikenal oleh processor dan dipahami dalam ALU. Contoh : A + B * C (Infix) maka notasi postfix-nya adalah ABC*+
  • 21. 17 Pemecahannya : A + B * C Diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses dimulai dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi adalah * kemudian +. Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C , Postfixnya dengan menggabungkan operand B dan C menjadi BC lalu memindahkan operator ke belakang operand C, sehingga fungsi B * C, notasi postfixnya menjadi BC*. Sehingga hasil sementara dari notasi postfix adalah:A + BC* Selanjutnya mencari postfix untuk operator yang berikutnya, yaitu +, cara yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan BC*, gabungkan operand tersebut, sehingga menjadi ABC*, lalu pindahkan operator + ke belakang operand ABC*, sehingga hasil akhir menjadi :ABC*+ Contoh yang lain: 1. A + B – C * D 2 3 1 —–> hirarkhi level A + B – CD* —–> 1 AB+ – * CD —–> 2 AB+*CD– —–> 3 2. A * B ^ C – D 2 1 3 —–> hirarkhi A * BC^ – D —–> 1 ABC^* –D —–> 2 ABC^*D– —–> 3 3. A + ( B – C ) * D 3 1 2 —–>hirarkhi A + BC– * D —–> 1 (karena diapit tanda paranthesis atau kurung buka/tutup,( ) ) A + BC–D * —–> 2 ABC–D* + —–> 3
  • 22. 18 Contoh lain: Notasi Infix-Prefix Cara penyusunan ungkapan yaitu dengan menggunakan notasi infix, yang artinya operator ditulis diantara 2 operator. Jan Lukasiewiccz mengembangkan suatu carapenyusunan ungkapan numeris yang disebut prefix, yang artinya operator ditulis sebelum kedua operand yang akan disajikan. Contoh : Proses konversi dari infix ke prefix : – = [ + A B ] * [– C D ] = * [ + A B ] [– C D ] = * + A B – C D Notasi Infix-Postfix Cara penyusunan ungkapan yaitu dengan menggunakan notasi postfix, yang artinya operator ditulis sesudah operand. Contoh : Proses konversi dari infix ke postfix : – = [ 6 2 – ] * [ 5 4 + ] = [ 6 2 – ] [ 5 4 + ] * = 6 2 – 5 4 + *
  • 23. 19 2.9 Contoh Aplikasi Stack Pada Pemrograman Pascal 1. Program Pascal Dengan Operasi Stack Pada Nilai Program Nilai_Stack; uses wincrt; const MaxElemen=5; type Tumpukan =record isi:array[1..MaxElemen] of integer; atas: 0..MaxElemen end; type isi=array[0..maxelemen] of integer; const isilama1:isi=(3,7,2,6,4,8); isibaru1:isi=(4,8,3,6,5,1); var Nilailama,Nilaibaru:isi; T:tumpukan; {———————————————————————} Procedure Ganti_NilaiStack(T:tumpukan;Nilailama,Nilaibaru:isi); var penuh,habis: boolean; x,i:integer; {———————————————————————} procedure push( var T:tumpukan; var penuh:boolean;x:integer); begin if T.atas = maxElemen then penuh:=true else begin penuh :=false; T.isi[T.atas]:=x; T.atas:=T.atas+1; end; end; {———————————————————————} procedure pop(var T:tumpukan;var habis:boolean; var x:integer); begin if T.atas =0 then habis:=true else begin habis:=false; T.atas:=T.atas-1; x:=T.isi[T.atas]; end; end; {———————————————————————} begin clrscr; write('Nilai Lama Sebelum Masuk Tumpukan : '); for i:=0 to maxelemen do write(isilama1[i]); writeln; write('Nilai Baru Sebelum Masuk Tumpukan : '); for i:=0 to maxelemen do write(isibaru1[i]);
  • 24. 20 writeln; penuh:=false; while penuh=false do begin push(T,penuh,Nilailama[T.atas]); end; write('Isi Tumpukan Lama : '); while T.atas<>0 do begin pop(T,habis,x); write(x); end; writeln;penuh:=false; while penuh=false do begin push(T,penuh,Nilaibaru[T.atas]); end; write('Isi Tumpukan Baru : '); while T.atas<>0 do begin pop(T,habis,x); write(x); end; end; {———————————————————————} begin Nilailama:=isilama1;Nilaibaru:=isibaru1; Ganti_NilaiStack(T,Nilailama,Nilaibaru); readkey; end. Output Program:
  • 25. 21 2. Program Pascal Membalik Sebuah Kalimat Program Membalik_Kalimat; Uses wincrt; Const Elemen = 255; Type S255 = String[Elemen]; Tumpukan = record isi : s255; atas : 0..elemen end; Var T : Tumpukan; I : Integer; Kalimat : S255; Procedure Awalan(Var T : Tumpukan); Begin T.Atas := 0 End; Procedure PUSH (Var T : Tumpukan; X : char); Begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := X End; Function POP (Var T : Tumpukan) : char; Begin POP := T.Isi[T.Atas]; T.Atas := T.Atas - 1; End; {Program Utama} Begin clrscr; Awalan(T); write ('Masukan sembarang kalimat : '); ReadLn (Kalimat); WriteLn; { mempush kalimat ke dalam tumpukan} For I := 1 to length(Kalimat) do PUSH(T, Kalimat[I]); {mempop isi tumpukan sehingga diperoleh kalimat yang dibaca terbalik} For I := 1 to length(Kalimat) do write(POP(T)); WriteLn; End. Output Program :
  • 26. 22 3. Program Pascal Membuat animasi STACK Program AnimasiStack; Uses wincrt; const max = 10; var top,i : byte; pil,tem,E : char; stack : array [1..max] of char; procedure pushanim; begin for i :=1 to 18 do begin gotoxy(23+i,7); write(tem); {Delay(30);} gotoxy(23,7); clreol; end; for i:=1 to 14-top do begin {delay(30);} gotoxy(41,6+i); write(' '); gotoxy(41,7+i); write(tem); end; end; procedure popanim(tem:char); begin for i:=1 to 14-top do begin {delay(30);} gotoxy(41,22-i-top); write(' '); gotoxy(41,21-i-top); write(tem); end; for i:=1 to 19 do begin gotoxy(40+i,7); write(tem); {delay(30);} gotoxy(16,7); clreol; end; end; procedure push(e:char); begin inc(top); stack[top] :=e; pushanim; end; procedure pop(e:char); begin if top<> 0 then begin E:=stack[top];popanim(e); dec(top); end else begin gotoxy(1,7); write('stack telah kosong'); readkey; gotoxy(1,7); clreol; end; end; begin clrscr;
  • 27. 23 writeln('ANIMASI STACK'); writeln('1. PUSH'); writeln('2. POP'); writeln('3. QUIT'); writeln('Pilihan anda[1/2/3] = '); gotoxy(37,10);write(' /'); for i:=1 to 11 do begin gotoxy(38,10+i); if i=11 then write('|_____|')else write ('| |'); end; top := 0; repeat gotoxy(23,5);clreol; pil := readkey;write(pil); if pil ='1' then begin if top<> max then begin gotoxy(1,7);write('Masukkan satu Huruf = '); tem := readkey;write(tem); push(tem); gotoxy(1,7);clreol; end else begin gotoxy(1,7);write('Stack sudah penuh'); readkey; gotoxy(1,7);clreol; end; end else if pil='2' then pop(tem); until pil='3'; donewincrt; end. Output Program:
  • 28. 24 4.Program Pascal Nilai Ganjil-Genap program tigastack; uses wincrt; type tumpukan = record isi : array[1..25] of byte; top : 0..25; end; var t1,t2,t3 : tumpukan; x,n,angka,bantu : byte; procedure tumpuk(var t : tumpukan;angka : byte); begin inc(t.top); t.isi[t.top] := angka; end; procedure keluarkan(var t : tumpukan;var angka : byte); begin angka := t.isi[t.top]; dec(t.top); end; {procedure atur(var t : tumpukan; angka : byte); begin repeat keluarkan(t,bantu); tumpuk(t3,bantu); until (t.isi[t.top] > angka) or (t.top = 0); tumpuk(t,angka); repeat keluarkan(t3,bantu); tumpuk(t,bantu); until t3.top = 0; end; } procedure cetak(t : tumpukan); begin repeat keluarkan(t,angka); write(angka:3); until t.top = 0; end; begin t1.top := 0; t2.top := 0; t3.top := 0; repeat clrscr; writeln('PROGRAM APLIKASI STACK(tumpukan data)':50); writeln; write('Banyaknya angka acak ?? [5 sampai 25] : ');readln(n); until n in[5..25]; for x := 1 to n do begin write('Angka ke ',x,' : ');readln(angka); if angka mod 2 = 0 then tumpuk(t1,angka) else tumpuk(t2,angka); end; repeat
  • 29. 25 keluarkan(t1,angka); if t3.top = 0 then tumpuk(t3,angka) else begin if angka > t3.isi[t3.top] then tumpuk(t3,angka) else begin repeat keluarkan(t3,bantu); tumpuk(t2,bantu); until (t3.isi[t3.top] < angka) or (t3.top = 0); tumpuk(t3,angka); repeat keluarkan(t2,bantu); tumpuk(t3,bantu); until t2.isi[t2.top] mod 2 = 1; end; end; until t1.top=0; repeat keluarkan(t3,angka); tumpuk(t1,angka); until t3.top = 0; writeln; write('Angka genap = '); if t1.top = 0 then write('Tidak ada angka genap !') else cetak(t1); writeln; write('Angka ganjil = '); if t2.top = 0 then write('Tidak ada angka ganjil !') else cetak(t2); readkey; donewincrt; end. Output Program :
  • 30. 26 BAB III PENUTUP 4.1 Kesimpulan Stack adalah suatu koleksi atau kumpulan item data yang teroganisasi dalam bentuk urutan linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu sisinya.Pada stack, jarang sekali dilakukan traversal, karena keunikan Stack justru pada operasi yang hanya menyangkut elemen TOP. Namun dibutuhkan traversal misalnya untuk mencetak isi Stack. Pada stack, elemen yang diproses hanyalah elemen pada TOP. Maka hampir tidak pernah dilakukan search. Operasi-operasi pada Stack : 1) Create(Stack) Operasi Create(Stack) digunakan untuk membuat suatu stack baru dengan nama stack, yang nilai elemen saat stack tersebut dibuat adalah NOEL(S) = 0, TOP(S) = NULL (tidak terdefinisikan). 2) IsEmpty(Stack) Operasi ini merupakan operasi untuk mencek isi dari suatu stack dalam keadaan kosong atau berisi. Operasi ini memiliki 2 (dua) kondisi boolean yaitu : 1) True jika stack tersebut kosong atau dapat dikatakan NOEL(S) = 0. 2) False jika stack tersebut tidak dalam kondisi kosong atau dapat dikatakan NOEL(S) > 0. 3) Push(Stack, Elemen) Operasi ini merupakan operasi untuk menambahkan satu elemen dengan nilai X pada puncak suatu stack, sehingga posisi TOP(S) akan bernilai X, penerapan operasi push pasa suatu stack S akan berakibat overflow jika NOEL(S) dari stack tersebut telah bernilai maksimum. 4) Pop(Stack) Operasi ini berfungsi untuk menghapus satu elemen dari stack S, sehingga posisi NOEL(S) akan berkurang satu elemen, dan TOP(S) akan berubah.
  • 31. 27 Operasi pop dapat menyebabkan kondisi underflow jika suatu stack S yang berada dalam kondisi minimum dikenakan operasi pop. 4.2 Saran Penggunaan stack pada struktur data sangat bermanfaat untuk para pemrogram untuk melakukan suatu pemakain dalam informatika misalnya untuk meresenpetasi pemanggilan prosedur, perhitungan ekspresi aritmatika, rekursifitas, backtracking. Gunakan stack pada program yang operasinya selalu dilakukan pada elemen yang paling atas.
  • 32. 28 DAFTAR PUSTAKA M. Shalahuddin, Rosa A.S. 2010. Modul Pembelajaran Struktur Data.Penerbit: Modula. Bandung. Marcus, Zakaria, Teddy.Prijono,Agus.Konsep dan Implementasi Struktur Data. Penerbit: Informatika. Bandung. Dewa. 2009. Struktur Data – Pengertian Stack. http://dewa18.wordpress.com/ 2009/10/28/struktur-data-pengertian-stack/. Diakses pada 30 Mei 2013, Pukul 10.23 WIB. Hastuti, Nor Fitriana. 2009.Program Implementasi Stack dalam Pascal.http://terminaltechno.blog.uns.ac.id/2009/11/07/program- implementasi-stack-dalam-pascal/.Diakses pada 30 Mei2013, Pukul 10.37 WIB. Hendradhy, Oke. 2008.Aplikasi Stack Pada Struktur Data Untuk Mengkonversikan Notasi Infix Menjadi Notasi Postfix.http://mugi.or.id/blogs/oke/ archive/2008/08/27/aplikasi-stack-pada-struktur-data-untuk- mengkonversikan-notasi-infix-menjadi-notasi-postfix.aspx. Diakses pada 30 Mei 2013, Pukul 11.09 WIB.