You are on page 1of 19

LAPORAN PRAKTIKUM KE-6

GREEDY

ACHMAD FAJAR AL-HAKIM NS


2131730060
1A

D-III MANAJEMEN INFORMATIKA


TEKNOLOGI INFORMASI
PSDKU POLINEMA DI KOTA KEDIRI
2022
BAB I

A. DASAR TEORI
1. Algoritma Greedy
Algoritma greedy adalah salah satu dari sekian banyak algoritma
yang sering dipakai dalam implementasi sebuah System atau program
yang menyangkut pencarian optimasi.
Didalam mencari solusi optimal algoritma greedy hanya memakai
2 buah macam persoalan optimasi yaitu maksimasi dan minimasi.
BAB II

B. TUGAS
1. Bandingkan program Kel 9 dan Kel 10
Kel 9

Penjelasan :
 Pada method sort baris 6 dan 7 merupakan pendeklarasian var
temp dengan tipe data int dan var temp2 dengan tipe data
double.
 Baris 8 sampai 24 merupakan sorting data menggunakan jenis
bubble sort, dengan acuan kondisi jika nilai dari array arr1
indeks sesuai perulangan j – 1 lebih besar dari array arr1 indeks
sesuai perulangan j maka tukar posisi.
 Baris 11 sampai 13 merupakan penukaran posisi array arr1.
 Baris 15 sampai 17 merupakan penukaran posisi array arr2.
 Baris 19 sampai 21 merupakan penukaran posisi array arr3.
Penjelasan :
 Pada method sort baris 28 dan 29 merupakan pendeklarasian
var temp dengan tipe data int dan var temp2 dengan tipe data
double.
 Baris 30 sampai 46 merupakan sorting data menggunakan jenis
bubble sort, dengan acuan kondisi jika nilai dari array arr1
indeks sesuai perulangan j – 1 lebih besar dari array arr1 indeks
sesuai perulangan j maka tukar posisi.
 Baris 33 sampai 35 merupakan penukaran posisi array arr1.
 Baris 37 sampai 39 merupakan penukaran posisi array arr2.
 Baris 41 sampai 43 merupakan penukaran posisi array arr3.

Penjelasan :
 Pada method greedyByProfit pada baris 50 merupakan
deklarasi variabel isi, temp dengan nilai 0 dan i dengan nilai
sesuai nilai var n – 1.
 Baris 51 sampai 57 merupakan perhitungan greedy by profit
dengan jika nilai array w indeks sesuai var i lebih kecil sama
dengan nilai var k – isi maka akan melakukan penjumlahan
nilai temp dengan nilai array p indeks sesuai var i dan nilai var
isi dengan array w indeks sesuai var i.
 Baris 56 merupakan i decrement artinya akan mengurangi 1
nilai setiap perulangan.
 Proses akan terus berulang jika nilai var isi lebih kecil dari nilai
var k dan nilai var i lebih besar sama dengan 0.
 Baris 58 akan menampilkan nilai var isi.
 Baris 59 akan mengembalikan nilai dari var temp ke method
main.

Penjelasan :
 Pada method greedyByweight pada baris 63 merupakan
deklarasi variabel isi, temp dan i dengan nilai 0.
 Baris 64 sampai 70 merupakan perhitungan greedy by weight
dengan jika nilai array w indeks sesuai var i lebih kecil sama
dengan nilai var k – isi maka akan melakukan penjumlahan
nilai temp dengan nilai array p indeks sesuai var i dan nilai var
isi dengan array w indeks sesuai var i.
 Baris 69 merupakan i increment artinya akan menambah 1 nilai
setiap perulangan.
 Proses akan terus berulang jika nilai var isi lebih kecil dari nilai
var k dan nilai var i lebih kecil dari nilai var n.
 Baris 71 akan menampilkan nilai var isi.
 Baris 72 akan mengembalikan nilai dari var temp ke method
main.
Penjelasan :
 Pada method greedyByDensity pada baris 76 merupakan
deklarasi variabel isi, temp dengan nilai 0 dan i dengan nilai
sesuai nilai var n – 1.
 Baris 77 sampai 83 merupakan perhitungan greedy by density
dengan jika nilai array w indeks sesuai var i lebih kecil sama
dengan nilai var k – isi maka akan melakukan penjumlahan
nilai temp dengan nilai array p indeks sesuai var i dan nilai var
isi dengan array w indeks sesuai var i.
 Baris 82 merupakan i decrement artinya akan mengurangi 1
nilai setiap perulangan.
 Proses akan terus berulang jika nilai var isi lebih kecil dari nilai
var k dan nilai var i lebih besar sama dengan 0.
 Baris 84 akan menampilkan nilai var isi.
 Baris 85 akan mengembalikan nilai dari var temp ke method
main.
Penjelasan :
 Baris 90 merupakan pembuatan objek scanner dengan nama sc.
 Baris 92 input nilai var k tipe data int untuk kapasitas knapsack.
 Baris 94 input nilai var n tipe data int untuk jumlah objek.
 Baris 96 dan 97 merupakan pembuatan array 1 dimensi var w
dan p tipe data int dengan jumlah kapasitas masing – masing
sesuai nilai inputan var n ditambah 1 nilai.
 Baris 99 sampai 104 merupakan pemberian nilai pada array w
pada masing – masing indeks dengan banyak indeks sesuai
inputan nilai var n.
 Baris 106 sampai 111 merupakan pemberian nilai pada array p
pada masing – masing indeks dengan banyak indeks sesuai
inputan nilai var n.
 Baris 112 sampai 115 merupakan perhitungan untuk density
dengan melakukan pembagian pada array p dengan array w
masing – masing indeks.
Penjelasan :
 Baris 118 sampai 120 akan menampilkan output dari array p, w,
dan d.
 Baris 122 memanggil method sort dengan parameter data p, w,
dan d.
 Baris 123 memanggil method greedyByProfit dengan
parameter data p, w, n dan k.
 Baris 124 akan menampilkan output nilai var profit.
 Baris 125 memanggil method sort dengan parameter data w, p,
dan d.
 Baris 126 memanggil method greedyByWeight dengan
parameter data w, p, n dan k.
 Baris 127 akan menampilkan output nilai var weight.
 Baris 128 memanggil method sort dengan parameter data d, w,
dan p.
 Baris 129 memanggil method greedyByDensity dengan
parameter data d, w, p, n dan k.
 Baris 130 akan menampilkan output nilai var density.
Kel 10

Penjelasan :
 Pada method Greedy baris 12 terdapat pembuatan array s 1
dimensi tipe data int dengan besar kapasitas sesuai nilai var
uang.
 Baris 13 sampai 21 terdapat perulangan while dengan kondisi
jika nilai array jum indeks sesuai nilai var i lebih kecil dari nilai
var uang, maka perulangan akan terus berjalan.
 Didalam perulangan while baris 14 terdapat perkalian dari
angka acak dengan panjang atau banyak data pada array koin
ditampung pada var k.
 Baris 15 pemberian nilai pada array s indeks sesuai nilai array
hasil indeks sesuai nilai var i dengan nilai dari array koin
indeks sesuai nilai var k.
 Baris 17 terdapat kondisi if apabila hasil dari penjumlahan
array jum indeks sesuai nilai var i dengan array s indeks sesuai
nilai array hasil indeks sesuai nilai var i lebih kecil sama
dengan dari nilai var uang maka akan melakukan proses
dibawahnya.
 Baris 18 akan menampilkan output nilai dari array s indeks
sesuai nilai array hasil indeks sesuai nilai var i.
 Baris 19 terdapat penjumlahan dari array jum indeks sesuai var
i dengan array s dengan indeks seusai array hasil indeks sesuai
nilai var i.
 Baris 20 terdapat penjumlahan array hasil indeks sesuai nilai
var i dengan nilai 1.
 Pada baris 24 sampai 28 terdapat kondisi if else dengan kondisi
jika nilai array jum indeks sesuai nilai var i sama dengan nilai
var uang maka akan melakukan proses if, yaitu menampilkan
output nilai array hasil indeks sesuai nilai var i. jika kondisi
salah maka akan melakukan proses else yaitu menampilkan
output “Tidak ada solusi”.

Penjelasan :
 Pada method sorting menggunakan konsep bubble sort dengan
kondisi jika nilai dari array data indeks sesuai perulangan j
lebih kecil dari nilai array data indeks sesuai perulangan j +1
maka akan melakukan pertukaran posisi.
 Baris 35 sampai 37 adalah pertukaran posisi array data indeks
sesuai perulangan j dengan array data indeks sesuai perulangan
j + 1.
Penjelasan :
 Pada method solusiGlobal pada baris 44 terdapat pembuatan
array bin 1 dimensi tipe data int dengan besar kapasitas atau
banyak indeks sesuai dengan banyak indeks array data.
 Baris 45 pendeklarasian var j dengan nilai 0.
 Baris 46 sampai 51 terdapat perulangan for sesuai banyak nilai
pada array data.
 Pada baris 47 terdapat kondisi if jika nilai array jum indeks
sesuai nilai var i sama dengan nilai var uang maka lakukan
proses if.
 Didalam kondisi if baris 48 terdapat pemberian nilai dari array
bin inseks sesuai nilai var j dengan nilai dari array data indeks
sesuai nilai var i.
 Baris 49 terdapat pemberian nilai dari var j dengan nilai dari
hasil penjumlahan nilai var j saat itu dengan nilai 1.
 Baris 53 pemanggilan method sorting dengan parameter data
array bin dan banyak data pada array bin.
 Baris 56 terdapat perulangan for sesuai banyak data array bin.
 Baris 57 terdapat kondisi if jika nilai array bin indeks sesuai
nilai var i tidak sama dengan 0 maka akan melakukan proses if.
 Baris 58 terdapat penambahan 1 nilai pada nilai var k saat itu.
 Pada baris 60 akan menampilkan output array bin indeks sesuai
nilai var k – 1.
 Baris 61 akan menampilkan output array bin indeks ke 0.

Penjelasan
 Pada method main baris 69 merupakan pembuatan objek
DataInputStream dengan nama entri.
 Baris 71 melakukan inputan untuk var uang tipe data int
sebagai jumlah uang yang akan ditukar.
 Baris 73 melakukan inputan untuk var n tipe data integer
sebagai banyaknya koin.
 Baris 74 pembuatan array koin 1 dimensi tipe data int dengan
besar kapasitas sesuai nilai n.
 Baris 76 sampai 79 untuk melakukan inputan besarnya koin
pada array koin setiap indeks nya.
 Baris 82 melakukan inputan untuk var batas tipe data int
sebagai batas iterasi.
 Baris 83 dan 84 merupakan pembuatan array hasil dan jum 1
dimensi tipe data int dengan besar kapasitas sesuai nilai var
batas.
 Baris 87 terdapat pembuatan objek untuk greedy dengan nama
g.
 Baris 89 sampai 92 terdapat perulangan for sesuai nilai var
batas.
 Didalam perulangan for terdapat pemanggilan method Greedy.
 Baris 93 pemanggilan method solusiGlobal.

Perbandingan Kedua Program :

- Untuk program kelompok 9 menggunakan algortitma greedy untuk


permasalahan knapsack untuk mengetahui greedy dari profit,
weight dan density.
- Untuk program dari kelompok 10 menggunakan algoritma greedy
untuk memecahkan solusi maksimum dan minimun dalam
penukaran uang koin.

2. Tugas 2
Penjelasan :

 Baris 4 merupakan pendeklarasian var static n dengan nilai 5


dan var w tipe data int.
 Baris 5 pembuatan static class obj array st 1 dimensi.
 Baris 6 pembuatan objek scanner dengan nama input.
 Pada baris 13 pada method main melakukan inputan pada var n.
 Pada baris 14 melakukan inputan pada var w sebagai berat
maksimum.
 Baris 17 pembuatan array st dengan class

Penjelasan :

 Pada method round baris 34 terdapat pendeklarasian var p tipe


data float dengan nilai hasil dari 10 pangkat nilai var Rp1.
 Baris 35 merupakan perkalian nilai Rval saat itu dengan nilai
dari var p.
 Baris 36 terdapat var tmp tipe data float dengan nilai dari nilai
var Rval yang dibulatkan.
 Baris 37 mengembalikan nilai ke method main hasil dari
pembagian nilai var tmp dengan nilai var p dengan tipe data
float.
Penjelasan :

 Pada method fill_sack baris 41 terdapat pembuatan array x tipe


data float dengan besar kapasitas sesuai nilai var n.
 Baris 42 pendeklarasian var u dan tot_profit dengan nilai 0.
 Baris 44 terdapat perulangan for yang mengulang sebanyak
sesuai dengan nilai var n.
 Baris 45 terdapat pendeklarasian array x indeks sesuai
perulangan i dengan nilai 0.
 Baris 46 pendeklarasian var u dengan nilai sesuai nilai var w.
 Baris 47 sampai 58 terdapat perulangan for i yang akan
berulang sebanyak nilai var n.
 Didalam perulangan for i terdapat kondisi if pada baris 48
dengan kondisi jika array st weight sesuai perulangan i lebih
besar dari nilai var u maka lakukan proses if.
 Baris 50 terdapat deklarasi array x indeks sesuai perulangan i
dengan nilai 1.
 Baris 51 terdapat pengurangan nilai var u saat itu dengan nilai
array st weight indeks sesuai perulangan i.
 Baris 52 sampai 55 akan menampilkan output dari array st
index, profit dan weight dengan indeks sesuai perulangan i.
 Baris 56 akan menampilkan output nilai var u.
 Baris 57 terdapat penjumlahan nilai var tot_profit saat itu
dengan nilai array st profit indeks sesuai perulangan i.
 Baris 59 akan menampilkan output nilai var tot_profit.

Penjelasan :

 Pada method bubbleSort terdapat sorting data dengan jenis


bubble sort dengan kondisi jika array st p_perKg indeks sesuai
perulangan i lebih kecil dari nilai array st p_perKg indeks
sesuai perulangan i + 1 maka lakukan proses pertukaran posisi.

Penjelasan :

 Pembuatan class obj didalamnya terdapat var weight, profit,


p_perKg dengan tipe data float dan var index tipe data int.
3. Tugas 3
Algoritma Greedy
Diketahui :
- Banyak objek : 3.
- Berat Maksimum : 20Kg.
- Weight : 18Kg, 15Kg, 10Kg.
- Profit : 25, 24, 15.

Barang yang dapat disimpan sehingga diperoleh nilai profit maksimal.

Jawab :

Bandingkan Profit dengan bobot

P/W1 = 25 / 18 = 1.39

P/W2 = 24/15 = 1.6


P/W3 = 15/10 = 1.5

Algoritma Greedy :

O1, O2, O3 = 0

BM = 20Kg

Perulangan For i = 1 sampai n = 3

For i = 1

Apakah O1 > BM = 15> 20 = false

Maka BM -= O1 = 20-15 = 5.

Repeat

For i = 2

Apakah O2 > BM = 15 > 5 = True Maka For End

Apakah 2<= 3 = True

Maka Barang yang dapat disimpan adalah objek ke 2.


BAB III

C. KESIMPULAN
Algoritma greedy adalah salah satu dari sekian banyak algoritma
yang sering dipakai dalam implementasi sebuah System atau program
mencari solusi optimal memakai 2 buah macam persoalan optimasi yaitu
maksimasi dan minimasi.

You might also like