P. 1
alg

alg

|Views: 239|Likes:
Published by RadenAjengCemuTch

More info:

Published by: RadenAjengCemuTch on Oct 28, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

12/15/2012

pdf

text

original

Lecture Note Logika & Algoritma

Jurusan Manajemen Informatika Fakultas Ilmu Komputer & Teknologi Informasi Universitas Gunadarma

Pertemuan ke-1 Teori Dasar Graf

Kelahiran Teori Graf
Teori Graf mulai dikenal pada saat seorang matematikawan bangsa Swiss, bernama Leonhard Euler, berhasil mengungkapkan Misteri Jembatan Konigsberg pada tahun 1736. Di Kota Konigsberg (sekarang bernama Kalilingrad, di Uni Soviet) mengalir sebuah sungai bernama sungai Pregel. Di tengah sungai tersebut terdapat dua buah pulau. Dari kedua pulau tersebut terdapat jembatan yang menghubungi ke tepian sungai dan diantara kedua pulau. Jumlah jembatan tersebut adalah 7 buah seperti gambar berikut :

Sungai Pregel di Kalilingrad (Uni Soviet)

Konon kabarnya, penduduk kota Konigsberg sering berjalan-jalan ke tempat tersebut pada hari-hari libur. Kemudian muncul suatu keinginan untuk dapat menikmati daerah tersebut dengan melalui ketujuh jambatan tepat satu kali, yakni bermula dari satu tempat (A, B, C atau D) dan kembali ke tempat semula. Mereka berusaha untuk memperoleh rute yang sesuai dengan keinginan tersebut, dengan selalu mencoba Logika & Algoritma
RAT

Halaman 2 dari 97 halaman

menjalaninya. Setelah mencoba berkali-kali dan karena sudah cukup lama tidak diperoleh rutenya, akhirnya penduduk tersebut mengirim surat kepada Euler. Euler dapat memecahkan masalah tersebut, yakni bahwa perjalanan / rute yang diinginkan (yakni berawal dari suatu tempat, melalui ketujuh jembatan tepat satu kali, dan kembali ke tempat semula) tidak mungkin dicapai. Secara singkat, dalam tulisannya, Euler menyajikan keadaan jembatan Konigsberg tersebut seperti gambar berikut :

A

C

D

B

Dalam masalah di atas, daratan (tepian A dan B, serta pulau C dan D) disajikan sebagai titik dan jembatan disajikan sebagai ruas garis. Euler mengemukakan teoremanya yang mengatakan bahwa perjalanan yang diinginkan di atas (yang kemudian dikenal sebagai perjalanan Euler) akan ada apabila graf terhubung dan banyaknya garis yang datang pada setiap titik (derajat simpul) adalah genap.

Problema & Model Graf
Secara umum, langkah-langkah yang perlu dilalui dalam penyelesaian suatu masalah dengan bantuan komputer adalah sebagai berikut : Problema → Model Yang Tepat → Algoritma → Program Komputer

Logika & Algoritma
RAT

Halaman 3 dari 97 halaman

Petugas kantor telepon yang ingin mengumpulkan koin-koin dari telepon umum. Masalah di atas dikenal sebagai Travelling Salesman Problem Sebagai contoh : 1 8 11 12 7 9 2 11 5 11 10 8 9 * waktu dalam menit 3 1 = Kantor 4 Untuk menyelesaikan masalah di atas dapat dipakai Algoritma Tetangga Terdekat (yakni menggunakan Metode Greedy) Logika & Algoritma RAT Halaman 4 dari 97 halaman . Yang diharapkan → suatu rute perjalanan dengan waktu minimal. Berangkat dari kantor & kembali ke kantornya lagi.Contoh problema graf : 1.

yang elemennya disebut simpul → Vertex / point / titik / node (2). V. yakni menggunakan Metode Greedy) Graf Secara Formal Sebuah Graf G mengandung 2 himpunan : (1). yang merupakan pasangan tak terurut dari simpul-simpul. Sebagai contoh : B E F A A A A B C E B B C D E D C E F F F B C E Untuk menyelesaikan masalah di atas dapat dipakai Algoritma Pewarnaan Graf (juga dikenal sebagai Graph Coloring. Yang diharapkan → pola lampu lalu lintas dengan jumlah fase minimal. Himp.2. Himp. disebut ruas Logika & Algoritma RAT Halaman 5 dari 97 halaman . Perancangan Lampu Lalu Lintas. E.

A ). D ). C. E ) Contoh : G ( V. C ). D } E = { ( A. seperti dimana dan bagaimana menyajikan simpul dan ruas.V)  Order banyaknya simpul Logika & Algoritma RAT Halaman 6 dari 97 halaman . Berikut contoh penyajian Graf yang sama. tetapi disajikan berbeda. E ) V = { A. ( C. ( D. Beberapa istilah lain dalam graf :  Berdampingan simpul U dan V disebut berdampingan bila terdapat ruas (U.→ Edge / rusuk / sisi Sehingga sebuah graf dinotasikan sebagai G ( V. B ). ( B. B. ( B. D ) } Secara Geometri : Tidak B e3 khusus ada A e1 D e2 e5 ketentuan C e4 A → terdiri A 4 simpul dan 5 ruas dari B A A D B D B D C C C dalam penyajian graf secara geometri.

E‘) adalah Subgraf dari G (V. Size banyaknya ruas  Self-loop (loop) / Gelung ruas yang menghubungkan simpul yang sama ( sebuah simpul )  Ruas sejajar / berganda ruas-ruas yang menghubungkan 2 simpul yang sama Sebuah graf dikatakan multigraf bila graf tersebut mengandung ruas sejajar atau gelung. E) bila : V‘ ⊂ V dan E‘ ⊂ E Apabila E‘ mengandung semua ruas di E yang kedua ujungnya di V‘ . Adapun contoh multigraf adalah sebagai berikut. atau yang disebut graf. Sedangkan graf yang tidak mengandung ruas sejajar atau gelung dikenal sebagai graf sederhana. maka G‘ adalah Subgraf yang dibentuk oleh V‘ (Spanning Subgraph) Contoh : Logika & Algoritma RAT Halaman 7 dari 97 halaman . e2 w 12 A e3 A Multigraf e1 A e5 e6 e4 A Subgraf G‘(V‘.

G: A e1 D e2 e5 e4 B e3 C G’ : A e1 D G’ subgraf dari G B A e1 e5 D e2 G’ : B e5 G’ spanning subgrapf dari G Graf berlabel Graf berlabel/ berbobot adalah graf yang setiap ruasnya mempunyai nilai/bobot berupa bilangan non negatif. Contoh : B 3 A 4 C 13 E 3 G 2 2 2 6 3 19 3 D 12 F 8 H Logika & Algoritma RAT Halaman 8 dari 97 halaman .

f(v)) adalah ruas dari G * Maka f disebut fungsi yang isomorfisma dan G & G * adalah graf-graf yang isomorfis Contoh : Graf yang berbentuk huruf A & R. X & K. dan V & Z. sedemikian sehingga (u. di bawah ini adalah isomorfis.v) adalah ruas dari G jika dan hanya jika (f (u).E) dan G* (V*. maka disebut homomorfis Contoh : kedua graf G* dan G** Logika & Algoritma G RAT G* Halaman 9 dari 97 halaman G** . Homomorfis Jika G* dan G** diperoleh dari G dengan membagi beberapa ruas dari G oleh penambahan beberapa simpul pada ruas tersebut. F & T.Isomorfisma G (V.E*) adalah 2 buah Graf. f : V →V * suatu fungsi satu-satu dan pada.

maka : 1.Operasi pada Graf Berdasarkan definisi graf (yang terdiri dari 2 himpunan) dan operasi pada himpunan. Selisih G1 .E1) dan G2(V2.G2 adalah graf dengan himpunan V nya = V1 dan himpunan E nya = E1 E2 Sedangkan Selisih G2 – G1 adalah graf dengan himpunan V nya = V2 dan himpunan E nya = E2 – E1 4. Penjumlahan Ring G1 ⊕ G2 adalah graf yang dihasilkan dari (G1 ∪ G2) – (G1 ∩ G2) atau (G1 .E2). Bila diketahui 2 buah graf : G1(V1. Gabungan G1 ∪ G2 adalah graf dengan himpunan V nya = V1 ∪ V2 dan himpunan E nya = E1 ∪ E2 2. maka pada graf juga dapat dilakukan operasi-operasi.G1) Logika & Algoritma RAT Halaman 10 dari 97 halaman .G2) ∪ (G2 . Irisan G1 ∩ G2 adalah graf dengan himpunan V nya = V1 ∩ V2 dan himpunan E nya = E1 ∩ E 2 3.

Contoh : G1 A e4 D e1 e5 e6 e8 E e3 e7 B e2 C A e4 D G2 e1 B e2 e3 e10 e9 F B e2 C e9 C G1 ∪ G2 A e4 D e10 e1 e5 e6 e8 E e3 e7 A e4 D G1 ∩ G2 e1 B e2 e3 C A G1 ⊕ G2 e5 e6 e8 E e7 B D e10 e9 C A G1 .G2 e5 e6 e8 E e7 B D G2 – G1 C e10 e9 D C Logika & Algoritma RAT Halaman 11 dari 97 halaman .

Logika & Algoritma RAT Halaman 12 dari 97 halaman .Graf Null / Hampa Ada beberapa pengertian tentang graf null/hampa. Contoh : G: V1 V2 V3 V ≠ ∅ dan E=∅ Suatu graf G dikatakan dikomposisikan menjadi K dan L bila G = K ∪ L dan K ∩ L = ∅ Contoh : A B A K B D A C B D C G C L Penghapusan / Deletion Penghapusan dapat dilakukan pada simpul ataupun ruas. 1) Penghapusan Simpul . Di sini akan dipakai pengertian bahwa suatu graf dikatakan graf null/hampa bila graf tersebut tidak mengandung ruas.

Notasinya : G – {V} Contoh : V1 V2 V5 V1 V5 V4 V3 V7 V6 V4 V3 V7 V6 Penghapusan Simpul V2 2) Penghapusan Ruas . Contoh : Logika & Algoritma RAT Halaman 13 dari 97 halaman . Notasinya : G – {e} Contoh : e1 e2 e3 e5 Penghapusan Ruas e3 e4 e2 e5 e1 e4 Pemendekan / Shorting Pemendekan/Shorting adalah menghapus simpul yang dihubungkan oleh 2 ruas (simpul berderajat 2). lalu menghubungkan titik-titik ujung yang lain dari kedua ruas tersebut.

Contoh : A B F C D E d (A) = 2 d (B) = 5 d (C) = 3 d (D) = 3 d (E) = 1 d (F) = 0 + Σ = 14 = 2 x Size Halaman 14 dari 97 halaman Logika & Algoritma RAT . Sedangkan derajat simpul adalah banyaknya ruas yang incidence (terhubung) ke simpul tersebut.A B B D C D pemendekan terhadap simpul A dan C Derajat Graf Derajat graf adalah jumlah dari derajat simpul-simpulnya.

C. E. akan dikenal beberapa istilah-istilah berikut : 1. F. A. C. B. B. Path / Jalur : Walk dengan simpul yang berbeda 4. B. B. C. C. A → Cycle 4) A. bila derajat simpulnya adalah 0 Keterhubungan Dalam keterhubungan sebuah graf. C. B. D. bila derajat simpulnya merupakan bilangan genap • Simpul Bergantung / Akhir. B. C. sebuah simpul dapat disebut : • Simpul Ganjil. C → Walk 2) A. B. F → Trail 6) A. Walk : barisan simpul dan ruas 2. F. E. D → Trail 7) A.Berdasarkan derajat simpul. D. Trail : Walk dengan ruas yang berbeda 3. E. A → Cycle Logika & Algoritma RAT Halaman 15 dari 97 halaman . E. B. bila derajat simpulnya adalah 1 • Simpul Terpencil. E → Walk 5) A. D. bila derajat simpulnya merupakan bilangan ganjil • Simpul Genap. D. D. C. A → Trail 3) A. D. C. E. D. F. D. B. C. Cycle / Sirkuit : Trail tertutup dengan derajat setiap simpul = 2 Contoh : B b d D h E a c g f k A e C F 1) A. C.

Logika & Algoritma RAT Halaman 16 dari 97 halaman . yang bila kita ambil / pindahkan dari G. E. Jarak antara 2 simpul dalam graf G adalah panjang jalur terpendek antara ke-2 simpul tersebut. maka S disebut Cut-Set dari G. akan menyebabkan G tidak terhubung . B. F. C. Subgraf terhubung suatu graf disebut komponen dari G bila subgraf tersebut tidak terkandung dalam subgraf terhubung lain yang lebih besar. E.8) C. A. C. Kalau tidak ada Subgraf sejati R dari S. Ada Subgraf S dari graf terhubung G. F → Path 9) B. Diameter suatu graf terhubung G adalah maksimum jarak antara simpul-simpul G. C. B → Cycle 10) C. C. C. E. yang pemindahannya juga menyebabkan G tidak terhubung. A → Trail Graf yang tidak mengandung cycle disebut dengan Acyclic Contoh : Suatu graf G disebut terhubung jika untuk setiap 2 simpul dari graf terdapat jalur yang menghubungkan kedua simpul tersebut. F. D. D. E → Trail 11) A. B.

Graf Regular Sebuah graf dikatakan graf regular bila derajat setiap simpulnya sama. Contoh : Logika & Algoritma RAT Halaman 17 dari 97 halaman .

untuk graf seperti di bawah ini : e5 V1 e1 e2 e4 V4 e6 e8 V5 e7 Atau : 2xn Maka. Matriks-matriks yang dapat menyajikan model graf tersebut antara lain : • • • Matriks Ruas Matriks Adjacency Matriks Incidence Sebagai contoh.Pertemuan ke-2 Teori Dasar Graf (Lanjutan) Matriks dan Graf Untuk menyelesaikan suatu permasalahan model graf dengan bantuan komputer. Matriks Ruas : V2 e3 V3 1 2 1 3 1 4 1 5 2 3 3 4 3 5 4 5 Matriks Adjacency : nx2 V1 1 V2 2 1 V3 3 1 V4 4 1 V5 5 2 3 3 4 3 5 4 5 V1 0 1 1 1 1 V2 1 0 1 0 0 V3 1 1 0 1 1 V4 1 0 1 0 1 V5 1 0 1 1 0 Logika & Algoritma RAT Halaman 18 dari 97 halaman . maka graf tersebut disajikan dalam bentuk matriks.

Sebuah graf yang disajikan tanpa adanya ruas yang berpotongan disebut dengan penyajian planar/map/peta. Contoh : K4 Graf Planar Penyajian Planar Graf yang termasuk planar antara lain : • • • • Tree / Pohon Kubus Bidang Empat Bidang Delapan Beraturan Tree / Pohon Logika & Algoritma RAT Halaman 19 dari 97 halaman .Matriks Incidence : V1 V2 V3 V4 V5 e1 1 1 0 0 0 e2 1 0 1 0 0 e3 0 1 1 0 0 e4 1 0 0 1 0 e5 1 0 0 0 1 e6 0 0 1 1 0 e7 0 0 1 0 1 e8 0 0 0 1 1 Graf Planar Sebuah graf dikatakan graf planar bila graf tersebut dapat disajikan (secara geometri) tanpa adanya ruas yang berpotongan.

Kubus Bidang Empat Bidang Delapan Beraturan Logika & Algoritma RAT Halaman 20 dari 97 halaman .

Derajat dari suatu region adalah panjang walk batas region tersebut Contoh : r4 A B r1 r2 D E r3 C r5 F d ( r1 ) = 3 d ( r2 ) = 3 d ( r3 ) = 5 d ( r4 ) = 4 d ( r5 ) = 3 + Σ = 18 = 2 x SIZE Region dengan batasnya gelung.Pada penyajian planar/map. maka d (r) = 2 Formula Euler untuk Graf Planar Untuk Graf Planar berlaku Formula Euler berikut : V–E+R=2 Dimana Logika & Algoritma RAT p = jumlah simpul dan q = jumlah ruas Halaman 21 dari 97 halaman . maka d (r) = 1 Region dengan batasnya ruas sejajar. dikenal istilah region.

Adapun langkah-langkahnya adalah : 1. Warnai. Urutkan simpul-simpul berdasarkan derajatnya. Contoh : K3.3 atau ke K5 K5 = Bintang Pewarnaan Graf Pewarnaan graf adalah pemberian warna terhadap simpul-simpul graf dimana 2 buah simpul yang berdampingan tidak boleh mempunyai warna yang sama. Dari besar ke kecil. Algoritma yang dapat digunakan untuk mendapatkan bilangan kromatis dari sebuah graf adalah Algoritma Welch-Powell. Logika & Algoritma RAT Halaman 22 dari 97 halaman . Bilangan kromatis dari G = K(G) adalah jumlah minimum warna yang dibutuhkan. 2.Graf Non-Planar Sebuah graf yang tidak dapat disajikan (secara geometri) tanpa adanya ruas yang berpotongan dikenal sebagai graf non planar.3 Utility Graph Teorema Kuratowski ( 1930 ) Suatu graf adalah Non-Planar jika dan hanya jika mengandung subgraf yang Homomorfis ke K3. G berwarna n artinya graf tersebut menggunakan n warna.

D. G. A warna Putih : C. F Sehingga bilangan kromatis graf di atas adalah 3.Contoh : Langkah 1 : urutan simpulnya dari besar ke kecil adalah : E. A. C. D. H warna Biru : G. B. Teorema : Pernyataan berikut adalah ekivalen : (1) G berwarna 2 (2) G adalah bipartisi (3) Setiap sirkuit dalam G mempunyai panjang genap Logika & Algoritma RAT Halaman 23 dari 97 halaman . F. B. H Langkah 2 : mewarnai : warna Merah : E.

Teorema : suatu map M adalah berwarna 5 Setiap graf planar adalah berwarna (simpul) 4 Dibuktikan oleh Apple & Haken (1976) – 2000 Graf. Logika & Algoritma RAT Halaman 24 dari 97 halaman .Graf Lengkap k dengan n simpul membutuhkan n warna Teorema : Suatu graf planar G adalah berwarna 5 Pewarnaan Region Pewarnaan region dapat dilakukan (seperti pemberian warna pada wilayah-wilayah di peta) dengan cara membuat dual dari map tersebut. dapar dilakukan pewarnaan terhadap simpul-simpulnya. kemudian buat sebuah ruas yang menghubungkan simpul pada 2 buah region yang berdampingan bila terdapat ruas sebagai batas / persekutuan kedua region tersebut. Setelah Dualnya terbentuk. Buatlah tanpa adanya ruas baru yang berpotongan. yang disebut dual dari map M. jutaan kasus. maka akan terbentuk suatu map M*. Gambarkan sebuah simpul baru pada masing-masing region suatu map M. Simpul-simpul tersebut mewakili region sebelumnya. sehingga warna yang digunakan untuk suatu simpul berarti warna yang dapat digunakan untuk pewarnaan region yang diwakilinya.

• Sirkuit atau cycle adalah suatu lintasan tertutup dengan derajat setiap simpul dua. dan hanya satu Logika & Algoritma RAT Halaman 25 dari 97 halaman . Contoh : Sifat : Suatu Graf G adalah Pohon jika dan hanya jika terdapat satu jalur diantara setiap pasang simpul dari Graf G. Untuk itu perlu diingat kebali bahwa : • Suatu Graf G disebut terhubung apabila untuk setiap dua simpul dari graf G selalu terdapat jalur yang menghubungkan kedua simpul tersebut.Pertemuan ke-3 Pohon (Tree) Pohon Tree atau pohon adalah graf terhubung yang tidak mengandung sirkuit.

dan merupakan suatu pohon. GRAF GSPANNING TREEn simpuln simpulm ruasn – BRANCH 1 ruas (CABANG) Contoh : m – ( n – 1) CHORD Keterangan Branch Chord Contoh : Logika & Algoritma RAT Halaman 26 dari 97 halaman . atau G tidak mengandung sirkuit dan mempunyai n-1 buah ruas.Teorema : Suatu Graf G dengan n buah simpul adalah Pohon jika : (1) (2) (3) G terhubung dan tak mengandung sirkuit. atau G mempunyai n-1 buah ruas dan terhubung Pohon Rentangan Suatu spanning tree atau pohon rentangan adalah suatu subgraf dari graf G yang mengandung semua simpul dari G.

Graf G : Pohon Rentangan dari Graf G : Logika & Algoritma RAT Halaman 27 dari 97 halaman .

19 17 . 16 berikut : .Pohon Rentangan Minimal Apabila G suatu Graf berbobot (Suatu Network). Lakukan penghapusan ruas berdasarkan urutan yang sudah dilakukan. dari besar ke kecil. . ⇒ Minimal spanning tree Contoh : . 15 10 . 18 9 Untuk mendapatkan pohon rentangan minimal dapat digunakan Algoritma • • • Solin Kruskal Prim’s SOLIN Urutkan ruas dari G menurut bobotnya. 14 11 . 13 . dengan ketentuan bahwa penghapusan ruas tersebut tidak menyebabkan graf menjadi tidak terhubung. maka pohon rentangan minimal dari graf adalah pohon rentangan dengan jumlah bobot terkecil. Logika & Algoritma RAT Halaman 28 dari 97 halaman . 12 8 . .

Urutkan ruas dari G menurut bobotnya.KRUSKAL 1. 2. ∴ Pohon adalah hutan yang terhubung Contoh : Logika & Algoritma RAT Halaman 29 dari 97 halaman . dari kecil ke besar. Lakukan penambahan ruas berdasarkan urutan yang sudah dilakukan. dapat dilakukan dengan dengan cara merubah bobot tiap ruas menjadi – (bobot yang lama) Definisi : Hutan atau foresi adalah graf yang tidak mengandung sirkuit. dengan ketentuan bahwa penambahan ruas tersebut tidak menyebabkan adanya sirkuit. PRIM’S = Kruskal + menjaga graf tetap terhubung Untuk mencari pohon rentangan maksimal.

yang bermula dari akar tersebut. Contoh : R a b c d e f g h i j Suatu pohon dapat dijadikan suatu pohon berakar cukup dengan mengangkat salah satu simpul sebagai akar. setiap ruas dari pohon seolah-olah mempunyai arah. Dengan adanya akar. Seperti diketahui bahwa hanya terdapat satu jalur antara r dengan simpul lain v pada pohon pohon tersebut. a mendahului d. Simpul bukan akar. Berikut ini contoh pohon berakar. yang berderajat satu disebut daun. Panjang jalur antara r dengan simpul v disebut level atau kedalaman simpul v. dan mendahului h. Simpul u dikatakan mendahului simpul v jika jalur dari akar r ke v melalui u. Logika & Algoritma RAT Halaman 30 dari 97 halaman . Dikatakan u mendahului langsung v bila u mendahului v serta simpul u dan v berdampingan. mendahului e. Jalur antara suatu simpul dengan suatu daun disebut cabang (branch).Pertemuan ke-4 Berbagai Jenis Pohon (Tree) Pohon Berakar Suatu pohon berakar R adalah suatu pohon bersama dengan suatu simpul r yang dirancang/ditunjuk sebagai akar (root) dari R. Pada contoh di atas.

Sebuah pohon binar T didefinisikan terdiri dari sebuah himpunan hingga elemen yang disebut simpul (node). Contoh : Logika & Algoritma RAT Halaman 31 dari 97 halaman . Sedangkan suksesor kiri digambarkan sebagai garis ke kiri bawah dan suksesor kanan sebagai garis ke kanan bawah. Untuk menyajikan pohon binar. b. dengan masing-masing kejadian dapat muncul dalam sejumlah hingga cara. Bebarapa contoh lain yang penting dari pohon berakar adalah pohon binar (binary tree) dan pohon sintaks (syntax tree) atau pohon derivasi (derivation tree). dan simpul sisanya membentuk 2 pohon binar (subpohon kiri dan subpohon kanan dari R) T1 dan T2 yang saling lepas. sedemikian sehingga : a. Struktur ini biasanya digunakan terutama untuk menyajikan data yang mengandung hubungan hirarkikal antara elemen-elemen mereka. Hal serupa untuk akar dari T2 (tidak hampa) disebut suksesor kanan dari R. T adalah hampa (disebut pohon null) atau T mengandung simpul R yang dipilih (dibedakan dari yang lain). pohon memegang peranan yang cukup penting. Pohon Binar Dalam struktur data. simpul akar adalah simpul yang digambar pada bagian paling atas. Bentuk pohon khusus yang lebih mudah dikelola dalam komputer adalah pohon binary. Bentuk ini merupakan bentuk pohon yang umum. disebut akar (root) dari T. Jika T1 tidak hampa.Suatu pohon berakar dapat digunakan untuk menelusurisemua kemungkinan dari kejadian. maka simpul akarnya disebut suksesor kiri dari R. Perhatikan bahwa pendefinisian pohon binar di atas adalah rekursif.

Dari pelajaran bahasa Indonesia kita tahu bahwa kalimat di atas telah benar susunannya. atau telah benar tata bahasanya. Pohon sintaks dari kalimat di atas dapat dilihat sebagai berikut : Logika & Algoritma RAT Halaman 32 dari 97 halaman . yaitu : SI KUCING KECIL MENENDANG BOLA BESAR Gambar penguraian kalimat di atas membentuk struktur pohon. kita lihat terlebih dahulu sebuah kalimat sehari-hari dalam bahasa Indonesia. Disini kalimat dibagi-bagi berdasar jenis dan fungsi kata. yang disebut pohon sintaks dari kalimat.A B C D E F G H I J K Pohon Sintaks Untuk menjelaskan mengenai bahasa secara teoritis dan formal.

KALIMAT Subyek Predikat Obyek Kata Sandang Kata Benda Kata Keadaan Kata Kerja Kata Benda Kata Keadaan Si Kucing Kecil Menendang Bola Besar Logika & Algoritma RAT Halaman 33 dari 97 halaman .

3).2) disebut gelung (self-loop).2). V.A). (2. yang elemennya disebut simpul → Vertex / point / titik / node (2). (2. (2. 4 } 2. Suatu graf berarah (Directed Graph. yang merupakan pasangan terurut dari simpul-simpul. dengan : 1. (4. A. 3.1).4).2) } 1 4 2 3 Arc (2. yang dikenal sebagai Digraf) D terdiri dari 2 himpunan : (1).1). Himp. Logika & Algoritma RAT Halaman 34 dari 97 halaman . disebut arc sejajar atau arc berganda. (2. konsep graf berarah lebih sering digunakan dibandingkan dengan konsep graf tak berarah. (4. 2. Himp. V = { 1.2) muncul 2 kali.3). disebut ruas berarah → Arc / arkus Sehingga sebuah digraf dinotasikan sebagai D ( V. seperti pada komputer digital ataupun pada sistem aliran (flow system). sedangkan arc (2. A = { (1. A ) Contoh : Sebuah graf berarah D(V.Pertemuan ke-5 Graf Berarah Graf Berarah Di dalam situasi yang dinamis.

Derajat ke dalam (in degree) suatu simpul adalah banyaknya arc yang berakhir / masuk ke simpul tersebut. Pada graf berarah terdapat 3 pengertian keterhubungan. jika antara setiap 2 simpul u dan v dari D. terdapat jalur dari u ke v dan dari v ke u. yakni : • • • Terhubung lemah. Terhubung kuat. Kalau tidak sesuai dengan arah arc-nya. jika terdapat suatu semi path antara setiap 2 simpul dari D. maka disebut sebagai semi walk. Path (Jalur) dan Sirkuit (Cycle) berlaku pula pada graf berarah. semi path atau semi trail. dimana harus sesuai dengan arah arc. Pengertian Walk. graf berarah tersebut dinamakan suatu jaringan atau network. Simpul berderajat ke dalam = 0 disebut sumber (source). Contoh : Logika & Algoritma RAT Halaman 35 dari 97 halaman . jika antara setiap 2 simpul u dan v dari D. sedangkan simpul berderajat ke luar = 0 disebut muara (sink).Apabila arc suatu graf berarah mempunyai suatu bobot. terdapat jalur dari u ke v atau dari v ke u. Beberapa Pengertian dalam graf berarah : • • • • Derajat ke luar (out degree) suatu simpul adalah banyaknya arc yang mulai / keluar dari simpul tersebut. Terhubung unilateral. Trail.

maka A adalah himpunan bagian dari V x V (produk Cartesis himpunan).A) suatu graf berarah tanpa arc sejajar. Contoh : Logika & Algoritma RAT Halaman 36 dari 97 halaman . v2.A) suatu graf berarah dengan simpul v1. dengan mij banyaknya arc yang mulai di vi dan berakhir di vj Bila D tidak mengandung arc berganda. Jadi suatu matriks berukuran (mxm) yang elemennya bilangan bulat non negatif menyatakan secara tunggal suatu graf berarah dengan m simpul. Misalkan D(V. elemen M merupakan bilangan bulat non negatif.A B A B A B C Terhubung Lemah C Terhubung Unilateral C Terhubung Kuat Relasi dan Matriks Pandang D(V. Sebaliknya bila R adalah Relasi pada suatu himpunan V.R) merupakan graf berarah tanpa arc sejajar. vm. dengan mendefinisikan sebagai berikut : M = (Mij). Kalau Graf berarah mengandung arc berganda. jadi merupakan Relasi pada V. Matriks M berukuran (mxm) merupakan matriks (matriks adjacency) dari D. maka D(V. Jadi konsep Relasi dan konsep graf berarah tanpa arc sejajar adalah satu dan sama. maka elemen M adalah 0 dan 1. … .

maka elemen baris ke i kolom ke j dari Matriks Mn menyatakan banyaknya walk dengan panjang n dari simpul vi ke simpul vj. Logika & Algoritma RAT Halaman 37 dari 97 halaman . Kita hendak menentukan Jalur Terpendek antara 2 simpul u dan v. Algoritma Jalur Terpendek Pandang D suatu graf berarah yang hingga dengan tiap-taip arc mempunyai bobot.A) : V1 V4 1 1 0 V2 V3 0 0 0 2 0 0 0 0 1 0 0 1 0 Matriks M Teorema : M adalah Matriks dari sutau graf berarah D. Jadi D merupakan suatu network. Kita ingin menghitung jalur terpendek dari simpul u ke simpul v.D(V. Gambar berikut merupakan suatu network.

dan kita isikan data jarak dari satu simpul ke simpul lainnya sesuai dengan kolom yang ada.x 4 3 6 4 a 2 3 3 3 u Sumber 2 y 2 1 2 b v Muara z 5 c Untuk dapat menentukan jalur terpendeknya. yang berakhir di z kita hapus. dalam hal ini z (uz =2). Hasil langkah tersebut dapat dilihat pada tabel berikut ini : Logika & Algoritma RAT Halaman 38 dari 97 halaman . kita gunakan cara berikut : • Buat table jarak. kemudian tandai uz. Usahakan diurut dari yang kecil ke besar. Beri harga = 2 pada kolom z. Ambil simpul u uz = 2 ux = 4 x xy = 3 xa = 4 y yc = 1 yb = 2 z zy = 2 zc = 5 a ab = 2 av = 3 b bv = 3 c cv = 3 v uy = 6 dengan jarak terdekat dari u. • Kita mulai dengan simpul u sebagai simpul awal. Beri harga = 0. dengan tiap kolom mewakili simpul yang ada. Semua arc lain. Kemudian pada judul kolom yang telah diberi harga. kita tandai *.

u* (0) uz = 2 ux = 4 uy = 6

x xy = 3 xa = 4

y yc = 1 yb = 2

z* (2) zy = 2 zc = 5

a ab = 2 av = 3

b bv = 3

c cv = 3

v

Dari simpul u dan z (yang telah ditandai *), dicari simpul lain yang jaraknya terdekat dihitung dari u. Jadi harus diperhitungkan harga yang tertulis di judul kolom. Disini ux =4 merupakan nilai terkecil, sehingga kita beri harga pada kolom u* (0) uz = 2 ux = 4 x* (4) xy = 3 xa = 4 y yc = 1 yb = 2 z* (2) zy = 2 zc = 5 a ab = 2 av = 3 b bv = 3 c cv = 3 v

uy = 6 x = 4, kemudian kita hapus data yang berakhir dengan x dan kita beri tanda * pada judul kolom x. Hasil langkah tersebut dapat dilihat pada tabel berikut ini :

Demikian proses dilanjutkan berturut-turut sebagai berikut :

Logika & Algoritma
RAT

Halaman 39 dari 97 halaman

u* (0) uz = 2 ux = 4 uy = 6

x* (4) xy = 3 xa = 4

y* (4) yc = 1 yb = 2

z* (2) zy = 2 zc = 5

a ab = 2 av = 3

b* (6) bv = 3

c* (5) cv = 3

v

u* (0) uz = 2 ux = 4 uy = 6

x* (4) xy = 3 xa = 4

y* (4) yc = 1 yb = 2

z* (2) zy = 2 zc = 5

a ab = 2 av = 3

b bv = 3

c cv = 3

v

u* (0) uz = 2 ux = 4 uy = 6

x* (4) xy = 3 xa = 4

y* (4) yc = 1 yb = 2

z* (2) zy = 2 zc = 5

a ab = 2 av = 3

b bv = 3

c* (5) cv = 3

v

Logika & Algoritma
RAT

Halaman 40 dari 97 halaman

u* (0) uz = 2 ux = 4 uy = 6

x* (4) xy = 3 xa = 4

y* (4) yc = 1 yb = 2

z* (2) zy = 2 zc = 5

a* (8) ab = 2 av = 3

b* (6) bv = 3

c* (5) cv = 3

v

u* (0) uz = 2 ux = 4 uy = 6

x* (4) xy = 3 xa = 4

y* (4) yc = 1 yb = 2

z* (2) zy = 2 zc = 5

a* (8) ab = 2 av = 3

b* (6) bv = 3

c* (5) cv = 3

v* (8)

Dari tabel terakhir, data yang kita gunakan adalah data yang ditandai kotak. Terlihat dari judul kolom masing-masing simpul, harga yang merupakan jarak terpendek dari simpul awal (dalam hal ini simpul u) ke simpul tersebut. Sebagai contoh, jarak terpendek dari u ke v adalah 8. Sedangkan dari u ke c adalah 5, dan seterusnya. Jalur terpendek dari u ke v dapat ditentukan dengan cara mundur, yakni dari data yang ada yang berakhir dengan v adalah cv, kemudian yang berakhir dengan c adalah yc, yang berakhir dengan y adalah zy dan yang berakhir dengan z adalah u. Sehingga jalur yang dimaksud adalah : u → z → y → c → v Penggambaran dari solusi tersebut adalah sebagai berikut :

Logika & Algoritma
RAT

Halaman 41 dari 97 halaman

x 4 3 6 4 a 2 3 3 3 u Sumber 2 y 2 1 2 b v Muara z 5 c Problema Aliran Maksimal Tujuan dari problema aliran maksimal adalah mengatur jadwal pengiriman barang agar jumlah barang yang dikirimkan dari suatu simpul ke simpul lain (yang tertentu) adalah maksimum. Dalam hal ini ditetapkan bahwa simpul perantara tidak dapat menyimpan barang. Contoh : Untuk menyelesaikan problema aliran maksimal ini dapat digunakan beberapa cara. 8 sumber a 7 10 0 b 5 5 0 c 4 4 0 d 0 muara Logika & Algoritma RAT 10 Halaman 42 dari 97 halaman . Simpul yang mengirimkan (simpul awal) disebut sumber (source) dan simpul yang menerima kiriman disebut muara (sink). Antara sumber dan muara terdapat pula simpul lain yang disebut simpul perantara.

Logika & Algoritma RAT Halaman 43 dari 97 halaman .

yang didefinisikan sebagai : g (q0. disebut fungsi next-state Seubuah fungsi g : S x A → Z disebut fungsi output INPUT : OUTPUT : Untai Untai M ( A. g) Contoh : (1) (2) (3) (4) A S Z f M ( A. b)= y g (q1. Z. b) = q1 f (q2. b) = q1 g : S x A → Z. a) = qo (5) f (q0. berisi internal state Himpunan hingga Z. f. z) : S x A → S. berisi simbol input Himpunan hingga S. yang didefinisikan sebagai : f (qo. b)= y Logika & Algoritma RAT Halaman 44 dari 97 halaman . a) = z g (q0. berisi simbol output Sebuah fungsi f : S x A → S. g) M (A. g) dengan : = (a. q2) = ( x. b)= z g (q2. a) = q1 f (q1. a) = x g (q1. a) = q2 f (q2. S. y.Pertemuan ke-6 Graf Berarah (Lanjutan) Mesin State Hingga Mesin State Hingga merupakan suatu struktur abstrak yang didefinisikan terdiri atas : (1) (2) (3) (4) (5) ⇒ ⇒ Himpunan hingga A. Z. b) = q2 f (q1. q0.b) = (q0. Z. S. q1. S. f. a) = x g (q2. f.

qo. elemennya disebut state penerima State awal (biasanya q0). T. S. T. yang didefinisikan sebagai tabel berikut : f q0 q1 q2 a q0 q0 q2 b q1 q2 q2 Logika & Algoritma RAT Halaman 45 dari 97 halaman . q1 } State awal = q0 (5) Fungsi next-state f : S x A → S. q2 } T = { qo. qo. berisi internal state Himpunan T (dimana T ⊂ S). b } S = { q0. f) dengan : (1) (2) (3) (4) A = { a. q1. anggota S Fungsi next-state f : S x A →S INPUT OUTPUT : Untai : Diterima atau ditolak M (A.Automata Hingga Automata Hingga merupakan suatu struktur abstrak yang didefinisikan terdiri atas : (1) Himpunan hingga A. f) Contoh : M (A. berisi simbul input (2) (3) (4) (5) ⇒ Himpunan hingga S. S.

bisa terjadi terdapat lebih dari satu algoritma. Dari suatu permasalahan yang akan diselesaikan. diagram alur. Kriteria tersebut antara lain : • • • • • Efektif dan efisien Jumlah langkahnya berhingga Berakhir Ada output Terstruktur Adapun langkah-langkah yang dilakukan dalam proses penyelesaian masalah dengan bantuan komputer adalah sebagai berikut : Logika & Algoritma RAT Halaman 46 dari 97 halaman . Dalam memilih algoritma yang terbaik yang dapat digunakan. Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi untuk menyelesaikan suatu masalah Adapun algoritma dapat dinyatakan dalam bentuk : flow chart. harus diperhatikan beberapa kriteria.Pertemuan ke-7 Algoritma Algoritma Istilah algoritma pertama kali diperkenalkan oleh seorang ahli matematika yaitu Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. bahasa semu Sedangkan secara bahasa. algoritma berarti suatu metode khusus untuk menyelesaikan suatu masalah yang nyata (dari Webster Dictionary).

2. 5. Bagaimana Merencanakannya Bagaimana Menyatakannya Bagaimana Validitasnya Bagaimana Menganalisisnya Bagaimana Menguji suatu program Merencanakan algoritma : Merupakan suatu studi tentang teknik variasi design (model) Menyatakan algoritma : Menyatakannya dengan singkat. 4. misalnya Pascal. 3.MASALAH ? MODEL ALGORITMA PROGRAM DATA EKSEKUSI HASIL / SOLUSI Studi Tentang Algoritma Hal-hal yang akan dipelajari mengenai studi algoritma yaitu : 1. C Logika & Algoritma RAT Halaman 47 dari 97 halaman . dibuat dalam bahasa pemrograman yang terstruktur.

yang meliputi : a. Kompleksitas adalah : Sebuah fungsi F(N) yang diberikan untuk waktu tempuh dan / atau kebutuhan storage dengan ukuran N input data Kompleksitas ini dapat berupa kompleksitas waktu & memori Logika & Algoritma RAT Halaman 48 dari 97 halaman . banyaknya langkah besar dan jenis input data jenis operasi jenis komputer dan kompilator Jumlah memori yang dipakai Dalam hal menganalisis algoritma. maka faktor yang sangat diperhitungkan adalah faktor efisiensi. Waktu tempuh (running time) • • • • b. dikenal istilah kompleksitas. dan perhitungannya/solusinya selalu benar untuk semua kemungkinan input yang legal Menganalisis algoritma : Perbandingan dari waktu perhitungan dan banyaknya storage/memori yang digunakan (efisiensi) Menguji suatu program : Pengujian suatu program yang dilakukan dalam dua fase. yakni : • Fase Debugging : → proses dari eksekusi program yang mengkoreksi kesalahan dalam bahasa pemrograman (logic & syntax) • Fase Profiling : → program sudah benar → melihat/mengukur waktu tempuh & storage Analisis Algoritma Sebagaimana studi tentang algoritma.Validitas algoritma : Memenuhi kebutuhan yang diinginkan.

Teorema : Jika f(n) = am nm + am-1 nm-1 + . .Big Oh : Ο (1) 〈 Ο (log n) 〈 Ο (n) 〈 Ο (n log n) 〈 Ο (n2) 〈 Ο (n3) 〈 Ο (2n) Logika & Algoritma RAT = Ο (n5 ) = Ο (n7 ) = Ο (n9 ) = Ο (n6 ) = Ο (n0 ) = Ο (1) Halaman 49 dari 97 halaman . ∀ n 〉 n 0 Dari keempat definisi di atas. maka f(n) = Ο (nm) Sebagai contoh : f(n) = 3n5 + 4n4 + 10n2 + 56 f(n) = 9n7 + 5n6 + 36 f(n) = 8n9 f(n) = n6 + 19 f(n) = 25 Berikut ini adalah urutan dari Big Oh . f(n) = Ω (g(n)) ⇔ ∃ konstanta positif c dan n0 ∋  f(n) ≥ c g(n) ∀ n 〉 n0 3. . f(n) ∼ ο (g(n)) ⇔ ∃ sebuah konstanta positif n0 ∋ n→∞ lim f ( n) / g ( n ) → 1. c2 dan n0 ∋ c1 g(n)≤  f(n) ≤ c2 g(n) ∀ n 〉 n0 4.Beberapa definisi kompleksitas: 1. f(n) = Ο (g(n)) ⇔ ∃ dua konstanta positif c dan n0 ∋  f(n) ≤ c g(n) ∀ n ≥ n0 2.+ a1 n + a0 adalah polinomial tingkat m. yang paling banyak digunakan untuk menganalisis algoritma adalah definisi 1 (Big Oh). f(n) = θ (g(n)) ⇔ ∃ konstanta positif c1.

j] real Untuk i ← 1 s/d m kerjakan untuk j ← 1 s/d n kerjakan C[i. B[i. akhir i akhir j Set A[i. 5.j]. 6. 3.j] ← A[i.Berikut ini beberapa contoh analisis terhadap algoritma Contoh 1 : (i) (ii) c ←a + b for i ← 1 to n do c ←a + b repeat (iii) for i ← 1 to n do for j ← 1 to n do c ←a + b repeat repeat Analisisnya : banyaknya (i) (ii) (iii) Contoh 2 : Penjumlahan 2 buah matriks berorde (m X n) dan elemennya real 1.j] operasi + 1 kali n kali n2 kali f(n) f(n) = 1 f(n) = n f(n) = n2 Big Oh Ο (1) Ο (n) Ο (n2) Logika & Algoritma RAT Halaman 50 dari 97 halaman .j] + B[i. C[i. 2.j]. 4.

Analisisnya : jumlah operasi + jumlah memori total = mn kali = 3 mn x 4 = 12 mn = 13 mn (asumsi : 1 elemen memerlukan 4 satuan memori/byte) Keadaan Dari Kompleksitas Waktu Algoritma Keadaan dari kompleksitas waktu algoritma meliputi : a. 2. Set k:= 1 . c. WORST Case BEST Case AVERAGE Case → → → nilai maksimum dari f(n) ∀ input yang mungkin nilai minimum dari f(n) ∀ input yang mungkin nilai ekspektasi dari f(n) Contoh 3 : Menentukan lokasi suatu elemen pada array data secara linier 1. b. 3. 5. loc := 0 Repeat langkah 3 dan 4 While loc := 0 dan k ≤ n If Item := Data(k) then set loc := k Set k := k + 1 If loc := 0 then Write Elemen tidak ada pada array data Else 6. Exit Write loc adalah lokasi dari elemen Bila elemen (item) yang dicari merupakan elemen terakhir dari array tersebut atau tidak terdapat dalam array : → WORST CASE ⇒ F(n) = Ο (n) Logika & Algoritma RAT Halaman 51 dari 97 halaman . 4.

+ n . .Bila elemen (item) yang dicari merupakan elemen pertama dari array tersebut : → BEST CASE ⇒ F(n) = Ο (1) Bila elemen (item) yang dicari berada diantara elemen pertama dan elemen terakhir dari array tersebut : → AVERAGE CASE Banyaknya elemen dalam array tersebut adalah n. . n/2 . 1/n = (n + 1)/2 = 1/2 n + 1/2 = Ο (n) Logika & Algoritma RAT Halaman 52 dari 97 halaman . 1/n + 3 . + n ) . 1/n + . 1/n = (n + 1) . 1/n = ( 1 + 2 + 3 + . maka probabilitas masing-masing elemen adalah 1/n ⇒ F(n) = 1 . . 1/n + 2 . .

21. 5. kemudian i 1 2 3 4 5 Contoh : FAK 1*1=1 1*2=2 2*3=6 6 * 4 = 24 24 * 5 = 120 BARISAN BILANGAN FIBBONACI 1. . 1. 2. 13. 3. adalah sebagai berikut : Function FAK (n : integer) : integer FAK=1 For i = 1 TO n FAK = FAK * i NEXT i END FAK Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5. . 8. .Pertemuan ke-8 Teknik Iteratif & Rekursif Teknik Iteratif Teknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali atau hingga suatu kondisi tertentu terpenuhi Contoh : Teknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n. Logika & Algoritma RAT Halaman 53 dari 97 halaman . maka : FAK=1.

i. kemudian i 3 4 5 F 1+1=2 1+2=3 2+3=5 x 1 2 3 y 2 3 5 F ←x Write(F) Set x. adalah sebagai berikut : 1. 2. End Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5. y ←1 If n 〉 2 then begin for i ← 3 to n do begin F ←x + y x ←y y ←F Teknik Rekursif Teknik Rekursif merupakan salah satu cara pembuatan algoritma dengan pemanggilan procedure atau function yang sama Logika & Algoritma RAT Halaman 54 dari 97 halaman . f : integer x ←1 . 3. 4. 5. 6. maka : x=1. 7.Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci. 9. y. y=1. n. end else 8.

3. 13.Contoh : Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n. 21. If n := 0 then FAK := 1 Else FAK := n * FAK(n-1) Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5. 2. . maka : FAK(5) = 5 * FAK(4) FAK(4) = 4 * FAK(3) FAK(3) = 3 * FAK(2) FAK(2) = 2 * FAK(1) FAK(1) = 1 * FAK(0) 1 Contoh : BARISAN BILANGAN FIBBONACI 1. . adalah sebagai berikut : Function FAK (n : integer) : integer 1. Logika & Algoritma RAT Halaman 55 dari 97 halaman . 2. 8. 1. . 5.

Teknik Rekursif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci. adalah sebagai berikut : Procedure F(n : integer) : integer 1. maka : F(5) F(4) F(3) F(3) F(2) F(1) F(2) F(2) F(1) 1 1 1 1 1 PERBEDAAN ANTARA TEKNIK ITERATIF DAN REKURSIF : ITERATIF Logika & Algoritma RAT REKURSIF Halaman 56 dari 97 halaman . If n ≤ 2 then F(n) = 1 else F(n) = F(n-1) + F(n-2) Endif End Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5.

maka berapa waktu yang diperlukan untuk menyelesaikan 64 buah piringan. Ini menurut legenda. pada saat itu juga dunia kiamat. untuk menyelesaikan n buah piringan diperlukan pemindahan sebanyak 2n –1 kali. Logika & Algoritma RAT Halaman 57 dari 97 halaman .Tidak ada variabel lokal baru Program tidak sederhana Ada variabel lokal baru Program menjadi lebih sederhana Permainan Menara Hanoi Contoh paling umum dari penggunaan teknik rekursif adalah pada permainan menara Hanoi. pertama kali dimainkan secara manual oleh seorang pendeta Budha di Hanoi. Bayangkan jika untuk setiap pemindahan memerlukan waktu 1 detik. Dalam permainan ini. Berdasarkan legenda. sehingga permainan ini disebut Menara Hanoi. dengan diperbolehkan menggunakan (melewati) sebuah tonggak bantuan. Aturan permainannya adalah semua piringan pada tonggak A akan dipindahkan ke tonggak C (dapat dengan melewati tonggak bantuan B). dengan ketentuan bahwa pemindahan piringan dilakukan satu per satu dan piringan yang lebih besar tidak boleh diletakan di atas piringan yang lebih kecil. Secara umum. akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya. Untuk jelasnya lihat gambar berikut : Menurut legenda tersebut dikatakan bahwa jika anda selesai memindahkan seluruh 64 Tonggak Asal (A) Tonggak Bantu (B) Tonggak Tujuan (C) piringan. yang mungkin juga benar.

yang menggunakan teknik iteratif : PROCEDURE BACKTRACK(n) INTEGER k. Dari himpunan penyelesaian yang mungkin ini akan diperoleh solusi optimal atau memuaskan. x(k)) = TRUE THEN IF (x(1). LOCAL x(1:n) k ←1 WHILE k > 0 DO IF ada x(k) yang belum dicoba sedemikian sehingga x(k) ∈ T(x(1). x(k)) ENDIF k ←k + 1 ELSE k ← k – 1 ENDIF REPEAT Logika & Algoritma RAT Halaman 58 dari 97 halaman . Penulisan algoritmanya oleh : R. … . … . x(k-1)) AND Bk(x(1). Walker (1960).n. Teknik pencarian ini digunakan dalam rangka mendapatkan himpunan penyelesaian yang mungkin. x(k)) adalah sebuah jalur (path) yang merupakan solusi THEN PRINT (x(1).H. Teknik Backtracking ini diperkenalkan pertama kali oleh : D.Pertemuan ke-9 Teknik Backtracking Teknik Backtracking merupakan salah satu teknik dalam penyelesaian masalah secara umum (General Problem Solving). Lehmer (1950).J. … . Adapun dasar dari teknik ini adalah suatu teknik pencarian (Teknik Searching). dan Variasi aplikasinya dikembangkan oleh : Golomb & Baumert (1960) Berikut ini disajikan algoritma backtracking secara umum. … .

Toe Game The Travelling Salesman Problem Sum of Subsets Masalah utama dari Sum of Subsets adalah jika terdapat n bilangan real dan ingin dihitung semua kombinasi yang mungkin dari himpunan bilangan tersebut. … .Tac . Kombinasi yang diinginkan yaitu kombinasi yang jumlah seluruh elemennya sama dengan M (tertentu).Queens Problem Sum of Subsets Graph Coloring Hamilton Cycles Knapsack Problem Tic .END BACKTRACK Sedangkan bentuk rekursifnya adalah sebagai berikut : PROCEDURE RBACKTRACK(k) GLOBAL n. x(k-1)) AND Bk(x(1).Queens Problem The 4 . … . Logika & Algoritma RAT Halaman 59 dari 97 halaman . x(1:n) FOR setiap x(k) sedemikian sehingga x(k) ∈ T(x(1). x(k)) adalah sebuah jalur (path) yang merupakan solusi THEN PRINT (x(1). … . x(k)) ENDIF CALL RBACKTRACK(k + 1) END RBACKTRACK Contoh Pemakaian Teknik Backtracking : • • • • • • • • The 8 . … . x(k)) = TRUE IF (x(1).

Sebelum kita selesaikan masalah tersebut dengan menggunakan teknik backtracking. yakni Breadth First Search (BFS) yang menggunakan queue dan Depth First Search (DFS) yang menggunakan stack. Misalkan banyaknya bilangan real tersebut adalah 4 (n=4). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Breadth First Search (BFS) Logika & Algoritma RAT Halaman 60 dari 97 halaman . Berikut penggambaran kedua jenis pohon tersebut. Terdapat 2 jenis pohon pencarian. perhatikan terlebih dahulu penyajian permasalahan dan penyelesaiannya dalam bentuk pohon.

merupakan tahapan pertama dalam proses mendapatkan solusi sesungguhnya (solusi optimal). Untuk mendapatkan solusi yang optimal dari ruang penyelesaian digunakan suatu algoritma lain.j X(k) = 1 IF s + W(k) = M THEN PRINT (X(j).s.r) GLOBAL INTEGER M. j ← 1 TO k) ELSE IF s + W(k) + W(k+1) ≤ M THEN Logika & Algoritma RAT Halaman 61 dari 97 halaman . yang selanjutnya disebut dengan algoritma SUMOFSUB.k. Algoritma tersebut menggunakan teknik backtracking.1 2 3 18 19 4 5 26 27 20 21 12 13 6 7 30 31 28 29 24 25 22 23 16 17 14 15 10 11 8 9 Depth First Search (DFS) Kedua bentuk penyajian pohon dari persoalan sum of subsets. PROCEDURE SUMOFSUB(s.n GLOBAL REAL W(1:n) GLOBAL BOOLEAN X(1:n) REAL r. INTEGER k.

1. r-W(k)) ENDIF ENDIF IF s + r . k+1.6.4.58 5.3. Akan ditentukan himpunan-himpunan bagiannya.4.3.CALL SUMOFSUB(s+W(k).58 10.5.2.W(k) ≥ M AND s + W(k) ≤ M THEN X(k) 0 CALL SUMOFSUB(s. r-W(k)) ENDIF END SUMOFSUB Contoh : Suatu himpunan terdiri dari 6 bilangan. 10.46 0.33 0. 15.73 5. yakni {5.18 13. k+1.2. Perhatikan simpul A.68 0.46 10.46 12.46 15.33 13.58 0.46 15. 12.4.46 5.33 10.3.6.46 17.33 A 20.5.18 Bagian dari state space tree dengan SUMOFSUB C Logika & Algoritma RAT Halaman 62 dari 97 halaman .4.18 12.58 27.4.33 12.6.5. 13. 18} yang disusun secara tidak turun. B dan C yang merupakan outputnya dalam bentuk tuple 0.4. yang jumlah seluruh elemennya adalah 30.33 B 5.4.5.5.68 15.5.3.

Logika & Algoritma RAT Halaman 63 dari 97 halaman .

.Pertemuan ke-10 Metode Devide And Conquer (DANDC) . Subproblem k Subsolusi 1 Subsolusi 2 Subsolusi 3 . Algoritmanya secara umum : Logika & Algoritma RAT Halaman 64 dari 97 halaman . Kemudian n input tersebut dipartisi menjadi k subset input yang berbeda (1< k ≤ n) → k subproblem k subproblem → k subsolusi → solusi Bentuk Umum dari Proses Metode DANDC : n input Input 1 Input 2 Input 3 . Input k Subproblem 1 Subproblem 2 Subproblem 3 .. maka metode DANDC dapat digunakan lagi untuk keadaan tersebut.Searching Di dalam metode ini. Pemecahan menjadi k subproblem ini menunjukkan bahwa ia mempunyai sifat yang sama dengan problem aslinya (awalnya). Pemakaian ulang DANDC dinyatakan dengan teknik rekursif. kita mempunyai suatu fungsi untuk menghitung input.... Subsolusi k Solusi Optimal Jika subproblem masih relatif cukup besar..

q) COMBINE(DANDC(p. INTEGER m. Jika demikian halnya.q) GLOBAL n. Pada keadaan lain fungsi DIVIDE(p.n max ← min ← A(1) For i ← 2 TO n DO IF A(i) > max THEN max ← A(i) ………bagian perbandingan Logika & Algoritma RAT Halaman 65 dari 97 halaman .q) yang dipanggil.p.q) adlah fungsi yang bernilai boole yang menentukan apakah input q-p+1 berukuran cukup kecil ∋ solusi dapat dihitung tanpa pemecahan.q) yang dipanggil. maka kita lihat terlebih dahulu algoritmanya secara iteratif sebagai berikut : PROCEDURE STRAITMAXMIN INTEGER i.q)) ENDIF END DANDC SMALL(p.DANDC(m+1. Searching Menentukan Bilangan Max dan Min Sebelum kita lihat penggunaan metode DANDC-nya.q) Metode DANDC biasa dipakai pada searching dan sorting.q). Misal m = DIVIDE(p. maka input dipecah ∋ A(p:m) dan A(m+1.q IF SMALL(p.q) menghasilkan integer yang menguraikan input menjadi 2 bagian.PROCEDURE DANDC(p.q) THEN G(p.A(1:n).m).q) ELSE M ← DIVIDE(p. Fungsi DIVIDE(p. maka fungsi G(p.

fmin ← A(j) ENDIF : ELSE mid ←  (i+j)/2  CALL MAXMIN(i.mid. fmax ← fmin ← A(i) ELSE fmax ← A(i). Worst Case. bila datanya tidak tersusun menaik ataupun menurun.j. bila datanya tersusun menurun. yakni: 1. GLOBAL n. IF A(i) < A(j) THEN fmax ← A(j). Best Case.ELSE IF A(i) < min THEN min ← A(i) ENDIF ENDIF REPEAT END STRAITMAXMIN ………bagian perbandingan Procedure STRAITMAXMIN tersebut akan menghasilkan 3 keadaan.fmax.j. bila datanya tersusun menaik. dengan banyak perbandingan adalah 2(n-1) 3.gmin) Logika & Algoritma RAT : i=j-1 .gmax. fmin ← A(i) Halaman 66 dari 97 halaman . Average Case. bagian perbandingannya diubah menjadi : IF A(i) > max THEN max ← A(i) ENDIF IF A(i) < min THEN min ← A(i) ENDIF Maka Best Case = Worst Case = Average Case = 2(n-1) Algoritmanya secara rekursif (dengan metode DANDC) PROCEDURE MAXMIN(i.A(1:n) CASE : i=j . dengan banyak perbandingan adalah 3(n-1)/2 Bila pada procedure STRAITMAXMIN tersebut. dengan banyak perbandingan adalah n-1 2.fmin) INTEGER i.

yang direpresentasikan oleh T(n) adalah : T(  n/2  ) +T(  n/2  ) + 2 Logika & Algoritma RAT .CALL MAXMIN(mid+1. -5.j.hmin) fmax ← MAX(gmax. 31.n>2 Halaman 67 dari 97 halaman . 15. 60. 13. 47 } Maka simulasi dari procedure MAXMIN tersebut adalah : 9 1 9 60 -8 5 1 5 22 -8 6 9 60 17 8 3 1 3 22 -5 4 5 15 4 -8 6 7 60 6 17 8 9 47 7 31 1 1 2 22 13 3 3 -5 2 -5 Jadi outputnya adalah max = 60 dan min = -8 Jumlah perbandingan elemennya.hmax. 17.hmax) fmin ← MIN(gmin.hmin) ENDCASE END MAXMIN Contoh : A = { 22. -8.

n=1 untuk n ≈ power value dari 2 = 2k dan k integer positif. = 2k-1 T(2) + 2k-1 + 2k-2 + … + 23 + 22 + 2 = 2k-1 +2k .2 Jadi T(n) = Ο (n) Logika & Algoritma RAT Halaman 68 dari 97 halaman . .n=2 . maka : T(n) = 2 T(n/2) + 2 = 2 (2 T(n/4) + 2) + 2 = 4 T(n/4) + 4 + 2 = 22 T(n/22) + 22 + 2 = 23 T(n/23) + 23 + 22 + 2 .2 = 3n/2 . .T(n) { 1 0 .

16 : 20. 10. Contoh barisan dengan urutan : 1. PROCEDURE MERGESORT(low.high) CALL MERGE(low. 10. 15.high IF low < high THEN mid ←  (low + high) / 2  CALL MERGESORT(low. Menaik 2. Merge Sort Algoritma dari Merge Sort terdiri dari dua prosedur. 9. akan dibahas metode merge sort dan quick sort. Tidak naik : 5. Tidak turun 4. 8. 17. Menurun 3. 14. 12.high) INTEGER low. yakni prosedur MERGESORT dan prosedur MERGE. 15.high) ENDIF END MERGESORT Logika & Algoritma RAT Halaman 69 dari 97 halaman .Pertemuan ke-11 Metode Devide And Conquer (DANDC) . 12. Urutan yang diinginkan adalah urutan yang tidak turun (non decreasing). 8 Dari Metode Sorting yang ada. 15.Sorting Sorting Untuk mengurutkan barisan n input elemen yang ditempatkan dalam suatu array.mid. 12. 12. 16 : 16. Kedua prosedur tersebut tidak dapat dipisahkan satu dengan yang lainnya (terintegrasi). 10. 15.mid) CALL MERGESORT(mid+1. 12. 15. 10 : 5.

high GLOBAL A(low:high).low.I. i ← i+1 REPEAT ELSE FOR k ← h TO mid DO B(i) ← A(k).PROCEDURE MERGE(low. i ← low WHILE h ≤ mid AND j ≤ high DO IF A(h) ≤ A(j) THEN B(i) ← A(h). j ← mid + 1.high) INTEGER h. 861. h ← h+1 ELSE B(i) ← A(j).j. 254. 423. 520 } Logika & Algoritma RAT Halaman 70 dari 97 halaman . i ← i+1 REPEAT ENDIF FOR k ← low TO high DO B(k) ← A(k) REPEAT END MERGE Contoh : A(1:10) yakni : A = { 310. 450. 351. LOCAL B(low:high) h ← low. j ← j+1 ENDIF i ← i+1 REPEAT IF h > mid THEN FOR k ← j TO high DO B(i) ← A(k).mid. 179. 285. 652.mid.k.

4.10 1.5 6.2 6.8 9.2.7.10 1.3.4 5.5.3 4.7 Representasi di dalam tree dari CALL MERGE sbb : 1.5 6.2 6.10 1.7 8.8 9.5 6.10 1.9.10 T(n) = Ο (n 2log n) Logika & Algoritma RAT Halaman 71 dari 97 halaman .1 2.10 1.1.8 9.Representasi di dalam tree dari CALL MERGESORT sbb : 1.2 3.8.3 4.5 6.3 4.5 6.6.10 1.6 7.9 10.7 1.

p.j) CALL QUICKSORT(p. yaitu prosedur PARTITION dan prosedur QUICKSORT.q) ENDIF END QUICKSORT PROCEDURE PARTITION(m. PROCEDURE QUICKSORT(p. GLOBAL A(m-1. i ← m LOOP LOOP i ← i+1 UNTIL A(i) ≥ V REPEAT LOOP p ← p-1 UNTIL A(p) ≤ V REPEAT IF i < p THEN CALL INTERCHANGE(A(i).p) INTEGER m.j-1) CALL QUICKSORT(j+1.q) IF p < q THEN j ← q+1 CALL PARTITION(p. A(p) ← V END PARTITION Contoh : Suatu array A berisi elemen-elemen : 65 1 70 2 75 3 80 4 85 5 60 6 55 7 50 8 45 9 Logika & Algoritma RAT Halaman 72 dari 97 halaman .p) V ← A(m).A(p)) ELSE EXIT REPEAT A(m) ← A(p).i.Quick Sort Algoritma Quick Sort terdiri dari dua prosedur.

Hasil tracenya adalah sebagai berikut : i 2 3 4 5 6 5 4 3 10 9 8 p 9 8 7 6 5 4 3 2 9 8 7 1 65 65 65 65 65 60 55 50 45 55 50 45 2 70 45 45 45 45 45 45 45 50 45 45 50 3 75 75 50 50 50 50 50 55 55 50 55 55 4 80 80 80 55 55 55 60 60 60 60 60 60 5 85 85 85 85 60 65 65 65 65 65 65 65 6 60 60 60 60 85 85 85 85 85 70 70 70 7 55 55 55 80 80 80 80 80 80 80 75 75 8 50 50 75 75 75 75 75 75 75 75 80 80 9 45 70 70 70 70 70 70 70 70 85 85 85 10 +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ Analisisnya : Worst Case = Ο (n2) Average Case = Ο (n log n) Logika & Algoritma RAT Halaman 73 dari 97 halaman .

masalah knapsack tersebut dapat ditulis sebagai berikut : n-1 maksimumkan Q = ∑z p i i=0 i dengan kendala ∑z w i i =0 n −1 i ≤W dan 0 ≤ zi ≤ 1 .w1...zn-1} yang memaksimalkan nilai Q dan memenuhi kendala-kendala yang ada.Pertemuan ke-12 Metode Greedy Masalah Knapsack Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum M dan sehimpunan benda A = {a0. Logika & Algoritma RAT Halaman 74 dari 97 halaman .a1. wi 〉 0 .wn-1}.. pi 〉 0 .p1.pn-1}..an-1} yang berbobot W = {w0..... maka kita dapatkan profit sebesar zi pi untuk benda ai tersebut.. dan dengan kendala bahwa total bobot dari benda-benda yang dimasukkan ke dalam knapsack tidak melebihi M... 0 ≤ i ≤ n-1 Sebuah solusi yang optimal adalah himpunan Z = {z0.. Setiap benda tersebut diberikan nilai profit yang dinotasikan dengan P = {p0. Secara matematis.. Jika kita diperbolehkan memasukkan zi bagian dari benda ai yang ada ke dalam knapsack dimana 0 ≤ zi ≤ 1 ..z1.. Yang dimaksud dengan masalah knapsack adalah : Bagaimana kita memilih atau menentukan zi untuk masing-masing benda ai dari keadaan di atas dengan tujuan mendapatkan total profit yang maksimal..

26.z1.Z. Z(n-1) = 0} Halaman 75 dari 97 halaman . Procedure tersebut disebut procedure GREEDY_KNAPSACK. maka tentukanlah Z = {z0.. Dengan kata lain : p0/ w0 ≥ p1 / w1 ≥ .W. Z ←0 cu ← M for i ← 0 to n-1 do if W(i) 〉 cu then exit endif Z(i) ← 1 cu ← cu .20}.4}.z2. .W(0:n-1). Setiap benda tersebut diberikan nilai profit P = {100.z3} agar diperoleh total profit yang maksimal ! Algoritma Sekuensial Knapsack Metode Greedy Salah satu cara untuk menyelesaikan masalah knapsack secara sekuensial adalah dengan pemakaian metode Greedy. Sebelum procedure tersebut digunakan.2.Z(0:n-1).cu.Contoh : Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum 15 Kg dan sehimpunan benda A = {a 0.9..a3} yang berbobot (dalam Kg) W = {5.a2. Z(1). integer i.n. ≥ pn-1 / wn-1 Adapun procedure GREEDY_KNAPSACK adalah sebagai berikut : procedure GREEDY_KNAPSACK(P.135. .a1. benda-benda harus diurutkan rasio pi/wi -nya tidak menaik.M. Jika kita diperbolehkan memasukkan zi bagian dari benda ai yang ada ke dalam knapsack dimana 0 ≤ zi ≤ 1 .n) real P(0:n-1). . .W(i) repeat Logika & Algoritma RAT {n = banyak benda} { Z(0).

5 Jadi optimisasi masalah knapsack diperoleh bila Z = { 1. 0 } Sehingga Q = 1 x 100 + 1 x 135 + 0. Tetapi jika data yang digunakan belum terurut rasio pi/wi -nya tidak menaik. 0.5 x 26 + 0 x 20 = 100 + 135 + 13 + 0 = 248 Analisis : Kompleksitas waktu dari algoritma Greedy_Knapsack ini adalah O(n). dimana n = 4.5. 1.9 = 1 keluar dari loop (exit) Halaman 76 dari 97 halaman . W = { 5.if i ≤ n-1 then Z(i) ← cu/W(i) endif end GREEDY_KNAPSACK Jika algoritma ini digunakan untuk menyelesaikan masalah seperti pada contoh yang lalu. M = 15.135. maka akan terlihat hasil tracenya sebagai berikut : Z ←0 cu ← 15 i=0 karena W(0) 〈 cu i=1 karena W(1) 〈 cu i=2 karena W(2) 〉 cu yaitu : 2 〉 1 berarti : Karena 2 ≤ 3maka Z(2) ← cu/W(2) = 1/2 = 0.2.26. maka diperlukan kompleksitas waktu sebesar O(n log n) untuk mengurutkan Logika & Algoritma RAT yaitu : 5 〈 15 berarti : Z(0) ← 1 cu ← 15 . P = { 100.4 }.5 = 10 yaitu : 9 〈 10 berarti : Z(1) ← 1 cu ← 10 .9.20 }.

sebelumnya. 15. kompleksitas waktu dari algoritma ini akan lebih besar pada waktu proses pengurutannya. kita periksa apakah rasio pi/wi -nya tidak menaik. Sehingga untuk masalah optimisasi knapsack. agar syarat rasio pi/wi -nya tidak menaik terpenuhi dan kita dapat menyelesaikan masalah tersebut dengan procedure GREEDY_KNAPSACK. kita kembalikan urutan ke susunan semula). p0/w0 = 25/18 p1/w1 = 24/15 p2/w2 = 15/10 Terlihat bahwa syarat rasio pi/wi -nya tidak menaik belum terpenuhi. Latihan : Diketahui 3 buah benda dan sebuah knapsack dengan kapasitas maksimum 20. 24/15 〉 15/10 〉 25/18 → rasio pi/wi -nya tidak menaik urutan ke(yang baru) 2 0 1 Logika & Algoritma RAT Halaman 77 dari 97 halaman . 24. 15). Perubahan yang kita lakukan adalah sebagai berikut : urutan ke(yang lama) 0 1 2 sehingga syaratnya terpenuhi . 10) dan (25. kita ubah sementara urutan benda-bendanya (setelah diperoleh jawaban sementara. Untuk itu. Berat dan profit dari masing-masing benda tersebut adalah (18. Tentukanlah Z agar diperoleh total profit yang maksimal ! Jawab : Pertama. Jadi susunan (urutan) -nya untuk sementara kita ubah.

5 x 15 = 0 + 24 + 7. 1.5 .5 Logika & Algoritma RAT Halaman 78 dari 97 halaman .15 = 5 urutan ke(yang saat ini) 2 0 1 urutan ke(yang semula) 0 1 2 Z(i) 0 1 0.5 Jadi optimisasi masalah knapsack diperoleh bila Z = { 0. yakni : berarti : keluar dari loop yaitu : 15 〈 20 berarti : Z(0) ← 1 cu ← 20 . Z(1) = 0.5 = 31.Sekarang kita sudah dapat menggunakan procedure GREEDY_KNAPSACK untuk menyelesaikan masalah tersebut. Adapun hasil trace-nya adalah sebagai berikut : Z ←0 cu ← 20 i=0 karena W(0) 〈 cu i=1 karena W(2) 〉 cu yaitu : 10 〉 5 (exit) Karena 1 ≤ 2maka Z(1) ← cu/W(1) = 5/10 = 0.5 Jadi diperoleh : Z(0) = 1 . Z(2) = 0 Sekarang urutannya kita kembalikan seperti semula.5 } Sehingga Q = 0 x 25 + 1 x 24 + 0. 0.

mincost INTEGER NEAR(n). Adapun graf yang dapat kita tentukan pohon rentangan minimalnya adalah graf yang memenuhi ketiga syarat berikut : 1. algoritma yang akan dipakai adalah algoritma PRIM’S.T.2)) ← (k. Setiap graf tidak dapat ditentukan pohon rentangan minimalnya.l) < COST(i. 2.k.l) FOR i ← 1 TO n DO IF COST (i. 3.i.n). Berikut ini akan disajikan langkah-langkah penyelesaian masalah pohon rentangan minimal dengan menggunakan algoritma PRIM’S.Pertemuan ke-13 Metode Greedy (Lanjutan) Masalah Pohon Rentangan Minimal Permasalahan umum dari pohon rentangan minimal adalah mencari minimum biaya (cost) pohon rentangan dari setiap ruas suatu graf yang membentuk pohon.l) ← ruas dengan biaya atau bobot yang minimum mincost ← COST(k.l) (T(1. PROCEDURE PRIM(E.k) THEN NEAR (i) ←l Logika & Algoritma RAT Halaman 79 dari 97 halaman .1). Dalam pembahasan ini.mincost) REAL COST(n.COST.2) (k.n.n.T(1.l.T(1:n-1.j. graf tersebut harus terhubung setiap ruas dari graf tersebut harus mempunyai nilai atau bobot (graf berlabel) graf teresbut tidak berarah Algoritma yang dapat digunakan untuk menyelesaikan masalah pohon rentangan minimal cukup banyak.

NEAR(j)) mincost ← mincost + COST(j. 1 30 4 10 45 2 40 35 50 3 25 20 6 55 5 15 Logika & Algoritma RAT Halaman 80 dari 97 halaman .j) THEN NEAR(k) ← j ENDIF REPEAT k REPEAT i IF mincost ≥ ~ THEN PRINT ‘bukan pohon rentangan’ ENDIF END PRIM Contoh : Perhatikan graf berikut ini : Tentukanlah nilai pohon rentangan minimalnya.2)) ← (j.T(i.NEAR(k)) > COST(k.ELSE NEAR(i) ← k ENDIF REPEAT i NEAR(k) ← NEAR(l) ← 0 FOR i ← 2 TO n-1 DO Pilih j (sebuah index) sedemikian sehingga NEAR(j) ≠ 0 AND COST(j.NEAR(j)) adalah minimum (T(i.1). serta pohon yang membentuk pohon rentangan minimal tersebut.NEAR(j)) NEAR(j) ← 0 FOR k ← 1 TO n DO IF NEAR(k) ≠ 0 AND COST(k.

2) i=1 COST (1. prosesnya adalah sebagai berikut : (k.1) … ? ~ < 10 … → FALSE : NEAR (2) ←1 i=3 COST (3.T(2.1).2) < COST(1.Penyelesaian : Dengan menggunakan algoritma PRIM’S.2) mincost ← 10 + COST(6.l) ← (1.2)) ← (1.2) = 10 (T(1.2) < COST(3.1) … ? 40 < 45 … → TRUE : NEAR (5) ←2 i=6 COST (6.2)) ← (6.1).1) … ? 10 < ~ … → TRUE : NEAR (1) ←2 i=2 COST (2.2) = 10 + 25 = 35 Logika & Algoritma RAT Halaman 81 dari 97 halaman .2) < COST(4.1) … ? ~ < 30 … → FALSE : NEAR (4) ←1 i=5 COST (5.NEAR(6)) adalah minimum (T(2.2) < COST(5.T(1.2) < COST(2.2) mincost ← COST(1.2) < COST(6.1) … ? 25 < ~ … → TRUE : NEAR (6) ←2 NEAR(1) ← NEAR(2) ← 0 i=2 Pilih j = 6 karena NEAR(6) ≠ 0 dan COST(6.1) … ? 50 < ~ … → TRUE : NEAR (3) ←2 i=4 COST (4.

6) … ? 0 ≠ 0 dan ~ > 25 … → FALSE dan TRUE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.6) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=2 NEAR(2) ≠ 0 dan COST(2.NEAR(3)) > COST(3.NEAR(2)) > COST(2.2)) ← (3.6) … ? 2 ≠ 0 dan 40 > 55 … → TRUE dan FALSE → FALSE k=6 NEAR(6) ≠ 0 dan COST(6.NEAR(5)) > COST(5.3) … ? Logika & Algoritma RAT Halaman 82 dari 97 halaman .6) mincost ← 35 + COST(3.1).6) … ? 2 ≠ 0 dan 50 > 15 … → TRUE dan TRUE → TRUE : NEAR(3) = 6 k=4 NEAR(4) ≠ 0 dan COST(4.NEAR(1)) > COST(1.3) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=2 NEAR(2) ≠ 0 dan COST(2.6) … ? 1 ≠ 0 dan 30 > 20 … → TRUE dan TRUE → TRUE : NEAR(4) = 6 k=5 NEAR(5) ≠ 0 dan COST(5.NEAR(6)) > COST(6.NEAR(4)) > COST(4.NEAR(2)) > COST(2.6) = 35 + 15 = 50 NEAR(3) ← 0 k=1 NEAR(1) ≠ 0 dan COST(1.NEAR(6) ← 0 k=1 NEAR(1) ≠ 0 dan COST(1.6) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE i=3 Pilih j = 3 karena NEAR(3) ≠ 0 dan COST(3.T(3.NEAR(3)) adalah minimum (T(3.NEAR(1)) > COST(1.

NEAR(4)) adalah minimum (T(4.NEAR(4)) > COST(4.1).NEAR(4)) > COST(4.3) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=4 NEAR(4) ≠ 0 dan COST(4.4) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.NEAR(6)) > COST(6.6) = 50 + 20 = 70 NEAR(4) ← 0 k=1 NEAR(1) ≠ 0 dan COST(1.NEAR(5)) > COST(5.NEAR(1)) > COST(1.4) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=4 NEAR(4) ≠ 0 dan COST(4.NEAR(3)) > COST(3.3) … ? 2 ≠ 0 dan 40 > 35 … → TRUE dan TRUE → TRUE : NEAR(5) = 3 k=6 NEAR(6) ≠ 0 dan COST(6.NEAR(3)) > COST(3.3) … ? 0 ≠ 0 dan ~ > 15 … → FALSE dan TRUE → FALSE i=4 Pilih j = 4 karena NEAR(4) ≠ 0 dan COST(4.2)) ← (4.4) … ? 0 ≠ 0 dan ~ > 30 … → FALSE dan TRUE → FALSE k=2 NEAR(2) ≠ 0 dan COST(2.4) … ? Logika & Algoritma RAT Halaman 83 dari 97 halaman .NEAR(2)) > COST(2.6) mincost ← 50 + COST(4.0 ≠ 0 dan ~ > 50 … → FALSE dan TRUE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.3) … ? 6 ≠ 0 dan 20 > ~ … → TRUE dan FALSE → FALSE k=5 NEAR(5) ≠ 0 dan COST(5.T(4.

NEAR(1)) > COST(1.T(5.5) … ? 0 ≠ 0 dan ~ > 35 … → FALSE dan TRUE → FALSE k=4 NEAR(4) ≠ 0 dan COST(4.NEAR(5)) adalah minimum (T(5.4) … ? 3 ≠ 0 dan 35 > ~ … → TRUE dan FALSE → FALSE k=6 NEAR(6) ≠ 0 dan COST(6.NEAR(5)) > COST(5.3) = 70 + 35 = 105 NEAR(5) ← 0 k=1 NEAR(1) ≠ 0 dan COST(1.NEAR(5)) > COST(5.NEAR(6)) > COST(6.0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=5 NEAR(5) ≠ 0 dan COST(5.1).2)) ← (5.3) mincost ← 70 + COST(5.5) … ? 0 ≠ 0 dan ~ > 45 … → FALSE dan TRUE → FALSE k=2 NEAR(2) ≠ 0 dan COST(2.NEAR(6)) > COST(6.5) … ? Logika & Algoritma RAT Halaman 84 dari 97 halaman .5) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=5 NEAR(5) ≠ 0 dan COST(5.5) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=6 NEAR(6) ≠ 0 dan COST(6.NEAR(2)) > COST(2.4) … ? 0 ≠ 0 dan ~ > 20 … → FALSE dan TRUE → FALSE i=5 Pilih j = 5 karena NEAR(5) ≠ 0 dan COST(5.NEAR(3)) > COST(3.5) … ? 0 ≠ 0 dan ~ > 40 … → FALSE dan TRUE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.NEAR(4)) > COST(4.

yang mempunyai nilai minimal = 105 Berikut adalah bentuk pohon rentangan minimalnya : 1 10 2 35 3 4 20 25 6 5 15 Logika & Algoritma RAT Halaman 85 dari 97 halaman .0 ≠ 0 dan ~ > 55 … → FALSE dan TRUE → FALSE mincost ≥ ~ … ? 105 ≥ ~ … → FALSE ∴ terdapat sebuah pohon rentangan.

seseorang dapat menggunakan 1 dari 2 pendekatan yang berbeda yaitu forward atau backward. Pemrograman Dinamis seringkali secara drastic (spontan) mengurangi jumlah pembilangan dengan menghindari pembilangan dari beberapa rangkaian keputusan yang tidak memungkinkan menjadi optimal. rangkaian optimal dari keputusan-keputusan mungkin dapat ditemukan dengan membuat satu dari keputusan-keputusan pada satu waktu dan jangan pernah membuat keputusan yang keliru.Pertemuan ke-14 Pemrograman Dinamis Metode Umum Pemrograman Dinamis adalah metode rancangan algoritma yang dapat dipakai bila pemecahan masalah yang mungkin dipandang sebagai hasil dari rangkaian keputusankeputusan. Logika & Algoritma RAT Halaman 86 dari 97 halaman . Multistage Graf Sebuah multistage graf adalah sebuah graf berarah dimana bentuk tersebut dibagi dalam k ≥ 2 disjoint set V1. Untuk beberapa masalah dari masalah-masalah ynag dapat dipandang dengan cara ini. Satu cara untuk memecahkan masalah-masalah yang mana ini tidak mungkin untuk membuat sebuah rangkaian dari langkah-langkah keputusan yang dapat dilakukan mengacu (mengarah) kepada rangkaian keputusan optimal adalah untuk mencoba semua kemungkinan rangkaian-rangkaian keputusan. Berikut ini adalah contoh sebuah graf 5 stage. Dalam merumuskan hubungan-hubungan kembali pemrograman dinamis yang harus dipecahkan.

P) real COST(n). 5. 8. integer D(n-1). n COST(n) ← 0 for j ← n-1 to 1 by -1 do let r be a vertex such that 〈 j . 11. P(k) ← n for j ← 2 to k-1 do P(j) ← D(P(j-1)) repeat end FGRAPH Logika & Algoritma RAT Halaman 87 dari 97 halaman . P(k). 6. Procedure FGRAPH(E.2 9 3 4 2 2 7 6 4 3 6 9 5 10 2 4 12 t 7 s 1 3 7 11 4 2 8 5 11 1 8 5 6 11 5 V 1 V 2 V 3 V 4 V 5 Algoritma untuk menyelesaikan masalah multistage graf. j. 9. r. 7.k. 10. r 〉 ∈ E and c( j. 12. 3.r ) + COST(r) is minimum COST(j) ← c( j. dengan pendekatan forward adalah sebagi berikut : 1. 4.n.r ) + COST(r) D(j) ← r repeat P(1) ← 1 . k. 2.

Hamilton C. Isomorfis Isograf Homomorfis Isographic 5. Bila size dari suatu graf adalah n. simpul yang bukan merupakan akar dan berderajat simpul 1 adalah : A. Pada pohon. Welch-Powell D. multigraf graf sederhana graf null graf lengkap Logika & Algoritma RAT Halaman 88 dari 97 halaman . Leonhard Euler 2. Cabang Daun Brother Level 4. Suatu bentuk graf yang terbentuk karena penambahan sejumlah vertex baru terhadap graf asal disebut : A.Contoh Soal Graf & Analisis Algoritma 1. Unary tree Binary tree Union tree Threenary Tree 6. 2n-1 B. Suatu tree yang mempunyai cabang / anak selalu 2 disebut : A. Graf yang tidak memiliki self loop atau ruas sejajar disebut : A. Orang yang dikenal sebagai bapak dari lahirnya (awal) teori graf adalah : A. 2 (n-1) 2n C. maka jumlah derajat grafnya adalah : A. 2n+1 3. Solin dan Kruskal B.

gunakan graf di bawah ini : A L K J I H B C D E F G Graf G1 10. Graf regular adalah graf yang memiliki : A. 4 dan 12 12 dan 16 11. Order dan Size dari graf G1 adalah : A. Algoritma Welch-Powell digunakan untuk mencari : A. jalur (path) lintasan ( trail) 9. 12 24 32 34 12 dan 17 16 dan 12 Logika & Algoritma RAT Halaman 89 dari 97 halaman . 10 s/d 16. Minimal Spanning Tree Aliran Maksimal Bilangan Kromatik Jalur Terpendek 8. Perjalanan (walk) yang semua simpul dalam barisan berbeda adalah A. gelung atau self-loop ruas sejajar derajat setiap simpulnya berbeda derajat setiap simpulnya sama sirkuit (cycle) diameter Untuk soal no.7. Derajat dari graf G1 adalah : A.

Pada pewarnaan graf G1.J.F 17.B.L.H. Graf G2 berikut ini. Jarak antara simpul A dan G pada graf G1 adalah : A.12. 2 3 4 5 13.K. Yang merupakan jalur (path) dalam graf G1 adalah : A.C. Graf G1 mempunyai diameter : A. simpul yang boleh menggunakan warna yang sama adalah : A.D. 2 3 4 5 4 5 16.F A. A dan L A dan B C dan H B dan H 14.K.H. mempunyai region sebanyak : A B C D E H F I K G J Graf G2 A.D A.C. 2 3 15.C.A E. Bilangan Kromatik dari graf G1 adalah : A. A. 2 Logika & Algoritma RAT 3 Halaman 90 dari 97 halaman .J.

graf kubus graf segitiga graf berbentuk pohon graf lengkap dengan 5 simpul (K5) 24. Pada graf berarah. Formula Euler untuk graf planar. Pembuatan jadwal kuliah pada suatu Perguruan Tinggi dapat diselesaikan dengan membawanya ke masalah graf.R = -2 23. yakni masalah : A. V . simetris refleksif transitif antisimetris pewarnaan graf travelling salesman 20. E banyaknya ruas dan R banyaknya region.R + E = 2 V-E+R=2 V-E+2=R V + E . Graf Lengkap juga merupakan Graf Regular Halaman 91 dari 97 halaman . dimana V adalah banyaknya simpul. Manakah dari pernyataan berikut yang paling benar ? A. jalur terpendek minimal spanning tree 19. adalah : A. Pada graf berarah. Graf Regular juga merupakan Graf Lengkap Logika & Algoritma RAT B. simpul yang mempunyai derajat kedalam = 0 disebut : A. Matriks adjasensi suatu graf bersifat : A. simpul yang mempunyai derajat keluar = 0 disebut : A. muara sumber terpencil artikulasi 21. Yang bukan merupakan graf planar adalah : A.4 5 18. muara sumber terpencil artikulasi 22.

efisiensi efektivitas terstruktur ada output 30. algoritma semi algoritma instruksi semi instruksi 27. 2 B. Jika diketahui F(x) = 20 x7 + 12 x4 + 38 merupakan fungsi waktu tempuh. yang paling benar adalah : masalah → semi algoritma → model → program → eksekusi → hasil masalah → model → algoritma → program → eksekusi → hasil masalah → algoritma → model → program → eksekusi → hasil masalah → program → algoritma → model → eksekusi → hasil 29. 4 D. Penilaian dari suatu algoritma pertama kali dilihat dari : A. Yang bukan termasuk kriteria dari suatu algoritma yang terbaik adalah : A. Graf Regular juga merupakan Graf Bipartisi C. efisiensi terstruktur berakhir prosesnya cepat 31. 3 D. Diagram alur dari proses penyelesaian masalah. 5 26. algoritma semi algoritma instruksi semi instruksi 28. Suatu prosedur yang hanya akan berhenti jika menghasilkan penyelesaian yang diharapkan disebut : A. maka Logika & Algoritma RAT Halaman 92 dari 97 halaman . Bilangan Kromatik dari graf bipartisi adalah : A. Suatu urutan dari barisan langkah-langkah guna menyelesaikan masalah disebut : A.C. Graf Bipartisi juga merupakan Graf Regular 25.

C[i.j] akhir j akhir i Algoritma diatas merupakan algoritma untuk : A.A. O(n) O(n2) O(log n) O(n3) Logika & Algoritma RAT Halaman 93 dari 97 halaman . F(x) = O(20 x7) F(x) = 20 O(x7) F(x) = O(x7 + x4) F(x) = O(x7) 32. dimana algoritma A memiliki kompleksitas O(n2). Diberikan sebuah algoritma sebagai berikut : Set A[i.j] ← A[i.j]. melakukan penjumlahan matriks melakukan perkalian matriks melakukan penjumlahan melakukan perkalian 34. B[i.j] + B[i. Bila terdapat 4 algoritma sorting (kita sebut algoritma A. dan algoritma D memiliki kompleksitas O(n). algoritma C memiliki kompleksitas O(log n). C dan D).j]. algoritma B memiliki kompleksitas O(n3). Algoritma pada soal nomor 33 mempunyai kompleksitas waktu : A. algoritma A algoritma B algoritma C algoritma D 33.j] real untuk i ← 1 s/d n kerjakan untuk j ← 1 s/d n kerjakan C[i. B. maka algoritma manakah dari keempat algoritma tersebut yang lebih baik ? A.

35. Diberikan sebuah algoritma sebagai berikut : Function RAT (n : integer) : integer If n := 1 then RAT := 1 Else RAT := n * RAT(n-1) End Function Algoritma di atas menggunakan teknik : A. Backtracking Rekursif Greedy Iteratif

36. Bila Algoritma pada soal nomor 35 berinput n = 5, maka outputnya adalah : A. 120 720 7 5040

37. Bila Algoritma pada soal nomor 35 berinput n = 5, maka pemanggilan ulang function RAT adalah : A. 1 kali 4 kali 5 kali n kali

38. Algoritma pada soal nomor 35 mempunyai kompleksitas waktu : A. O(n) O(log n) O(n2) O(n3)

39. Diberikan sebuah algoritma sebagai berikut : Set x, y, n, i, f : integer x ←1 ; y ←1 If n 〉 2 then begin for i ← 3 to n do begin Logika & Algoritma
RAT

Halaman 94 dari 97 halaman

F ←x + y x ←y y ←F end end else F ←x Write(F) End Algoritma di atas menggunakan teknik : A. Iteratif DANDC Greedy Rekursif

40. Bila Algoritma pada soal nomor 39 berinput n = 13, maka outputnya adalah : A. 55 233 89 144

41. Algoritma pada soal nomor 39 mempunyai keadaan kompleksitas waktu : A. keadaan terbaik ≠ keadaan terburuk B. keadaan terbaik = keadaan terburuk 42. Dasar dari teknik algoritma Backtracking adalah : A. searching B. merging C. divide and conquer D. sorting C. keadaan terbaik > keadaan terburuk D. keadaan terbaik < keadaan terburuk

43. Pencarian ruang solusi dengan menggunakan stack disebut juga dengan istilah : A. Depth First Search Breadth First Search Logika & Algoritma
RAT

Binary Search B. Mergesort Halaman 95 dari 97 halaman

44. Pencarian ruang solusi dengan menggunakan queue disebut juga dengan istilah : A. Depth First Search B. Breadth First Search C. Binary Search D. Mergesort

45. Solusi yang diperoleh dengan cara Depth First Search berupa tupel yang : A. berbeda secara teratur B. seragam atau sama C. sembarang D. berbeda dan tidak teratur

46. Teknik Divide AND Conquer adalah teknik yang digunakan untuk merancang sebuah algoritma dengan cara : A. memecah n input menjadi 2 subset input B. memecah n input sebanyak k input, k < n C. memecah n input sebanyak 2 input D. memecah n input menjadi k subset input, 1 < k ≤ n 47. Perhatikan procedure berikut ini : PROCEDURE STRAITMAXMIN(A,n,max,min) INTEGER i,n max ← min ← A(1) FOR i ← 2 TO n DO IF A(i) > max THEN max ← A(i) ELSE IF A(i) < min THEN min ← A(i) ENDIF REPEAT END STRAITMAXMIN Pada procedure STRAITMAXMIN di atas, akan tercapai keadaan terbaik bila : A. elemen A(1: n) disusun secara menaik B. elemen A(1: n) disusun secara menurun C. elemen A(1: n) disusun secara acak D. elemen A(1: n) disusun secara tidak naik Logika & Algoritma
RAT

Halaman 96 dari 97 halaman

Pada permainan menara HANOI.. bila banyaknya piringan adalah 5 buah.x) THEN solusi ← UNION(solusi. Pemrograman Dinamis D.48. maka banyaknya pemindahan adalah sebanyak : A... Metode Greedy . algoritma yang paling baik adalah digunakannya teknik/metode : A. Teknik BackTracking C.x) ENDIF REPEAT RETURN (solusi) END XXX Algoritma di atas adalah algoritma secara umum dari : A. Backtracking Iteratif Greedy Rekursif 50.{solusi awal} 49.. Bila diketahui sebuah prosedur sebagai berikut : PROCEDURE XXX(A. Metode DANDC B.n) solusi ← 0 FOR i ← 1 TO n DO x ← SELECT(A) IF FEASIBLE (solusi. Pada permainan menara HANOI.. 15 kali 16 kali 31 kali 32 kali Logika & Algoritma RAT Halaman 97 dari 97 halaman .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->