Anda di halaman 1dari 5

LAPORAN ALGORITMA DAN STRUKTUR DATA

Nama : Yanada Sari Situmorang


Kelas : 12 IF 1
NIM : 11S18015

Materi Praktikum

1. Definisi jam yang dikenal ada dua macam, yaitu sistem 24 jam dan sistem 12 jam. Oleh karena itu
diperlukan sebuah interface Jam sebagai kontrak untuk memastikan semua jenis jam harus memiliki operasi
berikut ini :
 bacaJam()
 tulisJam()
 jamToDetik()
 detikToJam()

Berikut adalah code programnya :


Dari class Jam dan testernya diperoleh output seperti berikut :

a. Lengkapi kelas Jam diatas dan buatlah program untuk menguji kelas Jam tersebut.
Untuk kelengkapan programnya, dapat dilihat di code program yang sudah saya lampirkan, yang mana
saya hanya melengkapi ke-3 constructor beserta method valid. Ditambah lagi dengan method baca jam,
tulis jam, dsb.

b. Operasi/method jamToDetik() ada 2 jenis (overloading), menurut anda kenapa kedua versi tersebut perlu
diadakan? Hint : modifier static dan parameter.
Pembahasan :
Dalam program ini, terdapat dua jenis operasi/method jamToDetik(), yaitu method jamToDetik yang ada
parameter dantidak ada parameter. Kedua jenis operasi/method ini memiliki fungsinya masing-masing.
Berikut penjelasan terkait kedua operasi/method tersebut :
 Operasi/method public int jamToDetik()
Method ini adalah method yang mana fungsinya adalah untuk mengambil detik yang diinput oleh
user dan kemudian mendeklarasikannya menjadi output, seperti yang ditampilkan diatas.
 Operasi/method public static int jamToDetik(int detik)
Method ini adalah method yang mana fungsinya hampir sama dengan method public int jamToDetik
adalah untuk mengambil detik yang diinput oleh user. Hanya saja bedanya adalah di method ini tidak
dideklarasikan, sehingga inputan yang diberikan user tidak mengubahnya kedalam hitungan detik.
Hal ini dikarenakan adanya method STATIC.

c. Berbeda dengan Operasi/method jamToDetik(), method detikToJam() hanya ada satu jenis, menurut
anda kenapa tidak ada method untuk mengubah this ke Jam?
Pembahasan :
Pada pertanyaan sebelumnya, terdapat 2 method jamToDetik. Namun, mengapa di method detikToJam
hanya ada satu jeni. Hal ini dikarenakan method detikToJam itu hanya perlu mengambil nilai yang ada
pada method jamToDetik sehingga method detikToJam yang digunakan untuk mengubah detik ke jam
yang diinput oleh user dapat dideklarasikan dan tidak perlu menggunakan this lagi.
2. Kerjakan soal 6.1, tunjukkan isi dari container(stack, queue, priority queue) setelah sejumlah operasi yang
diberikan selesai dilakukan.
Pembahasan :
Soal 6.1
Show the results of the following sequence: add(4), add(8), add(1), add(6), remove(), and remove() when
the add and remove operations correspond to the basic operation in the following.

 Stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out),
yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Tumpukan dapat
diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix).
Ciri tumpukan:
 TOP merupakan sebutan untuk elemen paling atas dari suatu stack
 Elemen TOP merupakan elemen yang paling akhir ditambahkan
 Elemen TOP diketahui
 penambahan dan penghapusan elemen selalu dilakukan di TOP
 LIFO

Pemanfaatan tumpukan:

 Perhitungan ekspresi aritmetika (posfix)


 algoritme backtraking (runut balik)
 algoritme rekursif

Operasi tumpukan:

1. InsertFirst () biasa disebut Push (input E: typeelmt, input/output data: stack): menambahkan sebuah elemen
ke tumpukan
2. DeleteFirst () biasa disebut Pop (output E: typeelmt, input/output data: stack ): menghapus sebuah elemen
tumpukan
3. IsEmpty (): mengecek apakah stack kosong atau ada elemennya
4. IsFull (): mengecek apakah stack telah penuh atau belum
5. Clear (): menghapus semua data
6. Peek (): melihat data TOP

 Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka penambahannya berada
di posisi belakang (rear) dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan
(front). Oleh karena itu, queue bersifat FIFO (first in first out).
 Priority Queue adalah suatu bentuk struktur data yang berbasiskan struktur Queue pada umumnya.
Pada priority Queue, terdapat salah satu bentuk implementasi yaitu implementasi menggunakan
struktur data heaps. Dalam implementasi ini ada pokok atribut yaitu heaps, comparator, dan last.
 Berikut code Priority Queue:
3. Kerjakan soal 6.7, buatlah dua versi, satu menggunakan
ListIterator dan lainnya tidak menggunakan ListIterator.
Berikut code programnya :

Dari code program diatas, diperoleh output :

Anda mungkin juga menyukai