Uploaded by Siti Jamila

LAPORAN STACK

advertisement
LAPORAN STACK “TUMPUKAN”
STRUKTUR DATA
DISUSUN OLEH :
SITI JAMILAH (1800631009)
PROGRAM STUDI D3 MANAJEMEN INFORMATIKA
FUKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JEMBER
TAHUN AJARAN 2019
KATA PENGANTAR
Puji syukur kehadirat Allah Yang Maha Esa atas segala rahmatNYA sehingga laporan ini
dapat tersusun hingga selesai . Tidak lupa saya juga mengucapkan banyak terimakasih atas
bantuan dari pihak yang telah berkontribusi dengan memberikan sumbangan baik materi
maupun pikirannya.
Dan harapan saya semoga laporan ini dapat memenuhi tugas tugas mata kuliah Struktur
Data dan semoga dapat menambah pengetahuan saya. Saya selaku penyusun berusaha
mengerjakan dan menyelesaikannya dengan semaksimal mungkin. Walaupun sangat jauh dari
kesempurnaan dan bahkan mungkin tidak sesuai dengan yang diharapkan, namun penyusun
berharap Bapak dosen dapat menerima Makalah yang penyusun buat dengan berjudul “STACK
( TUMPUKAN )” ini.
Karena keterbatasan pengetahuan maupun pengalaman saya, saya berharap Bapak dapat
memberi saran atau masukan agar makalah ini menjadi baik ataupun lebih baik lagi.
Jember, 29 Oktober 2019
Penyusun
DAFTAR ISI
KATA PENGANTAR ........................................................................................................................... 1
BAB I ...................................................................................................................................................... 4
PENDAHULUAN ................................................................................................................................. 4
1.1 Latar Belakang .............................................................................................................................. 4
1.2 Rumusan Masalah ......................................................................................................................... 4
1.3 Maksud dan Tujuan....................................................................................................................... 4
BAB II .................................................................................................................................................... 5
PEMBAHASAN .................................................................................................................................... 5
2.1 Pengertian Stack (Tumpukan) ....................................................................................................... 5
2.2 Alasan Aplikasi Stack digunakan ................................................................................................. 5
2.3 Operasi-Operasi pada Stack .......................................................................................................... 6
2.4 Kelebihan dan Kekurangan Stack ................................................................................................. 7
2.5 Contoh Codingan Stack pada JAVA ............................................................................................. 8
BAB III................................................................................................................................................. 10
PENUTUP............................................................................................................................................ 10
3.1 Kesimpulan ................................................................................................................................. 10
3.2 Saran ........................................................................................................................................... 10
DAFTAR PUSTAKA .......................................................................................................................... 11
BAB I
PENDAHULUAN
1.1 Latar Belakang
Salah satu konsep yang sangat berguna dalam ilmu komputer adalah satu bentuk struktur data
yang disebut dengan stack (tumpukan). Dalam hal ini kita akan coba mengenali mengapa
stack (tumpukan) sangat berguna dan memainkan peranan penting dalam pemrograman dan
bahasa pemrograman.
1.2 Rumusan Masalah
1. Apa yang dimaksud dengan Stack (Tumpukan) ?
2. Mengapa aplikasi stack digunakan ?
3. Apa saja Operasi dasar pada Stack ?
4. Apa saja Kelebihan dan Kekurangan Stack ?
5. Bagaimana penerapan stack pada JAVA ?
1.3 Maksud dan Tujuan
Adapun maksud dari pembuatan laporan ini adalah untuk memenuhi salah satu tugas
mata kuliah “Struktur Data”, selain itu juga untuk menambah wawasan kami tentang materi
“Stack”.
Tujuan dari pembuatan laporan ini adalah memahami garis besar dari konsep “Stack”,
memahami operasi-operasi dasar pada stack. Dan juga dapat mengidentifikasi permasalahanpermasalahan pemrograman yang harus diselesaikan dengan menggunakan “stack”, sekaligus
menyelesaikannya.
BAB II
PEMBAHASAN
2.1 Pengertian Stack (Tumpukan)
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 terorganisasi dalam
bentuk urutan linear, dimana saat operasi penambahan dan penghapusan datanya selalu
dilakukan pada bagian akhir data, yang disebut dengan top of stack.
Karakteristik penting stack adalah bersifat LIFO (Last In First Out) artinya data yang
terakhir masuk merupakan data yang akan keluar terlebih dahulu. Kita asumsikan saja
misalnya memasukkan data alfabet secara urut dari a sampai e (a-b-c-d-e). Kemudian ingin
mengeluarkan alfabet b, maka yang harus dilakukan adalah mengeluarkan alfabet e, d dan c
secara berurut hingga akhirnya dapat mengakses b.
Stack merupakan suatu susunan koleksi data dimana dapat ditambahkan dan dihapus
selalu dilakukan pada bagian akhir data, yang disebut dengan Top Of Stack. Dalam proses
komputasi, untuk meletakkan sebuah elemen pada bagian atas dari stack, maka kita
melakukan push. Dan untuk memindahkan dari tempat yang atas tersebut, kita melakukan
pop.
2.2 Alasan Aplikasi Stack digunakan
Aplikasi stack digunakan untuk berbagai macam keperluan seperti pengujian kalimat
palindrome, penguji tanda kurung (matching parentheses), dan juga berfungsi sebagai konversi
dari notasi infix menjadi notasi postfix.
Pada perhitungan aritmetika, notasi infix adalah notasi yang menempatkan operator
ditengah dua operand, sedangkan notasi postfix adalah notasi yang menempatkan operator
setelah dua operand. Penggunaan notasi infix merupakan hal yang lumrah digunakan dalam
perhitungan aritmetika dibandingkan dengan notasi postfix, akan tetapi bagi mesin komplikasi
postfix merupakan notasi yang digunakan untuk melakukan suatu perhitungan.
Stack juga biasa digunakan dalam mengontrol operasi dalam sebuah sistem operasi.
Selain itu stack juga merupakan algoritma yang baik yang dapat digunakan untuk membuat
phaser (membaca urutan operasi dari sebuah persamnaan matematika).
2.3 Operasi-Operasi pada Stack
Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan Pop.
Operasi – operasi yang dapat diterapkan adalah sebagai berikut :
1. Push : Operasi push adalah operasi dasar dari stack yang berguna untuk menambahkan
suatu elemen data baru pada stack pada tumpukan paling atas dan di simpan pada posisi top
yang akan mengakibatkan posisi top akan berubah..
2. Pop
: Operasi paling besar dari stack yang digunakan untuk mengambil elemen
terakhir(top) dan kemudian menghapus elemen tersebut sehingga posisi top akan
berpindah. Sebagai contoh, misalkah ada data sebagai berikut : 1 3 5 6, maka data tersebut
dapat tersimpan dalam bentuk sebagai berikut :
Contoh lain adalah ada sekumpulan perintah stack yaitu push(5), push(7), pop, push(3),
pop. Jika dijalankan, maka yang akan terjadi adalah :
3. Clear : digunakan untuk mengosongkan Stack.
4. Create Stack : membuat Tumpukan baru S, dengan jumlah elemen kosong.
5. MakeNull : mengosongkan Tumpukan S, jika ada elemen maka semua elemen dihapus.
6. IsEmpty : Operasi yang digunakan untuk memeriksa apakah stack dalam keadaan
kosong. Operasi ini dilakukan dengan memeriksa field top, jika top bernilai 0 atau top
bernilai -1, maka berarti dalam keadaan empty.
7. Isfull : Operasi ini untuk memeriksa keadaan stack apakah sudah penuh/belum. Operasi
ini memberikan nilai true(1) jika field top sama dengan field maks_elemen.
- Deklarasi Stack
- Inisialisasi Stack
- Fungsi IsEmpty
- Fungsi IsFull
2.4 Kelebihan dan Kekurangan Stack
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.
2.5 Contoh Codingan Stack pada JAVA
Hasil dari output program :
Penjelasan :
Digunakan beberapa metode pada java.uti.stack yang bisa diakses secara public seperti
push(), empty(),search(), peek(), dan pop(). Method Push() digunakan
untuk menambahkan elemen pada stack. Method Peek() digunakan untuk menghasilkan
elemen pada top stack, tetapi tidak me-remove. Method empty() digunakan untuk memeriksa
kosong atau tidaknya stack, akan bernilai True jika stack kosong dan akan bernilai False jika
stack berisi elemen. Method Search() digunakan untuk mencari elemen dalam stack, jika
ditemukan akan menghasilkan offset dari top stack dan sebaliknya jika tidak menemukan
elemen akan menghasilkan nilai -1. Dan yang terakhir method Pop() yang digunakan untuk
menghasilkan elemen pada top stack, dan mengambil atau menghapus (remove) elemen
tersebut.
Pada
program
diatas
praktikkan
memasukkan
elemen
s.push(“java”),
s.push(“source”), dan s.push(“and”). Setelah itu akan digunakan method s.peek yang berguna
untuk menampilkan elemen yang terakhir dimasukkan/top yaitu “and”. Kemudian praktikkan
memasukkan elemen lagi dengan nama s.push(“support”) dan selanjutnya digunakan method
s.pop untuk menghasilkan elemen pada top stack, dan mengambil atau menghapus (remove)
elemen tersebut yaitu elemen “support” yang posisinya diatas karena elemen tersebut adalah
elemen yang terakhir dimasukkan. Kemudian ditambah elemen lagi s.push(“.”), yang
kemudian akan digunakan method s.search untuk mencari elemen “java”. S etelah itu akan
dilakukan perulangan dengan while untuk mengosongkan stack tersebut dengan method s.pop
dan langkah terakhir digunakan method s.empty untuk memeriksa apakah stack tersebut
kosong atau tidak.
BAB III
PENUTUP
3.1 Kesimpulan
1.
Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang
lain. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO.
2.
Benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan
dari stack.
3.
Stack dapat direpresentasikan dengan menggunakan array atau juga data menggunakan
linked list.
4.
Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan
Pop.
3.2 Saran
Penulis menyadari bahwa makalah diatas banyak sekali kesalahan dan jauh dari
kesempurnaan. Penulis akan memperbaiki makalah tersebut dengan berpedoman pada banyak
sumber yang dapat dipertanggungjawabkan. Maka dari itu penulis mengharapkan kritik dan
saran mengenai pembahasan makalah dalam kesimpulan di atas.
DAFTAR PUSTAKA
1.
Annisa Puspa Kirana, S.Kom, M.Kom. 2017. Modul Praktikum Algoritma dan Struktur
Data. Malang : Universitas Negeri Malang.
2.
Pandaa,
niia.
2010.
Stack
Dalam
Data,http://niiapanpan.blogspot.co.id/2013/05/stack-dalam-struktur-data.html,
pada tanggal 13 April 2017, pukul 21.00.
Struktur
diakses
Download