SISITEM INFORMASI
Disusun oleh :
A. Latar Belakang
Salah satu konsep yang sangat berguna dalam ilmu komputer adalah satu bentuk struktur data
yang disebut dengan stack (tumpukan). Dalam ilmu komputer sering sekali istilah stack
(tumpukan) disebutkan. Dengan ini kami coba mengenali apa itu stack dan bagaimana uraian-
uraiannya menurut 5w+1h.
Makalah berjudul (stack) ini dipilih berdasarkan undian kelompok tugas materi kuliah
struktur data.
B. Rumusan Masalah
C. Tujuan
Dalam dunia komputer, penggunaan stack atau tumpukan merupakan salah sastu
komponen penting untuk menjamin proses penanganan suatu data disamping hal lain seperti
quenue (antrian), linked list, dan tree.
Stack adalah suatu koleksi atau kumpulan item data yang terorgaisasi dalam bentuk urutan
linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu
sisinya.Sedangkan pengertian stack pada struktur data adalah sebagai tumpukan dari benda,
sekumpulan data yang seolah-olah diletakkan di atas data yang lain, koleksi dari objek-objek
homogen, atau Suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada
posisi akhir (top) saja.Stack merupakan bentuk khusus dari suatu struktur data, dimana node
yang ditambahkan ke dalam list dan diambil dari list hanya pada kepalanya, atau dengan
prinsip pengolahannya adalah last-in first-out (LIFO). Pada struktur ini hanya ada dua fungsi
utama, yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari stack).
PENGERTIAN TUMPUKANSecara sederhana tumpukan bisa diartikan sebagai kumpulan
data yang seolaholah diletakkan di atas data yang lain. Dalam suatu tumpukan akan
dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data
melalui ujung yang sama, ujung ini merupakan ujung atas tumpukan.Contoh Kasus :Terdapat
dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya.
Jika kemudian tumpukan 2 kotak tadi, ditambah kotak ketiga, keempat, kelima,
dan seterusnya, maka akan diperoleh sebuah tumpukan kotak yang terdiri dari N kotak.
F (ATAS)
EDCBA (BAWAH)
Dapat dilihat bahwa kotak B terletak diatas kotak A dan ada dibawah kotak C. Berdasarkan
pada tumpukan tersebut dapat disimpulkan bahwa penambahan dan pengambilan sebuah
kotak hanya dapat dilakukan dengan melewati satu ujung saja, yaitu bagian atas. Kotak F
adalah kotak paling atas sehingga jika ada kotak lain yang akan disisipkan maka kotak
tersebut akan diletakkan pada posisi paling atas (diatas kotak F). Demikian juga pada saat
pengambilan kotak, kotak F akan diambil pertama kali.
Ilustrasi StackTerdapat 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
kotakStack bersifat LIFO (Last In First Out) artinya Benda yang terakhir masuk ke dalam
stack akan menjadi yang pertama keluar dari stack Const MaxElemen = 255;Type Tumpukan
= record isi : array[1 .. MaxElemen] of
Integer; atas : 0 .. MaxElemen end;Var T :
TumpukanDengan deklarasi di atas kita menganggap bahwa elemen tumpukan T, yang
tersimpan dalam larik T.Isi adalah bertipe integer dan banyaknya elemen tumpukan
maksimum adalah sebesar MaxElemen, yang dalam hal ini 255 elemen.
Pada medan Atas, nilainya menunjukkan banyaknya elemen yang ada dalam suatu tumpukan,
yang sekaligus menunjukkan posisi elemen teratas dalam tumpukan yang dimaksud. Jika
T.Atas = 5, berarti dalam tumpukan ada 5 elemen, yaitu T.isi[1],T.isi[2],….., T.isi[5]. Jika
data yang diambil, maka nilai Medan T.Atas dikurangi 1 menjadi 4, yang berarti T.isi[4]
adalah elemen teratas. Jika data ditambah maka nilai T.atas ditambah dengan 1 menjadi 6,
sehingga T.isi[6] adalah elemen teratas.
2. Kenapa bisa tersusun menjadi stack?
Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In
First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack. Tumpukan disebut juga “Push Down Stack” yaitu penambahan
elemen baru (PUSH)ndan penghapusan elemen dari tumpukann(POP). Contoh pada PDA
(Push Down Automaton). Sistem pada pengaksesan pada tumpukan menggunakn system
LIFO (Last In First Out), artinya elemen yang terakhir masuk itu yang akan pertama
dikeluarkan dari tumpukan (Stack). Ilustrasi tumpukan (Stack) dapat digambarkan seperti
tumpukan CD atau tumpukan sate. Stack merupakan suatu susunan koleksi data dimana dapat
ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan Top
Of Stack.
Sebelum struktur data tumpukan ini bisa digunakan, harus dideklarasikan dahulu
dalam kamus data. Ada beberapa cara pendeklarasian struktur data ini, salah satunya dengan
menggunakan tata susunan linear (larik) dan sebuah variable, yang dikemas dalam tipe data
record. Stack (tumpukan) adalah struktur data bertipe record yang terdiri dari field elemen,
bertipe larik/array dengan indek dari 1 sampai dengan MaksTum (Maksimum Tumpukan),
atas, bertipe interger berkisar dari 0 (saat kosong) sampai dengan MaksTum (Maksimum
Tumpukan).
Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan
Pop. Operasi – operasi yang dapat diterapkan adalah sebagai berikut :
Push : digunakan untuk menembah item pada Stack pada Tumpukan paling atas.
Pop : digunakan untuk mengambil item pada Stack pada Tumpukan paling atas.
Clear : digunakan untuk mengosongkan Stack
Create Stack : membuat Tumpukan baru S, dengan jumlah elemen kosong.
MakeNull : mengsongkan tumpukan S,jika ada elemen maka semua elemen dihapus.
sEmpty : fungsi yang digunakan untuk mengecek apakah Stack sudah kosong.
Isfull : fungsi yang digunakan untuk mengecek apakah Stack sudah penuh.
Pada proses Push, Tumpukan (Stack) harus diperiksa apakah jumlah elemen sudah mencapai
masimum atau tidak. Jika sudah mencapai maksimum maka OVERFLOW, artinya
Tumpukan penuh tidak ada elemen yang dapat dimasukkan ke dalam Tumpukan. Sedangkan
pada proses Pop, Tumpukan harus diperiksa apakah ada elemen yang hendak dikeluarkan
atau tidak. Jika tidak ada maka UNDERFLOW, artinya tumpukan kosong tidak ada elemen
yang dapat diambil.
Kelebihan stack yaitu penambahan dan penghapusan data dapat dilakukan dengan
cepat, yaitu selama memori masih tersedia penambahan data bisa terus dilakukan. Dengan
demikian tidak ada kekuatiran terjadinya stack overflow.
Kekurangan stack yaitu setiap sel tidak hanya menyimpan value saja, melainkan juga pointer
ke sel berikutnya. Hal ini menyebabkan implementasi stack memakai linked list akan
memerlukan memori yang lebih banyak daripada di implementasikan dengan array. Setiap
halaman pada linked list hanya bisa di akses dengan cara sekuensial, sehingga lambat.
// Adita program
#include <cstdlib>
#include <string>
#include <iostream>
int top=-1;
char stack[2];//asumsi max stack 100
char x;
void push()
{
cout<<"masukkan satu karakter: ";
cin>>x;
top++;
stack[top]=x;
}
void pop()
{
if(top<0){
cout<<"stack kosong"<<endl;
return;
}
x=stack[top];
top--;
cout<<"karakter yang di 'POP' adalah "<<x<<endl;
}
void cetak()
{
if(top<0){
cout<<"stack kosong" <<endl;
return ;
}
int i=0;
for(i=top;i>=0;i--)
cout<<stack[i]<<endl;
cout<<"\n'ADITA'"<<endl;
}
SCREENSHOTNYA
BAB III
PENUTUP
Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi dalam bentuk
urutan linier, 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 hanya elemen pada TOP. Maka hampir
tidak pernah dilakukan search atau bersifat LIFO (Last In First Out). Operasi-operasi pada
Stack :
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).IsEmpty(Stack)Operasi ini merupakan operasi untuk mencek isi dari
suatu stack dalam keadaan kosong atau berisi.Operasi ini memiliki kondisi boolean yaitu :
True jika stack tersebut kosong atau dapat dikatakan NOEL(S) = 0.
False jika stack tersebut tidak dalam kondisi kosong atau dapat dikatakan NOEL(S)
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.