Anda di halaman 1dari 8

Algoritma Dan Struktur Data

Jobsheet 4

Oleh :

M.ARDLI AQDAMA (1941720124)

Kelas TI-1A / 15

PROGRAM STUDI D-IV TEKNIK INFORMATIKA


JURUSAN TEKNOLOGI INFORMASI
POLITEKNIK NEGERI MALANG
• Praktikum 1
1. Buatlah suatu class minMax yang berisi atribut nilaiArray seperti di bawah ini!

2. Pada class main isikan variabel nilaiArray pada class minMax dengan array of object ,
bagian ini berfungsi sebagai masukan nilai bertipe integer. Setiap nilaiArray yang
diinputkan dibaca oleh class Scanner :

Hasil :
• Praktikum 2

Hasil :

• Praktikum 3

➢ MaxMin

➢ MainClass
sourscode dibawah ini melanjutkan dari yang praktikum 2
➢ MinMax Class

Hasil :

❖ Pertanyaan
1) Tampilkan hasil input array yang telah dilakukan pada praktikum bagian 1!
Jawab :
2) Kenapa pada praktikum bagian 2 perlu di buat objek sebanyak 2 kali dari class
minMax?

Jawab : objek pertama digunakan untuk mendeklarasikan 5 elemen dan untuk objek kedua
untuk mengisi nialai array yang berisi integer dan kedua objek tersebut berfungsi agar atribut dan
method nya dapat di akses kembali.

3) Buatlah perhitungan nilai minimal dan maksimal terpisah dari class main. Class main
hanya untuk input dan menampilkan saja!
Jawab :

4) Apakah arti angka 4 pada kode berikut :

Jawab : Angka 4 pada source code diatas sebagai batas elemen pada array, jadi arti kode
tersebut menampilkan bahwa nilai elemen array dimulai dari indeks 0 dan berakhir di indeks ke
“4”.

5) Kenapa pada pencarian min max dengan algoritma kita memerlukan nilai indeks awal,
indeks akhir dan indeks tengah?
Jawab : Untuk mengedintifikasi bahwa indeks_awal adalah 0 dan indeks_akhir bernilai 4
karena elemen dari Array ppArray adalah 5. Sedangkan indeks_tengah membagi elemen menjadi
2, hingga elemen terpisah satu satu lalu di tentukan cara memecahkan dan mencari solusinya.
6) Apakah class Maxmin harus terpisah sepeti ini?Mengapa?

Jawab : Tidak harus terpisah, karena class Maxmin pun hanya menyimpan variable maximum
dan minimum. Variabel tersebut dapat di pindahkan ke dalam class minMax dengan beberapa
code yang harus di sesuaikan.

7) Pada tahap 4 praktikum bagian 3 apakah bisa dilakukan tanpa menyimpan nilai array
of object ke dalam array “arr”?
Jawab : tidak bisa karena array “arr” menyimpan hasil dari array of object yang sudah di isikan
sebelumnya yang kemudian akan dipanggil method Max_min pada classminMax
8) Jika tahap 7 bisa dilakukan, bagaimana perubahan kode program secara keseluruhan!
Jawab : Karena tahap 7 tidak bisa tanpa Array arr maka tidak ada perubahan program
9) Ubahlah praktikum bagian 4 dengan method tanpa nilai kembalian!
Jawab : ( Saya tidak tahu bu , susah nih )
10)Manakah yang lebih baik, algoritma brute force atau divide conquer?Jelaskan!
Jawab : Tergantung masalah yang dihadapi atau sesuai case ; Algoritma brute force sering
digunakan sebagai basis pembanding dengan algoritma yang lebih mangkus. Meskipun bukan
metode yang mangkus, hampir semua persoalan dapat diselesaikan dengan algoritma brute force.
Sementara jika Algoritma Divide Conquer Dapat memecahkan masalah yang sulit. Memecahkan
masalah Divide and conquer merupakan cara yang sangat efektif jika masalah yang akan
diselesaikan cukup rumit.
11)Pada praktikum 3 apakah kegunaan tanda “:” pada potongan code program bagian
berikut :

Jawab : Pada praktikum 3 kegunaan tanda “:” pada potongan code program digunakan sebagai
pembanding (yang menunjukkan nilai besar dan kecil antara 2 nilai minimum dan maksimum)
yang ada pada program diatas.
12)Dengan melihat soal no 11, jelaskan pula tujuan penggunaan tanda “?” !
Jawab : Pada program diatas tanda “?” digunakan sebagai simbol yang menanyakan apakah
hasil1.minimum kurang dari hasil2.minimum, dan apakah hasil1.maximum lebih besar dari
hasil2.maximum atau tidak .

• Praktikum 4

❖ Pertanyaan
1. Berdasarkan kode pada Praktikum 4 di atas, Jika perulangan kedua pada kode di
atas berubah menjadi

Tulislah notasinya berdasarkan perubahan tersebut!


Jawab :

Notasi :
Baris 1 : O(n)
Baris 2 : O(n)
Baris 3 : O(1)
Baris 4 : -
Baris 5 : -
2. Berdasarkan notasi yang ditentukan pada nomor 1, hitunglah jumlah instruksi jika
n = 100!
Jawab :

Sehingga jumlah instruksinya = 2 instruksi + (n*n*1) instruksi + (n*n*1) instruksi.


Hasil Akhir = 2 + n^2 + n^2 = 2 + 2*(n^2). Dan untuk kompleksitasnya, jika n = 100, adalah
2+2*(100^2) = 20002.

3. Apakah terdapat perbedaan notasi di antara kedua kode (kode A dan Kode B)
program berikut? Berikan penjelasan dari alasan yang dikemukakan!

Jawab : Untuk kedua notasi diatas, yaitu antara kode A dan kode B diatas tidak
terdapat perbedaan, semua notasinya memiliki struktur yang sama. Begitu juga dengan
jumlah instruksinya sama , yaitu “ n*n*1 instruksi ”. Hanya saja, karena proses
perulangan terjadi sebanyak 2 kali yaitu pada kode A dan kode B, maka untuk hasil
perhitungan kompleksitasnya akan dikalikan 2 juga , sehingga jumlah kompleksitas kode
A dan B = 2*(n*n*1).

Anda mungkin juga menyukai