Selasa, 26 Juni 2012

jangan d buka


PERTEMUAN 9
LARIK ATAU
ARRAY
LARIK ATAU ARRAY
adalah tipe terstruktur yang terdiri dari
sejumlah komponen yang mempunyai
tipe data yang sama.
Variabel Array terdiri dari :
1. Array Berdimensi Satu
2. Array Berdimensi Dua
1. Array Berdimensi Satu
Bentuk Umum :
Tipe_Data Nama_Variabel [ukuran]
Contoh:
int nilai [6];
jumlah elemen
nama array
tipe data elemen array
2. Array Berdimensi Dua
Bentuk Umum :
Tipe_Data Nama_Variabel [index-1] [index-2]
Contoh:
int nilai [2] [3] ;
jumlah kolom
jumlah baris
nama array
tipe data elemen array
Contoh I :
int i, j ;
int tabel [3] [2] ;
for (i=0; i<=2 ; i++)
{
for (j=0; j<=1 ; j++)
{
cout<< “data ke - ”<< i << j<<endl;
cout<< “nilai =“ ;
cin>> tabel [ i ] [ j ];
}
}
Hasil Tabel
Tabel[0][0] Tabel[0][1]
Tabel[1][0] Tabel[1][1]
Tabel[2][0] Tabel[2][1]
Contoh II :
Diberikan matriks A sebagai berikut :
1 1 1 1
0 1 1 1
0 0 1 1
0 0 0 1
Perintah pokok yg digunakan pd pengisian
matriks A adalah :
A[i,j] = 1, jika i <=j , A[i,j] = 0, jika i > j
1. Diberikan matriks A sebagai berikut :
1 2 3 4
0 2 3 4
0 0 3 4
0 0 0 4
Latihan :
Perintah pokok yg digunakan pd pengisian
matriks A adalah :
2. Diberikan matriks A sebagai berikut :
1 0 0 0
2 2 0 0
3 3 3 0
4 4 4 4
Perintah pokok yg digunakan pd pengisian
matriks A adalah .
3. Diberikan matriks A sebagai berikut :
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Perintah pokok yg digunakan pd pengisian
matriks A adalah :
4. Diberikan algoritma sbb :
int i ;
int nilai[4];
for(i=0;i<=3;i++)
{
a[i] = 2 * i + 1;
cout<<a[i];
}
Algoritma di atas akan menghasilkan nilai .....
5. Diberikan algoritma sbb, diketahui nilai dari array
x[0]=10, x[1]=12, x[2]=12, x[3]=10 dan y[0]=2, y[1]=3,
y[2]=4, y[3]=5
int i;
int x[4], y[4];
float hasil ;
hasil=0;
for(i=0; i<=3; i++)
hasil = hasil + x[i] / y[i];
cout<<“hasil=“<<hasil;
Maka nilai hasil dari algoritma diatas adalah......
Tugas Kelompok (max 5 orang)
Buatlah program dengan menggunakan C++
1. Penjumlahan dua buah matriks
2. Pengurangan dua buah matriks
Ket :
Masing-masing kelompok dapat memilih salah satu dari
program di atas.
Listing program & output dicetak
Nama, Nim dan Kelas dicetak di listing program


PERTEMUAN 10
METODE DEVIDE AND
CONQUER
Bentuk Umum Proses Metode D And C dpt
dilihat sbb :
n input I
n input
n input II n input III n input K
Subproblem I
Subsolusi I
Solusi Optimal
Subsolusi II Subsolusi III Subsolusi K
Subprob. II Subprob. III Subprob. K

1. Metode Selection Sort
2. Metode Buble Sort
3. Metode Merge Sort
4. Metode Quick Sort
SORTING
5. Metode Insertion.
Hal yg mempengaruhi Kecepatan Algoritma Sort :
Jumlah Operasi Perbandingan & Jumlah Operasi
Pemindahan Data

Tehnik pengurutan dgn cara pemilihan elemen
atau proses kerja dgn memilih elemen data
terkecil utk kemudian dibandingkan &
SELECTION SORT
ditukarkan dgn elemen pd data awal, dst s/d
seluruh elemen shg akan menghasilkan pola
data yg telah disort.
Prinsip Kerja dari Teknik Selection Sort ini
adalah :
1. Pengecekan dimulai data ke-1 sampai
dengan data ke-n
2. Tentukan bilangan dengan Index terkecil
dari data bilangan tersebut
3. Tukar bilangan dengan Index terkecil
tersebut dengan bilangan pertama ( I = 1 )
dari data bilangan tersebut
4. Lakukan langkah 2 dan 3 untuk bilangan
berikutnya ( I= I+1 ) sampai didapatkan
urutan yg optimal.

Contoh : 22 10 15 3 8 2
Iterasi 1
1 2 3 4 5
6
Langkah 1: 22 10 15 3 8 2
Langkah 2 : 22 10 15 3 8
2
Langkah 3 : 2 10 15 3 8 22
Langkah 4 : Ulangi langkah 2 dan 3 .

Iterasi 2
Langkah 1: 2 10 15 3 8 22
Langkah 2: 2 10 15 3 8 22
Langkah 3: 2 3 15 10 8 22
Langkah 4: Ulangi langkah 2 dan 3 .
Lakukan Iterasi selanjutnya sampai iterasi
ke-6

BUBBLE SORT
Tehnik Sort yg bekerja dgn menggunakan prinsip
gelembung (bubble) udara yg akan bergerak
naik ke atas secara satuper satu.
Prinsip Kerja dari Bubble Sort adalah :
1. Pengecekan mulai dari data ke-1 sampai data
ke-n
2. Bandingkan data ke-n dengan data sebelumnya
(n-1)
3. Jika lebih kecil maka pindahkan bilangan
tersebut dengan bilangan yg ada didepannya
( sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)
4. Jika lebih besar maka tidak terjadi pemindahan
5. Ulangi langkah 2 dan 3 s/d sort optimal.

Contoh : 22 10 15 3 8 2
terasi 1
1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2
Langkah 2: 22 10 15 3 8 2
Langkah 3: 22 10 15 3 2 8
Langkah 4: Ulangi langkah 2 dan 3
Hasil iterasi 1 : 2 22 10 15 3 8

Iterasi 2
Langkah 1: 2 22 10 15 3 8
Langkah 2: 2 22 10 15 3 8
- 8>3, maka 8 tidak pindah,
untuk selanjutnya bandingkan
data sebelunya yaitu 3.
Langkah 3: 2 22 10 3 15 8
Langkah 4: Ulangi langkah 2 dan 3
Hasil Iterasi 2 : 2 3 22 10 15 8
Lakukan Iterasi selanjutnya sampai iterasi ke- 6

Quick Short
merupakan suatu algoritma pengurutan data yang
mempergunakan teknik pemecahan data menjadi partisi-partisi.
Suatu metode pengurutan yang membandingkan suatu elemen
(pivot) dengan elemen yang lain dan menyusunnya sedemikian
rupa sehingga elemen yang lain yang lebih kecil daripada pivot
terletak disebelah kiri pivot sedangkan elemen yang lebih besar
dari pivot diletakkan di sebelah kanan pivot.
Prinsip Kerjanya adalah:
1. pertama-tama tentukan sebuah elemen dipilih dari data yang akan
diurutkan. Elemen tersebut dikatakan sebagai variabel sementara,
sehingga nilai variabel sementara berada di suatu posisi ke I yang
memenuhi kondisi sebagai berikut:

2. Semua elemen di posisi ke-1 sampai dengan ke I-1 adalah
lebih kecil atau sama dengan Sementara.
3. Semua elemen di Posisi ke I+1 sampai dengan ke N adalah
lebih besar atau sama dengan Sementara.
Contoh:
33 45 18 7 5 99 57 25 55 10 40
Misal elemen yang dipilih adalah elemen yang pertama, yaitu 33. Maka hasil
sementara adalah sebagai berikut:
10 25 18 7 5 33 57 99 55 45 40

Tampak kondisi berikut terpenuhi, yaitu:
Semua elemen di posisi ke 1 sampai ke 5 adalah 10, 25,
18, 7, dan 5 (lebih kecil dari 33).
Semua elemen di posisi ke 7 sampai dengan 11 adalah 57,
99, 55, 45, dan 40 (lebih besar atau sama dengan 33).
Dengan demikian data tersebut akan terpecah menjadi 2
partisi, yaitu:
(10 25 18 7 5) 33 (57 99 55 45 40)

Proses ini diulangi untuk masing-masing partisi data. Untuk
partisi yang pertama bila nilai Sementara yang diambil
adalah data pertama kembali dalam partisi yang
bersangkutan, yaitu 10 dan diatur kembali sedemikian
rupa, maka nilai data yang dipilih akan terletak di posisi
sebagai berikut:
(5 7) 10 (18 25) 33 (57 99 55
45 40)

INSERTION SORT
Prinsip dasar Insertion adalah secara berulang-ulang
menyisipkan / memasukan setiap elemen. ke dlm
posisinya / tempatnya yg benar.
1. Prinsip Kerja Insertion Sort adalah
2. Pengecekan mulai dari data ke-1 sampai data
ke-n
3. Bandingkan data ke-I ( I = data ke-2 s/d data ke-n
)
4. Bandingkan data ke-I tersebut dengan data
sebelumnya (I-1), Jika lebih kecil maka data
tersebut dapat disisipkan ke data awal sesuai
dgn posisisi yg seharusnya
5. Lakukan langkah 2 dan 3 untuk bilangan
berikutnya ( I= I+1 ) sampai didapatkan urutan yg
optimal.

Contoh : 22 10 15 3 8 2
Iterasi 1
1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2
Langkah 2: 22 10 15 3 8 2
Langkah 3: 10 22 15 3 8 2
Langkah 4: Ulangi langkah 2 dan 3

Iterasi 2
Langkah 1: 10 22 15 3 8 2
Langkah 2: 10 22 15 3 8 2
Langkah 3: 10 15 22 3 8 2
Langkah 4: Ulangi langkah 2 dan 3
Lakukan Iterasi selanjutnya sampai iterasi
ke- 6
Catatan : Setiap ada pemindahan, maka elemen.
Yang sudah ada akan di insert sehingga akan
bergeser kebelakang.

Prinsip Kerja Merge Sort adalah :
Kelompokan deret bilangan kedalam 2 bagian, 4
bagian, 8 bagian, ......dst _ (2n)
Urutkan secara langsung bilangan dalam
MERGE SORT
kelompok tsb.
Lakukan langkah diatas untuk kondisi bilangan yg
lain sampai didapatkan urutan yg optimal .

Contoh : 22 10 15 3 8 2
Iterasi 1
1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2
Langkah 2: 10 22 3 15 2 8
Iterasi 2
Langkah 1: 10 22 3 15 2 8
Langkah 2: 3 10 15 22 2 8

Iterasi 3
Langkah 1:3 10 15 22 2 8
Langkah 2:2 3 8 10 15 22

Contoh : 22 10 15 3 8 2
Iterasi 1
1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2
Langkah 2: 10 22 3 15 2 8
Iterasi 2
Langkah 1: 10 22 3 15 2 8
Langkah 2: 3 10 15 22 2 8

Iterasi 3
Langkah 1:3 10 15 22 2 8
Langkah 2:2 3 8 10 15 22

PERTEMUAN 11
TEHNIK SEARCHING
1. Tehnik Pencarian Tunggal :
a. Tehnik Sequential Search / Linier Search
TEHNIK SEARCHING
Tehnik Pencarian :
b. Tehnik Binary Search
2. Tehnik Pencarian Nilai MAXMIN :
a. Tehnik StraitMAXMIN
b. Tehnik D and C
1. Tehnik Pencarian Tunggal :
a. Linear/Sequential Search ( Untuk data yg belum
terurut / yg sudah terurut )
Pencarian yg dimulai dari record-1 diteruskan ke
record selanjutnya yaitu record-2, ke-3,..., sampai
diperoleh isi record sama dengan informasi yg
dicari
Algoritma :
1. Tentukan I = 1
2. Ketika Nilai (I) <> X Maka Tambahkan I = I +1
3. Ulangi langkah No. 2 sampai Nilai(I) = X
4.Jika Nilai (I) = N+1 Maka Cetak “Pencarian Gagal” selain
itu Cetak “ Pencarian Sukses “
b. Binary Search ( Untuk data yg sudah
terurut )
Digunakan mencari sebuah data pd himp.datadata
data yg tersusun secara urut, yaitu data yg telah
diurutkan dr besar ke kecil/sebaliknya. Proses
dilaksanakan pertama kali pd bgn tengah dr
elemen himpunan, jk data yg dicari ternyata <
elemen bagian atasnya, maka pencarian
dilakukan dr bagian tengah ke bawah.
1. Low = 1 , High = N
2. Ketika Low <= High Maka kerjakan langkah No .3, Jika
tidak Maka kerjakan langkah No.7
3. Tentukan Nilai Tengah dengan rumus
Algoritma :
mid = ( Low + High ) Div 2
4. Jika X < Nil. Tengah Maka High = Mid –1
5. Jika X > Nil. Tengah Maka Low = Mid +1
6. Jika X = Nil. Tengah Maka Nil. Tengah = Nil. Yg dicari
7. Jika X > High Maka Pencarian GAGAL
2. Tehnik Pencarian MAXMIN
Searcing dengan Tehnik STRAITMAXMIN
Menentukan / mencari elemen max & min. Pada
Himpunan yg berbentuk array linear. Waktu
tempuh/time complexity yg digunakan untuk
menyelesaikan pencarian hingga mendapatkan
solusi yg optimal terbagi atas best case,average
case dan worst case.
Algoritma untuk mencari elemen MaxMin :
PROCEDURE STRAITMAXMIN(A,n,i,max,min)
int i,n, A [n], max,min
max _ min _A[0]
FOR i _1 To n
IF A[i] > max; max _A[i];
ELSE IF A[i] < min ; min _A[i] ENDIF
ENDIF
REPEAT
END STRAITMAXMIN
BEST CASE
Keadaan yg tercapai jika elemen pada himpunan
A disusun secara increasing (menaik). Dengan
perbandingan waktu n - 1 kali satuan operasi.
Contoh : Terdapat himp.A yg berisi 4 buah
bilangan telah disusun secara increasing dengan
A[0] = 2, A[1] = 4, A[2]=5, A[3]=10. Tentukan /
cari Bilangan Max&Min serta jumlah operasi
perbandingan yg dilakukan.
Penyelesaian
untuk masalah tersebut dapat digunakan procedure
STRAITMAXMIN yg menghasilkan
bilangan Min=2 & bilangan Max=10,
Operasi perbandingan data mencari bilangan
MaxMin dari himpunan tersebut (n-1) =3 kali
operasi perbandingan.
WORST CASE
Terjadi jika elemen dalam himp. disusun
secara decreasing (menurun). Dengan.
Oprasi perbandingan sebanyak 2(n-1) kali
satuan operasi.
Contoh : Mencari elemen MaxMin & jumlah
oprasi perbandingan yg dilakukan terhadap
himp.A yg disusun decreasing.
A[0]=80, A[1]=21, A[2]=6, A[3]=-10
Penyelesaian
untuk masalah tersebut dengan proses
STRAITMAXMIN adalah elemen max=80 &
elemen min=-10, Operasi. perbandingan
untuk elemen Maxmin tersebut adalah 2(4-1)
= 6 kali satuan operasi.
AVERAGE CASE
Jika pencarian elemen MaxMin dilakukan pada
elemen dalam himpunan yg tersusun secara acak
(tidak decreasing/tidak increasing). Jumlah oprasi.
Perbandingan yg dilakukan adalah rata-rata waktu
tempuh best case & worst case, yaitu ½ [ (n-1) +
2(n-1) ] = ( 3n/2 -1 ) kali.
Contoh, Pada himpuan A yg berisi { 5,-4, 9,7 }
dilakukan pencarian elemen max & min dengan
menggunakan proses STRAITMAXMIN. Berapa
elemen maxmin yg didapatkan & jumlah oprasi
perbandingan yg dilakukan.
Penyelesaiannya :
Elemen max=9, & elemen min=-4. Jumlah
operasi perbandingan adalah ( 3. 4/2 - 1) = 5
kali satuan operasi.
Searching dengan Tehnik DANDC
Dengan Prinsip Dasar Metode Devide & akan
dapat dipecahkan suatu permasalahan
proses Searching elemen Max&Min dengan
teknik DANC
Contoh : Tentukan elemen MaxMin suatu
array A yg terdiri 9 bil. :
A[1] = 22, A[4] = -8, A[7] = 17
A[2] = 13, A[5] = 15, A[8] = 31
A[3] = -5, A[6] = 60, A[9] = 47
Penyelesaian :
1,5
1,9
6,9
4,5
1,2 3,3
1,3 6,7 8,9
Lalu Proses tree call dr setiap elemen yg ditunjuk pada
bagan tree tersebut diatas. Dengan cara, membalik
terlebih dahulu posisi tree dr bawah ke atas. Lalu
mengisinya dengan elemen-elemnnya sesuai dengan
bagan tree. Perhatikan bagan tree call ini :
1,2 22,13 3,3 -5,-5
1,3 22,-5 4,5 -8,15 6,7 60,17
1,5 22,-8
6,9 60,17
1,9 60,-8
8,9 31,47

PERTEMUAN 12
METODE GREEDY
Untuk mendapatkan solusi optimal dr
permasalahan yg mempunyai dua kriteria
yaitu Fungsi Tujuan/Utama & nilai
pembatas (constrain)
METODE GREEDY
Proses Kerja Metode Greedy :
Untuk menyeselesaikan suatu permasalahan dgn n input
data yg terdiri dari beberapa fungsi pembatas & 1 fungsi
tujuan yg diselesaikan dgn memilih beberapa solusi yg
mungkin (feasible solution/feasible sets), yaitu bila telah
memenuhi fungsi tujuan/obyektif.
Metode GREEDY digunakan dlm
penyelesaian masalah - masalah :
1. Optimal On Tape Storage Problem
2. Knapsack Problem
3. Minimum Spanning Tree Problem
4. Shortest Path Problem.
1. Optimal Storage On Tapes Problem
Permasalahan Bagamana mengoptimalisasi
storage/memory dalam komputer agar data yg
disimpan dapat termuat dgn optimal.
Misalkan terdapat n program. yg akan disimpan
didalam pita (tape).Pita tsb mempunyai panjang
maks. sebesar L, masing2 prg. yg akan disimpan
mempunyai panjang L1,L2,L3 ...,Ln. Cara
penyimpanan adalah penyimpanan secara terurut
(sequential).
Persoalan = Bagamana susunan penyimpanan
program2 tersebut sehingga
L1 + L2 + L3 + ... + Ln = L ?
L1 L2 L3 . . . Ln
Pemecahannya = jika program.2 tersebut disimpan
dlm Order, dimisalkan adalah Order I, yaitu : j
sama dengan S tik maka akan didapat
k=1
n
Mean Retrieval Time (MRT) = S tj /n
j=1
n j
dan Optimal Storage = D(I) = S S lik
j=1 k=1
Contoh,
Misal terdapat 3 buah prg.(n=3) yg masing2
mpy panjang prg. (I1,I2,I3)=(5,10,3). Tentukan
urutan penyimpanannya scr berurutan
(sequential) agar optimal....!
Penyelesaiannya :
Dari 3 program tersebut akan didapat 6 buah
kemungkinan order, yg didapat dr nilai faktorial
3_3! (ingat faktorial n!).
ORDERING D ( I )
1,2,3 5 + (5+10) + (5+10+3) = 38
1,3,2 5 + (5+3) + (5+3+10) = 31
2,1,3 10 + (10+5) + (10+5+3) = 43
2,3,1 10 + (10+3) + (10+3+5) = 41
3,1,2 3 + (3+5) + (3+5+10) = 29
3,2,1 3 + (3+10) + (3+10+5) = 34
Dari tabel tersebut, didapat Susunan /
order yg optimal,sbb :
susunan pertama untuk program ke tiga
susunan kedua untuk program kesatu
susunan ketiga untuk program kedua
METODE GREEDY (lanjutan)
2. KNAPSACK Problem
Kasus : Terdapat n obyek (Xi;i=1,2,3,....n) yang
masing-masing mempunyai berat (weight)/ Wi &
masing-masing memiliki nilai (profit)/Pi yg berbedabeda.
Masalah :
Bagamana obyek-obyek tersebut dimuat /
dimasukan kedalam ransel (knapsack) yg mempunyai
kapasitas maks. = M. Sehingga timbul permasalahan
sbb:
Bagaimana memilih obyek yg akan dimuat dr n
obyek yg ada sehingga nilai obyek termuat jumlahnya
sesuai dgn kapasitas(£ M)
Jika semua obyek harus dimuat kedalam ransel
maka berapa bagian dr setiap obyek yg ada dapat
dimuat kedalam ransel sedemikian shg nilai kum.
maks. & sesuai dgn kapasitas ransel ?
Penyelesaian Knapsack Problem :
1. Dengan Secara Matematika
2. Dengan Kriteria Greedy.
3. Dengan Algoritma Pemrograman Greedy.
Penyelesaian Knapsack Dengan Secara
Matematika
Fungsi tujuan = fungsi utama/obyektif = fungsi yg mjd
penyelesaian permasalahan dgn mendptkan solusi yg optimal.
Solusi dimaksud = menemukan nilai/profit yg maks. utk jml
obyek yg dimuat dlm ransel shg sesuai kapasitas.
n
Fungsi Tujuan Maksimum : Ó Pi Xi
I=1
Fungsi pembatas = fungsi subyektif = fungsi yg bertujuan
untuk memberikan batas maks. dr setiap obyek untuk dapat
dimuat dalam ransel sehingga kapasitasnya tdk melebihi dr
jumlah maks.daya tampung ransel.
n
Fungsi Pembatas : Ó Wi Xi £ M
i=1
dimana : 0 £ Xi £ 1; Pi >0;Wi>0
Catatan : karena dengan menggunakan
Matematikan sangat sulit dan rumit maka tidak dibahas
lebih mendalam.
Penyelesaian Dengan Kriteria Greedy.
Konsep dr kriteria yg ditawarkan oleh metode Greedy yaitu :
Pilih obyek (barang) dengan nilai Pi maximal atau terbesar
Pilih obyek (barang) dengan beratWi minimal dahulu.
Pilih obyek (barang) dgn perbandingan nilai & berat yaitu
Pi/Wi yang terbesar.
Penyelesaiannya : Dengan Kriteria
Greedy.
Diketahui bahwa kapasitas M = 20kg ,
Dengan jumlah barang n=3
Berat Wi masing-masing barang
(W , W , W ) = (18, 15, 10)
123Nilai Pi masing-masing barang
(P1, P2, P3) = (25, 24, 15)
Pilih barang dengan Nilai Profit Maksimal
P1 = 25 _ X1 = 1, dimisalkan sebagai
batas atas nilai
P2 = 24 _ X2 = 2/15, dihitung dengan
Fungsi Pembatas
P3 = 15 _ X3 = 0, dimisalkan sebagai
batas bawah nilai
Pilih barang dengan Berat Minimal
W1 = 18 _ X1 = 0, sebagai batas bawah
W2 = 15 _ X2 = 2/3,dihitung dgn Fungsi
Pembatas
W3 = 10 _ X3 = 1, sebagai batas atas
Pilih barang dgn menghitung perbandingan yg terbesar
dr Profit dibagi Berat (Pi/Wi) yg diurut secara tidak naik,
yaitu :
P1/W1 = 25/18 _karena terkecil maka X1 = 0
P2/W2 = 24/15 _karena terbesar maka X2 = 1
P3/W3 = 15/10 _dengan Fungsi pembatas
X3 = 1/2.
Dibuatkan tabel berdasarkan elemen dr
ke-3 kriteria metode Greedy
Solusi ke (X1,X2,X3) ÓWiXi ÓPiXi
Pi Max ( 1, 2/15, 0) 20 28.2
( 0, 2/3, 1) 20 31.0
Pi/Wi max ( 0, 1, 1/2 ) 20 31.5
Nilai profit maksimal = 31.5 dengan komposisi yang
Sama

Pertemuan 13
Penyelesaian Dengan
Algoritma Pemrograman
Greedy.
Pertemuan 13
Penyelesaian Dengan Algoritma Pemrograman Greedy.
Algoritma GREEDY KNAPSACK.
PROCEDURE GREEDY KNAPSACK ( W, x, n)
float W[n], x[n], M, isi;
Int i, n;
x(1 : 1) _0 ; isi _M ;
FOR i _1 TO n
{
IF W[i] > M ; EXIT ENDIF
x[i] _1
isi _isi – W[i]
}
IF i £ n ; x[i] _isi / W[i] ENDIF
END_GREEDY KNAPSACK
Efektif jk data (Pi/Wi) disusun scr non decreasing dahulu.
Penyelesaiannya : Dengan Algoritma Prg. Greedy.
Diket. bhw kapasitas M = 20kg, dgn jmlh brg n=3
Berat Wi masing2 brg = (W1, W2, W3) = (18, 15, 10)
Nilai Pi masing2 brg = (P1, P2, P3) = (25, 24, 15)
Lakuk’ p’urutan scr tdk naik thdp hasil Pi/Wi, misalnya :
P1/Wi _ 25/18 = 1,39 menjadi urutan ke 3
2/W2 _ 24/15 = 1,60 menjadi urutan ke 1
P3/W3 _ 15/10 = 1.50 menjadi urutan ke 2
Sehingga m’hasilk’ pola urutan data yg baru,yaitu
W1,W2,W3 _ 15, 10, 18 dan P1,P2,P3 _ 24, 15, 25
Lalu data2 tsb diinputk’ pd Alg. Greedy, terjadi proses :
x(1:n) _0 ; isi _20 ; i = 1
W(i) > isi ? _ 15 > 20 ? _kondisi SALAH
x(1) = 1 _b’arti bhw brg tsb dpt dimuat seluruhnya.
Isi = 20 - 15 _kapasitas ransel b’kurang dgn sisa 5kg i =2
W(2) > isi ?? _ 10 > 5 ?? _kondisi BENAR
x(2)=5/10=1/2_benda 10kg hanya dpt dimuat 1/2 bgn
yaitu 5 kg.
i=3
Endif _diakhiri krn ransel sdh penuh (max =20kg)
Profit nilai yang didapat adalah : P1 + P2 + P3 yaitu:
24.1+ 15.1/2 + 18.0 = 24 + 7.5 = 31.5
PROBLEMA DAN MODEL GRAPH DALAM METODE
GREEDY ( Lanjutan )
1. TRAVELLING SALESMAN
Untuk menentukan waktu perjalanan seorang salesman
seminimal mungkin.
Permasalahan:
Setiap minggu sekali, seorang petugas kantor telepon
berkeliling untuk mengumpulkan coin-coin pada telepon
umum yang dipasang diberbagai tempat. Berangkat dari
kantornya, ia mendatangi satu demi satu telepon umum
tersebut dan akhirnya kembali ke kantor lagi. Masalahnya
ia menginginkan suatu rute perjalanan dengan waktu
minimal.
MODEL GRAPH :
5
3
1 2
8 7 10
11
12
11
9
9
10
8
4
Misalnya : Kantor pusat adalah simpul 1 dan misalnya
ada 4 telepon umum, yg kita nyatakan sebagai simpul 2,
3, 4 dan 5 dan bilangan pada tiap-tiap ruas menunjukan
waktu ( dalam menit ) perjalanan antara 2 simpul .
Langkah penyelesaian :
1. Dimulai dari simpul yg diibaratkan sebagai kantor
pusat yaitu simpul 1 .
2.Dari simpul 1 pilih ruas yg memiliki waktu yg
minimal.
3. Lakukan terus pada simpul – simpul yg lainnya
tepat satu kali yg nantinya Graph akan membentuk
Graph tertutup karena perjalanan akan kembali ke
kantor pusat.
4. Problema diatas menghasilkan waktu minimalnya
adalah 45 menit dan diperoleh perjalanan sbb :
Problema diatas menghasilkan waktu minimalnya
adalah 45 menit dan diperoleh perjalanan sbb :
1
2
7
5
4 3
8
12
10
8
2. MINIMUM SPANNING TREE
Kasus MST Problem = m’cari min.biaya (cost) spanning tree
dr setiap ruas (edge) graph yg m’btk pohon (tree).
Solusi dr p’masalah’ ini :
a. Dgn memilih ruas suatu graph yg memenuhi kriteria
dr optimisasi yg m’hasilk’ biaya min.
b. Penambah’ dr setiap ruas pd seluruh ruas yg m’btk
graph akan m’hasilk’ nilai/biaya yg kecil (minimum cost).
Kriteria2 dr spanning tree, yakni :
1. Setiap ruas pada graph harus terhubung (conected)
2. Setiap ruas pd graph hrs mpy nilai (label graph)
3. Setiap ruas pd graph tdk mpy arah (graph tdk berarah)
Proses Total minimum cost terbentuknya graph dgn
tahapan sbb:
Dari graph yg tetbentuk, apakah memenuhi kriteria MST.
Lakukan secara urut dr simpul ruas awal s/d ruas akhir
Pada setiap simpul ruas perhatikan nilai/cost dr tiap-tiap
ruas
Ambil nilai yg paling kecil (jarak tertpendek setiap ruas).
Lanjutkan s/d semua simpul ruas tergambar pd spanning
tree
Jumlahkan nilai/cost yg dipilih tadi.
3. SHORTEST PATH PROBLEM
1 2
4 3
5
6
10
30
20
55
40
35
15
45 50
25
Permasalahan : menghitung jalur terpendek dr sbh graph
berarah.
Kriteria utk permasalahan jalur terpendek/SP problem tsb :
1. Setiap ruas pd graph hrs mpy nilai (label graph)
2. Setiap ruas pd graph tdk hrs terhubung (unconnected)
3. Setiap ruas pd graph tsb hrs mempunyai arah (graph
berarah).
A B E
C D F
45
20
15
10 15 20 35
50 10
30
3
Jalur Panjang jarak
A – C 10
A – C – D 25
A – C – D – B 45
A – E 45
Penyelesaian:
PROBLEMA DAN MODEL GRAPH DALAM METODE
GREEDY
1. PEWARNAAN ( COLORING )
Problema pemberian warna kepada semua
simpul, sedemikian sehingga 2 simpul yang
berdampingan ( ada ruas menghubungkan
ke dua simpul tersebut ) mempunyai warna
yang berbeda .Banyak warna yang
dipergunkan , diminta seminimal mungkin
Contoh :
D
C
B
E
A
Permasalahan :
Menentukan pola lampu lalulintas dengan jumlah fase
minimal, dan pada setiap fase tidak ada perjalanan yang
saling melintas . Perjalanan yang diperbolehkan adalah : A ke
B, A ke C, A ke D, B ke C, B ke D, E ke B, E ke C dan E ke D
Langkah-langkah penyelesaian masalah :
1.Tentukan simpul dari perjalanan yang diperbolehkan
( untuk peletakan simpulnya bebas )
2.Tentukan ruas untuk menghubungkan 2 simpul yg
menyatakan 2 perjalanan yg saling melintas
EB
AD
EC
AC
AB BC
ED
BD
3. Beri warna pada setiap simpul dengan warna
warna baru.
- Bila Simpul berdampingan maka berilah warna
lain.
- Bila simpul tidak bedampingan maka berilah
warna yang sama
P
AB BC EC
EB
AD
AC
ED
BD H
H
M
P
4. Kita lihat Bahwa simpul AB , BC dan ED tidak
dihubungkan oleh suatu ruas jadi untuk simpul tersebut
tidak pernah melintas perjalanan-perjalanan lain dan
simpul tersebut selalu berlaku lampu hijau
5. Tentukan pembagian masing –masing simpul yang
sudah diberikan warna.
Putih = ( AC, AD )
Hitam = ( BD, EB )
Merah = ( EC )
Catatan :
Pembagian simpul berdasarkan simpul yang tidak langsung
berhubungan seminimal mungkin ( BISA DILAKUKAN
DENGAN BEBERAPA KEMUNGKINAN )
6.Dari langkah ke 5 diperoleh 3 fase, sehingga bisa kita
simpulkan keseluruhan situasi dan hasilnya dapat
dinyatakan dengan :
HIJAU AC, AD, AB, BC, ED
MERAH BD, EB, EC
Fase 1:
HIJAU BD, EB, AB, BC, ED
MERAH AC, AD, EC
Fase 2:
Fase 3 :
HIJAU EC, AB, BC, ED
MERAH AC, AD, BD, EB

Tidak ada komentar:

Posting Komentar