ALgoritma greedy merupakan
salah satu dari sekian banyak algoritma yang sering di pakai dalam
implementasi sebuah system atau program yang menyangkut mengenai
pencarian “optimasi”
Di dalam mencari sebuah solusi (optimasi) algoritma greedy hanya memakai 2 buah macam persoalan Optimasi,yaitu:
1. Maksimasi (maxizimation)
2. Minimasi (minimization)
Sekarang kita lanjut ke contoh soal yang aja ya..biar lebih enak membedakan antara soal mengenai optimasi/maksimasi dengan minimum/minimasi.
1.Persoalan maksimasi
( MasalahPenukaranUang): Diberikan uang senilai A. Tukar A dengan koin-koin yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukaran tersebut?
2. Persoalan minimasi
Contoh1: tersedia banyak koin 1, 5, 10, 25
•Uang senilai A= 32 dapat ditukar dengan banyak cara berikut:
32 = 1 + 1 + …+ 1 (32 koin)
32 = 5 + 5 + 5 + 5 + 10 + 1 + 1(7 koin)
32 = 10 + 10 + 10 + 1 + 1(5 koin)…dst
•Minimum: 32 = 25 + 5 + 1 + 1 (4 koin)
1. Maksimasi (maxizimation)
2. Minimasi (minimization)
Sekarang kita lanjut ke contoh soal yang aja ya..biar lebih enak membedakan antara soal mengenai optimasi/maksimasi dengan minimum/minimasi.
1.Persoalan maksimasi
( MasalahPenukaranUang): Diberikan uang senilai A. Tukar A dengan koin-koin yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukaran tersebut?
2. Persoalan minimasi
Contoh1: tersedia banyak koin 1, 5, 10, 25
•Uang senilai A= 32 dapat ditukar dengan banyak cara berikut:
32 = 1 + 1 + …+ 1 (32 koin)
32 = 5 + 5 + 5 + 5 + 10 + 1 + 1(7 koin)
32 = 10 + 10 + 10 + 1 + 1(5 koin)…dst
•Minimum: 32 = 25 + 5 + 1 + 1 (4 koin)
ini contoh program visual basicnya, buat form seperti gambar dibawah ini;
untuk yang bersangkutan, jangan lupa beri nama
textbox1 = pada textbox "masukkan 3 koin"
textbox2 = pada textbox "koin yang ditukar"
textbox3 = pada textbox "solusi"
berikut source codenya;
Public Class Form3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nilai As String = TextBox1.Text
Dim nilai1 As Integer = Mid(nilai, 1, 1)
Dim nilai2 As Integer = Mid(nilai, 3, 1)
Dim nilai3 As Integer = Mid(nilai, 5, 1)
Dim tukar As Integer = CStr(TextBox2.Text)
Dim hasil As String
hasil = ""
While tukar > 0
If (tukar - nilai3) > 0 Then
tukar = tukar - nilai3
hasil = hasil & CStr(nilai3)
If (tukar + nilai3) > nilai3 Then
hasil = hasil & "+"
End If
ElseIf (tukar - nilai2) > 0 Then
tukar = tukar - nilai2
hasil = hasil & CStr(nilai2)
If (tukar + nilai2) > nilai2 Then
hasil = hasil & "+"
End If
ElseIf (tukar - nilai1) >= 0 Then
tukar = tukar - nilai1
hasil = hasil & CStr(nilai1)
If (tukar + nilai1) > nilai1 Then
hasil = hasil & "+"
End If
End If
End While
TextBox3.Text = hasil
End Sub
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nilai As String = TextBox1.Text
Dim nilai1 As Integer = Mid(nilai, 1, 1)
Dim nilai2 As Integer = Mid(nilai, 3, 1)
Dim nilai3 As Integer = Mid(nilai, 5, 1)
Dim tukar As Integer = CStr(TextBox2.Text)
Dim hasil As String
hasil = ""
While tukar > 0
If (tukar - nilai3) > 0 Then
tukar = tukar - nilai3
hasil = hasil & CStr(nilai3)
If (tukar + nilai3) > nilai3 Then
hasil = hasil & "+"
End If
ElseIf (tukar - nilai2) > 0 Then
tukar = tukar - nilai2
hasil = hasil & CStr(nilai2)
If (tukar + nilai2) > nilai2 Then
hasil = hasil & "+"
End If
ElseIf (tukar - nilai1) >= 0 Then
tukar = tukar - nilai1
hasil = hasil & CStr(nilai1)
If (tukar + nilai1) > nilai1 Then
hasil = hasil & "+"
End If
End If
End While
TextBox3.Text = hasil
End Sub
End Class
bisa di edit sedikit untuk lebih memahami algoritma greedy ini, selamat mencoba :)
ijin copy ya ..
BalasHapusMantap gan
BalasHapusUntuk contoh lain dari Algoritma Greedy, bisa cek :
http://www.savensca.web.id/2019/01/program-vb-net-minimisasi-waktu.html