Kelas D
Program Studi Teknik Informatika
Fakultas Sains Dan Teknologi
Universitas Sanata Dharma
Yogyakarta
2020
A. TUJUAN PRATIKUM
1. Mahasiswa mampu memahami pembuatan algoritma tentang stack baik
secara statis maupun dinamis.
2. Mahasiswa mampu membuat program stack statis dan stack dinamis
- Analisa
Dari program diatas merupakan program untuk Statac secara statis
yaitu menggunakan array. Pada program tersebut, terdapat kontruktor
yang memiliki parameter yaitu panjang yang berfungsi untuk
mendeklarasikan jumlah tumpukan yang dapat dimuat nantinya, lalu
panjang tersebut disimpan di elemen. Pada program tersebut juga
terdapat method push yang berfungsi untuk menambah atau mengisi
tumpukan dengan data sehingga jika pada main memanggil method
push maka tumpukan akan diisi data. Terdapat pula method pop yang
berfungsi untuk mengambil atau menghapus data dari tumpukan,
tetapi dalam menghapus data diambil data paling atas, karena dalam
stack atau tumpukan, data yang diambil sesuai urutan paling atas, jika
data pertama atau data yang paling atas maka data tersebut
ditampilkan paling bawah atau akhir. Selain itu, terdapat method
isEmpty yang berfungsi untuk mengecek apakah tumpukan tersebut
kosong atau tidak. Dan juga terdapat method toString untuk
menampilkan data.
- Output
- Analis
Dari program diatas merupakan main dari kelas StackStatis,
dimana pada main tersebut membuat objek baru dari kelas StackStatis
yaitu objek stack. Setelah itu pada main tersebut hanya memanggil
method push dan pop yang sudah dibuat pada kelas StackStatis. Jika
memanggil method push maka data diisi untuk dimasukkan ke dalam
tumpukan, jika tidak diisi maka akan error. Jika memanggil method
pop, maka otomatis program akan secara otomatis akan menghapus
data yang paling atas. Lebih jelasnya saya akan memberikan ilustrasi
untuk StackStatis ini :
1. StackArray stack = new StackArray(5)
front = -1 size = 0
Tyas,
195314031,
Informatika,
Pekanbaru
front = 0 size = 1
Navi,
195314034,
Informatika,
Magelang
Tyas,
195314031,
Informatika,
Pekanbaru
front = 1 size = 2
4. stack.push(new Mahasiswa("Bella ", "195314035", "Informatika",
"Medan"))
Bella,
195314035,
Informatika,
Medan
Navi,
195314034,
Informatika,
Magelang
Tyas,
195314031,
Informatika,
Pekanbaru
front = 2 size = 3
Selvia,
195314036,
Informatika,
Kalimantan
Bella,
195314035,
Informatika,
Medan
Navi,
195314034,
Informatika,
Magelang
Tyas,
195314031,
Informatika,
Pekanbaru
front = 3 size = 4
Selvia,
195314036,
Informatika,
Kalimantan
Bella,
195314035,
Informatika,
Medan
Navi,
195314034,
Informatika,
Magelang
Tyas,
195314031,
Informatika,
Pekanbaru
front = 3 size = 4
Bella,
195314035,
Informatika,
Medan
Navi,
195314034,
Informatika,
Magelang
Tyas,
195314031,
Informatika,
Pekanbaru
front = 2 size = 3
Navi,
195314034,
Informatika,
Magelang
Tyas,
195314031,
Informatika,
Pekanbaru
front = 1 size = 2
Tyas,
195314031,
Informatika,
Pekanbaru
front = 0 size = 1
front = -1 size = 0
3. Kelas StackDinamis
- Listing Program
- Analisa
Pada program diatas merupakan Program Stack yang dibuat secara
dinamis, dimana pada Stack Dinamis ini menggunakan LinkedList
atau menggunakan senarai. Pada program diatas menggunakan senarai
ganda atau double link list. Pada program diatas terdapat kontruktor
dari kelas StackDinamis dimana didalam kontruktor tersebut
mendeklarasikan atribut dari tumpukan menjadi objek baru dari kelas
LinkedList yang sudah dibuat. Terdapat method push juga yang
berfungsi untuk menambah data pada tumpukan, pada method tersebut
penambahan data dilakukan dengan penambahan data di belakang atau
addLast. Terdapat method pop yang berfungsi untuk mengambil data
dari tumpukan, dimana pengambilan data dilakukan pada data terakhir
atau removeLast. Dan juga terdapat method toString untuk
menampilkan data.
4. Kelas ListNode
- Listing Program
- Analisa
Dari program diatas merupakan program untuk mendeklarasikan
kelas dari ListNode. Pada Stack juga memakai atribut yang digunakan
pada double link yaitu elemen, next dan prev. Ketiga atribut tersebut
digunakan pada kelas LinkedList, fungsi dari next adalah untuk ke
elemen selanjutnya, sedangkan prev untuk elemen sebelumnya. Pada
kelas ListNode ini, digunakan untuk setter dan getter dari ketiga
atribut tersebut. Dan tersedapat 3 kontruktor dengan nama yang sama
tetapi parameter yang berbeda. Karena ketiga kontruktor tersebut
digunakan pada kelas LinkedList nantinya.
- Output
- Analisa
Pada program diatas merupakan main dari kelas StaticDinamis
dimana pada program tersebut membuat objek baru dari kelas
StackDinamis yaitu objek obj. setelah itu memanggil method push dan
pop untuk menambah dan menghapus data. Dimana pada kelas
StackDinamis tadi method push melakukan penambahan data
diterakhir atau addLast, jadi data ditambah ke belakang. Dan juga pada
method push dimana pada kelas StackDinamis tadi penghapusan data
diterakhir atau menggunakan removeLast. Untuk lebih jelas saya akan
memberikan ilustrasinya:
1. StackLinkedList stackL = new StackLinkedList
front = -1 size = 0
Daria,
195314040,
Informatika,
Kalimantan
Winda,
195314039,
Informatika,
Jogja
front = 1 size = 2
Celsi,
195314041,
Informatika,
Paingan
Daria,
195314040,
Informatika,
Kalimantan
Winda,
195314039,
Informatika,
Jogja
front = 2 size = 3
5. stackL.pop() Pop 3 (Celsi, 195314041, Informatika, Paingan)
Daria,
195314040,
Informatika,
Kalimantan
Winda,
195314039,
Informatika,
Jogja
front = 1 size = 2
Winda,
195314039,
Informatika,
Jogja
front = 0 size = 1
front = -1 size = 0
C. KESIMPULAN
Dari pratikum ini kita sebagai mahasiswa mendapat tambahan materi lagi
tentang stack atau tumpukan, dimana cara kerja tumpukan ini seperti
menumpuk barang, jika barang tersebut diambil maka barang yang paling
atas lah yang diambil duluan. Dan juga pada program stack ini menggunakan
statis dan dinamis, dimana pada stack statis menggunakan array dan pada
stack dinamis menggunakan double link.
D. DAFTAR PUSTAKA
Modul 10 “STACK” 2020