Diktat Mat Disk r It

65
DIKTAT KULIAH M M A A T T E E M M A A T T I I K K A A D D I I S S K K R R I I T T Oleh: Amir Hamzah JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS DAN TEKNOLOGI AKPRIND 2011

Transcript of Diktat Mat Disk r It

Page 1: Diktat Mat Disk r It

DIKTAT KULIAH

MMAATTEEMMAATTIIKKAA DDIISSKKRRIITT

Oleh: Amir Hamzah

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

INSTITUT SAINS DAN TEKNOLOGI AKPRIND 2011

Page 2: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

2

Kata Pengantar

Puji syukur dipanjatkan kehadirat Allah Subhanallah Wa Ta’ala, karena

hanya atas petunjuk dan redhaNya akhirnya diktat ini dapat terselesaikan. Diktat

ringkas ini mungkin masih sangat sedikit dapat membantu dalam penyampaian

materi matematika diskrit kepada mahasiswa. Akan tetapi mengingat terbatasnya

buku yang ada di perpustakaan dan masih sedikitnya buku-buku berbahasa indonesia

tentang matematika diskrit yang sering menjadi kendala bagi para mahasiswa.

Perlu pula disampaikan di sini bahwa buku ini sebatas mengampu materi

Matematika Diskreet, yang disampaikan dalam 3 sks. Uraian-uraian dibuat sesingkat

mungkin dengan beberapa contoh penyelesaian masalah. Tentu saja diperlukan

buku-buku tambahan bagi mahasiswa untuk dapat menguasai materi-materi lebih

mendalam, mengingat pentingnya peran matematika diskrit dalam bidang

Informatika.

Akhirnya mudah-mudahan tulisan singkat ini dapat membantu para

mahasiswa. Kritik dan koreksi kami ucapkan terima kasih.

Yogyakarta, Maret 2011

Penulis

Page 3: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

3

i

DAFTAR ISI

BAB I . Logika Proposisi ………………………………………………… 1

BAB II. Logika Prdikatif ………………………………………………….. 10

BAB III. Himpunan, Relasi dan Fungsi ……………………………………. 16

BAB IV. Algoritma ………………………………………………………… 26

BAB V. Induksi dan Rekursi ……………………………………………… 32

BAB VI. Pengantar Teori Graf …………………………………………….. 40

BAB VI Algoritma Graf …………………………………………………… 48

BAB VII Tree ……………………………………………………………….. 53

Page 4: Diktat Mat Disk r It

BAB I

LOGIKA PROPOSISI

1.1. Proposisi dan Kalimat terbuka

Perhatikan stetemen-statemen dalam bahasa sehari-hari berikut :

1. Satu hari setelah hari Jumat adalah hari Sabtu

2. Surabaya adalah ibukota Indonesia

3. Hari Ini hari Apa ya?

4. Silahkan keluar ruang !

Perhatikan pula statemen-statemen dalam ekspresi matematika berikut :

1. 2 + 3 = 15

2. (3+5)10 < 100

3. (X + 10 ) >15

4. (X-Y) = Y +20

Jika diperhatikan kalimat-kalimat di atas, baik kalimat sehari-hari maupun

statemen matematika maka ada perbedaan yang dapat ditetapkan, yaitu :

- Kalimat pertama dan kalimat kedua adalah kalimat-kalimat yang dapat

ditetapkan sebagai kalimat yang BENAR atau kalimat yang SALAH.

Dengan kata lain statemen pertama dan kedua adalah statemen-statemen

yang dapat diberi nilai kebenaran.

- Kalimat-kalimat yang ketiga dan keempat adalah kalimat-kalimat yang

tidak dapat ditetapkan sebagai BENAR atau SALAH, atau statemen tersebut

tidak dapat diberi nilai kebenaran.

Definisi 1: Statemen-statemen yang dapat ditetapkan sebagai BENAR atau SALAH,

atau statemen yang dapat diberi NILAI KEBENARAN dinamakan

sebagai PROPOSISI.

Definisi 2 : Jika statemen tidak dapat ditetapkan sebagai BENAR atau SALAH

tetapi dengan cara tertentu dapat diubah menjadi statemen BENAR atau

SALAH maka statemen tersebut dinamakan sebagai KALIMAT

1

Page 5: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

2

TERBUKA. Kalimat terbuka kadang disebut juga sebagai FUNGSI

PROPOSISI.

Contoh 1.1: Manakah dari statemen-statemen berikut yang merupakan proposisi

dan manakah yang merupakan kalimat terbuka.

1. Indonesia adalah negara miskin

2. Jepang adalah negara miskin juga

3. Negara itu adalah negara miskin

4. (2 + 9 ) =X +12

Jawab :

1. Statemen 1. adalah proposisi, bernilai BENAR

2. Statemen 2 adalah proposisi, bernilai SALAH

3. Statemen 3 adalah kalimat terbuka, bisa benar bisa salah

4. Statemen 4 adalah kalimat terbuka, bisa benar bisa salah

1.2. Pengubahan Kalimat terbuka menjadi proposisi

Kalimat terbuka pada statemen 3 dapat diubah menjadi BENAR atau

SALAH jika variabel Negara digantikan negara tertentu. Demikian juga statemen 4

dapat diubah menjadi benar atau salah dengan mengganti X dengan nilai tertentu.

Dalam pembahasan lain mencari X pada kalimat terbuka dalam suatu

hubungan persamaan atau pertidaksamaan sedemikian sehingga kalimat terbuka

MENJADI PROPOSISI yang BERNILAI BENAR sering dinamakan menyelesaikan

persamaan/pertidaksamaan atau mencari akar persamaan/pertidaksamaan.

Contoh 1.2. : Perhatikan kalimat terbuka berikut :

X2 - 4X =-3 untuk X bilangan real

Ubahlah agar menjadi proposisi. Ubahlah pula menjadi proposisi

YANG BENAR.

Jawab : Untuk "sekedar" merubah menjadi proposisi maka sembarang nilai X dapat

diberikan, sehingga misalnya :

X2 - 4X =-3 untuk X bilangan real dan X adalah 5 (sembarang)

Kalimat tersebut adalah proposisi (meskipun nilainya salah).

Untuk merubah menjadi proposisi yang benar, kalimatnya :

Page 6: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

3

X2 - 4X =-3 untuk X bilangan real dan X bernilai 1 ATAU 3.

1.2. Operasi pada proposisi

Satu atau lebih proposisi dapat dioperasikan membentuk proposisi baru

dengan beberapa operasi logika.

a. NEGASI ( ¬ )

Negasi dari suatu proposisi p adalah proposisi yang memiliki nilai kebenaran

KEBALIKAN (ingkaran) dari nilai kebenaran proposisi p. Negasi dari p

dinotasikan sebagai : ¬ p

Negasi dari suatu proposisi memiliki kebenaran seperti tersaji dari tabel

kebenaran sebagai berikut :

p ¬ p

T

F

F

T

T = True

F = False

Contoh 1.3. : carilah negasi dari proposisi-proposisi berikut :

1. Jakarta ibukata indonesia

2. 2+2 =5

Jawab :

1. Tidaklah benar Jakarta ibukota indonesia

2. Tidak benar bahwa 2+2=5

b. KONJUNGSI (∧) (AND)

Jika dimiliki proposisi p dan q maka konjungsi (dibaca :"DAN") dari proposisi p

dan q adalah proposisi dengan tabel kebenaran sebagai berikut.

P q p ∧ q

T

T

F

F

T

F

T

F

T

F

F

F

Page 7: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

4

Contoh 1.4 :

Tentukan nilai kebenaran dari proposisi-proposisi majemuk berikut :

Jika p bernilai T dan q bernilai F tentukan nilai kebenaran proposisi berikut :

1. ¬ p ∧q

2. (p∧q) ∧ ¬ p

3. ¬ (p∧q) ∧ (¬ p)

Jawab :

Berdasarkan nilai awal p dan q dan tabel kebenaran adalah :

1. ¬ T ∧ F ⇔ F ∧ F

⇔ F

2. (T∧F) ∧ ¬ T ⇔ (F) ∧ ¬ T

⇔ (F) ∧ F

⇔ F

3. ¬ (T∧F) ∧ (¬ T) ⇔ ¬ (F) ∧ (F)

⇔ T ∧ (F)

⇔ F

c. DISJUNGSI (∨) (OR)

Jika dimiliki proposisi p dan q maka konjungsi (dibaca :"ATAU") dari proposisi

p dan q adalah proposisi dengan tabel kebenaran sebagai berikut.

P q p ∨ q

T

T

F

F

T

F

T

F

T

T

T

F

Contoh 1.5. :

Buatlah notasi-notasi yang sesuai untuk pernyataan-pernyataan berikut :

1. Tidak benar bahwa saya tidak datang ke pesta

Page 8: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

5

2. Saya akan datang ke tempatmu jumat atau selain senin

3. Saya dan dia makan di rumah atau kamu makan di restoran

Jawab :

1. p="pergi ke pesta" , kalimat pertama di notasikan sebagai ¬ ¬ p

2. p ="saya datang ke tempatmu jumat" dan q="saya datang ketempat mu senin"

proposisi no.2 menjadi : p ∨ (¬q)

3. p="saya makan dirumah" , q="dia makan dirumah" r="kamu mmakan di

restoran"

proposisi no.3. menjadi : (p ∧ q) ∨ r

Contoh 1.6. :

Tentukan nilai kebenaran dari proposisi berikut jika :

P = T , q = T dan r = T

1. ¬p ∨ ¬q

2. ( p ∧ ¬q) ∨ (q ∧ r)

3. ¬(p∨q) ∧(¬q)∨(p∧r)

Jawab:

1. ¬p ∨ ¬q ⇔ ¬T ∨ ¬T

⇔ F ∨ F

⇔ F

2. ( p ∧ ¬q) ∨ (q ∧ r) ⇔ ( T ∧ ¬T) ∨ (T ∧ T)

⇔ ( T ∧ F) ∨ (T ∧ T)

⇔ ( F) ∨ (T )

⇔ T

3. ¬(p∨q) ∧(¬q)∨(p∧r) ⇔ ¬(T∨T) ∧(¬T)∨(T∧T)

⇔ ¬(T) ∧(F)∨(T)

⇔ (F) ∧(F)∨(T)

⇔ (F)∨ (T)

⇔ T

Page 9: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

6

d. EXCLUSIVE OR (XOR) (⊕)

Jika dimiliki proposisi p dan q maka EXCLUSIVE OR (XOR) dari proposisi p

dan q adalah proposisi dengan tabel kebenaran sebagai berikut.

P q p ⊕ q

T

T

F

F

T

F

T

F

F

T

T

F

Perlu diberi catatan untuk mudah membedakan OR dan XOR adalah pada XOR

hanya kan bernilai TRUE jika dau proposisi bernilai berbeda: T dan F atau F dan T .

e. IMPLIKASI (→ )

Jika dimiliki proposisi p dan q maka IMPLIKASI p q (dibaca : JIKA p

MAKA q) dari proposisi p dan q adalah proposisi dengan tabel kebenaran sebagai

berikut.

P q p q

T

T

F

F

T

F

T

F

T

F

T

T

Dalam implikasi p q maka :

p disebut hipotesis/antesede/premis

q disebut konklusi /kesimpulan

Catatan : p q meskipun dibaca jika p maka q tidaklah sama dengan statemen

dalam bahasa pemrograman, yaitu statemen : if .. then

Dalam IMPLIKASI : p q maka baik p maupun q keduanya adalah proposisi

yang dapat bernilai benar atau salah.

Page 10: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

7

Dalam statemen IF ..THEN … misalnya :

IF X<5 THEN Y:=12

X<5 adalah PROPOSISI setelah sebelumnya X diberi nilai tertentu

Y:=12 bukanlah proposisi tetapi statemen pengisian (ASSIGNMENT)nilai Y dengan

data 12

Catatan lain dalam implikasi adalah bahwa hubungan "jika p maka q" tidak

mensyaratkan hubungan sebab akibat, misalnya :

1. p = "kamu belajar" , q = "kamu lulus ujian"

Proposisi : p q dapat dimaknai : "jika kamu belajar maka kamu lulus ujian"

Disini terlihat hubungan kasusalitas

2. p="1+1 = 2" q="Jakarta ibokota Indonesia"

Proposisi : p q berarti :"Jika 1+1=2 maka Jakarta ibukota Indonesia"

Kalimat tersebut tampak "aneh" dan tidak logis, tetapi dari sisi operasi implikasi

kalimat tersbut masih dapat diterima.

1.3. Ekivalensi proposisi majemuk

Proposisi-proposisi tunggal dapat digabung menjadi proposisi gabungan

disebut COMPOUND PROPOSITION (komposisi majemuk). Komposisi majemuk

ini dapat bernilai SELALU benar atau selalau salah.

TAUTOLOGY : komposisi majemuk yang bernilai selalau benar, misal : p ∨ ¬ p

CONTRADICTION : komposisi majemuk yang bernilai selalu salah, misal : p ∧ ¬

p

Tautlogy dan kontradiksi dapat dibuktikan dari tabel kebenaran berikut :

P ¬ p p ∨ ¬ p p ∧ ¬ p

T

F

F

T

T

T

F

F

EKIVALENSI : ( ⇔ )

Page 11: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

8

Proposi majemuk juga dinyatakan sebagai EKIVALEN SECARA LOGIKA

(logically equivalence) jika proposisi-proposisi tersebut memiliki tabel kebenaran

yang sama.

Contoh 1.7. : Ujilah apakah ekivalensi ini benar :

¬ (p ∨ q) ⇔ ¬ p ∧ ¬ q

Jawab :

Untuk menjawab ekivalensi ini dapat ditempuh dengan beberapa langkah :

Langkah 1:

Buat dua kolom tabel kebenarn p dan q

p q T T F F

T F T F

Langkah 2:

Tambahkan satu kolom dan cari kebenaran p ∨ q .

P q p ∨ q T T F F

T F T F

T T T F

Langkah 3:

Tambahkan satu kolom dan cari kebenaran : ¬ (p ∨ q) . Dengan membalik saja.

Pada langkah 3 ini kebenaran dari RUAS KIRI sudah ditentukan.

P q p ∨ q ¬(p ∨ q) T T F F

T F T F

T T T F

F F F T

Langkah 4:

Tambahkan DUA kolom untuk ¬p dan kolom ¬ q . Isikan kebenarnnya.

Page 12: Diktat Mat Disk r It

Logika proposisi (Bab 1)

Amir Hamzah/ Teknik Informatika

9

P q p ∨ q ¬(p ∨ q) ¬p ¬q

T

T

F

F

T

F

T

F

T

T

T

F

F

F

F

T

F

F

T

T

F

T

F

T

Langkah 5:

Tambahkan satu kolom (terakhir) yaitu kolom proposisi : ¬p ∧ ¬ q . Isikan

kebenarnnya. Diperoleh :

P q p ∨ q ¬(p ∨ q) ¬p ¬q ¬p ∧ ¬ q

T

T

F

F

T

F

T

F

T

T

T

F

F

F

F

T

F

F

T

T

F

T

F

T

F

F

F

T

Pembuktian selesai : nampak kolom ¬(p ∨ q) dan kolom ¬p ∧ ¬ q memiliki

kebenaran yang sama. Kesimpulan adalah benar ekivalensi :

¬(p ∨ q) ⇔ ¬p ∧ ¬ q

LATIHAN :

1. Tentukan apakah ekivalensi ini benar?

¬(p ∨ q) ⇔ ¬p q

2. Buktikan ekivalensi

p q ⇔ (p∧¬q) (r∧¬r)

petunjuk : Untuk menguji ekivalensi melibatkan 3 variabel mula-mula susun

3 kolom kebenaran dari variabel penyusunnya, kolom p,q dan r.

Page 13: Diktat Mat Disk r It

BAB II

LOGIKA PREDIKATIF

1.2. Predikat dan Fungsi Proposisi

Perhatikan kalimat berikut :

"john seorang mahasiswa"

"andi seorang mahasiswa"

Dua buah kalimat tersebut mengandung dua bagian yaitu "John", "Andi" dan

"seorang mahasiswa". Bagian pertama dapat digantikan oleh nama-nama orang

siapapun, sehingga dapat juga diganti dengan x. Bagian kedua adalah keterangan

tentang bagian pertama. Bagian kedua disebut sebagai PREDIKAT dari bagian

pertama.

Dua kalimat tersebut merupakan proposisi yang dapat diubah menjadi

kalimat terbuka.

"x seorang mahasiswa"

Selanjutnya predikat dapat dinotasaikan dengan sebuah huruf besar, yaitu misalnya

P. Sehingga jika P mewakili predikat "seorang mahasiswa"

"john seorang mahasiswa" dapat ditulis sebagai P(john)

"andi seorang mahasiswa" dapat ditulis sebagai P(andi)

dan

"x seorang mahasiswa" ditulis sebagai P(x)

Pada pembahasan selanjutnya predikat dinotasikan sebagi huruf besar dan objek

yang dikenai predikat tersbut diwakili oleh huruf kecil.

P(x) merupakan statemen yang belum dapat diberi nilai kebenaran. P(x)

disebut sebagai fungsi proposisi.

1.3. Fungsi proposisi dengan dua atau lebih variabel

Perhatikan kalimat berikut :

"john duduk di depan andi"

Jika predikat "duduk didepan" dinotasikan dengan Q, maka :

Q(john,andi) bermakna : john duduk didepan andi"

10

Page 14: Diktat Mat Disk r It

Logika predikatif (Bab 2)

Amir Hamzah/ Teknik Informatika

11

Q(x,y) bermakna : x duduk didepan y, yang merupakan fungsi proposisi dua

variabel.

Q(y,x) bermakna : y duduk didepan x, yang merupakan kondisi yang lain dengan

Q(x,y).

Pada fungsi proposisi dua variabel atau lebih, maka urutan variabel harus

diperhatikan. Urutan variabel yang berbeda memiliki makna yang berbeda.

Perhatikan kalimat :

"siti duduk diantara joko dan sano"

Fungsi proposisi R(x,y,z) dapat diajukan. R memiliki arti "duduk diantara .. dan .."

"ali dan rudi bermain melawan romeo dan yuli"

Fungsi proposisi S(a,b,c,d) dapat diajukan dengan S="bermain melawan"

1.4. Operasi pada Fungsi proposisi

Dua atau lebih fungsi proposisi dapat digabungkan membentuk fungsi proposisi

yang baru.

Perhatikan kalimat berikut :

"Jika joko pelajar maka ia dapat korting"

Dapat diekspresikan : P(joko) Q(joko)

Dimana: P = "seorang pelajar"

Q= "mendapat korting"

"Jika seseorang adalah pelajar maka ia akan dapat koritng"

ditulis : P(x) Q(x)

Kalimat :

"Jika seseorang rajin belajar dan ikut ujian , ia tak akan tinggal kelas"

dapat dinotasikan sebagai :

B(x) ∧ U(x) ¬ T(x)

Dimana: B = "rajin belajar "

U= "ikut ujian

T="tinggal kelas"

1.5. Semesta Pembicaraan

Page 15: Diktat Mat Disk r It

Logika predikatif (Bab 2)

Amir Hamzah/ Teknik Informatika

12

Dalam suatu fungsi proposisi yang melibatkan satu, dua atau banyak variabel,

maka masing-masing variabel akan dapat dievaluasi dalam suatu himpunan tertentu

yang disebut sebagai SEMESTA pembicaraan. Semesta pembicaraan menjadi

memungkinkan menerjemahkan fungsi proposisi menjadi proposisi yang dengan

jelas dapat dievaluasi benar atau salah.

Contoh :

1. M(x)="x adalah seorang mahasiswa"

Maka semesta pembicaraan x adalah manusia

2. Q(x,y)="x duduk dedepan y"

Semesta pembicaraan x, y adalah orang-orang yang sedang nonton bioskup

3. R(x,y)= "x2+y2 >0"

Semesta pembicaraan adalah x,y bilangan real; biasa ditulis : x,y∈ℜ

1.6. Kuantifikasi Fungsi Proposisi

Suatu fungsi proposisi dapat diubah menjadi proposisi dengan melakukan

penggantian variabel dengan nilai data yang dimungkinkan oleh semesta

pembicaraan.

Contoh :

1. Fungsi proposisi : Q(x)="x adalah binatang galak"

Dengan x adalah semua singa yang hidup didunia

Diubah menjadi proposisi yang BENAR="singa liar dihutan adalah binatang

galak"

Diubah menjadi proposisi yang SALAH="singa sirkus adalah binatang

galak"

2. Fungsi proposisi : R(x,y)="x2+y2>0" dengan semesta pembicaraan x,y∈ℜ

Diubah menjadi proposisi yang BENAR "22+32>0"

Diubah menjadi proposisi yang SALAH "02+02>0"

Cara lain untuk merubah fungsi proposisi menjadi proposisi dapat juga dengan

cara memberi kuantor (quantifier). Dikenal dua macam kuantor yaitu :

Page 16: Diktat Mat Disk r It

Logika predikatif (Bab 2)

Amir Hamzah/ Teknik Informatika

13

KUANTOR UNIVERSAL (universal quantifier): ∀

"disimbolkan dengan ∀=dibaca SEMUA"

Contoh :

Fungsi proposisi : Q(x)="x2 -1 >0" , untuk semesta x bilangan real

Belum memiliki nilai kebenaran.

Jika diberi kuantor ∀ akan menjadi proposisi :

∀x Q(x)="x2 -1 >0" , x∈ℜ

dibaca:"Untuk semua x dengan x bilangan real berlaku x2 -1 >0"

ini adalah proposisi yang SALAH karena jika x=0 maka 02-1 <0

Dengan demikian kuantor ∀ membuat Q(x) menjadi proposisi

(bernilai SALAH).

KUANTOR EXISTENSIAL (existensial quantifier): ∃

"disimbolkan dengan ∃=dibaca ADA BEBERAPA/ SEBAGIAN"

Contoh :

Fungsi proposisi : Q(x)="x2 -1 >0" , untuk semesta x bilangan real

Belum memiliki nilai kebenaran.

Jika diberi kuantor ∃ akan menjadi proposisi :

∃x Q(x)="x2 -1 >0" , x∈ℜ

dibaca:" Ada sebagian x dengan x bilangan real berlaku x2 -1 >0"

∃x Q(x)="x2 -1 >0" , x∈ℜ Telah memiliki nilai kebenaran, yaitu :BENAR

Kuantifikasi juga dapat dilakukan pada fungsi proposisi dengan cacah variabel 2

atau lebih. Perhatikan :

∀x ∀y Q(x)="x2 + y2 >0" , x,y∈ℜ

dibaca:"Untuk Semua x untuk semua y berlaku x2 + y2 >0"

sebuah proposisi yang salah karena untuk x=0 dan y=0 : 0+0>0 adalah salah.

Contoh : Tentukan nilai kebenaran proposisi-propossisi berikut :

1. ∀x Q(x)="x + 1 > x" , x∈ℜ

2. ∀x ∃y Q(x)="x2 + y >0" , x,y∈ℜ

Page 17: Diktat Mat Disk r It

Logika predikatif (Bab 2)

Amir Hamzah/ Teknik Informatika

14

3. ∃x∀y Q(x)="x2 + y >0" , x,y∈ℜ

4. ∃x∃y Q(x)="x2 + y >0" , x,y∈ℜ

Jawab:

1. BENAR karena semua bilangan real +1 selalu lebih besar dari bilangan

itu sendiri.

2. BENAR, karena untuk setiap x real , selalu ada y sehingga x2 + y >0

menjadi benar. Untuk x>0 y>0 maka x2 + y >0 selalu benar.

Untuk x =0 akan ada y (misal ambil y>0) sehingga x2 + y >0 selalu

benar.

Untuk x <0 maka kuadrat x >0 sehingga akan ada y sehingga x2 + y >0

selalu benar.

3. SALAH, karena jika diambil sembarang x : misal x= 3 maka tidak dapat

ditemukan SEMUA y bilangan real sehingga x2 + y >0 menjadi selalu

benar. Hanya ada sebagian y saja , yaitu untuk y > -3

4. BENAR, karena dipilih sembarang X selalu ada Y sehingga x2 + y >0

benar.

Ekivalensi Kuantor Universal/Existensial Dengan Konjungsi /Disjungsi :

Andaikan seluruh semesta pembicaraan x dapat didaftarkan menjadi x1, x2, …,xn

maka kuantor universal dan eksistensial dapat dinyatakan dengan kesetaraan :

1. Kuantor universal ∀ :

∀x ⇔ x1 ∧ x2 ∧ x3 ∧ …. ∧ xn

2. Kuantor Existensial ∃ :

∃x ⇔ x1 ∨ x2 ∨ x3 ∨ …. ∨ xn

Contoh :

Tentukan nilai kebenaran ∃x P(x) dimana P(x) ="x2>10" dengan semesta

pembicaraan adalah bilangan bulat positif tidak lebih dari 4.

Jawab : Semesta pembicaraan x adalah : 1,2,3,4

Page 18: Diktat Mat Disk r It

Logika predikatif (Bab 2)

Amir Hamzah/ Teknik Informatika

15

∃x P(x) ⇔ P(x1) ∨ P(x2) ∨ P(x3) ∨ P(x4)

⇔ P(1) ∨ P(2) ∨ P(3) ∨ P(4)

⇔ (12>10) ∨ (22>10) ∨ (32>10) ∨ (42>10)

⇔ F ∨ F ∨ F ∨ T

⇔ T

Page 19: Diktat Mat Disk r It

BAB III

HIMPUNAN, RELASI & FUNGSI

3.1.HIMPUNAN

Konsep himpunan adalah dasar semua sistem bilangan. Pada hakekatnya

bilangan adalah himpunan yang jumlah anggotanya tidak terhingga. Himpunan

dapat diekspresikan dengan minimal dua cara :

1. Cara Mendaftar :

Contoh : A ={1,2,3,4}

B={ 1,3, 5, 7, 9}

2. Cara Menuliskan syarat keanggotaan :

Contoh : A={x | x bilangan positif < 5 }

B={x | x bilangan positif GANJIL dibawah 10}

Anggota himpunan dinotasikan sebagai ∈ dan bukan anggota dinotasikan dengan ∉.

Dengan demikian untuk A dan B diatas berlaku :

1 ∈ A ; 2 ∈ A ; 5 ∉ A

1 ∈ B ; 5 ∈ B ; 10 ∉ B

3.1.1. Sub Himpunan dan Himpunan Kuasa

Misalkan X dan Y adalah dua himpunan. Jika setiap anggota X adalah

anggota Y maka X adalah sub himpunan (himpunan bagian) dari Y, ditulis : X ⊆ Y

Jika setiap anggota X adalah anggota Y tetapi X ≠ Y maka X dikatakan

sebagai sub himpunan murni dari Y (proper set), ditulis : X⊂Y

Himpunan dari semua sub himpunan murni atau tidak dari suatu himpunan

disebut sebagai himpunan kuasa (power set), ditulis P(A).

Contoh :

Tentukan himpunan kuasa dari A={a,b,c}

Jawab :

P(A) = { ∅ , {a} , {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c} }

Catatan : Himpunan kosong (∅) merupakan sub himpunan dari setiap

16

Page 20: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

17

himpunan.

3.1.2. Operasi terhadap himpunan

a. IRISAN (intersection) :

Misalkan X dan Y adalah dua himpunan. Maka irisan himpunan X dengan Y

di definisikan sebagai suatu himpunan yang anggotanya adalah anggota X dan

anggota Y. Irisan disimbulkan dengan ∩.

Definisi : X ∩ Y = { x | x ∈ X DAN x ∈ Y }

Contoh :

X={ 1,3,5}

Y={1,2,3,6,7}

X ∩ Y ={1, 3 }

b. GABUNGAN (Union) :

Misalkan X dan Y adalah dua himpunan. Maka gabungan himpunan X

dengan Y di definisikan sebagai suatu himpunan yang anggotanya adalah anggota X

atau anggota Y. Irisan disimbulkan dengan ∪.

Definisi : X ∪ Y = { x | x ∈ X ATAU x ∈ Y }

Contoh :

X={ 1,3,5}

Y={1,2,3,6,7}

X ∪ Y ={1,2, 3,5,6,7 }

c. HIMPUNAN SEMESTA DAN KOMPLEMEN HIMPUNAN

Himpunan semesta dimaksudkan sebagai himpunan yang anggotanya adalah

seluruh elemen yang menjadi pembicaraan. Misalnya himpunan bilangan real,

himpunan bilangan bulat.

Contoh : S={x | x ∈ R }

Himpunan Komplemen (Ac)

Jika dimiliki himpunan A, maka komplemen dari himpunan A adalah

himpunan yang anggotanya bukan anggota A tetapi anggota semesta.

Page 21: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

18

Contoh : S={x | x ∈ R }

A ={ x | x < 0 }

Maka Ac = {x | x > 0 }

d. SELISIH DUA HIMPUNAN

Misalkan X dan Y adalah dua himpunan. Maka SELISIH himpunan X

dengan Y di definisikan sebagai suatu himpunan yang anggotanya adalah anggota X

TETAPI BUKAN anggota Y. Simbul selisih adalah : -

Definisi : X - Y = { x | x ∈ X dan x ∉ Y }

Contoh : A ={1,3,5}

B ={4,5,6}

Maka A - B { 1,3 }

B - A ={4,6}

e. PASANGAN BERURUT (ordered pairs)

Kadang-kadang diinginkan untuk menuliskan anggota suatu himpunan secara

berpasangan, disebut sebagai pasangan berurt. Pasangan berurut dinotasikan dengan

(a,b) atau <a,b>. Pasangan berurut ini tidaklah sama dengan himpunan dengan dua

buah anggota. Himpunan dengan dua buah anggota maka {a,b} = {b,a} sedangkan

dalam pasangan berurut (a,b) ≠ (b,a).

Contoh konkrit pasangan berurut adalah himpunan titik-titik dalam suatu

bidang dua dimensi (koordinat kartesius). Himpunan titik diwakili oleh kordinat

(x,y). Dengan demikian titik (1,2) tidaklah sama dengan titik (2,1).

Contoh :

Tentukan seluruh pasangan berurut yang dapat dibuat dari himpunan :

A={a,b,c}

Jawab : { (a,b), (a,c), (b,c) , (b,a) , (c,a), (c,b) }

f. PRODUK KARTESIAN (cartesian product)

Produk kartesian dari dua himpunan X dan Y : (X × Y)

Didefinisikan sebagai himpunan seluruh pasangan berurut dengan anggota pertama

dari himpunan pertama dan anggota kedua dari himpunan kedua.

Page 22: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

19

Contoh : A={a,b} dan B={1,2,3}

Maka A ×B = {(a,1), (a,2), (a,3), (b,1), (b,2), (b,3) }

Produk kartesian dari himpunan dengan dirinya sendiri:

Contoh: Untuk A dan B diatas

Maka :

A × A = {(a,a), (a,b), (b,a), (b,b) }

B × B = {(1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2), (3,3) }

3.2. RELASI

Pada keadaan tertentu kadang diperlukan menghubungkan anggota suatu

himpunan ke anggota himpunan yang lain. Misalnya dimiliki anggota himpunan :

M=mahasiswa = {amir, ali, badu}

K=mata kuliah = {CALCULUS, BAHASA, IPS}

Relasi yang mungkin tentang pengambilan mata kuliah oleh mahasiswa dapat dibuat

:

(amir,CALCULUS), (amir,BAHASA), (ali,IPS), (badu,BAHASA)

Mendaftar seluruh relasi yang mungkin dari dua himpunan merupakan ekspresi lain

dari PRODUK KARTESIAN.

Relasi Biner :

Misalkan X dan Y adalah dua himpunan. Relasi biner X ke Y adalah sub

himpunan dari produk kartesian X x Y. Jika x,y ∈ R, relasi X ke Y dapat ditulis

sebagai xRy.

Domain (Daerah asal) relasi adalah :

{x ∈ R | (x,y) ∈ R untuk beberapa y ∈ R}

KoDomain (Daerah hasil) relasi adalah :

{y ∈ R | (x,y) ∈ R untuk beberapa x ∈ R}

Contoh:

X={2,3,4}

Y={3,4,5,6,7}

Relasi R dari X ke Y didefinisikan sebagai (x,y) ∈ R jika x membagi habis y.

Page 23: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

20

Maka:

R={ (2,4), (2,6), (3,3), (3,6), (4,4) }

Jika ditulis ulang relasi R dalam bentuk tabel terlihat :

X Y 2 2 3 3 4

4 6 3 6 4

DOMAIN dari R adalah {2,3,4}

KODOMAIN dari R adalah {3,4,6}

3.2.1. DIGRAF (DIRECTED GRAPH)

Suatu directed graph , biasa disebut sebagai DIGRAF, (grafik berarah) yang

dapat diekspresikan sebagai lingkaran-lingkaran yang dihubungkan satu dengan

yang lain dengan anak panah dapat digunakan dengan tepat menggambarkan suatu

relasi. Gambar 3.1 merupakan suatu Digraf yang menggambarkan relasi R={(1,2),

(1,3), (2,3), (3,3) } atas suatu himpunan X={1,2,3}.

Gambar 3.1. Gambar Directed graf (DIGRAF)

Sifat-sifat Relasi

a. SIFAT REFLEKSIF :

"Relasi R pada himpunan X disebut refleksif jika untuk setiap x berlaku (x,x) ∈ R "

Contoh :

X = {1,2,3}

R1= { (1,2), (1,3), (2,3), (1,1) } tidak refleksif

R2={ (1,1), (1,3), (3,1), (2,2), (3,3),(3,2) } adalah refleksif

Page 24: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

21

R1 R2

Gambar 3.2. Relasi yang tidak refleksif (R1) dan refleksif (R2)

b. SIFAT SIMETRIS

"Relasi R pada himpunan X disebut simetris jika untuk setiap x,y ∈ X jika (x,y) ∈

R maka (y,x) ∈ R juga."

Contoh :

X = {1,2,3}

R3= { (1,2), (1,3), (2,3), (2,1), (3,1) } tidak simetris karena (3,2) tak ada

R4={ (1,1), (1,3), (3,1), (2,3), (3,3),(3,2) } adalah simetris

Gambar 3.3. Relasi yang tidak simetri (R3) dan simetri (R4)

c. SIFAT ANTISIMETRIS

"Relasi R pada himpunan X disebut antisimetris jika untuk setiap x,y ∈ X jika

(x,y) ∈ R dan x≠y maka (y,x) ∉ R "

Contoh :

X = {1,2,3}

R5= { (1,2), (1,3), (2,3), (2,1), (3,1) } tidak simetris karena (3,2) tak ada

R6={ (1,1), (1,3), (2,3), (3,3) } adalah antisimetris

Page 25: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

22

Gambar 3.4. Relasi tidak simetris (R5) dan antisimetris (R6)

Perlu dicatat bahwa tidak simetris berbeda dengan antisimetris. Tidak simetris

bermakna tidak semua (x,y) ∈ R terdapat (y,x) ∈ R, sedangkan antisimetris artinya

untuk setiap (x,y) ∈ R maka (y,x) ∉ R

d. SIFAT TRANSITIF

"Relasi R pada himpunan X disebut transitif jika untuk setiap x,y,z ∈ X dan jika

(x,y) ∈ R serta (y,z) ∈ R maka ditemukan (x,z) ∈ R.

Contoh :

X = {1,2,3}

R7= { (1,2), (1,3), (2,3), (2,1), (3,1) } tidak transitif karena:

(1,2)∈R dan (2,1)∈R : tetapi (1,1) ∉ R

R8={ (1,1), (1,3), (3,1), (3,3), (3,2),(1,2) } adalah transitif.

Gambar 3.4. Relasi tidak transitif (R7) dan transitif (R8)

e. URUTAN PARTIAL (partial orders)

"Suatu Relasi R pada himpunan X disebut urutan partial jika R adalah : refleksif,

antisimetris dan transitif"

Page 26: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

23

Contoh :

X = {1,2,3,4,5}

R ={ (1,1), (1,2), (1,4) ,(1,5), (2,2),(2,4),(2,5),(3,3),(4,4),(5,5) }

adalah urutan partial.

Bukti :

Refleksif karena : (1,1),(2,2),(3,3),(4,4),(5,5) ∈R

Antisimetris karena : (1,2)∈R, (1,4)∈R, (1,5)∈R, (2,4)∈R, (2,5)∈R

dan: (2,1)∉R, (4,1) ∉R, (5,1) ∉R, (4,2) ∉R, (5,2)∉R

Transitif karena : (1,2)∈R, (2,4)∈R, maka (1,4)∈R

(1,2)∈R, (2,5)∈R, maka (1,5)∈R

3.3. FUNGSI

Suatu fungsi adalah relasi yang memenuhi kriteria tertentu. Seperti telah

dibahas dalam produk kartesian, bahwa suatu relasi adalah sub himpunan dari

produk kartesian. Suatu relasi f dalam X dikatakan sebagai fungsi apabila memenuhi

:

1. Domain f adalah X

2. Jika (x,y)(x,y')∈f maka haruslah y=y'

Untuk membedakan suatu relasi biasa dengan fungsi dapat digambarkan dengan dua

macam relasi berikut:

X Y

X Y

a b c d

1 2 3 4 5

Bukan relasi karena tidak memenuhi syarat 1. Gambar 3.5. Bukan Relasi

a b c d

1 2 3 4 5

Bukan relasi karena tidak memenuhi syarat 2. Gambar 3.6. Bukan Relasi

Page 27: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

24

X Y

Contoh : dimiliki X={1,2,3} dan Y={a,b.c}

Suatu relasi f : X Y = { (1,a), (2,b), (3,a) } adalah sutu FUNGSI

Ekspresi fungsi yang lain dapat ditulis sebagai : f(1)=a , f(2)=b dan f(3)=a

Selanjutnya fungsi sering dinotasikan sebagai aturan pemetaannya, misalnya :

f(x)=x2 ; x∈ℜ, memetakan nilai-nilai x ke x2 . ℜ berarti himpunan bilangan real

f(x)=2x+1 ;x∈ℜ, memetakan nilai-nilai x ke 2x+1

3.3.1. Fungsi Hash

Salah satu fungsi yang penting dalam aplikasi komputer adalah fungsi hash.

Fungsi ini memetakan anggota himpunan bilangan bulat ke bilanagn bulat kedua.

Bilangan bulat kedua adalah sel-sel memori komputer. Jika dimiliki 11 sel memori

komputer dan diberi nomor 0 sampai 10, maka setiap bilangan bulat dapat disimpan

pada lokasi yang diatur menurut fungsi hash. Fungsi hash didefinisikan sebagai :

h(n) = n mod 11

Misal mau disimpan data : 15, 558, 32, dan 132

15 mod 11 =4 maka 15 disimpan dilokasi 4

558 mod 11 =8 maka 558 disimpan dilokasi 8

32 mod 11 =10 maka 32 disimpan dilokasi 10

132 mod 11 =0 maka 132 disimpan dilokasi 0

0 1 2 3 4 5 6 7 8 9 10

Gambar 3.8. Letak bilangan dalam sel memori bedasar fungsi hash.

Tentu saja jika bilangan berbeda misalnya 257 dan 15 kebetulan memiliki

modulo yang sama (15 mod 11=4 dan 257 mod 11=4) maka akan terjadi

a b c d

1 2 3 4 5

Relasi : Syarat 1 dan 2 dipenuhi Gambar 3.7. Relasi

132 15 558 32

Page 28: Diktat Mat Disk r It

Himpunan, Relasi dan Fungsi (Bab III)

Amir Hamzah / Teknik Informatika

25

tabrakan(collision). Bagaimana mengatasi tabrakan maka teknik-teknik hashing

dapat diperdalam pada kesempatan lain.

Page 29: Diktat Mat Disk r It

BAB IV

ALGORITMA

4.1. PENGERTIAN ALGORITMA

Dalam pemecahan masalah dengan bantuan komputer dan pemrograman

diperlukan alur logika pemecahan. Himpunan langkah-langkah yang terhingga dari

alur logika untuk memecahkan masalah disebut sebagai algoritma. Sebagai contoh

pekerjaan "membuat kopi manis" dapat dituliskan algoritmanya sebagai berikut :

Algoritma 1.:

1. Ambil gelas dan taruh di meja

2. Isi gelas dengan kopi

3. Tambahkan gula secukupnya

4. Tuang air panas ke dalam gelas

5. Aduk sampai gula larut semua

6. Selesai

Pada algoritma ada hal-hal prinsipil yang sangat penting yaitu URUTAN

perintah. Urutan perintah pada umumnya tidak dapat dibolak-balik. Misalnya

langkah 1 dengan langkah 2 tidak dapat ditukar. Demikian juga langkah 5 tidak

dapat mendahului langkah 4 (mau ngaduk apa wong airnya belum dituang). Tetapi

kadang ada juga langkah yang dapat dipertukarkan dan tidak menyebabkan

pekerjaan gagal, misalnya langkah 2 dan 3. Gula dulu atau kopi dulu tidak

mempengaruhi hasil akhir.

Contoh lain adalah algoritma mencari nilai terbesar dari 3 bilangan a,b dan c.

Algoritmanya adalah :

Algoritma 2: 1. Max:=a 2. If Max<b then Max:=b 3. If Max <c then Max:=c

Dalam algoritma tersebut notasi := disebut operator penugasan (assignment

operator), yang mempunyai arti, misalnya x:=y, "copy kan isi variabel y ke dalam

x", isi variabel y sendiri nilainya tetap tidak berubah.

Dalam algoritma diatas juga ada pernyataan :If Max<b then Max:=b.

26

Page 30: Diktat Mat Disk r It

Algoritma (Bab IV)

Amir Hamzah/ Teknik Informatika

27

Pernyataan bentuk ini memiliki rumus umum :

If KONDISI then AKSI

Kondisi dapat bernilai benar atau salah . Jika kondisi ini bernilai benar maka

AKSI akan dikerjakan dan jika salah AKSI tidak dikerjakan.

Untuk menguji apakah algoritma diatas benar-benar menemukan nilai

terbesar dari tiga bilangan dapat dilakukan pengujian dengan sembarang data.

Pengujian ini dilakukan langkah demi langkah (biasa disebut sebagai TRACING

atau pelacakan)

Pengujian Dengan data : a=2 ; b=6; c=3

Langkah 1 : Max diisi a , sehingga Max berisi 2

Langkah 2: bandingkan Max dengan b Max<b? 2<6? Benar maka Max diisi b,

sehingga Max berisi 6.

Langkah 3: bandingkan Max dengan c Max<c ? 6<3? Salah maka tidak

mengerjakan apa-apa. Max tetap berisi 6

Hasil : Maksimum adalah 6

4.2. NOTASI UNTUK ALGORITMA

Karena bahasa sehari-hari kadang sulit menjelaskan suatu algoritma, para ahli

komputer lebih menyukai ekspresi algoritma dalam suatu bentuk PSEUDO-CODE

(kode palsu) yang sudah sangat dekat dengan ekspresi bahasa program komputer.

Dalam suatu algoritma selalu dimiliki :

Masukan : data-data yang diperlukan untuk memperoleh hasil

Keluaran : Hasil yang diinginkan setelah algoritma dijalankan.

Dengan demikian algoritma cari nilai terbesar dari tiga bilangan dapat ditetapkan :

Masukan :a,b dan c:

Keluaran : nilai maksimum

Algoritma 3 : Ekspresi algoritmanya : 1. Procedure maks(a,b,c)

2. X:=a

3. If b>X then X:=b

4. If c>X then X:=c

5. Return(X)

Page 31: Diktat Mat Disk r It

Algoritma (Bab IV)

Amir Hamzah/ Teknik Informatika

28

6. End maks

Kadang dikehendaki bahwa aksi yang terkondisikan berupa beberapa aksi.

Dalam keadaan ini ekspresi untuk aksi-aski diletakkan dalam suatu BLOK yang

dimuali dengan begin dan ditutp dengan end. Misalnya :

If kondisi then

Begin ---- ---- End

4.3. ALGORITMA CARI MAKSIMUM DARI DERET

Algoritma mencari maksimum dari 3 bilangan dapat dikembangkan menjadi

mencari maksimum dari n buah bilangan. Misalnya deret bilangan tersebut :

s1,s2,…,sn

Algoritma nya:

Masukan : n dan : s1,s2,…,sn

Keluaran :besar, anggota s terbesar

Algoritma 4 : 1. Procedure mencari_maks(n, s1,s2,…,sn ) 2. besar:=s 3. i:=2 4. While i<=n do 5. Begin 6. If si>besar then besar:=si 7. i:=i+1 8. End 9. Return(besar) 10. End(mencari-maks)

Dalam algoritma diatas ada ekspresi while …do. Ekspresi ini digunakan untuk

mengontrol proses berulang. Pengendalian proses berulang dengan while..do

memerlukan counter yaitu variabel I yang mula-mula diberi nilai 2. Perulangan

dilakukan selam i<=n.

Cara lain untuk mengendalikan perulangan adalah dengan ekspresi forr..do :

For varcounter :=init to limit do

Page 32: Diktat Mat Disk r It

Algoritma (Bab IV)

Amir Hamzah/ Teknik Informatika

29

Aksi

Dalam hal ini aksi dilakukan selam nilai varcounter dari init menuju limit dengan

langkah satu.

Dengan demikian algoritma diatas dapat ditulis ulang menjadi.

Algoritma 5 : 1. Procedure mencari_maks(n, s1,s2,…,sn ) 2. besar:=s 3. for I:=2 to n do 4. If si>besar then besar:=si 5. Return(besar) 6. End(mencari-maks)

4.4. ALGORITMA MENENTUKAN APAKAH BILANGAN PRIMA

Bilangan bulat dapat dikelompokkan menjadi bilangan prima dan bukan prima.

Pada hakekatnya bilangan bukan prima selalu dapat difaktorkan menjadi bilangan-

bilanagn prima. Bilangan prima sendiri didefinisikan sebagai bilangan yang pembagi

habisnya hanya SATU dan bilangan itu sendiri, atau bilangan yang tidak dapat

difaktorkan kecuali dirinya sendiri.

Berikut ini adalah Algoritma mencari bilangan prima.

Masukan : n (bilangan)

Keluaran : TRUE jika n bilangan prima dan FALSE jika bukan

Algoritma 6 : Menentukan apakah bilangan bulat n itu prima/bukan 1. Procedure apakah_prima(n) 2. for I:=2 to n-1 do 3. if (n mod I )=0 then return(SALAH) 4. Return(BENAR) 5. End(apakah_prima)

Misalkan diinginkan menguji algoritma 6. Dapat diusulkan n misalnya = 10.

Untuk I =2 maka (n mod I) yaitu (10 mod 2)=0 dan SALAH akan direturn

Untuk n misalnya = 11

Untuk semua I=2,3,4,..10 (n mod I) tidak pernah benar maka akan direturn

BENAR

Page 33: Diktat Mat Disk r It

Algoritma (Bab IV)

Amir Hamzah/ Teknik Informatika

30

4.5. ALGORITMA EUCLIDES

Salah satu algoritma yang cukup terkenal adalah algoritma euclides : yaitu

algoritma untuk menentukan faktor persekutuan terbesar (FPB) dari dua buah

bilangan bulat. FPB didefinisikan sebagai berikut :

Jika 12 mempunyai faktor {1,2,3,6,12}

Dan 18 memiliki faktor {1,2,3,6,9,18}

Himpunan Faktor Persekutuan {1,2,3,6}

FAKTOR PERSEKUTUAN TERBESAR ADALAH 6

Euclides mengajukan suatu algoritma untuk menentukan FPB sebagai berikut:

Masukan : a,b (dua buah bilangan)

Keluaran : FPB dari a dan B

Algoritma 7 : Menentukan FPB dari a dan b 1. Procedure CariFPB(a,b) 2. If a<b then swap(a,b) 3. while (b<>0) do 4. Begin 5. Bagilah a dengan b untuk mendapat a=bq+r, 0<r<b 6. a:=b 7. b:=r 8. End 9. return(a) 10. End(cariFPB)

Dalam algoritma langkah 2 ada pernyataan swap(a,b), artinya tukarkan isi variabel a

dengan variabel b. swap dapat ditempuh dengan :

temp:=a a:=b b:=temp

4. 6. ALGORITMA REKURSI

Jika dalam bab III telah dibahas bagaimana mendefinisikan suatu fungsi

rekursi, maka secara algoritma penentuan suatu fungsi dapat juga diimplementasikan

Page 34: Diktat Mat Disk r It

Algoritma (Bab IV)

Amir Hamzah/ Teknik Informatika

31

secara rekursi. Dengan kata lain algoritma rekursi adalah penyelesaian langkah-

langkah komputasi untuk suatu persoalan yang dapat didefinisikan secara rekursi,

baik dalam suatu bentuk fungsi atau prosedur.

Contoh : Untuk pesoalan mencari n! , algoritma non rekursi untuk menyelesaikan

adalah sebagai berikut : 1. Procedure CariFaktorial(n) 2. Bantu:=1 3. For i:=1 to n do 4. Bantu:=Bantu * i 5. return(Bantu) 6. End(cariFaktorial)

Adapun algoritma rekursinya adalah sebagai berikut : 1. Procedure CariFaktorial(n) 2. If n=1 then Return(1) 3. Else Return (n * CariFaktorial(n-1)) 4. End(cariFaktorial)

Contoh : Untuk pesoalan mencari suku ke-n deret fibbonacisecara rekursi adalah

sebagai berikut : 1. Procedure Suku-ke-n(n) 2. If n=1 then Return(1) 3. Else if n = 2 then Return (1) 4. Else Return (Suku-ke-n(n-1)+ Suku-ke-n(n-2)) 5. End(Suku-ke-n)

Page 35: Diktat Mat Disk r It

BAB V

INDUKSI DAN REKURSI

5.1. INDUKSI MATEMATIKA

Induksi matematika merupakan teknik pembuktian yang cukup penting untuk

membutikan kebenaran suatu statemen matematika. Induksi matematika diilustrasikan

misalnya dengan suatu gambaran berikut :

Gambar 5.1. Deretan kotak bernomor yang ditandai X

Dimiliki sederetan kotak yang panjangnya tak terhingga bernomor 1,2,3,….

Beberapa kotak ditandai dengan dengan tanda X dengan aturan :

1. Kotak pertama ditandai

2. Jika semua kotak sebelum kotak ke-(n+1) ditandai maka kotak ke ke-(n+1)

juga ditandai.

Akan dibuktikan bahwa dua aturan tersebut menyebabkan semua kotak yang

panjangnya tak hingga tersebut akan ditandai X.

Aturan 1. Menyebabkan kotak 1 ditandai.

Aturan 2. Kotak 2 ditandai karena kotak 1 ditandai, maka kotak 2 harus ditandai

(menurut aturan 2). Jika kotak 1 dan 2 ditandai maka menurut aturan 2 kotak 3 juga

harus ditandai. Jika kotak 1,2, dan 3 ditandai maka kotak 4 juga harus ditandai dan

seterusnya, akibatnya semua kotak ditandai.

Prinsip di atas merupakan prinsip induksi matematika. Misalnya dimiliki

kalimat matematika S(n) yang masih merupakan pernyataan terbuka yang dapat benar

atau salah. Untuk membuktikan bahwa S(n) benar, maka cara pembuktian dengan

induksi matematika secara umum dapat dituliskan dalam dua langkah :

1. dapat dibuktikan S(1) benar

2. Jika S(i) benar untuk semue i<(n+1) maka buktikan s(n+1) benar

32

Page 36: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

33

Langkah pertama disebut sebagai langkah dasar (BASIC STEP) dan langkah kedua

disebut langkah induksi (INDUCTION STEP).

Contoh 1:

Buktikan kebenaran pernyataan berikut dengan induksi matematika

n! > 2(n-1) untuk n=1,2,3…

Jawab :

Pembuktian ditempuh dengan mengikuti dua langkah pembuktian.

Langkah Dasar : Apakah benar n! > 2(n-1) untuk n=1 ?

Substitusikan n=1 kedalam pernyataan, diperoleh :

1! > 2(1-1)

1! > 2(0)

1 > 1 ADALAH STATEMEN YANG BENAR

Setelah langkah dasar dapat membuktikan bahwa pernyataan benar.

Langkah Induksi :

Harus dapat ditunjukkan bahwa i! > 2(i-1) benar untuk i=1,2,3…n

Asumsikan bahwa i! > 2(i-1) benar untuk i=1,2,…n

Dengan demikian untuk i=n, i! > 2(i-1) juga benar, yakni

n! > 2(n-1) (ASUMSI)

Untuk i=n+1, apakah (n+1)! > 2((n+1)-1) benar ?

Untuk i=n+1, didapat (n+1)! = (n+1)n!

> (n+1) 2(n-1) (berdasar asumsi)

karena (n+1)>2 maka = 2. 2(n-1)

= 2n

Maka dapat dibuktikan bahwa (n+1)! >2n BENAR

Contoh 2:

Buktikan bahwa S(n): 1+3+5+….(2n-1) =n2 untuk n=1,2,…

Jawab :

Langkah Dasar : S(1) : 1 = 12 adalah benar

Langkah induksi :

Diasumsikan bahwa 1+3+5+..(2i-1)=i2 benar untuk i=n

Page 37: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

34

Yaitu 1+3+5+..(2n-1)=n2

Untuk i=(n+1) dimiliki :

1+3+5+ …+(2n-1) +(2(n+1)-1) =

= n2 (asumsi)

n2 + {2(n+1) -1 } = n2 + {2n+2 -1} =

n2 + {2n+1} = (n+1)2

Sehingga dapat dibuktikan bahwa untuk I=(n+1) berlaku :

1+3+5+ …+ (2n-1)+{2(n+1)-1} = (n+1)2 (terbukti)

Contoh 3 :

Gunakan induksi untuk membuktikan bahwa 5n-1 habis dibagi 4 untuk

n=1,2,3,…

Jawab :

Langkah dasar :

untuk n=1 didapat 51 -1 = 5 -1 = 4 ( habis dibagi 4)

Langkah induksi :

untuk n=1,2,…,n asumsikan : didapat 5n -1 habis dibagi 4

Jika 5n -1 habis dibagi 4 (asumsi), akan dibuktikan bahwa

Untuk n+1 , yakni [ 5(n+1) -1 ] habis dibagi 4

Yaitu : 5(n+1) -1 = 5. 5n -1

= (4+1) 5n -1

= 4. 5n + 5n -1

= 4. 5n + (5n -1)

habis dibagi 4 berdasar asumsi :habis dibagi 4

Dapat dibuktikan bahwa kedua ruas adalah habis dibagi 4

Jadi benar bahwa jika (5n -1) habis dibagi 4 maka (5n+1 -1) juga habis

dibagi 4 (TERBUKTI)

5.2.REKURSI

Pendekatan suatu persoalan yang pada tahap tertentu dapat diformulasikan dengan

tahap sebelumnya dengan formula yang sama disebut dengan rekursi. Konsep rekursi

Page 38: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

35

ini dapat ditemukan dalam berbagai aspek misalnya DERET, HIMPUNAN dan

ALGORITMA.

Rekursi dalam Himpunan :

Suatu himpunan dapat didefinisikan secara rekursi dengan dua langkah :

1. himpunan awal didefinisikan

2. aturan untuk mendapatkan set baru dari set yang telah ada didefinisikan

Contoh :

S adalah himpunan yang didefinisikan secara rekursi :

(i) 3 ∈ S

(ii) Jika x∈ S dan y∈ S maka x+y∈ S

Himpunan S sebenarnya adalah : {3,6,9,12,…}

Hal ini didapat : jika mula-mula S={3}

Untuk x=3, y=3 maka menurut aturan (ii) (3+3) ∈ S 6∈ S

Untuk x=3, y=6 maka menurut aturan (ii) (3+6) ∈ S 9∈ S

Dst

Rekursi dalam DERET

Kebanyakan deret bilangan memiliki ketaraturan yang dapat didefinisikan

secara rekursi. Definisi rekursi memiliki dua bagian yaitu nilai awal dan bagian

rekursi.

Contoh 1:

Dimiliki deret yang terkenal dengan sebutan deret fibbonacci :

0,1,1,2,3,5,8,…

Secara rekursif deret tersebut dapat didefinisikan dengan statemen berikut :

Deret : f0, f1, f2, ….

Dimana : f0 = 0 dan f1=1

fn=fn-1+fn-2

Untuk mendapat f5 diperoleh dengan cara = f4+f3 = 1+2 =3

FUNGSI REKURSI

Page 39: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

36

Konsep rekursi mengandung makna pendefinisian sesuatu dalam"term"

sesuatu itu sendiri pada level yang lebih sederhana. Pandanglah suatu deret bilangan

ganjil sebagai berikut :

1, 3, 5, .... , 2n-1

U1 U2 U3 Un

Jika suku pertama ditulis sebagai U1 , suku kedua ditulis sebagai U2 dan seterusnya

suku ke-n ditulis sebagai Un. Jika daiamati bahwa suku pertama adalah 1 dan suku ke-

2, ke-3 dan seterusnya adalah naik (selisih) dua, sehingga dapat ditulis sebagai :

U1=1

U2= U1 + 2 ;

U3= U2 + 2

...

Un= U(n-1) + 2

Dengan demikian dapat dinyatakan bahwa kecuali suku ke-1 yang dinyatakan sebagai

1 maka suku ke-n adalah merupakan fungsi dari suku ke-(n-1). Oleh karena itu dapat

dinyatakan bahwa suku ke-n dari suatu deret bilangan ganjil dapat ditulis sebagai :

Un= U(n-1) + 2

Ekspresi semua suku untuk deret bilangan ganjil dapat didefinisikan secara

REKURSIF sebagai :

U(n)1 untuk n = 1U(n -1) + 2 untuk n > 1⎧⎨⎩

Sehingga jika akan dicari suku pertama U(1) didapat =1

Suku ke-2, yaitu : U(2) = U(2-1)+2 = U(1) + 2 = 1 + 2 = 3

Suku ke-3, yaitu : U(3) = U(3-1)+2 = (2) + 2 = 3 + 2 = 5 dan seterusnya

Jika diamati suatu definisi fungsi rekursi, tampak ada bagian yang

diformulasikan sebagai dasar (yang tidak mengandung rekursi) dan ada bagian yang

didefinisikan sebagai bagian "rekursi", yaitu bagian yang mengambil bentuk fungsi itu

sendiri pada term (tahap) sebelumnya. Untuk fungsi menentukan suku ke-n deret

bilangan ganjil:

Page 40: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

37

Gambar 5.2. Anatomi fungsi rekursi

Contoh : Tuliskan definisi fungsi secara rekursi untuk menentukan suku ke-n dari

deret fibbonaci, yaitu :

1 1 2 3 5 8 13 21 34 55 89 ... dst

dimana suku ke-n adalah jumlah dua suku sebelumnya, atau : Un=Un-1 + Un-2

Jawab : Dari deret dapat diketahui bahwa U(1) = 1 dan U(2)=1

U(3)=U(1)+U(2) ; U(4)=U(2)+U(3) ... dst U(n)=U(n-2)+U(n-1)

Sehingga fungsi rekursi untuk menentukan suku ke-n deret adalah :

U(n)1 untuk n = 11 untuk n = 2U(n -1) + U(n - 2) untuk n > 2

=⎧

⎨⎪

⎩⎪

Rekursi dalam ALGORITMA

Rekursi dalam algoritma sebenarnya merupakan akibat langsung dari

permasalahan yang pada keadaan tertentu dapat diekspresikan secara rekursif. Jika

persoalan dapat didefinisikan secara rekursi maka dapat disusun pemecahan dengan

algoritma rekursif.

Contoh : Definisikan secara rekursi

n! = 1x2x3x4x…n

jawab :

dimiliki kenyatan : 1! = 1

2!=(1)x2 = 2. 1!

3!=(1x2)x3 = 3 . 2!

n! =(1x2x…(n-1)xn = n.(n-1)!

Bagian definisi dasar

Bagian definisi rekursi

Page 41: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

38

Dari kenyataan tersebut dapat didefinisikan suatu fungsi rekursi :

Dari fungsi rekursi selanjutnya dapat ditetapkan algoritma rekursinya sebagai beikut:

Masukan : n

Keluaran : n!

Algoritma : 1) Procedure faktorial(n)

2) If n=1 then

3) fak:=1

4) If n>1 then

5) fak:=n*faktorial(n-1)

6) return(fak)

7) End faktorial

Contoh :

Apakah perkalian dua bilangan bulat m dan n dapat dinyatakan secara

rekursi?

Jawab :

Dalam bentuk fungsi non rekursi :

f(n,m) =n*m

f(n,m) = n untuk m=1

= m untuk n=1

= n*(m + 1-1)

= n*(1+(m-1))

=n + {n*(m-1)}

=n + f(n,m-1)

Dengan demikian ekspresi f(n,m)=n*m dapat ditulis secara rekursi menjadi :

1 untuk n=1

f(n)=n! =

n.f(n-1) untuk n>1

Page 42: Diktat Mat Disk r It

Induksi dan Rekursi (BabV))

Amir Hamzah/ Teknik Informatika

39

Contoh :

Tentukan algoritma rekursi untuk xn dengan x real dan n bulat

Jawab :

Algoritma rekursi dapat dirumuskan jika fungsi dapat dirumuskan secara

rekursi. Ekspresi fungsi pangkat non rekursi adalah :

f(x,n)= xn

Dalam bentuk fungsi rekursi :

f(x,n) = xn

= x.x(n-1)

= x.f(x,n-1)

Untuk n=0 dimiliki f(x,0)=x0=1

Dengan demikian definisi rekursi adalah :

Algoritma dapat ditulis sebagai berikut :

Masukan : x real dan n bulat

Keluaran : xn

Algoritma : 8) Procedure caripangkat(x,n)

9) If n=0 then

10) Hasil:=1

11) If n>0 then

12) Hasil:=x*caripangkat(x,n-1)

13) return(Hasil)

14) End caripangkat

m untuk n=1

f(n.m)= n untuk m=1

n.f(n,m-1) untuk n>1, m>1

1 untuk n=0 f(x,n) = x.f(x,n-1)

Page 43: Diktat Mat Disk r It

BAB VI

PENGANTAR GRAF

5.3. DEFINISI GRAF

Graf (Graph) didefinisikan sebagai struktur diskret yang mengandung titik(vertices)

dan garis/sisi (edge) yang menghubungkan titik-titik tersebut. Ada banyak tipe-tpe

yang berbeda dari graf yang merujuk pada cara titik-titik dihubungkan dan

banyaknya garis penghubung. Graf pada kenyataannya dapat diterapkan pada

banyak persoalan, mulai dari transportasi, tournamen, jalur penerbangan, struktur

organisasi sampai jaringan komputer

5.4.TIPE-TIPE GRAF

1. Graf sederhana (Simpe Graf )

Suatu graf G=(V,E) disebut sebagai simple graf jika G mengandung V, yaitu

himpunan tak kosong vertice dan E, yaitu himpunan tak kosong dari edge.

Contoh dari simple graf dapat dilihat pada gambar 6.1, jaringan komputer yang

menghubungkan 7 kota di Amerika dengan catatan setiap dua kota hanya ada sau

line telepon.

Gambar 6.1. Contoh Simple Graf

2. Multiple Graf

Kadang-kadang dijumpai bahwa antar dua kota disambungkan dengan lebih dari

satu line telepon. Graf yang terbentuk dari jaringan telpon dengan multi-line akan

membentuk suatu graf dengan multi line antar dua titik, disebut dengan multiple

graf. 40

Page 44: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

41

Suatu graf G=(V,E) disebut sebagai multiple graf jika G mengandung :

himpunan vertices V, himpunan edges E dan fungsi f dari E ke {{u,v}| u,v ∈ V, u ≠

v . Egdes e1 dan e2 disebut multiple atau paralel edge jika f(e1)=f(e2)

Contoh multiple graf dapat dilihat pada gambar 6.2.

Gambar 6.2. Contoh Multiple Graf

3. Directed Graf (Digraf)

Jaringan telpon yang menghubungkan antar komputer mungkin tidak

menggunakan saluran yang sama pada dua arah komunikasi. Pada gambar 6.3

menunjukkan arah komukaasi yang tiap dua kota. Graf yang terbentuk disebut

sebagai Directed Graf.

Suatu graf G=(V,E) disebut sebagai Directed graf jika G mengandung V,

yaitu himpunan tak kosong vertice dan E, yaitu himpunan tak kosong dari edge

yang mana E berisi pasangan terurut (yang menunjukkan arah koneksi).

Gambar 6.3 Contoh Directed Graf

5.5.TERMINOLOGI DASAR GRAF

1. Tetangga (Adjacent/ neighbour)

Page 45: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

42

Dua buah vertices u dan v dalam graf G dikataka sebagai tetangga (adjacent)

dalam G jika {u,v} adalah edge dalam G. Jika e={u,v} adalah edge dalam G maka e

disebut incident dengan vertices u dan v.

Perhatikan graf dalam gambar 6.4. Vertices e,f dan c adalah tetangga

terhadap titik b, sedangkan titik d bukan tetangga terhadap b tetapi tetangga terhadap

c.

Gambar 6.4. Contoh Graf 2. Derajat vertex (Degree of a vertex)

Derajat vertex, ditulis deg(v) adalah banyaknya edge yang merupakan

incident edge bagi vertex tersebut. Misalnya untuk gambar 6.4 :derajat vertex

a,b,c,d,e berturut-turut adalah deg(a)=2 ; deg(b)=3; deg(c)=4; deg(d)=1 dan

deg(e)=4.

5.6.REPRESENTASI MATRIKS UNTUK GRAF

Ada banyak cara untuk merepresentasikan graf selain dengan cara formal

menggunakan diagram. Beberapa yang penting adalah dengan daftar ketetanggaan,

matrik tetangga dan matrik incident.

1. Daftar ketetanggaan (Adjacency list)

Representasi dengan daftar ketetanggaan dapat disajikan dengan membuat

tabel vertex dan tetangga vertexnya. Misalkan dimiliki graf seperti Gambar 6.5.

(a), maka dapat dibuat Daftar edge untuk graf tersebut sebagai berikut :

Tabel 1. Daftar edge untuk Simple Graf Gambar 6.5. (a) vertex Vertex tetangga a b c d e

b,c,d a a,d,e c,e a,c,d

Page 46: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

43

(a) (b)

Gambar 6.5 (a). Simple Graf ; (b) multiple graf

2. Matrik Tetangga (Adjacency matrix)

Untuk kepentingan penyusunan algoritma dan analisis, representasi dengan

daftar edge dinilai kurang efisien. Cara lain yang diusulkan adalah dengan

matrik tetangga.

Dianggap bahwa dimiliki graf G=(V,E) dengan |V|=n, yaitu graf dengan

jumlah vertex n. Anggap bahwa daftar vertex ditulis sembarang sebagai

v1,v2,...,vn. Matrik tetangga A dari graf G adalah suatu matrik berukuran nxn

yang beranggotakan 0 atau 1. Elemen matrik baris i kolom j berisi 1 jika vertex

vi bertetangga dengan vertex vj dan 0 jika tidak bertetangga. Dengan kata lain

matrik tetangga A =[aij],

dimana :

aij =⎧⎨⎩

1 jika {vi,vj} edge dalam G0 selainnya

Contoh : Matriks tetangga untuk graf pada gambar 6.5. (a) adalah sebagai

berikut

A =

0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0

⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥

Sedangkan matrik tetangga untuk multiple graf gambar 6.5. (b) dalah sebagai

berikut:

Page 47: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

44

A=

0 3 2 0 3 0 1 1 2 1 0 2 0 1 2 0

⎢⎢⎢⎢

⎥⎥⎥⎥

3. Incidency matrix

Cara lain untuk representasi graf adalah dengan incidency matrix. Jika G adalah

graf tak berarah G=(V,E) dan anggap bahwa v1,v2,...,vn adalah vertex dan

e1,e2,...,em adalah edge dalam G maka incidence matrik M adalah matrik ukuran

nxm yang dapat ditulis ebagai M=[mij] dimana :

m =1 jika edge e adalah incident dengan v0 selainnyaij

j i⎧⎨⎩

Gambar 6.6. Graf dengan 5 vertex dan 6 edge

Contoh : Matrix incidency dari graf dalam gambar 6.6. adalah sebagai berikut :

M=

1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1

⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥

5.7. PATH (JALUR)

Definisi : Path (jalur) dengan panjang n dari u ke v dalam graf G adalah

sederetan edge e1,e2,...,en dalam G sedemikian sehingga f(e1)={x0,x1},

f(e2)={x1,x2),...,f(en)={xn-1,xn), dimana u=x0 dan v=x. Untuk simpel graf path dapat

ditulis sebagai sederetan vertex dari x0,x1,...,xn. secara unik. Path dikatakan

membentuk circuit jika path mulai dan berakhir pada vertex yang sama.

Page 48: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

45

Contoh : Untuk gambar 6.6. Path dari a ke e dapat ditulis paling tidak empat

macam, yaitu : a,c,e ; a,d,e ; a,c,d,e dan a,d,c,e

Untuk gambar 6.6. circuit dari a dapat dibentuk antara lain : a,c,d,a ;

a,c,e,d,a ; a,d,c,a dan a,d,e,c,a

5.5.1. Euler Circuit dan Euler Path

Kota Konigsberg Prusia dibagi menjadi empat bagian oleh cabang sungai.

Terdapat 7 jembatan yang menghubungkan 4 wilayah tersebut (Lihat gambar 6.7

(a)). Persoalan yang muncul apakah mungkin dibuat perjalanan yang dimulai dari

suatu wilayah dengan menyeberangi semua jembatan TEPAT SATU KALI dan

kembali ketempat semula. Untuk menjawab pertanyaan tersebut Leonhard Euler

memodelkan persoalan terebut menjadi multiple graf dalam gambar 6.7 (b).

Persoalan yang dikehendaki sekarang menjadi : Apakah ada circuit sederhana dalam

multigraph tersebut yang mengandung semua edge.

Gambar 6.7. Kota Konisberg (a) dan Graf analog-nya (b)

Definisi : Circuit Euler dalam graf G adalah circuit sederhana yang mengandung

semua edge dalam G. Euler path dalam G adalah path sederhana dalam G

yang memuat semua edge dalam G.

G1 G2 G3

Gambar 6.8. Model Graf

Page 49: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

46

Contoh : Lihat graf G1,G2 dan G3 dalam gambar 6.8. Manakah yang memiliki

euler circuit? Dari yang tidak memiliki euler circuit manakah yang

memiliki euler path?.

Jawab: G1 memiliki euler circuit yaitu :a,e,d,c,e,b,a

G2 dan G3 tidak memiliki euler circuit. G2 tidak memiliki euler path, tetapi

G3 memiliki euler path yaitu :a,c,d,e,b,d,a,b

Jika diamati graf G1, G2 dan G3 dapat disimpulkan bahwa suatu graf akan memiliki

euler circuit apabila tiap-tiap vertexnya memiliki jumlah edge yang genap. Hal ini

dapat dilogikakan bahwa suatu edge yang digunakan untuk jalur masuk ke suatu

vertex tidak dapat lagi digunakan untuk jalur keluar karena suatu edge hanya dapat

dilewati satu kali.

5.5.2. Hamilton Circuit dan Hamilton Path

Apabila euler circuit dan euler path adalah suatu tour sedemikian sehingga

setiap edge tepat dilalui satu kali, maka hamilton circuit dan hamilton path adalah

suatu tour sehingga setiap vertex hanya dilalui satu kali. Secara formal Hamilton

ceircuit didefinisikan sebagai :

Definisi : Sebuah path x0,x1,x2,...,xn dalam graf G=(V,E) disebut hamilton path jika

V=( x0,x1,x2,...,xn ) dan xi ≠ xj untuk 0 ≤ i ≤ j ≤ n. Sedangkan circuit

x0,x1,x2,...,xn,x0 disebut hamilton circuit jika x0,x1,x2,...,xn adalah

hamilton path.

Contoh : Dari graf G1,G2 dan G3 pada gambar 6.9 manakah yang memiliki

hamilton circuit ? jika tidak memiliki hamilton circuit manakah yang

memiliki hamilton path?

G1 G2 G3

Gambar 6.9. Graf-graf

Jawab: Graf G1 memiliki hamilton circuit yaitu :a,b,c,e,d,a; b,c,e,d,a,b dan

beberapa kemungkinan lain. Untuk Graf G2 dan G3 tidak memiliki

Page 50: Diktat Mat Disk r It

Pengantar Graf (Bab VI))

Amir Hamzah/ Teknik Informatika

47

hamilton circuit (dapat dicermati bahwa setiap circuit yang melalui semua

titik (vertex) yang dibuat pasti melalui vertex {a,b} dua kali). Akan tetapi

G2 memiliki hamilton path yaitu : a,b,d,c ; a,b,c,d dan beberapa

kemungkinan lain. Untuk G3 tidak memiliki hamilton path.

Page 51: Diktat Mat Disk r It

BAB VII

ALGORITMA GRAF

PROBLEM JALUR TERPENDEK (SHORTEST PATH PROBLEM)

Banyak persoalan yang dapat dimodelkan dengan graf terbobot (weighted

graph). Graf terbobot adalah suatu graf dengan masing-masing edge diberi bobot

dengan suatu nilai bilangan tertentu. Sebagai contoh sistem transportasi udara dapat

dimodelkan dengan graf terbobot, dimana setiap kota yang dilalui sebagai vertex dan

jalur penerbangan sebagai edge dalam graf dan beaya penerbangan sebagai bobot.

Untuk jalur penghubung 7 kota misalnya beaya penerbangan seperti terlihat dalam

gambar 7.1.

Gambar 7.1. Graf terbobot 7 kota di Amerika

Graf terbobot seperti dalam gambar 7.1. dapat mewakili banyak persoalan, misalnya

selain beaya penerbangan dapat diartikan beaya komunikasi untuk suatu jaringan

komputer , waktu respon oleh komunikasi komputer antar kota atau jarak (km) antar

dua komputer point-to-point dan lain sebagainya.

Berbagai persoalan muncul dengan model graf terbobot. Jika antara dua titik

ada beberapa jalur yang mungkin manakah jalur yang paling murah?. Jika suatu path

yang menghubungkan antara dua titik dalam graf dapat diwakili sebgai jumlah bobot

dalam setiap dua titik yang dilalui maka mencari jalur terpendek dalam suatu path

dapat diartikan mencari jalur sedemikian sehingga jumlah bobot yang dilalui adalah

minimal. Persoalan seperti memegang peran penting dalam penentuan route paket

48

Page 52: Diktat Mat Disk r It

Algoritma Graf (Bab VII))

Amir Hamzah/ Teknik Informatika

49

data dalam suatu jaringan komputer.

Beberapa algoritma diajukan oleh para ahli. Dua yang terpenting akan dibahas

dalam bab ini, yaitu algoritma Dijkstra's.

4. Algortima Dijkstra's untuk Shortest Path Problem

Algoritma jalur terpendek dari suatu graf terbobot G ditemukan oleh Dijkstra's,

seorang ahli matematik bangsa Belanda pada tahun 1959. Untuk ilustrasi dari ide

Dijkstra's dapat diambil sampel misalkan dimiliki graf terbobot seperti gambar 7.2.

Tentukan jalur terpendek untuk suatu path dari a ke z. Meskipun jawaban dapat

dilihat sepintas langsung , namun langkah-langkah dapat digunakan untuk ilustrasi

algoritma Dijkstra's.

Gambar 7.2. Graf terbobot

Jawab: Dua kemungkinan yang ada untuk jalur yang bermula dari a (dimana

awal jalur dimulai) adalah a,b dan a,d. Karena dari dua jalur tersebut yang terkecil

adalah a,d maka diambil jalur a,d sebagai jalur awal. Selanjutnya dari titik d hanya

ada satu kemungkinan jalur , yaitu d,e. Dari titik d ada dua kemungkinan jalur, yaitu

e,b dan e,z ; karena e,z adalah jalur yang lebih pendek maka e,z dipilih. Setelah e,z

terpilih ternyata titik akhir jalur telah didapat, dengan demikian jalur terpendek yang

dihasilkan adalah jalur : a,d,e,z.

Jawaban diatas merupakan penemuan jawaban yang relatif mudah tanpa

menggunakan algoritma resmi. Akan tetapi untuk ukuran graf yang cukup besar

persoalan akan menjadi sulit hanya dengan cara inspeksi dan memerlukan algoritma

yang formal. Pemikiran langkah-langkah seperti diatas diuliskan oleh Dijkstra dalam

suatu algoritma yang dapat diuliskan sebagai berikut.

Penjelasan algoritma Dijkstra's dapat diterangkan sebagai berikut: mula-mula

memberi label a dengan 0 dan semua vertex yang lain dengan nilai ∞ . Digunakan

notasi L0(a)=0 dan L0(v)= ∞. Subscript 0 memiliki maksud sebelum ada iterasi (

Page 53: Diktat Mat Disk r It

Algoritma Graf (Bab VII))

Amir Hamzah/ Teknik Informatika

50

tanda 0 berarti iterasi "ke-0"). Label 0 bermakna panjang jalur terpendek dari a ke

titik tersebut (anggap bahwa path hanya mengandung satu vertex yaitu a).

Algoritma Dijkstra's berproses dengan suatu himpunan vertex yang jelas, sebut

sebagai Sk , yaitu set vertex setelah iterasi ke-k. Mula-mula S diset dengan sebagai

himpunan kosong ∅. Himpunan Sk dibentuk dari Sk-1 dengan ditambah vertex u

(vertex diluar Sk-1) dengan label terkecil. Setelah u dimasukkan ke dalam Sk semua

label dari vertex diluar Sk diupdate sedemikian sehingga Lk(v), label vertex v pada

iterasi ke k adalah jalur terpendek dari a sampai v dengan melibatkan hanya vertex-

vertex dalam Sk.

Andaikan v adalah vertex tidak dalam Sk. Untuk meng-update label dari v , catat

bahwa Lk(v) adalah panjang jalur terpendek dari a ke v dengan menggunakan vertex

yang ada dalam Sk. Updating dapat dilakukan dengan menggunakan : jalur

terpendek dari a ke v dengan menggunakan vertex dalam Sk. Ini dipilih salah satu

dari dua kemungkinan, yaitu :

1. Jalur terpendek dari a ke v hanya menggunakan vertex yang ada dalam Sk-1 atau :

2. Jalur terpendek dari a ke u pada iterasi ke k-1 ditambah dengan panjeng (u,v)

atau dapat ditulis : Lk(a,v)=min{Lk-1(a,v) , Lk-1(u,v)+w(u,v) }

Algoritma Dijkstra's Procedure Dijkstra(G:weighted connected simple graph, with all weights positive) {G has vertices a=v0,v1,...,vn=z and weights w(vi,vj) where w(vi,vj)=∞ if { vi,vj } not an edge in G} for i:=1 to n L(vi)= ∞ L(a):=0 S:=∅ {the label are now initialized so that the label of a is zero and other labels are ∞ and S is the empty set} while z ∈ S begin u:= a vertex not in S with L(u) minimal S:= S ∪ {u} For all vertex not in S If L(u)+w(u,v) < L(u) then L(v):=L(u)+w(u,v) {this adds a vertex to S with minimal label and updates the labels of vertices not in S} end {L(z) = length of shortest path from a to z}

Page 54: Diktat Mat Disk r It

Algoritma Graf (Bab VII))

Amir Hamzah/ Teknik Informatika

51

Sebagai ilustrasi dari langkah-langkah algoritma Dijkstra's adalah sebagai berikut :

Contoh: Temukan jalur terpendek untuk graf terbobot dalam gambar 7.3.

Gambar 7.3. Pelacakan dengan Dijkstra

Jawab:

Penelusuran dimulai dengan memberi bobot sebagai berikut :

Langkah 0 : L0(a)=0; L0(b)= ∞, L0(c)= ∞ , L0 (d)= ∞ , L0 (e)= ∞ dan L0 (z)= ∞

S= ∅

Langkah 1: Dari titik asal a, update bobot vertex yang dapat dibuat jalur dari a, yaitu

vertex b dan vertex c. Didapat untuk b bobotnya =4 (a) dan c bobotnya 2

(a). Maka dipilih c. Sehingga S={a,c}

Langkah 2: Update bobot semua vertex yang terhubung ke titik c melaluui semua

vertex yang telah ada dalam S yaitu {a,c}, yaitu : vertex b=2+1=3 ;

vertex d=2+8=10 dan vertex e=2+10=12. Dipilih terpendek adalah b

sehingga vertex b ditambah kan ke dalam S, menjadi S={a,c,b}

Langkah 3: Update bobot semua vertex yang terhubung ke titik b melalui semua

vertex yang telah ada dalam S yaitu {a,c,b}, yaitu : vertex d=2+1+5=8.

Hanya satu pilihan sehingga vertex d ditambahkan ke dalam S menjadi

S={a,c,b,d}

Langkah 4: Update bobot semua vertex yang terhubung ke titik d melalui semua

vertex yang telah ada dalam S yaitu {a,c,b,d}, didapat : vertex

z=2+1+5+6=14 dan vertex e=2+1+5+2=10 . Dipilih yang terkecil

Page 55: Diktat Mat Disk r It

Algoritma Graf (Bab VII))

Amir Hamzah/ Teknik Informatika

52

bobotnya, yaitu bobot e. Dengan demikian vertex e ditambahkan ke

dalam S, menjadi S={a,c,b,d,e}

Langkah 4: Update bobot semua vertex yang terhubung ke titik e melalui semua

vertex yang telah ada dalam S yaitu {a,c,b,d,e}, didapat satu

kemungkinan saja yaitu vertex z=2+1+5+2+3=13. Dengan demikian

vertex z ditambhakan kedalam S didapat jalur S={a,c,b,d,e,z}. Karena z

sudah ada dalam S maka algoritma selessai. Didapat jalur terpendek

adalah a,c,b,d,e,z dengan panjang jalur 13.

Untuk ilustrasi langkah-langkah Dijkstra's ini dapat diikuti gambar 8.4. Dalam

gambar setiap langkah vertex yang dipilih diberi tanda lingkaran dan vertex yang

dilaluu dalam updating ditulis di dalam kurung.

Page 56: Diktat Mat Disk r It

BAB VIII

TREE

8.1. PENGERTIAN TREE

Tree (pohon) merupakan suatu bentuk khusus dari graf, tepatnya adalah

suatu graf yang tidak memiliki simple circuit. Secara formal dudefinisikan sebagai :

Definisi : Tree adalah graf tak berarah yang semua vertex terhubung tanpa simple

circuit.

Contoh :Untuk memperjelas definisi tersebut dapat dilihat macam-macam graf

dalam gambar 8.1, yaitu graf G1,G2,G3 dan G4. Manakah yang termasuk

tree dan untuk yang bukan tree apakah alasannya.

G1 G2 G3 G4

Gambar 8.1. Graf yang berupa tree dan bukan tree

Jawab: G1 dan G2 adalah tree karena keduanya adalah graf terkoneksi tanpa simple

circuit. G3 adalah bukan tree karena ada simpel circuit, yaitu jalur yang

melibatkan vertex {a,b,e,d}. G4 bukanlah suatu tree karen tidak semua

vertex terhubung (G4 terdiri dua graf, yaitu : {c,e,d,b} dan graf {a,f}

8.2. BEBERAPA TERMINOLOGI TREE

Ada beberapa terminologi terkait dengan tree. Karena istilah tree lahir dari

konteks biologi, maka terminologi tree juga terkait dengan istilah dalam bilogi.

1. Root dan Rooted Tree

Dalam suatu graf yang dibentuk menjadi suatu tree, suatu vertex tertentu dapat

dipilih menjadi root. Seperti halnya pengertian root (akar) dari suatu pohon yang

53

Page 57: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

54

merupakan landasan dasar berdirinya suatu pohon, maka vertex yang dijadikan

sebagai root akan menjadi dasar dimana vertex-vertex lain dalam tree adalah

keturunan (ancestor) dari vertex tersebut. Dengan demikian dari suatu graf yang

sama dapat dibangun suatu tree yang berbeda karena pemilihan root yang

berbeda. Tree beserta rootnya disebut sebagai Rooted Tree. Perhatikan

pembentukan suatu tree T menjadi rooted tree dalam gambar 8.2

(a) (b) (c)

Gambar 8.2. Rooted Tree ; (a) Tree asli ; (b) Tree dengan a sebagai root Tree dengan c sebagai root

2. Parent, a child dan sibling

Dalam suatu rooted tree suatu titik (kecuali root) selalu merupakan anak (child)

dari suatu parent di atasnya. Untuk gambar 8.2 (b), vertex b,c,d adalah

keturunan dari vertex (orang tua) a. Vertex b,c dan d merupakan suatu sibling,

karena memiliki parent yang sama.

3. Ancestor dan descendant

Ancestor dari suatu vertex adalah seluruh vertex (selain root) dalam jalur

penurunan dari root sampai vertex tersebut. Sedangkan descendant dari suatu

vertex v adaah seluruh vertex dalam tree yang memiliki v sebagai ancestornya.

4. Internal vertices dan leaf

Vertex yang tidak memiliki parent disebut sebagai root. Vertex yang tidak

memiliki children disebut sebagai leaf. Diantaranya , yaitu vertex yang memiliki

parent dan juga children disebut sebagai internal vertex.

Page 58: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

55

8.3. SPANNING TREE

Perhatikan sistem perhubungan dalam suatu pertambangan seperti dalam

gambar 8.3 (a). Pada setiap musim dingin seluruh jalur tidak dapat dilintasi karena

tertutup salju. Departemen transportasi pertambangan berkeinginan untuk

"membersihkan" salju dari jalan sedemikian sehingga setiap kota masih tetap dapat

terhubung. Keperluan yang dipertimbangkan adalah bagaimana seminimal mungkin

memilih jalur penghubung sehingga beaya pembersihan salju akan menjadi minimal.

Misalkan salah satu hasil adalah seperti dalam gambar 8.3(b). Problem ini

diselesaikan dengan graf terhubung dengan jumlah edge minimum yang

menghubungkan semua vertex. Terlihat bahwa untuk menghubngkan 6 kota (vertex)

minimal harus mimiliki 5 edge, untuk menjamin bahwa pasti ada suatu path yang

dapat dibuat dari sembarang 2 kota. Terlihat bahwa graf seperti ini pasti merupakan

suatu tree.

(a)

(b)

Gambar 8.3. (a). Sistem transportasi; (b) Set jalur yang dibersihkan

Page 59: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

56

Definisi : Apabila G adalah suatu graf. Spanning tree dari graf G adalah suatu sub-

graf dari G yang mengandung semua vertex dari G sedemikian sehingga

ada jaminan bahwa setiap dua vertex dalam G selalu dapat dtemukan

suatu path.

Contoh : Tentukan spanning tree dari simple graf gambar 8.3. berikut.

Gambar 8.3. Simple graf G

Jawab : Graf G terhubung , tetapi bukan merupakan suatu tree karena mengandung

beberapa circuit. Untuk menghilangkan circuit langkah pertama ditempuh

dengan menghilangkan edge {a,e} (Gambar 8.4.(a), kemudian edge {e,f}

(Gambar 8.4 (b) ), dan terakhir menghilangkan edge (c,g} (Gambar

8.4.(c)).

(a) (b) (c)

Gambar 8.4. Pembentukan spanning tree

8.4. ALGORITMA UNTUK MEMBANGUN SPANNING TREE

Membangun spanning tree dari suatu graf dengan cara satu demi satu

menghilangkan edge yang membentuk circuit merupakan cara yang tidak efisien

karena paling tidak harus diselidiki dulu ada tidaknya circuit, dan ini merupakan

pekerjaan yang bertele-tele untuk ukuran graf yang besar. Cara yang lebih baik dari

cara di atas adalah membangun spanning tree dengan menambahkan edge pada titik-

titik graf sedeimikan sehingga dihasilkan suatu spanning tree yang diinginkan.

Page 60: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

57

1. Algoritma Depth-First Search

Algoritma ini dimulai dengan memilih (sembarang) vertex sebagai root. Penyusunan

spanning tree dimulai dengan memilih vertex tetangga yang terhubung ke vertex

yang terpilih sebagi anak (dengan catatan vertex tersebut belum dimasukkan ke

dalam tree), dilanjutkan terus-menerus sampai tidak ada lagi vertex yang dapat

dimasukkan ke dalam tree. Jika telah mencapai leaf, langkah diulang mundur satu

level dan dimulai lagi mencari vertex yang belum masuk, demikian seterusnya

sampai seluruh vertex tersusun dalam suatu tree. Untuk memperjelas konsep ini

perhatikan penyusunan spanning tree dari graf gambar 8.5, dimulai dengan

sembarang vertex (dipilih vertex f) sebagai root.

Gambar 8.5. Graf connected G

(a) (b) (c) (d) (e)

Gambar 8.6. Langkah penyusunan spanning tree dengan metode Depth-First Search

Langkah penyusunan dimulai dengan vertex f sebagai root. Tetangga f adalah vertex

d,e,g dan h; dipilih tetangga (sembarang) yaitu g sebagai anak. Dari vertex g, vertex

tetangga yang belum masuk tree adalah (hanya satu) h, sehingga dipilih h sebagai

anak g. Dari vertex h ada dau kemungkinan vertex lain, yaitu i dan k; dipilih k

Page 61: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

58

sebagai anak h; dan selanjutnya h hanya memiliki satu kemungkinan anak yaitu k.

Setelah k dimasukkan kedalam tree, k adalah leaf, maka langkah mundur ke vertex

sebelumnya yaitu k, dan k tidak memiliki kemungkinan anak lain sehingga langkah

mundur lagi ke vertex h, dan ternyata ada vertex tetangga lain yang dapat dipilih ,

yaitu i; maka dipilih i sebagai anak h. Selanjutnya dilakukan langkah mundur ke

vertex g (tak aa kemungkinan lain), sehingga mundur lagi ke vertex h, yang masih

ada vertex d dan e yang belum dipilih. Proses sampai selesai dapat dicermati dari

gambar 8.6 dari (a) sampai (e).

2. Algoritma Breadth-First Search

Pada langkah awal algortima Breadth-First Search adalah sama dengan

Depth-First Search, yaitu dimulai dengan memilih (sembarang) vertex sebagai

root. Selanjutnya seluruh vertex yang menjadi tetangga dari root tersebut diubah

menjadi anak dari root tersebut. Vertex ini menjadi vertex dalam level 1 dalam

tree. Penyusunan diteruskan dengan memilih tetangga dari seluruh vertex dalam

level 1 sepanjang tidak membentuk circuit. Demikian seterusnya sampai semua

vertex dalam graf tersusun ke dalam tree.

Untuk ilustrasi perhatikan penyusunan spanning tree dari graf dalam gambar

8.7.

Gambar 8.7. Graf untuk disusun spanning tree

Hasil penyusunan (dimulai dengan memilih vertex e sebagai root) adalah dalam

langkah-langkah pada gambar 8.8.

Page 62: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

59

Gambar 8.8. Penyusunan spanning tree dengan Breadth-First Search

8.5. ALGORITMA UNTUK MINIMAL SPANNING TREE

Andaikan sebuah perusahaan akan membangun jaringan komputer dalam 5

titik . Setiap pasangan dari dua titik terminal diandaikan dapat dihubungkan

dengan leased line (Lihat gambar 8.9). Link seperti apakah yang harus dibangun

sehingg beaya sambungan lima komputer tersebut menjadi minimal. Persoalan

ini adalah persoalan membangun spanning tree yang minimal.

Definisi : Minimal spanning tree dalam suatu graf terkoneksi adalah suatu

spanning tree yang mempunyai total jumlah bobot edge menjadi

minimal.

Gambar 8.9. Beaya antar titik komputer dalam jaringan

Ada beberapa algoritma yang dapat disusun untuk mencari spanning tree yang

minimal. Berikut akan dibahas dua diantaranya.

Page 63: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

60

8.5.1. Algoritma Prim's

Procedure Prim(G:weighted connected undirected graph with n vertices} T:= a minimum-weight edge For i:=1 to n-2 Begin e:= an edge of a minimum weight incident to vertex in T and not forming a simple circuit in T

if added to T T:= T with e added End { T is minimal spannng tree in G} Sebagai gambaran kita terapkan algoritma Prims untuk jaringan komputer sebagai

berikut :

Langkah 1: Pilih edge yang minimal dari semua edge. Diperoleh :{Chicago-San

Fransisco = 700)

Langkah 2 : Dari salah satu dari dua kota {Chicago atau San Fransisco} pilih edge

tetangga yang minimal yang dapat digandengkan. Diperoleh jalur {San

Fransisco -Denver = 800}

Langkah 3 : Dari salah satu dari tiga kota{Chicago, San Fransisco, Denver} pilih

edge tetangga yang minimal yang dapat digandengkan ke salah satu

kota tersebut. Diperoleh jalur {Chicago -New York = 1200).

Langkah 4 : Dari salah satu dari empat kota{Chicago, San Fransisco, Denver, New

York} pilih edge tetangga yang minimal yang dapat digandengkan ke

salah satu kota tersebut. Diperoleh jalur {New York -Atlanta = 900}

Selesai : Diperoleh jalur spanning tree minimal : Chicago, San Fransisco, Denver,

New York,Atlanta. Lihat Gambar 8.10.

Page 64: Diktat Mat Disk r It

TREE (Bab VIII))

Amir Hamzah/ Teknik Informatika

61

Gambar 8.10. Hasil minimal spanning tree dengan algoritma Prim

8.5.2. Algoritma Kruskal's

Procedure Kruskal(G:weighted connected undirected graph with n vertices} T:= empty graph For i:=1 to n-1 Begin e:= any edge in G with smallest weight that does not form a simple circuit when added to T T:= T with e added End {T with minimal spanning tree} Untuk persoalan jaringan komputer 5 kota dapat dilacak proses mencari minimal

spanning tree dengan algoritma Kruskal adalah sebagai berikut :

Langkah 1: Edge minimal adalah Chicago-San Fransisco, 700

Langkah 2 : Edge minimal selanjutnya adalah San Fransisco-Denver, 800

Langkah 3 : Edge minimal selanjutnya adalah New York- Atlanta San , 900

Langkah 4 : Edge minimal terakhir ditambahkan adalah New York-Chicago, 1200

Selesai: Hasil spanning tree sama dengan metode Prim

Page 65: Diktat Mat Disk r It

DAFTAR PUSTAKA Johnsonbaugh, R., 1998, Matematika Diskrit, edisi Bahasa Indonesia, Jilid 1,

Prenhallindeo, jakarta. Kolman B. And Busby, R.C., 1987, Discrete Mathematical Structures for Computer

Science, 2nd ed, Prentice Hall, Inc., New Jersey. Rosen, K.H., 1991, Discrete Mathematics and Its Applications, 2nd ed, McGraw

Hill, New York. Scaums Outline Series, 1992, 2000 Solved Problem in Discrete Mathematics,

McGraw Hill, New York