Aplikasi masalah 0 1 Knapsack menggunakan algoritma Greedy

(1)

APLIKASI MASALAH 0/1 KNAPSACK

MENGGUNAKAN ALGORITMA GREEDY

Skripsi

Diajukan untuk Menempuh Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

Yohanes Tommy Gratsianto

NIM : 065314035

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2013

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(2)

ii

APPLICATION 0/1 KNAPSACK PROBLEM

USING GREEDY ALGORITHM

Final Project

Presented as Partial Fulfillment of the Requirements

To Obtain Sarjana Komputer

Informatics Engineering Study Program

By :

Yohanes Tommy Gratsianto

065314035

INFORMATICS ENGINEERING STUDY PROGRAM

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2013

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(3)

iii

SKRIPSI

APLIKASI MASALAH 0/1 KNAPSACK

MENGGUNAKAN ALGORITMA GREEDY

Oleh :

Yohanes Tommy Gratsianto

NIM : 065314035

Telah disetujui oleh :

Dosen pembimbing

Alb. Agung Hadhiatma, S.T., M.T.

Tanggal : .... Mei 2013

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(4)

iv

SKRIPSI

APLIKASI MASALAH 0/1 KNAPSACK

MENGGUNAKAN ALGORITMA GREEDY

Dipersiapkan dan ditulis oleh

Yohanes Tommy Gratsianto

NIM : 065314035

Telah dipertahankan di depan Paniti Penguji

Pada Tanggal : 6 Mei 2013

Dan dinyatakan memenuhi syarat

Susunan Panitia Penguji :

Nama Lengkap

Tanda Tangan

Ketua

: Eko Hari Parmadi, S.Si., M.Kom.

……….

Sekretaris : Drs. J. Eka Priyatma, M.Sc., Ph.D.

……….

Anggota : Alb. Agung Hadhiatma, S.T., M.T.

……….

Yogyakarta, .... Mei 2013

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan

Paulina Heruningsih Prima Rosa, S.Si., M.Sc.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(5)

v

HALAMAN PERSEMBAHAN

Penulis mempersembahkan Tugas Akhir ini kepada :

Yesus Kristus

Atas segalanya yang telah kau berikan kepada kami.

Bapak Aloysius Hendarto dan Ibu M.M. Sri Utami

Terima kasih atas kasih sayang, cinta, pengorbanan,

doa dan dukungannya selama ini.

Christophorus Tommy Astanto

Aku bangga punya kakak sepertimu.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(6)

vi

PERNYATAAN KEASLIAN KARYA

Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya

atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan

daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 16 Mei 2013

Yohanes Tommy Gratsianto

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(7)

vii

LEMBAR PERNYATAAN PERSETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata

Dharma :

Nama : Yohanes Tommy Gratsianto

NIM : 065314035

Demi pengembangan ilmu pengetahuan, saya memberikan kepada

Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

APLIKASI MASALAH 0/1 KNAPSACK

MENGGUNAKAN ALGORITMA GREEDY

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya

memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk

menyimpan, mengalihkan dalam bentuk media lain, mengelola dalam bentuk

pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di

Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari

saya maupun memberi royalti kepada saya selama tetap mencantumkan nama saya

sebagai penulis.

Demikian pernyataan ini yang saya buat dengan sebenarnya.

Dibuat diYogyakarta

Pada tanggal : .... Mei 2013

Yang menyatakan

Yohanes Tommy Gratsianto

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(8)

viii

ABSTRAK

Masalah Knapsack adalah masalah di mana kita dihadapkan dengan

persoalan optimasi pemilihan benda untuk dimasukkan ke dalam sebuah wadah

yang memiliki keterbatasan ruang dan daya tampung tetapi benda yang akan

dimasukkan ke dalam wadah tersebut haruslah tetap dalam keadaan utuh bukan

merupakan fraksi dari benda tersebut. Masing-masing benda yang ada memiliki

sebuah nilai berupa berat, volume, harga, atau nilai lainnya yang dapat dipakai

sebagai penentu dalam proses pemilihannya. Sedangkan wadah memiliki sebuah

nilai konstanta yang dimilikinya dan merupakan sebuah pembatas dalam proses

pemilihan benda untuk dapat dimasukkan ke dalam wadah tersebut. Penelitian ini

bertujuan untuk mengetahui apakah algoritma Greedy dapat menyelesaikan semua

permasalahan Knapsack.

Hasil pengujian program menunjukkan bahwa algoritma Greedy bisa

menyelesaikan permasalahan Knapsack, tetapi tidak selalu menghasilkan solusi

yang optimal.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(9)

ix

ABSTACT

Knapsack problems are problems in which we are faced with the selection

of the optimization problem to put objects in a container that has limited space

and capacity but objects to be inserted into the container must remain intact is not

a fraction of these objects. Each object has a value that is in the form of weight,

volume, prices, or other value that can be used as a determinant in the selection

process. Meanwhile, the container has a value of its constants and is a barrier in

the process of selecting objects to be inserted into the container. This study aims

to determine whether the Greedy algorithm can solve all the problems Knapsack.

Program testing results show that the Greedy algorithm can solve the

problems Knapsack, but does not always produce an optimal solution.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(10)

x

KATA PENGANTAR

Puji syukur saya panjatkan ke hadirat Tuhan Yang Maha Esa karena atas

berkat dan rahmatnya sehingga penulis dapat menyelesaikan Skripsi ini.

Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar

sarjana di program studi Teknik Informatika Universitas Sanata Dharma,

Yogyakarta.

Dalam penulisan Skripsi ini, penulis telah mendapatkan bantuan dari

berbagai pihak. Untuk itu penulis dengan segala rendah hati ingin menyampaikan

ucapan terimakasih kepada:

1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc., selaku Dekan Fakultas

Sains dan Teknologi Universitas Sanata Dharma.

2. Ibu Ridowati Gunawan S.Kom., M.T., selaku Ketua Program Studi Teknik

Informatika Univesitas Sanata Dharma.

3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku Dosen Pembimbing

Akademik Teknik Informatika angkatan 2006 kelas A.

4. Bapak Alb. Agung Hadhiatma, S.T., M.T., selaku Dosen Pembimbing

Skripsi yang telah membimbing selama proses pembuatan Skripsi ini.

5. Seluruh Dosen Teknik Informatika Sanata Dharma yang telah

membimbing penulis selama studi.

6. Seluruh Laboran dan karyawan Fakultas Sains dan Telnologi Universitas

Sanata Dharma.

7. Anastasia Galih Sri Darmaningsih yang telah memberi semangat dan

dukungan untuk menyelesaikan studi dan skripsi ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(11)

xi

8. Teman-teman Teknik Informatika Universitas Sanata Dharma angkatan

2006. Terimakasih atas kebersamaanya selama ini.

9. Teman-teman UKF Basketball Fakultas Sains dan Teknologi Universitas

Sanata Dharma.

Penulis menyadari bahwa dalam penulisan skripsi ini masih banyak

kekurangan. Oleh karena itu kritik dan saran yang bersifat membangun akan

sangat diharapkan dalam sempurnanya skripsi ini.

Akhir kata, penulis berharap semoga penelitian dan tulisan ini dapat

bermanfaat bagi pembaca.

Yogyakarta, 16 Mei 2013

Penulis

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(12)

xii

DAFTAR ISI

HALAMAN JUDUL ... i

TITLE PAGE ... ii

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

HALAMAN KEASLIAN KARYA ... vi

HALAMAN PUBLIKASI KARYA ... vii

ABSTRAK ... viii

ABSTACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR TABEL ... xiv

DAFTAR GAMBAR ………. xv

BAB I. PENDAHULUAN

1.1 Latar Belakang ………... 1

1.2 Rumusan Masalah ………... 2

1.3 Batasan Masalah ………...… 2

1.4 Tujuan ……… 2

1.5 Metodologi ……… 2

1.6 Sistematika Penulisan ……… 4

BAB II. LANDASAN TEORI

2.1 Pengertian Permasalahan Knapsack ... 5

2.2 Knapsack 0/1 (Integer Knapsack) ...5

2.3 Algoritma Greedy ... 6

2.4 Bubble Sort (Exchange Sort) ... 8

2.5 Bahasa Pemrograman JAVA ... 9

BAB III. ANALISA DAN PERANCANGAN SISTEM

3.1 Analisa Sistem ... 11

3.2 Kebutuhan Sistem ... 11

3.3 Perancangan ... 12

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(13)

xiii

3.3.1 Perancangan Proses ...12

3.4 Algoritma Program ... 13

3.4.1 Algoritma Greedy By Profit ... 14

3.4.2 Flowchart Algoritma Greedy By Profit ………. 14

3.4.3 Algoritma Greedy By Weight ……… 15

3.4.4 Flowchart Algoritma Greedy By Weight ……….. 16

3.4.5 Algoritma Greedy By Density ………... 17

3.4.6 Flowchart Algoritma Greedy By Density ……….. 17

3.5 Perancangan Interface Program ……….……… 18

3.5.1 Form Menu Awal ……….…. 19

3.5.2 Form Menu Utama ……….…… 19

3.5.3 Form Menu Informasi Program ……….……… 20

BAB IV. IMPLEMENTASI PROGRAM

4.1 Implementasi Program ……….…. 21

4.1.1 Tampilan Menu Awal ………... 21

4.1.2 Tampilan Menu Informasi Program ………. 22

4.1.3 Tampilan Menu Utama ………. 23

4.1.4 Tampilan Menu Peringatan ……… 24

BAB V. ANALISA DAN HASIL PENGUJIAN PROGRAM

5.1 Analisa Program ………. 26

5.2 Hasil Pengujian Program ……… 26

BAB VI. KESIMPULAN DAN SARAN

6.1 Kesimpulan ……… 31

6.2 Saran ……….. 31

DAFTAR PUSTAKA ……….. 32

LAMPIRAN ……… 33

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(14)

xiv

DAFTAR TABEL

Table 2.1 Contoh Solusi Menggunakan Algoritma Greedy ……… 8

Tabel 2.2 Iterasi Pertama Bubble Sort ……… 8

Tabel 2.3 Iterasi Lengkap Bubble Sort ………... 9

Tabel 5.1 Hasil Pengujian Pertama ………. 27

Tabel 5.2 Hasil Pengujian Kedua ……… 28

Tabel 5.3 Hasil Pengujian Ketiga ……… 29

Tabel 5.4 Hasil Pengujian Keempat ……….... 30

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(15)

xv

DAFTAR GAMBAR

Gambar 1.1 Diagram Metode Waterfall ………. 3

Gambar 3.1 Diagram Konteks ………. 12

Gambar 3.2 Diagram Alur Data Level 1 ………. 12

Gambar 3.3 Diagram Alur Data Level 2 ………. 13

Gambar 3.4 Flowchart Algoritma Greedy By Profit ….……….. 15

Gambar 3.5 Flowchart Algoritma Greedy By Weight .……… 16

Gambar 3.6 Flowchart Algoritma Greedy By Density ….………... 18

Gambar 3.7 Form Menu Awal ……….……… 19

Gambar 3.8 Form Menu Utama ……….……….. 19

Gambar 3.9 Form Menu Informasi Program ……….……….. 20

Gambar 4.1 Tampilan NetBeans 5.5 ……….……….. 21

Gambar 4.2 Menu Awal Program ………... 22

Gambar 4.3 Menu Informasi Program .……… 23

Gambar 4.4 Menu Utama Program ………. 24

Gambar 4.5 Menu Peringatan ………. 25

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(16)

l

g

! "

y

#$

tu

! %# # #

y

" # " &#& #$ & &# #

t

&# & &" ! !%# # ## ' & % &# & '

w

&

y

" # # # '

t

t

"

&&

y

t

u

"

t

t

#

'&

y

"

&#

&

w

&

t

' %

t

t

& &

ut

' ( # & # '&

t

' %$ # ")# " ' &

y

" & # # # ' ## ' '

t

*

v

! * "*

t

u

## # +

y

" &

t

&# # '"# %

u

& ! # # +$ ,&"

w

& # # # ' # # !

t

%

y

" &# # ##+ & ' '

t

& ! # # ' & % &

t

&# &

w

&

t

' %$

- & # +

t

* # " &#"

t

ut

& '#& " "" % ' "$ -

t

' %* &## "#

tu

tu

"

y

" # % " " % ' "

y

" & & "

t

#& '# # '

t

#

t

y

"& $

.+ "! #

t

y

" &

t

&#"

t

+ #

$ # + "! #

t

.

ut

/!* -

y

# 0!" #"* 1 &+* "! #

t

1

t

# & #' + "# $

0 # #

"! #

t

& + #

"

t

%#"$0"" "! #

t

y

"

t

t

' %

u

+ # & " '# $ ,' # +*

t

#&%

t

##

tu

"! #

t

! %# # # + ' '

t

'

t

+ ! " '# % $

- 2 " 3# # # # '

t

## % + #

4%"

" " "!#

t

1&+$

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(17)

5

67 89

umusan Masalah

:;< =< > <? @ABC

t

D< EB FFGH G <; <

t

DFIHF? FJ<C=<I J F D

u

< ;FB D<J < ?<>< I KI LF @FBMI <;J <N =

t

FB< D<

ut

G <? < DOC G< I @; FI @CBCD<I O<B< I @P

1.3 Batasan Masalah

:G<; QI O<

t

<J < ID<J< ?<>G< BC

t

Q @<J<=>C BC IC< G< ?< >R

S P T FD OQ<

t

< I <;?C =<JC

y

< I @ GC B< IN <I @ D FI @@Q I<=< I O< ><J< ; FDB A @B<D<I U:V:P

5P TB A @B < D

y

< I @ <=< I GC OQ <

t

D FI @@Q I<=<I <? @AB C

t

D< EB F FGH QI LQ = D FIHF? FJ<C=<I; FB D<J< ?<>< IKILF @FBMI< ;J <N =P

W P X<

t

<D< JQ=< IOFBQ ;<G<

t

<C I LF@FB P

1.4 Tujuan

YQZ

u

< I G< BC

t

Q @< J <=>CB CI C < G<?<> D FB< IN<I @ G< I D FI @F DO<I @=< I < ;? C =< J C D<J< ?<> KI LF @FB MI< ;J <N= DFI @@QI<=< I <? @ABC

t

D< EB F FG H G<? < D =<J QJ; FI@< I @=QL< IO<B<I @P

1.5 Metodologi

S P [F

t

AGF\

t

QG CTQ J

t

< =<

[F

t

AGF CIC J FO<@< C ; FIQIZ< I @ G <?<D ;B AJ FJ ;FI @QD; Q?< I G<

t

< GFI @< I D F D; F? <Z<BC OFBO<@<C D< N<D ?CFB<

t

t

QB

y

< I @ OFB =< C<I

t

G FI @<I ;F D OQ<

t

< I ; B A@B< DC ICP

5P [F

t

AGFTFI@F DO< I @<ITFB <I @=<

t

]QI<=GFI @<I;< B<G C @D<

Waterfall

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(18)

^

_ `ab `cd edfg`h c`aaitj k i waterfall

lm

t

nom p qp op rs qtu tq vm w trtp xmqsqy t qr o tz t{ x| n vmv xm{ wst

t

tq x| nr| t{ vm vs tp omqrt q u mw s}s~tq xm { tutp €p o tzt{ {m

t

no m p qp

t

m|otxt

t

w mw m|t xt

t

t~t xtq

y

tq rtu t qop ztusutq

y

tp

t

‚ ƒmu t

y

t v t„pv

t

m{

… t~t xtq p qp oprs qtu t q s q}su {mqrs{xsz u tq um ws}s~t q x|nr| t{ om q rt qvm op up

t

{mzp w t

t

u tqt qtzp vpvot qxm |t q†t qrtqq‡t

ˆ  ‰qtzp vpv

… t~t xtq pqp oprs q tutq s q}su { mqrt qtz p vpv

t

m q}tqr x| nvm os| t

t

t

u

Š s qrvp

y

t qrtut qop rsqtu tqo t q

user interface

x| nr|t{

^ ‹m| t q†tq rtq

lm| s xtutq

t

t~txt q

y

t qr { m{ s v t

t

ut q xtot ut| tu}m |pv

t

pu o t|p

user

inteface

ot qx| nvm os|m t

t

t

u

Š s q rvpvm†t| t{m qom

t

tp z Œ  ‹m qs zp v t q‹ | nr|t{

lm q}m| ym {t~utq~tvpz|tq†t qrt qu mo tz t{x|nr| t{  ‹m qrsy ptq

lm q rsypt xtut~x| n r| t{vsot~vmv

u

tpomqrt q

y

t qrop p qrpqu t q

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(19)

Ž

 ‘’“”

st

m

•“

t

ka Penulisan

– —˜™ š ™ ›œ ž  Ÿ Ÿ™ Ÿ  Ÿ ¡™ ™ ›™Ÿ ¢š —š —Ÿ ¢£Ÿ ˜™Ÿ š š

t

£ ¤™

t

 ›™ ¥£ Ÿ —¦ š™ Ÿ š£ §™˜™ §£ ž›— ¨

©ª ©« ¬£Ÿ ¢™œ—¦—™Ÿ

©™§  Ÿ §£žš

t

£Ÿ

t

™Ÿ˜ ¦™

t

™ ž § £ ¦™ ›™ Ÿ ˜­ ž —¤—š™Ÿ ¤ ™š™¦™ œ­ §™

t

™š™Ÿ ¤™š™ ¦™œ­ 

u

®—™ Ÿ­¤ £

t

¯ ¢¦¯ ˜¢™ Ÿšš

t

£ ¤™

t

 ›™¥ £Ÿ—¦š™Ÿ°

©ª ©«« ±™ Ÿ ¢™š™Ÿ–£ ¯ ž

©™§ Ÿ §£ žš

t

£Ÿ ™Ÿ˜

t

£¯ ž ²

t

£¯ž

y

™Ÿ˜ ¢™ ¥™

t

¢˜—Ÿ™ ›™Ÿ š £ §™˜™ §™œ ™Ÿ ¥£ Ÿ ¢— ›—Ÿ˜ ¢™ ž ¥ £¤ § —™

t

™ Ÿ ¥ž¯ ˜ž™¤ ¢™Ÿ ¥£ Ÿ —¦ š™ Ÿ

t

—˜™š ™ ›œ  žš£³™ž™›£š£ ¦ —ž—œ™Ÿ °

©ª ©««« ªŸ™¦ š™¢™ Ÿ¬£ž™ Ÿ³™Ÿ ˜™Ÿ´ š

t

£ ¤

©™§ Ÿ§£ žš

t

£ Ÿ

t

™ Ÿ ˜™ Ÿ™ ¦ š™šš

t

£¤­™Ÿ ™¦ š™ ›£§

ut

—œ™ Ÿ­ž™ Ÿ³™Ÿ ˜™Ÿ —š£ žŸ  £ žµ™³£

y

™Ÿ ˜™›™Ÿ¢˜—Ÿ™›™ Ÿ¢™ ¦™¤¥£ ¤ § —™

t

™Ÿ¥ ž¯ ˜ž ™¤ ° ©ª ©«¶ «¤ ¥ ¦£ ¤£ Ÿ  ™ š¬ž¯ ˜ ž™¤

©™§ Ÿ §£ž š

t

£Ÿ ™Ÿ˜ œ™š ¦ ¤ ¥ ¦£ ¤£Ÿ ™ š ¥ ž¯˜ž™ ¤­ ¤£ Ÿ®£ ¦™ š ›™ Ÿ š£

t

™¥™¥ ¦ ›™ š

y

™Ÿ˜™¢™¢™ ¦™¤¥ž¯ ˜ž™¤°

©ª ©¶ ªŸ™¦ š™¢™ Ÿ·™š ¦¬£ Ÿ ˜— ®™ Ÿ¬ž¯ ˜ž™¤

©™§  Ÿ §£žš

t

£Ÿ

t

™Ÿ˜ ™Ÿ™¦š™ ¥ ž¯˜ž™ ¤ š£ž

t

™ ™ Ÿ™ ¦ š™ ¥£ ž§™ Ÿ ¢ Ÿ ˜™ Ÿ ›£ ¢ —™™ ¦ ˜¯ ž

t

¤ ™§£ ž ¢™š™ž›™Ÿœ™š¦¥ £Ÿ˜

u

® ™Ÿ¥ ž¯˜ž™ ¤ °

©ª ©¶« ¸£ š¤ ¥ — ¦™ Ÿ¢™Ÿ´™ ž™ Ÿ

©™§ Ÿ §£ž š

t

£ Ÿ  ™ Ÿ ˜ ›£ š ¤¥—¦™ Ÿ ¢™Ÿ š™ž™ Ÿ š£

t

£ ¦™œ ¤£ Ÿ ˜ ¤¥¦£ ¤£ Ÿ  ™ š ›™Ÿ¥ ž¯˜ž™ ¤ °

¹ªº–ª »¬ ¼´ –ª¸ª ±ª ½¬ «»ª ¾

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(20)

¿

ÀÁÀÂÂ ÃÁ ÄÅÁÆÁÄÇÈ ÉÊÂ ËÌ ÍÎ Ï

n

gertian Permasalahan Knapsack

ÐÑÒ ÓÔ Ò ÕÖ Ò ×Ò ØÒÙ

t

ÒÔ ÒÒ

t

u

ÖÒ ÚÛÑ Ü

y

Ò Ñ Ü ×ÝÜÛ ÑÒ ÖÒÑ ÛÑ ÞÛÖ ßàßÒÔ Û ÖÖÒ Ñ Ô à Ô ÛÒ

tu

á âÒÓÝ

t

Ý ×ÒÖ Ô àßÛÒ ãÒ ÚÒ Ñ Ü ãÝÔ Ò ×ÝÒßÓÛÑ Ü

t

Ö à ×ÒØÒ ß ÖÒ ÚÛÑÜ

t

à ÚÔ àãÛ Þá ÐÒ ÚÛ ÑÜ

t

àÚÔ àãÛ Þ ÙÒ ÑäÒ ×ÒÓÒ

t

ßà ÑäÝ ßÓÒÑ ãàãàÚ Ò ÓÒ åãæà Ö ×à Ñ ÜÒ Ñ

t

åÒ Ø

t

ÛÖÛÚÒÑ ØàãÝ ÙÖà ÕÝØÒ

t

Ò

u

ÔÒßÒ×àÑ ÜÒ ÑÛÖ ÛÚÒ ÑÖÒ ÓÒ Ô Ý

t

Ò ÔÖÒ ÚÛÑÜá

ÐÑÒ ÓÔ Ò Ö Ò×ÒØÒÙ ÓàÚ ßÒ Ô ÒØÒ ÙÒÑ ß àÑÜàÑÒÝ åÓ

t

Ýß ÝÔÒ Ô Ý

ÖåßãÝ ÑÒ

t

åÚÝ ÒØá ÐÑ Ò ÓÔ Ò ÕÖ ß à ÚÛ ÓÒ ÖÒ Ñ ÔÛ Ò

tu

Óà ÚßÒÔ Ò ØÒÙÒÑ

ãÒÜÒ ÝßÒÑ Ò

ßà ß ÝØÝÙ åãæàÖ

×Ò ÚÝ Ô à ÖÝÒÑ ãÒ ÑäÒ Ö ×Ò Ñ ãàÚÒÓÒ ãàÔ Ò Ú åãæà Ö

t

à ÚÔàã

ut

Ò ÖÒ Ñ ×ÝÔÝ ß ÓÒ Ñ Ôà ÙÝÑ Ü ÜÒ ×Ý Óà ÚåØà ÙÔ

u

Ò

tu

Óà ÑäÝ ß ÓÒÑÒ ÑäÒÑ ÜåÓÞÝß ÒØ×à Ñ ÜÒ Ñß à ß ÓàÚ ÙÒ

t

ÝÖÒ Ñå ã æà ÖäÒ Ñ Ü

t

àÚ ×ÝÚÝ ×ÒÚÝ Ñ åãæàÖ çèé êé ëéáááé Ñ ì ×Ýß ÒÑÒÔàÝ Ò Ó

t

åãæàÖß àßÝ ØÝÖ Ý ãåã åÞ ç

w

í

ì ×Ò Ñ îÝ ØÒ Ý ÓÚåïÝ

t

ç Ó

í

ì ×à ÑÜÒÑ ß àßÓà Ú ÙÒÝÖÒÑ

t

æÛÜÒ ÖÒÓÒ Ô Ý

t

Ò Ô ×ÒÚÝ ßà×ÝÒ ÓàÑäÝßÓÒ ÑÒ Ñ Ô àãà ÔÒÚ ð ×Ò Ñ ÑÝØÒ Ý ÓÚåãÒãÝ ØÝ

t

Ò Ô ×ÒÚ Ý Ôà

t

ÝÒ Ó åãæà Ö ç

X

n

). Kita

diberi suatu set barang dengan masing-masing barang mempunyai nilai dan

harga yang berbeda dan kita harus menebak jumlah barang yang harus

dimasukkan ke dalam knapsack sehingga total nilainya tidak melebihi batas

yang diberikan, tetapi memiliki harga total tertinggi yang paling

memungkinkan.

Permasalahan knapsack memiliki tiga jenis persoalan, yaitu :

1. Knapsack 0/1 ( Integer Knapsack)

2. Knapsack Bounded

3. Knapsack Unbounded

2.2 Knapsack 0/1 ( Integer Knapsack)

Dalam persoalan ini, kita diberikan n buah objek yang masing-masing

memiliki nilai bobot dan keuntungan. Kita diminta untuk memilih objek-objek

yang akan dimasukkan ke dalam knapsack yang memiliki bobot maksimum W

sehingga didapat keuntungan yang maksimum. Persoalan ini disebut Integer

Knapsack karena tiap objek hanya memiliki dua status yaitu terpilih atau

tidak.

5

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(21)

ñ

òó ôõ ö÷ ö øöùöú

t

óô÷ ó û üý þ öÿ ö

t

þú ö

t

ööú þöøöõ û óú ý ü ôõ öø ÷ó û öö û ó ôü ý

ûóôöú ú ûüöù ûó þó ú öú ûûý õö÷ú õö÷ú

w

w

w

þöú ó üú ýüú öú ÿ

ÿ

ÿ

öø

u t

óôþ öÿ ö

t

÷ó û ü öù ú öÿ÷ ö þó ú öú ûûý õ ö ÷õ

u

õ øü÷ þ öô ÿóô÷ ö øöúþ öö÷

t

þú ö

t

ööúþöøöõ

v

óýôú

t

üÿó ø

X = {x

1

, x

2

, ..., x

n

}

Dimana xi bernilai 1 jika objek ke-i dipilih dan bernilai 0 jika objek ke-i

tidak dipilih. Misal X = {1,0,0} merupakan solusi dimana objek yang dipilih

ialah objek ke-1, sedangkan objek ke-2 dan ke-3 tidak dipilih.

Solusi dihasilkan dengan batasan

Maksimal

n

i

p

i

x

i

F

1

Dengan kendala

n

i1

w

i

x

i

K

l

goritma Greedy

Secara harafiah,

greedy

berati rakus atau tamak. Algoritma

Greedy

merupakan algoritma sederhana dan lempang yang paling populer untuk

pemecahan persoalan optimasi (maksimum atau minimum). Prinsip

greedy

adalah “

take what you can get now

!”, yang digunakan dalam konteks positif.

Ada tiga pendekatan dalam menyelesaikan persoalan integer knapsack

dengan algoritma Greedy, yaitu:

1. Greedy by profit

Pada setiap langkah, knapsack diisi dengan objek yang mempunyai

keuntungan terbesar. Strategi ini memcoba memaksimumkan keuntungan

dengan memilih objek yang paling menguntungkan terlebih dahulu.

Pertama kali yang dilakukan adalah mengurutkan secara menurun

objek-objek berdasarkan

profit

-nya. Kemudian baru diambil satu-persatu objek

yang dapat ditampung oleh

knapsack

sampai

knapsack

penuh atau sudah

tidak ada objek lagi yang bisa dimasukkan.

2. Greedy by weight

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(22)

t

!"#$" % " ! &'( "

y

!) ) * + ',

t

! , ! - .

t

,

t

! ) )% &' ) )" ) *) " " * / * ! ! ) ) *" " ' + " )* !" &' (" " )

knapsack

-,

t

) "

y

! "*" # ) ! *,

ut

" % , ) " &'("0 &' ( "' , ,"

weight

0 + - 1) * ',

u

)'

tu

0 ,

tu

&' ( "

y

!

t

t

) * ! &#

knapsack

)

knapsack

*#

t

u t

" &' ( "!

y

!') *""

-3. Greedy by density

t

!"#$" % " ! &'( "

y

! ) ) * +

t

2

p

3

w

4

t

,' ,- .

t

,

t

! ) % &' ) ) " )* )" " 0 * /* ! , *

t

' ,

t t

,' ,- ,

t

) "

y

! "*" # ) % , ,&5

t

, *

t

2

density

4 ,

t

0

t

&' ( "- 1 ) * &' ( "0&' ( "

t

, ' */

u

,

ut

" % , ) *, * ' , ,"

density

0 +-1) * ',

u

)'

tu

0 ,

tu

&' ( "

y

!

t

t

)* ! & #

knapsack

)

knapsack

*#

t

u t

" &' ( " !

y

! ' ) * ""

-) # &' ( " ' ,, " #

tu

, "

t

!

t

,

t

!

t

t

" ) () " ))' ," &* & /) - 6#" " ) * ! " "

t

!

t

,

t

!

t

,' */

t

"))' ," & * &/)

*)-7 (

u

, & 8 /! ,1 %" !

n

= 3. Misalkan objek-objek

tersebut kita beri nomor 1, 2, 3. Properti setiap objek

i

dan kapasitas knapsack

adalah sebagai berikut:

w

1

= 3;

p

1

= 30

w

2

= 2;

p

2

= 25

w

3

= 5;

p

3

= 20

Kapasitas knapsack

W

= 8

Maka tabel solusi dengan menggunakan algoritma greedy adalah sebagai

berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(23)

9

:; <=>;

t

?@AB > C

Greedy by

i

w

D

p

D

p

D E

w

D

Weight

Profit Density

F <GHI ? @=J?K L G

M N NO MO M M M M

P P PQ MPRQ M M M M

N Q PO S O O O O

T<JL GU<A <J Q Q Q Q T< JL GV>HWJ HWXL W Q Q QQ QQ Q Q YZ[ \]^ _`ab cdbef b] ghij\c k kgc Zl Zcm ] kbnitjZon\\p q

rL;?

t

LA >G s?L

t

LIR LGX<;?

t

K L X;> >st s>WXLW C>

t

? XL I

t

;L>X?

t

y

LWX LsL K >WXuLI ? GCLW I <G HI?

y

L WX <= J?K LG

y

L ?

tu

X = {1,1,0}. Artinya objek ke

-1 dan

ke-2 dimasukkan ke dalam knapsack, sedangkan objek ke-3 tidak dimasukkan.

vw xy

ubble Sort (Exchange Sort)

Metode pengurutan ini merupakan metode yang paling umum dikenal

dalam dunia pemrograman. Kelebihan metode ini ada pada kemudahan dalam

membuat programnya. Walaupun semua metode yang digunakan akhirnya

harus mempertimbangkan tingkat efisiensinya.

Ide dasar metode

bubble sort

adalah melewatkan data dalam larik

beberapa kali. Setiap melewati larik, dilakukan perbandingan setiap elemen

sesudahnya (x[i] dengan x[i+1]) dan dilakukan penukaran antara kedua

elemen tersebut bila tidak terurut. Perhatikan contoh berikut :

25

57

48

37

12

92

86

33

Hasil iterasi pembadingan pertama akan menghasilkan :

x[0]

dengan

x[1]

(25 dengan 57) Tidak berubah

x[1]

dengan

x[2]

(57 dengan 48) Ditukar

x[2]

dengan

x[3]

(57 dengan 37) Ditukar

x[3]

dengan

x[4]

(57 dengan 12) Ditukar

x[4]

dengan

x[5]

(57 dengan 92) Tidak berubah

x[5]

dengan

x[6]

(92 dengan 86) Ditukar

x[6]

dengan

x[7]

(92 dengan 33) Ditukar

Tabel 2.2 Iterasi Pertama Bubble Sort

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(24)

z

{| } ~ € ‚ƒ| „… ~„†| „ €‚| ‡ |ˆ

t

‰ Š‡€Š „ „

t

‚ƒ }| ‚ ‹zŒ }Ž…|  €|…| € Š} ~}~

y

|„†ƒ„| ‚‘’|‚|

u

‡

u

‡ ˆ

x

[n

-iterasi] akan ada pada posisi yang benar setelah

iterasi ke iterasi. Metode ini disebut

bubble sort

karena setiap elemen lambat

seperti gelembung untuk sampai ke posisi yang benar.

Setelah pembandingan kedua, larik yang terbentuk :

25

37

12

48

57

33

86

92

Perhatikan angka 86 menempati posisi kedua tertinggi. Setiap iterasi

menempatkan setiap elemen larik ke tempat yang benar. Untuk mengurutkan

n

elemen larik, iterasi yang dibutuhkan tidak lebih dari

n

-1 iterasi.

Iterasi lengkap untuk pengurutan bubble sort :

25

57

48

37

12

92

86

33

Iterasi 1

25

48

37

12

57

86

22

92

Iterasi 2

25

37

12

48

57

33

86

92

Iterasi 3

25

12

37

48

33

57

86

92

Iterasi 4

12

25

37

33

48

57

86

92

Iterasi 5

12

25

33

37

48

57

86

92

Iterasi 6

12

25

33

37

48

57

86

92

Iterasi 7

12

25

33

37

48

57

86

92

Tabel 2.3 Iterasi Lengkap Bubble Sort

Implementasi algoritma bubble sort dalam suatu method :

“” •–— ˜— ™—š ›

m

ro

graman JAVA

void BubbleSort(int[] data){

int temp;

for(int i=1; i<data.length; i++){

for(int j=0; j<data.length-1; j++){

if(data[j]>data[j+1]){

temp=data[j];

data[j]=data[j+1];

data[j+1]=temp;

}

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(25)

œ

ž Ÿ

v

Ÿ Ÿ  Ÿ¡ Ÿ¢£Ÿ ¢Ÿ¤Ÿ ¥¦ §¨ ©ª¨ Ÿ §Ÿ« ¤ ¦ ¨£ Ÿ ª¬« Ÿ

y

Ÿ«ª   Ÿ¥Ÿ

t

 ­ ª¬« Ÿ®Ÿ« ¬«¯ ¬® §¦§£¬Ÿ

t

¥¨©ª¨Ÿ§¤ ¦ £ŸªŸ­§Ÿ« Ÿ°« Ÿ§¦§£ ¬Ÿ

t

«

y

Ÿ ¦« ªŸ«£ Ÿ ¢Ÿ¤ Ÿ±Ÿ¤²Ÿ ¡Ÿ

t

Ÿ

u

³

++.

Java dikembangkan oleh Sun Microsystem pada Agustus 1991, dengan

nama semula Oak. Konon Oak adalah pohon semacam jati yang terlihat dari

jendela tempat pembuatannya, James Gosling, bekerja. Ada yang mengatakan

bahwa Oak adalah singkatan dari “Object Application Kernel”, tetapi ada yang

menyatakan hal itu muncul setelah nama Oak diberikan. Pada Januari 1995,

karena nama Oak dianggap kurang komersial, maka diganti dengan Java.

Java merupakan hasil perpaduan sifat dari sejumlah bahasa pemrograman,

yaitu C, C++, Object-C, SmallTalk, dan Common LISP. Selain itu Java juga

dilengkapi dengan unsur keamanan. Yang tak kalah penting adalah bahwa

Java menambahkan paradigma pemrograman yang sederhana.

Java memiliki beberapa keunggulan, diantaranya (Hermawan, 2004) :

1. Java berorientasi pada objek

Dalam memecahkan masalah, Java membagi program menjadi

objek-objek, kemudian memodelkan sifat dan tingkah laku masing-masing.

Selanjutnya, Java menentukan dan mengatur interaksi antara objek yang

satu dengan yang lain.

2. Java bersifat terdistribusi

Pada dekade awal perkembangan PC (

Personal Computer

), komputer

hanya bersifat sebagai

workstation

tunggal, tidak terhubung satu sama

lain. Saat ini, sistem komputerisasi cenderung terdistribusi, mulai dari

workstation client

,

e-mail server

,

database server

,

web server

,

proxy

server

, dan sebagainya.

3. Java bersifat multiplatform

Java dapat diterjemahkan oleh Java Interpreter pada berbagai sistem

operasi. Ketidaktergantungan terhadap

platform

sering dinyatakan dengan

istilah portabilitas. Tingkat portabilitas Java tidak hanya sebatas pada

program sumber (

source code

), melainkan juga pada tingkat kode biner

yang disebut

bytecode

yang bisa dijalankan pada berbagai sistem operasi

karena kode ini berbeda dengan kode mesin.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(26)

´ ´

µ¶ µ·· ·

¶¸ ¶¹ · º¶» ¶¸¼ ½¾ ¶¸¿ ¶¸ À ¶¸º· ºÁ ½Â ÃÄ Å¶

n

ÆÇÈ

s

ƺÈ

st

É

m

ÊË ÌËÍË Î ÏÐ ÑÒ ÓÒÔ ÕÐ Ë ÖÌË × Ø Ë ÙË ÍË Î ÚË ÌËÍË Î Ù Û ÚË ÐË Ø ÛË

t

Ù ÛÎËÙËÖØË Ð Ù ÒÐÓËÐ ÖÒÔÌÜË ÍË Ð ÜÖ ÑÛÚËÌ Û ÖÒÚ ÛÍÛÎË Ð ÝÒÐÙË ÞÐ

t

ÞØ Ù Û ÚËÌÞØØËÐ ØÒ ÙËÍË Ú ÌÒÝÞË Î Ë ÙËÎ

w

y

ËÐÓ ÚÒ Ú ÛÍÛØÛ ØÒ

t

Ò ÔÝË

t

Ë ÌË Ð ÔÞËÐÓ ÙË Ð ÙË

y

Ë

t

Ë Ú Ö

u

ÐÓ

t

Ò

t

Ë Ö Û ÝÒÐ ÙË

y

ËÐÓ Ë ØË Ð ÙÛÚË Ì

u

ØØË Ð ØÒ ÙË ÍË Ú

w

Ë ÙË Î

t

ÒÔ ÌÒÝÞÑ Î Ë ÔÞÌÍË Î

t

Ò

t

Ë Ö ÙËÍËÚ ØÒË ÙË ËÐ

ut

ÞÎ ÝÞØË Ð ÚÒ ÔÞÖË ØËÐ

ßÔË Ø Ì Û ÙËÔÛ

ÝÒÐÙ Ë

t

ÒÔÌÒÝÞÑà

ÊË ÌÛÐ Ó áÚËÌ ÛÐ Ó ÝÒÐ ÙË

y

Ë Ð ÓËÙË ÚÒ Ú ÛÍ ÛØÛ

ÌÒÝ ÞËÎ Ð ÛÍË Û

ÝÒÔÞÖË ÝÒÔË

t

â

v

ÜÍÞÚÒâ

ÎË Ô ÓËâË

t

Ë

u

ÐÛÍËÛ Í Ë ÛÐÐãË

y

ËÐ Ó ÙËÖË

t

ÙÛÖËØËÛ ÌÒÝËÓËÛ ÖÒÐÒÐÑ

u

ÙËÍ ËÚ Ö ÔÜÌÒÌ ÖÒÚÛÍ ÛÎËÐ ÐË

y

à äÒ ÙË Ð ÓØËÐ

w

ËÙË Î ÚÒ ÚÛÍ Û ØÛ ÌÒÝÞË Î ÐÛÍË Û ØÜÐÌËÐÑË

t

y

ËÐ Ó Ù Û ÚÛÍ Û ØÛÐãË ÙËÐ ÚÒÔÞÖË ØË Ð ÌÒÝÞËÎ ÖÒÚÝËË Ì

t

Ù ËÍË Ú Ö ÔÜÌÒÌ ÖÒ ÚÛÍ ÛÎËÐ ÝÒ ÐÙ Ë ÞÐ ÑÞØ ÙË ÖË

t

ÙÛÚËÌÞØØËÐ ØÒ ÙË ÍËÚ

w

ËÙ ËÎ

t

ÒÔÌÒÝ Þ

t

à ÊË ØË ÖÒÐÞÍ Û Ì ËØËÐ ÚÒÐÓÒ ÚÝË Ð ÓØËÐ ÌÞË

tu

ÖÔÜÓÔËÚ

y

ËÐÓ ÙËÖË

t

ÙÛÓÞÐËØËÐ ÞÐÑ

u

Ø ÚÒ ÐãÒ ÍÒÌËÛ ØËÐ ÖÒÔÚË ÌË ÍËÎË Ð Ï Ð ÑÒÓÒÔÕÐËÖÌË×ØÙË ÍËÚ

ØË ÌÞÌ

ÖÒÐÓÛÔ ÛÚËÐ

ÝËÔË Ð Óà

åÙË ÖÞÐ ÖÔÜÓ ÔËÚ

y

ËÐÓ ËØË Ð Ù ÛÝÞË

t

ÞÐ ÑÞØ ÚÒ ÐÐãÒ ÍÒ ÌË Û ØË Ð ÖÒÔÚËÌËÍË ÎË Ð Ï Ð ÑÒÓÒÔ ÕÐ Ë Ö ÌË ×Ø ÚÒÐ ÓÓÞÐ Ë ØË Ð Ë Í ÓÜÔÛ

t

ÚË æÔÒÒ Ùãà çÒÔËÐÓØË

t

ÍÞÐËØ

y

Ë Ð Ó ÙÛÓÞÐËØËÐÙË ÍËÚÖÒ ÚÝÞË

t

ËÐÖÔÜÓÔËÚÛÐ Û

y

Ë Û

tu

èÒ

t

éÒ ËÐ Ì

v

ÒÔ ÌÛêàêà

ÃÄëìÉ

butuhan Sistem

íËÍ Ë ÚÖÒ ÚÝ ÞË

t

ËÐî ÞÓË Ì åØÎ ÛÔÛÐ Û ÖÒ ÐÞÍÛÌ ÚÒÐÓÓÞÐ Ë ØË Ð ÖÒ ÔË Ð ÓØË

t

ÍÞÐËØ è Ò

t

éÒË Ð Ì

v

ÒÔÌ Û êàêà äÒ ÍËÛÐ Û

tu

ÖÒÐÞÍ Û Ì ïÞÓË ÚÒÐ ÓÓÞÐËØËÐ ÖÒÔË Ð ÓØË

t

ØÒ ÔËÌ

y

Ë Ð Ó

t

ÒÔÙ Û ÔÛÙË Ô Ûð

ç ÔÜ× Ò Ì ÌÜÔ ðÏÐ ÑÒ ÍñÒ ÍÒÔÜÐÊ

Memory

ð´òó ôÊÝ

õ æå ðö ê÷ÊÝ

ÊÒÙÛËçÒ ÐãÛ ÚÖËÐË Ð ð

Hard disk

ÊÒÙÛËÊË ÌÞØËÐ ð

Keyboard

ä

y

Ì

t

Ò ÚøÖÒ ÔËÌ Û ðù ÛÐÙÜú Ì

XP

11

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(27)

ûü

ýþýÿ

r

cangan

t

t

y

y

tu

interface

3.3.1 Perancangan Proses

y

t

t

t

y

t

t

!" #$ %&'( ) # !*+ , - ./ 0

1 û

t

t

t

t

23

t

ut

3

t

t

u

t

t

y

t

2 3

!" #$% 4'( )# !56 7 #' t 8. 9.6&

t

t

ü

y

tu

t

t

t

t

:

t

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(28)

;<

=> ?@ ABACD> B@ EAFA

t

AG @H ?AID> B A

t

FA CG @H ?A I=>

u

CJ@ CKACIAL M ?FABMEB NL > L E> COABM A C L N ?@LMP QCJ@ = EB NL> L H > CAHEM?=A C I ALM ? HAL @ = =AC CRA D> B AL A? F AB M EB NL >L E>COAB MAC L N?@ LM

y

AM

tu

FA

t

A G

u

H ? AI D>BA

t

F AC G @H?AI =>@CJ@CKA CP S> FACK=A C F A

t

A =>?@ ABAC CRA

y

AM

tu

FA

t

A G@ H? AI D>BA

t

FA C =>@CJ@CKA CP

TUVW UXY ZY[ \ U]X UV^_ ` X[ UUt abc b_d

e AFA K AH D AB <P< H>CG>? AL =A C DAIf A EA FA EB NL >L E> CO ABMA C L N ?@L M geB NL > L ; F A? AH hih j>

v

>? ;k FM E> O A I H > CG AFM < EB NL > L

y

AM

tu

EB NL > L E> COABM A C L N?

u

LM H>CKK

u

CA =A C lB>> FR DR EB NmM

t

n EB NL > L E> COABM A C L N?@L M H >CKoK

u

C A=A C lB >>FR D

y w

> MK IJn FAC EB NL >L E>CO ABMAC L N?@ LM H >CKK@ CA =A ClB >>FRDRF> CL MP

ty

pq rs

l

goritma Program

i?KNBM

t

H A E> HKBNK B AH A C L A CKA

t

E>CJMCK @ CJ@= FM D@ A

t

=AB>CA A=A C H > H E>BH @ F AI F A?AH EBNL > L

coding

n =AB> C A F>CKA C H>CKK@ CA =A C A?KNBM

t

HA =M

t

A FA EA

t

H> CK>

t

AI@M

G A? AC CRA EB NL >L

y

A CK A =A C =M

t

A D@ A

t

P QCJ @ =A ?KNBM

t

H A EB NK B AH FA ?AH

t

@K AL A= IMB MCM H > CKK@CA= AC A ?KNBM

t

H A lB> > FR

y

A CK H > H E@ CRAM

t

MK AE> C F> =A

t

A Cn

y

AM

tu

t

Greedy by profit

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(29)

uv

Greedy by weight

Greedy by density

wxy

.1 Algoritma Greedy By Profit

z {|} ~ €‚ ƒ„

t

…

Greedy by profit

€{~ † ‡€ { ~ †{ˆ ‰€†Š u‹ Œ  } ~~ {‰

t

y

{ ~{‰ „‚€†‹

Ž‹ ƒ‚ ‘{‚ €†{‰ 

t

 ‹

ƒ‚  ‘{} ƒ

ut

{ ‰

t

 ‰„… { ‰

t

 ‰„} ƒ

ut

~{ ’ƒ‰ ƒ~ {

p

“ƒ‰“{‰ „{‹

ƒ‚ ……’{‰ „{ ~ {

w

+knapsack dengan W.

o

Jika

w

+knapsack <= W, maka

w

akan dimasukkan ke

dalam knapsack.

o

Jika

w

+knapsack > W, maka

w

tidak akan dimasukkan ke

dalam knapsack.

Menampilkan hasil.

Selesai

3.4.2 Flowchart Algoritma Greedy By Profit

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(30)

”•

–—˜™ —š› œžŸ   ¡¢£—št ¤ Ÿ ¥  š ¦t˜—–š §§¨y ©y ªš   «¦t ¬­®

.3 Algoritma Greedy By Weight

¯ °±² ³´ µ¶· ¸¹

t

º´» ¸¼¼½¾¿ ¾

w

¼¹¶À ±µ´°¶³´ À Áµ´ °¶ ³´ À °¾´´½´ µ´À ”à Ĵ Å ² ³³´ °½´´

t

y

´°¶´ ³´°½¹·µ´ ÀÃ

Æ Ã Ç¸· Å ¼Åȼ °¶· µ´ À´°½´

t

´ Ã

Ǹ· Å ¼Å ȼ °¶² ¸

ut

´ ° ½´

t

´ ½¹ º´°´ ½´

t

´ ½¹² ¸

ut

³´ ° ¿¼¸½´ Å´ ¸ ³´ °

w

Å ¼É´¸´´Åɼ °½ ¹°¶ Ã

Ǹ· Å ¼Åº¼º¿´°½¹°¶ ³´ °Ê

+knapsack dengan W.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(31)

ËÌ

o

Í ÎÏÐ

w

+knapsack <= W, maka w akan dimasukkan ke

dalam knapsack.

o

Jika w+knapsack > W, maka w tidak akan dimasukkan ke

dalam knapsack.

Menampilkan hasil.

Selesai

ÑÒÓ

.4 Flowchart Algoritma Greedy By Weight

Gambar 3.5 Flowchart Algoritma Greedy By Weight

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(32)

ÔÕ

Ö×Ø

.5 Algoritma Greedy By Density

Ù ÚÛÜ ÝÞ ßàá âã

t

äÞ

Greedy by density

ßÞÚàÝÞ å æ ßÞÚà ÝÞåÚçÞÞèÞ ßÞ åé Ôê ëÞ ì Ü ÝÝÞ ÚèÞÞ

t

y

ÞÚàÞ ÝÞÚèãáßÞ å

íê ëîÚàåã

t

ÜÚàÚ ãßÞãèîÚì ã

ty

=

p

/

w

.

3. Proses pengolahan data.

Proses pengurutan data dimana data diurutkan berdasarkan

density secara descending.

Proses membandingkan

w

+knapsack dengan W.

o

Jika

w

+knapsack <= W, maka

w

akan dimasukkan ke

dalam knapsack.

o

Jika

w

+knapsack > W, maka

w

tidak akan dimasukkan ke

dalam knapsack.

Menampilkan hasil.

Selesai

3.4.6 Flowchart Algoritma Greedy By Density

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(33)

ïð

ñòóô òõö ÷øùú û üýþ òõt ÿ ú û õtóòñõ y y ty

r

cangan Interface Program

tw

y

t

t

!

t

" #$#$ % & ' ()(

t

'*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(34)

+,

-./

.1 Form Menu Awal

0123 145 67894 2:;< =>w1? @A BAC DE FG HG

t

IE BA JA

t

K

t

D FL DM N

y

AG

tu

O

PDF LDMQAR ST OUHVS TFI FAHWWG MXDE FU

t

AFAY

PDF LDMZI M

u

A E OUHVS TTI M

u

A EBAE GJEDWEA FY

PDF LDM[ HC DE FARG OUHVS TFI FAHWWG MXDE F[ H C DE FARG@E DWEAF

3.5.2 Form Menu Utama

0123 145 6\894 2:;< =]t12 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(35)

^_

`a bac de fg hg

t

ie ba ja

t

^

t

d fk dl m

y

ag

tu

n

o d fk dlpifka lg nq hr sttif kal gtiu de fv

w

a l

o d fk dl` e dwiw nq hr stfilatstahje dwiwdjrg fgwawg

fihxxs ha ta hvlxdeg

t

fayeiibz{

`a ba c de f ghg m bgwiki la | t geg

t

i e baja

t

t dldf }t dldf shrst fifawstt a hba

t

a

y

a hxa ta hbgje dwiwbah

y

a hxbgwi kila|taha hshr st fiha fjglta h|awg lbae gdjrgfa lgwawg{

~€

.3 Form Menu Informasi Program

 ‚ƒ„ ‚…† ‡ˆ‰Š … ƒ‹Œ Ž Š … ƒ‚‘’“ …Š ”… ‚ƒ `a bau de fg hg

t

i e baja

t

^

t

df kdl ma g

y

tu

n

o d fk dlpi f ka lg nq hr sttif kal gtic de f•ihsv

w

al{

o d fk dlpil

u

a e nq hr stti l

u

a ebae gjedxea f{

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(36)

–—

˜™ ˜š ›

š œ  žŸœŸ ¡™¢š£¤ ¥£™œ ¦§ ¨š

m

plementasi Program

©ª «ª ¬­ ®¬¯°ªª ±

t

­ ²³ ´²ª ¬µ ±µ¬®±´´° ±ª¶ª± ¯ª·ª ¸ ª­ ®¬²³ ´² ª ¬ª ± ¹ º»º ¼ª ± ¬® ±´´° ±ª¶ª± ­ ®²ª ±´¶ª

t

«° ±ª¶ ½®

t

¾®ª ±¸ ¿À ¿À ½®

t

¾®ª ±¸ µ±µ ¼µ ´ °±ª¶ª ± °±Á°¶ ¬®¬¯°ª

t

­ ²³Â®Ã

t

­²³ ´²ª ¬

y

ª ± ´ ¼µ ¯° ª

t

¼ª± ¼µ ´° ±ª¶ª ± ° ´ª °±° ¶

t

¬ ® ±Âª«ª±¶ª±­²³ ´²ª ¬

y

ª ±´

t

® «ª ·¼µ¯°ª

t

À

Ī¬ ¯ª ²ÅÀ—ÆÇÈÉ Ê Ë ÇÌͩν®

t

¾®ª±¸¿À ¿À

4.1.1 Tampilan Menu Awal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(37)

Ï Ï

ÐÑÒÓ ÑÔÕ Ö×ØÙÚÛÜwÑÝÞ Ôß àÔ ÑÒ

áâ ãâ äå æç â

w

â è é æé

t

å ê ãâ ëâ

t t

é ìâ

t

í äî íè

y

âé

tu

t

íä îí è ï æðí áê íìêâäñ òâ ó ç ôñ ãâæ õå èçâê ö ÷æøç ô

t

í äîíè ïæðí ëê íìê â ä âôâæ äå äâ æ ììéè èâ

y

åê é æðíê äâ óé

t

å æø â æ ì âëèé ôâ óé

äâ óâ èâù ôæâ ëóâúô äå æ ììç æâ ôâæ â è ìíê é

t

äâ ìê ååãû é æéö ÷æø ç ô

t

íä îí è òâó çô âôâæ äå äâ æ ììéè

t

â ä ëéèâæ äåæç âäâö

ut

üå ãâ æìôâ æ çæøçô

t

íä îíè õåèçâ ê ãéìç æâ ôâ æç æ

t

ç ôôå è

u

âêãâê éëê íìê â äéæéö

ýþÿ

.2 Tampilan Menu Informasi Program

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(38)

! " #$ # % $" &$ '' $ #'!

t

' () *

u

'

t

"

t

t

! ! #

y

tu t

! !# +#

u

t

! !# + #) , ! !# $ # ' $ -$$#

u

" !') .'$

t

! ! #+ #' $ -$ $ # $

w

#)

/01

.3 Tampilan Menu Utama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(39)

23

4567 589 :9;<= >?t565

@A BA C DE F

ut

A CA GEG

t

DHBA IA

t t

G JA

t

KC L KM

y

AG

tu t

KCLKM NDMFA HO NDC LAM G BAE @ HKP DPQ R KC L KM S DMAH

u

BGJFEASAE FET FS S DM

u

A H BAHG IH KJ HA C Q RKCLKM NDCLA MG BGJ FEA SA E FET FS S DCLAMG S D C DEF A

w

AMQ UD BAE JSA E

t

KCLKM@ HKP DPBGJFEA SAEFE T FS CDCIHKP DPBA

t

ABAECDEVAHG P KMFP GK ITG CAMQ

WG BA MAC CDE F

ut

ACA XFJA

t

D HBAIA

t

LD LD HA IA SKM KC FET FS CDCA P FSS AE BA

t

A

y

AEJ A SAE BGIHKPDPQ YETFS CDC AP FS SAE BA

t

A ZAHFP CDEVDETA EJVZDVS LK[

t

DHM D LGZBA Z FM

u

P F IA

y

ASKMKCCDEXABGDE A LM D BA E LG P AC DEJG P GS KM KC

t

DHP DLFT Q

\]^

.4 Tampilan Menu Peringatan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(40)

_`

abcd bef ghijklm jen k obtbk

p qr s t quvr wx

t

xr vr v x yxr zsr { s| } vyx yx tx ~ v

t

x ~ r xt~ x{y €q|z

u

vv ~ v‚ ƒr „ syyq| sx ux uvzqr svr v{ systy| v y

t

…z€… |† ‚

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(41)

‡ˆ

‰ Š‰‹

ŠŒ Š Ž Š ŠŒ‘ ŠŽ’“Œ” •– Ž ŠŒ’—˜” —Š™ š› œŠ

n

žŸ

s

’ 

o

gram

¡¢ £¤¥ ¦¥£§¥ ¨ ©¥ ¦ ª«

u

¬ ª ­ ®¯¥° ±£ ®²£¥ ³ ª¨ª ¦¢­ ¥ £¥ §¢¦¢« ´ £´ ©¥¨ ¤¥±¥

t

¯¢ §¢£¬¥ ¤ ¢¨ ²¥¨ ¯¥ ª § ¤¥ ¨ ¤¥ ±¥

t

³¢³ ¯¥ ¨µ

u

±£®¦¢ ¦ ±¢ ³ ª«ª© ¥¨ ¯¥ £¥¨² ¨µ´ §

u

³ ¢ ¨²© ¥ ¦ ª«§¥ ¨§¢ ´¨µ´¨ ²¥¨³¥ §¦ ª³¥ «¶

·¤¥ ±´¨ §¢ «¢ ¯ ª© ¥¨ ¤¥ ¨ §¢ §´ £¥ ¨²¥ ¨ ¤¥£ª ±£®²£¥ ³ ª¨ª ¥¨µ¥ £¥ «¥ª¨ ¦¢¯¥²¥ª ¯ ¢ £ ª§´µ

¸

5.1.1 Kelebihan

¹£®² £¥³ª¨ ª¤¥ ±¥

t

¤ª²´¨¥§¥ ¨´ ¨µ´§³¢¨ ­¥£ª¦ ®«´¦ª®±µª³ ¥ «¶

·«²® £ª

t

³¥ º £¢ ¢¤ » ¤ ¥ ±¥

t

¤ ª²´¨¥§¥ ¨ ´ ¨

t

´ § ³¢¨ »¢« ¢ ¦¥ª§¥¨ ³¥¦¥« ¥© ¼½¾ ¿¨¥ ± ¦¥­§¶

¹£®² £¥³ ª¨ª ¦¥ ¨²¥

t

¦ ¢ ¤¢£©¥ ¨¥ ¦¢ ©ª¨²²¥ ¤¥±¥

t

¤¢ ¨²¥¨ ³´ ¤¥© ¤ ª²´ ¨¥§¥¨¶

5.1.2 Kekurangan

À¨µ´§³¢ ³ ¥ ¦´ § §¥¨¤ ¥¥¨»¥

t

³¥¦ ª©¦¢ ­¥£¥ ³¥¨ ´¥«¬ ¥ ¤ª¯ ª ¦¥ ¦¥¬¥

t

¢£¬ ¥ ¤ª §¢ ¦¥«¥ ©¥ ¨¦¥¥¨³¢ ³¥ ¦´ §§¥¨¤¥¥¶

t

À¨µ

u

§¯¢¯ ¢ £¥±¥±¢£­®¯¥ ¥¨¦ ®«´¦ª

y

¥ ¨²¤ ª© ¥ ¦ ª«§¥ ¨

t

ª¤¥§¦¢ «¥«

u

® ±µª³¥ «¶

¿¢« ´¥ £¥¨

y

¥¨ ² ¤ª©¥¦ ª«§¥¨ ³ ¥ ¦ ª© ¯ ¢ £¤¥ ¦¥£§¥ ¨ ±¥¤ ¥ ¦

t

£¥

t

¢² ª

y

¥¨² ¥ ¤¥ ±¥¤ ¥ ¥« ²®£ª

t

³ ¥ º £¢ ¢¤ »° ¦¢© ª¨²²¥ ±¢ ³¥§¥ ª ³¥¦ª© ©¥£´ ¦ ³¢ ¨»¢ «¢§¦ ª ³¥ ¨¥¤¥£ª§¢

t

ª²¥§¢ «

u

¥£¥¨ª

tu y

¥ ¨²³¢ ¨²© ¥ ¦ ª«§¥ ¨¦ ®« ´ ¦ ª

®±µª³¥ «¶

5.2 Hasil Pengujian Program

¹¥¤¥¥ ©¥ ±

t

u

¬ª­ ®¯ ¥±£®²£¥ ³¤ ª²´¨¥§¥ ¨¯¢¯¢ £¥ ±¥³ ¥¦´§¥ ¨¤ ¥

t

¥

y

¥ ¨²¥§¥¨ ¤ª ±£®¦¢¦¶ ¡¢£ª§´µ ª¨ª ¥ §¥¨ ¤ ª

t

¥ ³ ±ª« §¥¨ ©¥¦ª« ¤¥£ª ±£® ¦¢ ¦ ±¢¨ ­¥£ª¥ ¨ ¦®«´ ¦ ª ® ±µª³ ¥«³¢ ¨²²´¨¥§¥ ¨¥ «²® £ª

t

³¥º £¢¢ ¤»¶

¹¢¨²´¬ª¥¨±¢£

t

¥ ³¥¸ Á´ ³« ¥©¤¥

t

¥

= 10

Kapasitas knapsack = 139

26

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(42)

ÂÃ

ÄÅÆ ÇÈ Å

t

ÉÆ ÊË ÈÌ Í ÅÈ ÈÎÏÊÏ

É

w

Ç ÇÐ

w

ÄÅÆÑÉ

t

ÒÉÈÓÔ Õ ÖÈ×ØÉ

ty

ÙÆ ÚÛØÉ ÜÇÕÉÝ Þ Ú

ß à á ß â Âá ã ß ß ã

Â Ã ß ã ß âà ä ã ß ß ß

ä å æ ß âä à ß ß ß ß

à Âß ßç ãâçã ã ß ã ß

á ßà Âã ß âßæ ß ß ß ß

å äá à ã ß âß à ß ß ß ß

à à  àß ãâçæ ß ã ã ß

æ ßß ßä ß âßæ ã ß ß ß

ç äç

à ã ß â ã Â ß ã ß ã

ßã Âæ Âá ãâæç ã ß ã ã

èÆÕÞ ÚÊÆ ÊÆÕ ßäç ß Âç ßßç ß äç èÆÕÞ ÚÌ ÈÛ× ÕÛ×ÓÞ× ßàç ßà ã ßäå ß áß

éêë ìíî ïðñ êòóíôìõ ö÷ø óêõôìùtêúê ÖÉÚÉÔÞ

t

ÎÞ ÅÉ

t

Þ ÊÚ ÈÎÉÞ

t

ÞØâ

ÇÞ ÎÞ

ÇÈ× ÓÛËÉÞ×

ÇÈ Å

t

Þ ÝÞ

ÎÈ×ÓÞ× Ø

t

ÅÞ

t

ÈÓÉ ÊÏ

ÇÅÆÑÉ

t

t

ÆÕÞ Ú ÊÆ ÊÆ

t y

Þ×Ó ÎÞÇ Þ

t

ÎÉ

t

ÞÝ ÇÛ×Ó Þ ÎÞÚ ÞÔ ßäç Î È×ÓÞ× ÌÈÛ×ÕÛ× ÓÞ× ßàç û ÖÈ×ÓÞ× Ø

t

Å Þ

t

ÈÓÉ ÊÏ

w

È ÉÓÔÕ

t

ÆÕÞÚ ÊÆÊÆÕ

y

Þ×Ó ÎÞ ÇÞ

t

ÎÉ

t

ÞÝ ÇÛ× Ó Þ ÎÞ ÚÞÔ ßÂç Î È× ÓÞ× Ì ÈÛ× ÕÛ×ÓÞ× ßàã ÎÞ× ÎÈ×ÓÞ× Ø

t

ÅÞ

t

ÈÓÉ ÊÏ ÎÈ× ØÉ

ty t

ÆÕÞ Ú ÊÆÊÆÕ

y

Þ×Ó Î ÞÇ Þ

t

ÎÉ

t

ÞÝ ÇÛ×Ó Þ ÎÞÚÞÔ ßßç ÎÈ×ÓÞ× ÌÈÛ× ÕÛ×ÓÞ× ßäåû ÙÈ ÎÞ×ÓÌÞ× ØÆÚÛØÉ ÆÇÕÉ Ý Þ Ú Û× ÕÛ Ì ÇÈ×ÓÛ ËÉÞ× ÇÈ Å

t

Þ ÝÞ É×É Þ ÎÞÚÞÔ

X={0,1,1,1,1,1,1,1,0,0}

dengan total bobot 139 dan total keuntungan 151. Jadi ketiga strategi dari

algoritma Greedy ini tidak menghasilkan solusi optimal.

Pengujian kedua

Jumlah data = 5

Kapasitas knapsack = 37

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(43)

üý

þÿ ÿ

t

ÿ

w

w

þÿ

t

ty

ü

ü ü

!

" ü

"

#$% &'( )*+ $,-'. &/ 01 % $$23 &4 5 $

t

ÿ

t

t

t

ÿ

t

ÿ

t

t

y

t

t

6

t

ÿ

t

w

t

y

t

t

ü

t

ÿ

t

y

ty t

y

t

t

6

t

ÿ7

X={1,1,1,0,1} dengan total

bobot 36 dan total keuntungan 61. Jadi strategi dari algoritma greedi yang

menghasilkan solusi optimal adalah Greedy by profit dan by density.

Sedangkan Greedy by weight tidak menghasilkan solusi optimal.

Pengujian ketiga

Jumlah data = 6

Kapasitas knapsack = 180

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(44)

89

:;< => ;

t

?< @A >B C ;> >DE@E

?

w

= =F

w

:;<G?

t

H?>IJ K L>MN?

ty

O< PQN? R=K?S T P

U V W X W U Y Z U U U U

8 ZV ZV U W U U W

[ \W V W WY][ U W W U

Z X W XV U Y WX U W U U

V [W [U U Y W[ W U W W

\ 9V V W WYV\ W W W W

^<KT P@< @<K U]W U 8V U\V U]W ^<KT PB >QMKQMITM U9V U Z\ U9W U 9V

_`abcdefg `hi cjbk lm a ``nobtip `

L?P?JT

t

DT ;?

t

T @P> D?T

t

TNY =T DT = >MIQ A?TM B >

t

?IT D >MITM N

t

;T

t

>I? @E = ;<G?

t

t

<KT P @< @<

t y

TMI DT= T

t

D ?

t

T S=QMI T DT PTJ U]W D >MITM B>QMKQMITM U9Vq L>MITM N

t

; T

t

>I?

@E

w

> ?IJK

t

<KTP @<@<K

y

TMI

DT =T

t

D?

t

TS =QMI

T

DT PTJ U8V D >MITM B >QM

t

QMITM U Z\ DTM D>MITM N;T

t

t

>I? @E D>MN?

ty t

<KT P @<@<K

y

TMI D T= T

t

D?

t

TS =QMI T DTPTJ U\V D>MITM B>QMKQMITM U9 Wq O> DTMIBTM N< PQN? <=K? S TP QM KQB = >; STNTPTJTM D? T

t

TN TDTPTJ

X={1,0,1,1,0,0} dengan total

bobot 180 dan total keuntungan 195. Jadi strategi yang menghasilkan

solusi optimal adalah strategi by profit, sedangkan strategi by weight dan

by density tidak menghasilkan solusi optimal.

Pengujian keempat

Jumlah data = 7

Kapasitas knapsack = 55

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(45)

rs

tuv wx u

t

yv z{ x| } ux x~z

y

w

w w€

w

tuvy

t

‚yxƒ„ … †x‡ˆy

ty

‰v Š‹ˆy Œw…y Ž Š

  s  ‘  s   s

’  “  ” s ‘r  s s 

r “ s ’    

” ’s ’ s ‘• s s s s

“ ’ rs ’ ‘ “    

•  r  r     

– s  “  ‘ “    

—v…Ž Šzv zv… ““ ” ” ““

—v…Ž Š| x‹‡…‹‡ƒŽ‡ ˜’ –˜ –˜ ˜’

™š› œž Ÿ ¡š¢£ ¤ œ¥ ¦§ ›šš¨© œœª« št

†yŠy„Ž

t

~Žu y

t

Ž zŠ x~ yŽ

t

Žˆ‘wŽ ~Žw x‡ƒ{y Ž‡

u

|x x wŽ

t

~x‡ƒŽ‡ˆ

t

t

xƒyzwuvy

t

t

v…ŽŠ zvzv…

y

Ž‡ƒ ~ ŽwŽ

t

~ y

t

Ž  w‹‡ƒ Ž ~ŽŠŽ„ ““ ~x‡ƒŽ‡ | x‹‡ …‹‡ƒŽ‡ ˜’¬ †x‡ƒŽ‡ ˆ

t

t

xƒy z

w

xyƒ„ …

t

v…Ž Š zv zv…

y

Ž‡ƒ ~Ž wŽ

t

~y

t

Ž w‹‡ƒ Ž ~ ŽŠ Ž„ ” ~ x‡ƒŽ‡ |x‹‡ …‹‡ƒŽ‡ – ˜ ~Ž‡ ~x‡ƒŽ‡ ˆ

t

u Ž

t

xƒy

z

~x‡ˆy

ty t

v…ŽŠ zv zv…

y

Ž‡ƒ ~ Žw Ž

t

~ y

t

Ž  w‹‡ƒ Ž

~ ŽŠŽ„ ”

~x‡ƒŽ‡ |x‹‡ …‹‡ƒŽ‡ –˜¬ ‰x~ Ž‡ƒ| Ž‡ ˆv Š‹ˆy vw…y  ŽŠ ‹‡…‹| wxu ŽˆŽŠŽ„Ž‡ ~yŽ

t

ŽˆŽ ~ŽŠŽ„

X={0,1,1,0,1,1,1} dengan total

bobot 55 dan total keuntungan 82. Jadi strategi yang menghasilkan solusi

optimal adalah strategi by profit, sedangkan strategi by weight dan by

density tidak menghasilkan solusi optimal

.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(46)

­®

¯° ¯±²

³ ´µ² ¶ · ¸¹°º»°ºµ°¼°º ½¾ ¿³À

s

Á

m

pulan

ÂÃ ÄÅÆ ÇÆÄÈÆ É ÅÆ ÄÊ ËÆÇ ÊÌ ÍÎÊ Ï ÐÑÆ ÒÄ ÐÓÄÆ Ô

y

ÆÉÓ

t

ÃÌÆ Ë Å ÊÌÆÈÍÈÆÉÕ ÅÆÒÆ

t

ÅÊÇ ÊÔ ÒÍ ÌÈÆ ÉÑÆËÖÆ×

®Ø ÙÌÓÐ ÄÊ

t

ÔÆÚÄÃÃ ÅÛÅÆÒÆ

t

Å ÊÊ ÔÒ ÌÃ ÔÃ ÉÜÆ Ç ÊÈÆÉÍÉÜÍÈÔÃ ÉÛÃÌÃÇÆ Ê ÈÆÉÔÆÇÆÌÆ Ë ÝÉÜÃÓÃÄÞÉ Æ Ò ÇÆ ÏÈØ

ßØ ÙÌÓÐ ÄÊ

t

ÔÆ

ÚÄÃ ÃÅÛ

t

ÊÅ Æ È ÇÃ ÌÆÌ

u

ÔÃ É ÓË Æ Ç ÊÌ ÈÆ É Ç ÐÌÍ Ç Ê

ÐÒÜÊÔÆÌ

ÈÆÄÃ ÉÆ ÒÆÅÆ ÇÃ

t

ÊÆ Ò

ÌÆ É ÓÈÆ ËÉÛÆ

Æ ÌÓÐÄÊ

t

ÔÆ

ÚÄÃÃ ÅÛ ËÆ ÉÛÆ

ÔÃ Ô ÊÌ ÊË ÑÃ ÄÅÆ ÇÆÄÈÆ É ÈÃ ÍÉÜÍÉ ÓÆ É

t

ÃÄÑÃÇÆ Ä Æ

t

Æ

u

ÑÃÄÆ

t

ÒÆÌÊÉ Ó ÄÊÉ ÓÆ É Æ

t

Æ

u

ÅÃÉÇ Ê

ty

ÒÆ Ì ÊÉ Ó ÑÃ ÇÆÄ

t

Ã Ä Ìà ÑÊËÅ ÍÌ

u y

ÆÉÓÆÈÆ ÉÅ ÊÔÆ Ç ÍÈ ÈÆÉÈÃ ÅÆÌÆÔ

w

Æ ÅÆ ËØ

6.2 Saran

ÙÅÆÒÍÉ ÇÆÄÆ É ÆÉÓ

y

ÒÃÉ ÍÌ ÊÇ ÇÆ Ô ÒÆÊÈÆÉ ÇÃÃ ÌÆ Ë

t

ÒÃÔÑ ÍÆ

t

ÆÉ ÆÒÌÊÈÆ Ç Ê ÊÉ Ê Æ ÅÆÌÆ Ë

×

®Ø àÃÉ ÆÔ ÑÆ Ë ÈÆ É áÆÇÊÌ ÊÆÇ

t

”s

ave

” sehingga pengguna dapat menyimpan data

masukan dan hasil proses optimalisasi yang telah dilakukan.

31

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(47)

âã

ä åæç åèé êëç åì å

íî ïðñò óô ïõö÷ò ãø øùò

Dasar Pemrograman JAVA 2 – Ed. II

ò úû üýîþ îñ

t

îò óÿ ïð

t

÷

îñ

t

î

t

ðò ñ ðò ÷ ò õîñ

t

ûò ññò

y

÷ò ðûÿ ûò ûð öûò ÷ò

ãø øò

Pemrograman

GUI Swing Java Dengan NetBeans 5

òú ûüý îþ îñ

t

îòóÿ ïð

t

÷

îñ

t

î

t

ðòñ ðò÷ òõîñ

t

ûòññ

y

ò÷ò ðûÿ ûòû ðö ûò÷ò ãøøò

Java 2 SE dengan

JBuilder

òúûüý îþ îñ

t

îòóÿïð

t

÷

ñûïð þ ÿ ðþ ÿûñî

t

ðþîò ãø øò

Modul Praktikum Algoritma dan Struktur Data

1

òúûü

y

îþ îñ

t

î÷

ñî

w

îÿò ÿ ÿýò ãøøùò

Menguasai Java 2 dan Object Oriented Programming

ò úûüý îþ îñ

t

îòóÿ ïð

t

÷

îñî

y

t

ðò ãøøò

Optimasi Strategi Algoritma Greedy Untuk Menyelesaikan

Permasalahan Knapsack 0-1

÷

óÿ ïý ðîþûÿ ûòñî

ty

ûòãøøò

Eksplorasi Algoritma Brute Force, Greedy dan

Pemrograman Dinamis pada Penyelesaian Masalah 0/1 Knapsack

÷ ñîîÿ î îîñ

y

îò

u

îî ï÷ò ÿüü õö ðîþûÿûò õ öð

ty

û÷ò î

u

ðò üõ÷ò

õÿ ðñò ðÿî öï ð÷ò

Eksplorasi Algoritma Brute Force, Greedy, dan

Dynamic Programming untuk Persoalan Integer Knapsack

òîÿ ïõÿü÷ õÿ ðñòðÿî öïðòãøøùò

Diktat Kuliah IF2251 : Strategi Algoritmik

÷

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(48)

! " #$%&#% '( ()

n

u Awal

/*

* MenuAwal.java *

* Created on March 11, 2013, 1:00 PM */

package design; /**

*

* @author Tommy */

public class MenuAwal extends javax.swing.JFrame { /** Creates new form MenuAwal */

public MenuAwal() { initComponents(); }

/** This method is called from within the constructor to * initialize the form.

* WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor.

*/

// <editor-fold defaultstate="collapsed" desc=" Generated Code "> private void initComponents() {

jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); InfoProgram = new javax.swing.JButton(); Masuk = new javax.swing.JButton(); Keluar = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Menu Awal");

setResizable(false);

jPanel1.setBackground(new java.awt.Color(255, 85, 85)); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel1.setText("APLIKASI MASALAH KNAPSACK"); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel2.setText("MENGGUNAKAN ALGORITMA GREEDY"); InfoProgram.setText("Info Program");

InfoProgram.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { InfoProgramActionPerformed(evt);

} });

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(49)

*+

Masuk.setText("Masuk");

Masuk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { MasukActionPerformed(evt);

} });

Keluar.setText("Keluar");

Keluar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { KeluarActionPerformed(evt);

} });

jLabel3.setIcon(new javax.swing.ImageIcon("D:\\tom's dokumen\\Knapsack\\src\\untitled.JPG"));

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA DING)

.addGroup(jPanel1Layout.createSequentialGroup() .addGap(70, 70, 70)

.addComponent(jLabel1))

.addGroup(jPanel1Layout.createSequentialGroup() .addGap(46, 46, 46)

.addComponent(jLabel2))

.addGroup(jPanel1Layout.createSequentialGroup() .addGap(85, 85, 85)

.addComponent(jLabel3))

.addGroup(jPanel1Layout.createSequentialGroup() .addGap(21, 21, 21)

.addComponent(InfoProgram) .addGap(41, 41, 41)

.addComponent(Masuk) .addGap(41, 41, 41) .addComponent(Keluar)))

.addContainerGap(37, Short.MAX_VALUE)) );

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap() .addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel3)

.addGap(17, 17, 17)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(50)

,-.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS ELINE) .addComponent(InfoProgram) .addComponent(Masuk) .addComponent(Keluar)) .addContainerGap()) );

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack();

java.awt.Dimension screenSize =

java.awt.Toolkit.getDefaultToolkit().getScreenSize(); java.awt.Dimension dialogSize = getSize();

setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2);

}// </editor-fold>

private void MasukActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

MenuUtama mu = new MenuUtama(); mu.setVisible(true);

this.dispose(); }

private void KeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

System.exit(0); }

private void InfoProgramActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

InfoProgram ip = new InfoProgram(); ip.setVisible(true);

this.dispose(); }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(51)

./

/**

* @param args the command line arguments */

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

new MenuAwal().setVisible(true); }

}); }

// Variables declaration - do not modify private javax.swing.JButton InfoProgram; private javax.swing.JButton Keluar; private javax.swing.JButton Masuk; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; // End of variables declaration }

0

n

fo Program

/*

* InfoProgram.java *

* Created on April 23, 2013, 1:03 PM */

package design; /**

*

* @author Tommy */

public class InfoProgram extends javax.swing.JFrame { /** Creates new form InfoProgram */

public InfoProgram() { initComponents(); }

/** This method is called from within the constructor to * initialize the form.

* WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor.

*/

// <editor-fold defaultstate="collapsed" desc=" Generated Code "> private void initComponents() {

jLabel1 = new javax.swing.JLabel();

jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); jPanel1 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(52)

12

jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); Kembali = new javax.swing.JButton(); jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Informasi Program");

setResizable(false);

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel1.setText("INFORMASI PROGRAM");

jTextArea1.setBackground(new java.awt.Color(255, 85, 85)); jTextArea1.setColumns(20);

jTextArea1.setEditable(false); jTextArea1.setRows(5);

jTextArea1.setText("* Aplikasi ini digunakan untuk mencari solusi optimal

menggunakan algoritma\nGreedy.\n\n* User harus memasukkan data berupa berat dan keuntungan yang akan\ndicari solusi optimalnya.\n\n* Aplikasi pencarian solusi optimal ini mempunyai 3 keluaran berdasarkan\nstrategi dari algoritma Greedy yang masing-masing keluaran itu berisi :\n > Data Total Bobot\n > Data Total Keuntungan\n > Data Barang yang diambil (ditampilkan nomer data)");

jScrollPane1.setViewportView(jTextArea1);

jPanel1.setBackground(new java.awt.Color(255, 85, 85)); jLabel2.setText("Dibuat oleh :");

jLabel3.setText("Yohanes Tommy Gratsianto"); jLabel4.setText("065314035");

jLabel5.setText("TI - FST - USD"); jLabel6.setText("@2013");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA DING)

.addComponent(jLabel2) .addComponent(jLabel3) .addComponent(jLabel4) .addComponent(jLabel5) .addComponent(jLabel6))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(1)

gh

} }

TotBeratWeight.setText(""+knapsack); TotKeuntunganWeight.setText(""+profit); NoBarangWeight.setText(nomerBarang); }

private void GreedyByDensity(){

int b1 = Integer.parseInt(Berat1.getText()); int b2 = Integer.parseInt(Berat2.getText()); int b3 = Integer.parseInt(Berat3.getText()); int b4 = Integer.parseInt(Berat4.getText()); int b5 = Integer.parseInt(Berat5.getText()); int b6 = Integer.parseInt(Berat6.getText()); int b7 = Integer.parseInt(Berat7.getText()); int b8 = Integer.parseInt(Berat8.getText()); int b9 = Integer.parseInt(Berat9.getText()); int b10 = Integer.parseInt(Berat10.getText()); int b11 = Integer.parseInt(Berat11.getText()); int b12 = Integer.parseInt(Berat12.getText()); int b13 = Integer.parseInt(Berat13.getText()); int b14 = Integer.parseInt(Berat14.getText()); int b15 = Integer.parseInt(Berat15.getText()); int k1 = Integer.parseInt(Keuntungan1.getText()); int k2 = Integer.parseInt(Keuntungan2.getText()); int k3 = Integer.parseInt(Keuntungan3.getText()); int k4 = Integer.parseInt(Keuntungan4.getText()); int k5 = Integer.parseInt(Keuntungan5.getText()); int k6 = Integer.parseInt(Keuntungan6.getText()); int k7 = Integer.parseInt(Keuntungan7.getText()); int k8 = Integer.parseInt(Keuntungan8.getText()); int k9 = Integer.parseInt(Keuntungan9.getText()); int k10 = Integer.parseInt(Keuntungan10.getText()); int k11 = Integer.parseInt(Keuntungan11.getText()); int k12 = Integer.parseInt(Keuntungan12.getText()); int k13 = Integer.parseInt(Keuntungan13.getText()); int k14 = Integer.parseInt(Keuntungan14.getText()); int k15 = Integer.parseInt(Keuntungan15.getText()); if (b1 != 0){

d1 = k1/b1; }else { d1=0;} if (b2 != 0){ d2 = k2/b2; }else { d2=0;} if (b3 != 0){ d3 = k3/b3; }else { d3=0;} if (b4 != 0){ d4 = k4/b4; }else { d4=0;} if (b5 != 0){ d5 = k5/b5; }else { d5=0;}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(2)

ij

if (b6 != 0){ d6 = k6/b6; }else { d6=0;} if (b7 != 0){ d7 = k7/b7; }else { d7=0;} if (b8 != 0){ d8 = k8/b8; }else { d8=0;} if (b9 != 0){ d9 = k9/b9; }else { d9=0;} if (b10 != 0){ d10 = k10/b10; }else {

d10=0;} if (b11 != 0){ d11 = k11/b11; }else {

d11=0;} if (b12 != 0){ d12 = k12/b12; }else {

d12=0;} if (b13 != 0){ d13 = k13/b13; }else {

d13=0;} if (b14 != 0){ d14 = k14/b14; }else {

d14=0;} if (b15 != 0){ d15 = k15/b15; }else {

d15=0;}

int W = Integer.parseInt(Kapasitas.getText());

String dataN[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"};

int dataB[] ={b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15}; int dataK[] ={k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14, k15}; double dataD[] = {d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15}; BubbleSort.BubbleSortDensity(dataN, dataB, dataK, dataD);

int knapsack=0; int temp = 0; int temp1 = 0; double temp2 = 0; int profit = 0; double density = 0; String nomerBarang = "";

for (int i = 0; i < dataB.length; i++) { if (knapsack+dataB[i] <= W) { temp = dataB[i];

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(3)

k k

temp1 = dataK[i]; temp2 = dataD[i];

knapsack=knapsack+temp; profit = profit+temp1;

density = density+temp2; if(dataB[i] != 0){

nomerBarang = nomerBarang+" "+dataN[i]+",";} } else{

temp = 0; temp1 = 0; temp2 = 0; }

}

TotBeratDensity.setText(""+knapsack); TotKeuntunganDensity.setText(""+profit); NoBarangDensity.setText(nomerBarang); }

/**

* @param args the command line arguments */

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

new MenuUtama().setVisible(true); }

}); }

// Variables declaration - do not modify private javax.swing.JTextField Berat1; private javax.swing.JTextField Berat10; private javax.swing.JTextField Berat11; private javax.swing.JTextField Berat12; private javax.swing.JTextField Berat13; private javax.swing.JTextField Berat14; private javax.swing.JTextField Berat15; private javax.swing.JTextField Berat2; private javax.swing.JTextField Berat3; private javax.swing.JTextField Berat4; private javax.swing.JTextField Berat5; private javax.swing.JTextField Berat6; private javax.swing.JTextField Berat7; private javax.swing.JTextField Berat8; private javax.swing.JTextField Berat9; private javax.swing.JCheckBox Data1; private javax.swing.JCheckBox Data10; private javax.swing.JCheckBox Data11; private javax.swing.JCheckBox Data12; private javax.swing.JCheckBox Data13; private javax.swing.JCheckBox Data14; private javax.swing.JCheckBox Data15; private javax.swing.JCheckBox Data2; private javax.swing.JCheckBox Data3; private javax.swing.JCheckBox Data4; private javax.swing.JCheckBox Data5; private javax.swing.JCheckBox Data6; private javax.swing.JCheckBox Data7;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(4)

lm

private javax.swing.JCheckBox Data8; private javax.swing.JCheckBox Data9; private javax.swing.JTextField Kapasitas; private javax.swing.JButton Keluar; private javax.swing.JButton Kembali; private javax.swing.JTextField Keuntungan1; private javax.swing.JTextField Keuntungan10; private javax.swing.JTextField Keuntungan11; private javax.swing.JTextField Keuntungan12; private javax.swing.JTextField Keuntungan13; private javax.swing.JTextField Keuntungan14; private javax.swing.JTextField Keuntungan15; private javax.swing.JTextField Keuntungan2; private javax.swing.JTextField Keuntungan3; private javax.swing.JTextField Keuntungan4; private javax.swing.JTextField Keuntungan5; private javax.swing.JTextField Keuntungan6; private javax.swing.JTextField Keuntungan7; private javax.swing.JTextField Keuntungan8; private javax.swing.JTextField Keuntungan9; private javax.swing.JLabel NoBarangDensity; private javax.swing.JLabel NoBarangProfit; private javax.swing.JLabel NoBarangWeight; private javax.swing.JLabel TotBeratDensity; private javax.swing.JLabel TotBeratProfit; private javax.swing.JLabel TotBeratWeight; private javax.swing.JLabel TotKeuntunganDensity; private javax.swing.JLabel TotKeuntunganProfit; private javax.swing.JLabel TotKeuntunganWeight; private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; // End of variables declaration }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(5)

no

p

ubble Sort

/*

* BubbleSort.java *

* Created on April 20, 2013, 11:58 PM *

* To change this template, choose Tools | Template Manager * and open the template in the editor.

*/

package design; /**

*

* @author Tommy */

public class BubbleSort {

public static void BubbleSortWeight(String dataNo[], int dataWeight[], int dataProfit[]){ String temp;

int temp1; int temp2;

for(int i=0; i<dataWeight.length-1; i++){ for(int j=0; j<dataWeight.length-1; j++){ if(dataWeight[j]>dataWeight[j+1]){

temp=dataNo[j]; dataNo[j]=dataNo[j+1];

dataNo[j+1]=temp; temp1=dataWeight[j];

dataWeight[j]=dataWeight[j+1]; dataWeight[j+1]=temp1; temp2=dataProfit[j]; dataProfit[j]=dataProfit[j+1]; dataProfit[j+1]=temp2; }

} } }

public static void BubbleSortProfit(String dataNo[], int dataWeight[], int dataProfit[]){ String temp;

int temp1; int temp2;

for(int i=0; i<dataProfit.length-1; i++){ for(int j=0; j<dataProfit.length-1; j++){ if(dataProfit[j]<dataProfit[j+1]){

temp=dataNo[j]; dataNo[j]=dataNo[j+1];

dataNo[j+1]=temp; temp1=dataWeight[j];

dataWeight[j]=dataWeight[j+1]; dataWeight[j+1]=temp1; temp2=dataProfit[j]; dataProfit[j]=dataProfit[j+1];

dataProfit[j+1]=temp2; }

} } }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


(6)

qr

public static void BubbleSortDensity(String dataNo[], int dataWeight[], int dataProfit[], double dataDensity[]){

String temp; int temp1; int temp2; double temp3;

for(int i=0; i<dataWeight.length-1; i++){ for(int j=0; j<dataWeight.length-1; j++){ if(dataDensity[j]<dataDensity[j+1]){

temp=dataNo[j]; dataNo[j]=dataNo[j+1];

dataNo[j+1]=temp; temp1=dataWeight[j];

dataWeight[j]=dataWeight[j+1]; dataWeight[j+1]=temp1; temp2=dataProfit[j]; dataProfit[j]=dataProfit[j+1]; dataProfit[j+1]=temp2; temp3 = dataDensity[j];

dataDensity[j] = dataDensity[j+1]; dataDensity[j+1] = temp3; }

} } } }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI