Download - Copy of Stack
KATA PENGANTAR
“Om Swastyastu”,
Puji syukur kami panjatkan kehadapan Ida Sang Hyang Widhi Wasa,Tuhan Yang Maha
Esa, karena berkat rahmat beliau kami dapat menyelesaikanmakalah ini tepat pada waktunya.
Makalah yang berjudul “Stack Pada Struktur Data”menjelaskan tentang pengertian
stack, skema-skema pada stack, dan juga operasi-operasi dasar pada stack. Kami ingin
mengucapkan terima kasih kepada semua pihak yang telah membantu dan mendukung dalam
penyelesaian makalah ini sehingga makalah inibisa selesai tepat pada waktunya.
Kami menyadari bahwa dalam makalah ini masih banyak kekurangan yang perlu
diperbaiki.Kami mohon maaf jika di dalam makalah ini di temukan banyak kesalahan. Maka dari
itu, kritik dan saran dari pembaca yang bersifat membangun sangat kami harapkan demi
menyempurnakan makalah yang di buat selanjutnya.
Kami berharap semoga makalah ini bisa berguna dan bermanfaat bagi pembaca dan dari
semua kalangan termasuk teman-teman semua.
“Om Santihi, Santhi, Santhi, Om”.
Singaraja,Desember2011
Penulis
DAFTAR ISI
HALAMAN JUDULKATA PENGANTAR................................................................................................iiDFTAR ISI.................................................................................................................iiiBAB I PENDAHULUAN
1.1 LatarBelakang............................................................................................11.2 Rumusanmasalah.......................................................................................21.3 Tujuan........................................................................................................21.4 ManfaatPenulisan.......................................................................................2
BAB II PEMBAHASAN2.1 PengertiandariStack...................................................................................32.2 Skema Traversal Pada Stack......................................................................52.3 Skema Search Pada Stack..........................................................................62.4 Operasi Dan FungsiPada Stack..................................................................7
2.4.1 Create................................................................................................72.4.2 IsEmpty.............................................................................................82.4.3 Push...................................................................................................92.4.4 Pop..................................................................................................10
2.5 Deklarasi Stack PadaBahasaPemrograman..............................................12BAB III PENUTUP
3.1 Kesimpulan..............................................................................................163.2 Saran.........................................................................................................17
DAFTAR PUSTAKA................................................................................................18
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.
Struktur ini sering dipakai dalam informatika misalnya untuk meresenpetasi pemanggilan
prosedur, perhitungan ekspresi aritmatika, rekursifitas, 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.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang kami angkat, kami menemukan beberapa permasalahan
yang kiranya akan menjadi bahasan pada penulisan makalah ini, diantaranya yaitu :
1.2.1 Apa pengertian dari stack pada struktur data ?
1.2.2 Bagaimana skema traversal dari stack ?
1.2.3 Bagaimana skema search dari stack ?
1.2.4 Apa saja operasi-operasi dan fungsi dasar pada stack ?
1.3 Tujuan
Segala sesuatu yang dilakukan pasti memiliki tujuan yang ingin dicapai, begitu juga
dalam penulisan makalah ini. Adapun tujuan kami didalam membuat makalah ini, yaitu:
1.3.1 Mengetahui pengertian stack pada struktur data.
1.3.2 Mengetahui skema traversal dari stack.
1.3.3 Mengetahui skema search dari stack.
1.3.4 Mengetahui operasi-operasi dan fungsi dasar pada stack.
1.4 Manfaat PenulisanSetelah melakukan sesuatu, tentunya akan dapat memberikan sebuah manfaat bagi diri
kita maupun orang lain. Dengan penulisan makalah ini, manfaat yang dapat kita rasakan, yaitu:
1.4.1 Makalah ini di buat untuk rekan-rekan yang belajar tentang struktur data dan bagaimana
implementasi dari struktur data tersebut dalam suatu aplikasi sederhana.
BAB II
PEMBAHASAN
2.1. Pengertian dari Stack
Stack adalah salah satu list linier dalam struktur data yang digunakan untuk menyimpan
dan mengambil data dengan konsep LIFO (Last In First Out). Dimana dalam stack ini kumpulan
data yang masuk diletakkan di atas data yang lain, dan berdasar konsep LIFO maka data yang
terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil. 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)
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
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.
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. Skema Traversal Pada 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.
Skema traversal :
Pemrosesan traversal yaitu mengolah seluruh elemen tabel secara sistematik.
Skema :
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;
Contoh penggunaan skema :
- Prosedur memasukkan nilai seluruh elemen tabel.
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;
2.3. 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.4. 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. Ada empat operasi dasar yang
didefinisikan pada stack, yaitu :
1. CREATE(stack)
2. ISEMPTY(stack)
3. PUSH(elemen,stack)
4. POP(stack)
2.4.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)) = nullAlgoritma 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
Procedure Create(var S : Stack);
Begin
S.Noel := 0;
End;
2.4.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
Catatan : ISEMPTY(CREATE(S)) = true.
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, yang terimplementasi sebagai berikut :
Function IsEmpty(Var S : Stack) : Boolean;
Begin
IsEmpty
2.4.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. Adapun
implementasi dari algoritma push tersebut adalah :
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;
2.4.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
mencek kondisi underflow yaitu kondisi stack kosong yang dikenakan operasi pop. Algoritma
dari pop 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;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 StackError(TingkatanError : Integer);
Begin
Case TingkatanError of
1 : WriteLn(‘Isi Stack sudah penuh... kondisi overflow’);
2 : WriteLn(‘Isi Stack Kosong ... kondisi underflow’)
End
End;
2.5 Deklarasi Stack pada Bahasa Pemrograman
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 :
TYPE Stack_Struct = Record
Stack : array[1..100] of integer;
TopPtr : integer;
End;
VAR S : Stack_Struct;
Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu prosedur tersendiri,
yaitu :
PROCEDURE PUSH(Eon : integer);Begin
If (S.TopPtr < NoelMax) Then BeginS.TopPtr := S.TopPtr + 1;S.Stack [S.TopPtr] := Eon
EndElse Overflow_Condition
End;PROCEDURE POP(Eoff : integer);Begin
If (S.TopPtr > 0) Then BeginEoff := S.Stack[S.TopPtr];S.TopPtr := S.TopPtr - 1
EndElse Underflow_Condition
End;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 akan dimasukkan 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 stackNilai 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 sebagai berikut :
Function IsiDlmStack(Operator : Char) : Integer;
Begin
Case Operator Of
‘(‘ : IsiDlmStack := 0;
‘+‘,’-‘ : IsiDlmStack := 2;
‘*‘,’/’ : IsiDlmStack := 4;
End
End;
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 Stackyangdibaca(Operator : Char) : Integer;
Begin
Case Operator Of
‘)‘ : Stackyangbaca := 0;
‘+‘,’-‘ : Stackyangbaca := 1;
‘*‘,’/’ : Stackyangbaca := 3;
‘(‘ : Stackyangbaca := 5
End
End;
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 :
Procedure SimpanChar(Ch : Char);
Var Ekspost : TipeEks;
Var Indekspost : TipeIndex);
Begin
Indekspost :=Indekspost + 1;
Ekspost := ch
End;
BAB III
PENUTUP
3.1 Kesimpulan
3.1.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.
3.1.2 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.
3.1.3 Pada stack, elemen yang diproses hanyalah elemen pada TOP. Maka hampir tidak pernah
dilakukan search.
3.1.4 Operasi-operasi pada Stack :
a) 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)
b) 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 :
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
c) 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.
d) 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. Operasi pop dapat menyebabkan kondisi
underflow jika suatu stack S yang berada dalam kondisi minimum dikenakan operasi pop.
3.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.
DAFTAR PUSTAKA
Anonim. 2007 .Stack (tumpukan). http://ienx.wordpress.com/2007/05/09/stack-tumpukan/. Diakses pada 3 Desember 2011
______. 2009. Stack (Tumpukan). http://sisteminfomasi.blogspot.com/2009/11/ stack-tumpukan.html. Diakses pada 3 Desember 2011
______. 2010. Stack. http://203.130.231.110/2Fhandouts/2FS1_Sistem/2520 Informasi/2FStruktur/2520Data/2FSTACK.DOC. Diakses pada 3 Desember 2011
______. 2010. Stack & Queue : Penjelasan, Deskripsi Fungsi Dasar, Pemodelan, dan Penerapan Stack. http://kuliahinformatika.wordpress.com/2010/02/06/ stack-queue-penjelasan-deskripsi-fungsi-dasar-pemodelan-dan-penerapan-stack/. Diakses pada 3 Desember 2011
______. 2011. Stack (struktur data). http://id.wikipedia.org/wiki/Stack_(struktur _data). Diakses pada 3 Desember 2011
Crash. 2011. Array. http://trieplesix.blogspot.com/2011/12/array-1-dimensi.html. Diakses pada 4 Desember 2011
Dewa. 2009. Struktur Data – Pengertian Stack. http://dewa18.wordpress.com/ 2009/10/28/struktur-data-pengertian-stack/. Diakses pada 3 Desember 2011
Harjanto,Sutedjo. 2008. Stack dan Queue dgn Linked List. http://sutedjo.staff. gunadarma.ac.id/2FDownloads/2Ffiles/2F11377/2FSTACK/2BDAN/2BQUEUE/2BDENGAN/2BLINKED/2BLIST.doc&ei=_u_aTrm2I8eHrAeNqdDTAw&usg=AFQjCNGKiB5XyUk0DwQ3lY_Xh48HxMq_9g&cad=rja. Diakses pada 3 Desember 2011
Hastuti, Nor Fitriana. 2009. Program Implementasi Stack dalam Pascal. http://terminaltechno. blog.uns.ac.id/2009/11/07/program-implepentasi-stack-dalam-pascal/. Diakses pada 3 Desember 2011
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 3 Desember 2011