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

Contoh problema graf : 1. Petugas kantor telepon yang ingin mengumpulkan koin-koin dari telepon umum. Yang diharapkan → suatu rute perjalanan dengan waktu minimal. 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 . Berangkat dari kantor & kembali ke kantornya lagi.

yakni menggunakan Metode Greedy) Graf Secara Formal Sebuah Graf G mengandung 2 himpunan : (1). disebut ruas Logika & Algoritma RAT Halaman 5 dari 97 halaman . 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.2. yang merupakan pasangan tak terurut dari simpul-simpul. V. Perancangan Lampu Lalu Lintas. Himp. yang elemennya disebut simpul → Vertex / point / titik / node (2). E. Yang diharapkan → pola lampu lalu lintas dengan jumlah fase minimal. Himp.

( D. D ).V)  Order banyaknya simpul Logika & Algoritma RAT Halaman 6 dari 97 halaman . Berikut contoh penyajian Graf yang sama. B ). ( B. E ) Contoh : G ( V. C ). E ) V = { A. D } E = { ( A. B. ( B. A ). seperti dimana dan bagaimana menyajikan simpul dan ruas. tetapi disajikan berbeda. C.→ Edge / rusuk / sisi Sehingga sebuah graf dinotasikan sebagai G ( V. 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. Beberapa istilah lain dalam graf :  Berdampingan simpul U dan V disebut berdampingan bila terdapat ruas (U. ( C.

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 . E) bila : V‘ ⊂ V dan E‘ ⊂ E Apabila E‘ mengandung semua ruas di E yang kedua ujungnya di V‘ . atau yang disebut graf. e2 w 12 A e3 A Multigraf e1 A e5 e6 e4 A Subgraf G‘(V‘. Adapun contoh multigraf adalah sebagai berikut. 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.

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 .

di bawah ini adalah isomorfis. maka disebut homomorfis Contoh : kedua graf G* dan G** Logika & Algoritma G RAT G* Halaman 9 dari 97 halaman G** .E) dan G* (V*. sedemikian sehingga (u. 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.v) adalah ruas dari G jika dan hanya jika (f (u).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. dan V & Z. X & K. f : V →V * suatu fungsi satu-satu dan pada.

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

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. 1) Penghapusan Simpul . 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. Di sini akan dipakai pengertian bahwa suatu graf dikatakan graf null/hampa bila graf tersebut tidak mengandung ruas.

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).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 . 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 .A B B D C D pemendekan terhadap simpul A dan C Derajat Graf Derajat graf adalah jumlah dari derajat simpul-simpulnya. Sedangkan derajat simpul adalah banyaknya ruas yang incidence (terhubung) ke simpul tersebut.

B. C. A → Trail 3) A. bila derajat simpulnya adalah 1 • Simpul Terpencil. B. C. B. E. C. D. C. bila derajat simpulnya merupakan bilangan ganjil • Simpul Genap. D. akan dikenal beberapa istilah-istilah berikut : 1. E. A. F. C. D. sebuah simpul dapat disebut : • Simpul Ganjil. E → Walk 5) A. Walk : barisan simpul dan ruas 2. B. bila derajat simpulnya merupakan bilangan genap • Simpul Bergantung / Akhir. B. 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. D → Trail 7) A. F → Trail 6) A. D. C. Trail : Walk dengan ruas yang berbeda 3. B. C → Walk 2) A. E. D. A → Cycle 4) A. A → Cycle Logika & Algoritma RAT Halaman 15 dari 97 halaman . F. B. C. C. C. E. bila derajat simpulnya adalah 0 Keterhubungan Dalam keterhubungan sebuah graf. D. D. Path / Jalur : Walk dengan simpul yang berbeda 4.Berdasarkan derajat simpul. E. B. F. D. B.

8) C. Subgraf terhubung suatu graf disebut komponen dari G bila subgraf tersebut tidak terkandung dalam subgraf terhubung lain yang lebih besar. Kalau tidak ada Subgraf sejati R dari S. B → Cycle 10) C. C. Jarak antara 2 simpul dalam graf G adalah panjang jalur terpendek antara ke-2 simpul tersebut. Ada Subgraf S dari graf terhubung G. B. D. E. akan 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. A. yang pemindahannya juga menyebabkan G tidak terhubung. C. E. F. F → Path 9) B. maka S disebut Cut-Set dari G. C. Diameter suatu graf terhubung G adalah maksimum jarak antara simpul-simpul G. E → Trail 11) A. Logika & Algoritma RAT Halaman 16 dari 97 halaman . yang bila kita ambil / pindahkan dari G. F. C. E. B. C. D.

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.

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. 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 .

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

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 . 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) = 1 Region dengan batasnya ruas sejajar. dikenal istilah region.

Contoh : K3. Dari besar ke kecil. Bilangan kromatis dari G = K(G) adalah jumlah minimum warna yang dibutuhkan. Warnai.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. Algoritma yang dapat digunakan untuk mendapatkan bilangan kromatis dari sebuah graf adalah Algoritma Welch-Powell. G berwarna n artinya graf tersebut menggunakan n warna. 2.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. Logika & Algoritma RAT Halaman 22 dari 97 halaman . Urutkan simpul-simpul berdasarkan derajatnya. Adapun langkah-langkahnya adalah : 1.

F. 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 . H warna Biru : G. H Langkah 2 : mewarnai : warna Merah : E. A. D. B. F Sehingga bilangan kromatis graf di atas adalah 3.Contoh : Langkah 1 : urutan simpulnya dari besar ke kecil adalah : E. D. G. B. A warna Putih : C. C.

Buatlah tanpa adanya ruas baru yang berpotongan. jutaan kasus. Gambarkan sebuah simpul baru pada masing-masing region suatu map M.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. Teorema : suatu map M adalah berwarna 5 Setiap graf planar adalah berwarna (simpul) 4 Dibuktikan oleh Apple & Haken (1976) – 2000 Graf. yang disebut dual dari map M. Setelah Dualnya terbentuk. maka akan terbentuk suatu map M*. kemudian buat sebuah ruas yang menghubungkan simpul pada 2 buah region yang berdampingan bila terdapat ruas sebagai batas / persekutuan kedua region tersebut. sehingga warna yang digunakan untuk suatu simpul berarti warna yang dapat digunakan untuk pewarnaan region yang diwakilinya. Simpul-simpul tersebut mewakili region sebelumnya. Logika & Algoritma RAT Halaman 24 dari 97 halaman . dapar dilakukan pewarnaan terhadap simpul-simpulnya.

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 hanya satu Logika & Algoritma RAT Halaman 25 dari 97 halaman . • Sirkuit atau cycle adalah suatu lintasan tertutup dengan derajat setiap simpul dua. Contoh : Sifat : Suatu Graf G adalah Pohon jika dan hanya jika terdapat satu jalur diantara setiap pasang simpul dari Graf G.

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. atau G tidak mengandung sirkuit dan mempunyai n-1 buah ruas. 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 .

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

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

2. 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. ∴ Pohon adalah hutan yang terhubung Contoh : Logika & Algoritma RAT Halaman 29 dari 97 halaman .KRUSKAL 1. dengan ketentuan bahwa penambahan ruas tersebut tidak menyebabkan adanya sirkuit. PRIM’S = Kruskal + menjaga graf tetap terhubung Untuk mencari pohon rentangan maksimal. dari kecil ke besar. Urutkan ruas dari G menurut bobotnya.

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. yang berderajat satu disebut daun. Simpul bukan akar. mendahului e. Dikatakan u mendahului langsung v bila u mendahului v serta simpul u dan v berdampingan.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. 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. Logika & Algoritma RAT Halaman 30 dari 97 halaman . Berikut ini contoh pohon berakar. dan mendahului h. Panjang jalur antara r dengan simpul v disebut level atau kedalaman simpul v. Jalur antara suatu simpul dengan suatu daun disebut cabang (branch). Simpul u dikatakan mendahului simpul v jika jalur dari akar r ke v melalui u. Pada contoh di atas. yang bermula dari akar tersebut.

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

Disini kalimat dibagi-bagi berdasar jenis dan fungsi kata. atau telah benar tata bahasanya. kita lihat terlebih dahulu sebuah kalimat sehari-hari dalam bahasa Indonesia.A B C D E F G H I J K Pohon Sintaks Untuk menjelaskan mengenai bahasa secara teoritis dan formal. 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. Dari pelajaran bahasa Indonesia kita tahu bahwa kalimat di atas telah benar susunannya. yang disebut pohon sintaks dari kalimat.

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 .

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

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

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

Algoritma Jalur Terpendek Pandang D suatu graf berarah yang hingga dengan tiap-taip arc mempunyai bobot.D(V. Gambar berikut merupakan suatu network. Kita hendak menentukan Jalur Terpendek antara 2 simpul u dan v.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. Logika & Algoritma RAT Halaman 37 dari 97 halaman . Kita ingin menghitung jalur terpendek dari simpul u ke simpul v. maka elemen baris ke i kolom ke j dari Matriks Mn menyatakan banyaknya walk dengan panjang n dari simpul vi ke simpul vj. Jadi D merupakan suatu network.

dalam hal ini z (uz =2). Beri harga = 0. Hasil langkah tersebut dapat dilihat pada tabel berikut ini : Logika & Algoritma RAT Halaman 38 dari 97 halaman . dengan tiap kolom mewakili simpul yang ada. kita tandai *. Semua arc lain. Beri harga = 2 pada kolom z. Kemudian pada judul kolom yang telah diberi harga. yang berakhir di z kita hapus. dan kita isikan data jarak dari satu simpul ke simpul lainnya sesuai dengan kolom yang ada. 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. kemudian tandai uz. kita gunakan cara berikut : • Buat table jarak. • Kita mulai dengan simpul u sebagai simpul awal.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. Usahakan diurut dari yang kecil ke besar.

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

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 . Contoh : Untuk menyelesaikan problema aliran maksimal ini dapat digunakan beberapa cara. Dalam hal ini ditetapkan bahwa simpul perantara tidak dapat menyimpan barang.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. 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 .

z) : S x A → S. S. disebut fungsi next-state Seubuah fungsi g : S x A → Z disebut fungsi output INPUT : OUTPUT : Untai Untai M ( A. berisi simbol input Himpunan hingga S. yang didefinisikan sebagai : f (qo.b) = (q0. f. b) = q1 f (q2. a) = q2 f (q2. f. q0. a) = z g (q0. a) = x g (q2. g) Contoh : (1) (2) (3) (4) A S Z f M ( A. Z. a) = q1 f (q1. Z. q2) = ( x. b) = q1 g : S x A → Z. f. g) dengan : = (a. b) = q2 f (q1. S. a) = x g (q1. q1. g) M (A. b)= z g (q2. S.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. berisi simbol output Sebuah fungsi f : S x A → S. a) = qo (5) f (q0. b)= y g (q1. berisi internal state Himpunan hingga Z. Z. b)= y Logika & Algoritma RAT Halaman 44 dari 97 halaman . y. yang didefinisikan sebagai : g (q0.

S. berisi internal state Himpunan T (dimana T ⊂ S).Automata Hingga Automata Hingga merupakan suatu struktur abstrak yang didefinisikan terdiri atas : (1) Himpunan hingga A. S. b } S = { q0. anggota S Fungsi next-state f : S x A →S INPUT OUTPUT : Untai : Diterima atau ditolak M (A. elemennya disebut state penerima State awal (biasanya q0). q2 } T = { qo. T. q1 } State awal = q0 (5) Fungsi next-state f : S x A → S. q1. berisi simbul input (2) (3) (4) (5) ⇒ Himpunan hingga S. f) Contoh : M (A. 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 . f) dengan : (1) (2) (3) (4) A = { a. qo. qo. T.

diagram alur. bisa terjadi terdapat lebih dari satu algoritma. bahasa semu Sedangkan secara bahasa. 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 . 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. Dari suatu permasalahan yang akan diselesaikan. algoritma berarti suatu metode khusus untuk menyelesaikan suatu masalah yang nyata (dari Webster Dictionary). Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi untuk menyelesaikan suatu masalah Adapun algoritma dapat dinyatakan dalam bentuk : flow chart. Dalam memilih algoritma yang terbaik yang dapat digunakan.

4. 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. C Logika & Algoritma RAT Halaman 47 dari 97 halaman . 2. dibuat dalam bahasa pemrograman yang terstruktur. 5.MASALAH ? MODEL ALGORITMA PROGRAM DATA EKSEKUSI HASIL / SOLUSI Studi Tentang Algoritma Hal-hal yang akan dipelajari mengenai studi algoritma yaitu : 1. 3. misalnya Pascal.

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. maka faktor yang sangat diperhitungkan adalah faktor efisiensi. 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 . yang meliputi : a.Validitas algoritma : Memenuhi kebutuhan yang diinginkan. 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. banyaknya langkah besar dan jenis input data jenis operasi jenis komputer dan kompilator Jumlah memori yang dipakai Dalam hal menganalisis algoritma. dikenal istilah kompleksitas. Waktu tempuh (running time) • • • • b.

. 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.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 . Teorema : Jika f(n) = am nm + am-1 nm-1 + .Beberapa definisi kompleksitas: 1. yang paling banyak digunakan untuk menganalisis algoritma adalah definisi 1 (Big Oh). . f(n) = Ο (g(n)) ⇔ ∃ dua konstanta positif c dan n0 ∋  f(n) ≤ c g(n) ∀ n ≥ n0 2. f(n) = Ω (g(n)) ⇔ ∃ konstanta positif c dan n0 ∋  f(n) ≥ c g(n) ∀ n 〉 n0 3.+ a1 n + a0 adalah polinomial tingkat m. ∀ 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 c1.

3.j].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. B[i. 5.j] ← A[i. akhir i akhir j Set A[i.j].j] + B[i. C[i.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] real Untuk i ← 1 s/d m kerjakan untuk j ← 1 s/d n kerjakan C[i. 2. 6. 4.

4. 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. 5. 3. c. b. Set k:= 1 . 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 .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. 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. 2.

1/n + 2 . n/2 . 1/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 . . + n ) . 1/n = ( 1 + 2 + 3 + . 1/n = (n + 1)/2 = 1/2 n + 1/2 = Ο (n) Logika & Algoritma RAT Halaman 52 dari 97 halaman . maka probabilitas masing-masing elemen adalah 1/n ⇒ F(n) = 1 . . 1/n = (n + 1) . 1/n + 3 . .

5.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. 8. 1. 2. . 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. . 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. . Logika & Algoritma RAT Halaman 53 dari 97 halaman . 3. 21. maka : FAK=1. 13.

6. y=1. y. 9. 4. end else 8. adalah sebagai berikut : 1. 7. 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 . 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. 5. i. End Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5. 3. maka : x=1.Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci. 2. f : integer x ←1 . n.

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

adalah sebagai berikut : Procedure F(n : integer) : integer 1.Teknik Rekursif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci. 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.

dengan ketentuan bahwa pemindahan piringan dilakukan satu per satu dan piringan yang lebih besar tidak boleh diletakan di atas piringan yang lebih kecil. untuk menyelesaikan n buah piringan diperlukan pemindahan sebanyak 2n –1 kali. akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya. pada saat itu juga dunia kiamat. Bayangkan jika untuk setiap pemindahan memerlukan waktu 1 detik. Ini menurut legenda. Aturan permainannya adalah semua piringan pada tonggak A akan dipindahkan ke tonggak C (dapat dengan melewati tonggak bantuan B). Dalam permainan ini. Secara umum. sehingga permainan ini disebut Menara Hanoi. dengan diperbolehkan menggunakan (melewati) sebuah tonggak bantuan. 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. Berdasarkan legenda.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. maka berapa waktu yang diperlukan untuk menyelesaikan 64 buah piringan. yang mungkin juga benar. Logika & Algoritma RAT Halaman 57 dari 97 halaman .

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

Tac .Queens Problem Sum of Subsets Graph Coloring Hamilton Cycles Knapsack Problem Tic . … . … . … . x(1:n) FOR setiap x(k) sedemikian sehingga x(k) ∈ T(x(1). Logika & Algoritma RAT Halaman 59 dari 97 halaman . x(k-1)) AND Bk(x(1).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. x(k)) adalah sebuah jalur (path) yang merupakan solusi THEN PRINT (x(1).END BACKTRACK Sedangkan bentuk rekursifnya adalah sebagai berikut : PROCEDURE RBACKTRACK(k) GLOBAL n. … .Queens Problem The 4 . x(k)) ENDIF CALL RBACKTRACK(k + 1) END RBACKTRACK Contoh Pemakaian Teknik Backtracking : • • • • • • • • The 8 . Kombinasi yang diinginkan yaitu kombinasi yang jumlah seluruh elemennya sama dengan M (tertentu). x(k)) = TRUE IF (x(1).

Terdapat 2 jenis pohon pencarian. Misalkan banyaknya bilangan real tersebut adalah 4 (n=4). yakni Breadth First Search (BFS) yang menggunakan queue dan Depth First Search (DFS) yang menggunakan stack. 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 . perhatikan terlebih dahulu penyajian permasalahan dan penyelesaiannya dalam bentuk pohon.Sebelum kita selesaikan masalah tersebut dengan menggunakan teknik backtracking. Berikut penggambaran kedua jenis pohon tersebut.

r) GLOBAL INTEGER M.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.k. Untuk mendapatkan solusi yang optimal dari ruang penyelesaian digunakan suatu algoritma lain. PROCEDURE SUMOFSUB(s. yang selanjutnya disebut dengan algoritma SUMOFSUB. j ← 1 TO k) ELSE IF s + W(k) + W(k+1) ≤ M THEN Logika & Algoritma RAT Halaman 61 dari 97 halaman .j X(k) = 1 IF s + W(k) = M THEN PRINT (X(j). merupakan tahapan pertama dalam proses mendapatkan solusi sesungguhnya (solusi optimal).n GLOBAL REAL W(1:n) GLOBAL BOOLEAN X(1:n) REAL r. INTEGER k.s. Algoritma tersebut menggunakan teknik backtracking.

yakni {5.4.4.4.3.5. 10.3.4. k+1.W(k) ≥ M AND s + W(k) ≤ M THEN X(k) 0 CALL SUMOFSUB(s.73 5.1.CALL SUMOFSUB(s+W(k).18 Bagian dari state space tree dengan SUMOFSUB C Logika & Algoritma RAT Halaman 62 dari 97 halaman .46 12.3.6.5.33 B 5.4. 12. 18} yang disusun secara tidak turun. B dan C yang merupakan outputnya dalam bentuk tuple 0.33 12.5. 13.4. Perhatikan simpul A.5.46 15. r-W(k)) ENDIF END SUMOFSUB Contoh : Suatu himpunan terdiri dari 6 bilangan.33 0.68 15.46 17.46 5.46 15.4.2. yang jumlah seluruh elemennya adalah 30.18 13.58 27.46 0.33 A 20.58 5.58 10.58 0.3.68 0.33 10.18 12.6.33 13. Akan ditentukan himpunan-himpunan bagiannya.6.46 10.5. r-W(k)) ENDIF ENDIF IF s + r . k+1.2. 15.5.

Logika & Algoritma RAT Halaman 63 dari 97 halaman .

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

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

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

hmin) fmax ← MAX(gmax. -8. 31.hmax) fmin ← MIN(gmin. 13. 17. 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.j. yang direpresentasikan oleh T(n) adalah : T(  n/2  ) +T(  n/2  ) + 2 Logika & Algoritma RAT .n>2 Halaman 67 dari 97 halaman .CALL MAXMIN(mid+1. -5. 15.hmin) ENDCASE END MAXMIN Contoh : A = { 22. 60.hmax.

.T(n) { 1 0 . = 2k-1 T(2) + 2k-1 + 2k-2 + … + 23 + 22 + 2 = 2k-1 +2k . 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 .n=2 .2 Jadi T(n) = Ο (n) Logika & Algoritma RAT Halaman 68 dari 97 halaman . .n=1 untuk n ≈ power value dari 2 = 2k dan k integer positif.2 = 3n/2 .

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

i ← low WHILE h ≤ mid AND j ≤ high DO IF A(h) ≤ A(j) THEN B(i) ← A(h). 254. 351.high) INTEGER h. i ← i+1 REPEAT ELSE FOR k ← h TO mid DO B(i) ← A(k).low.PROCEDURE MERGE(low. h ← h+1 ELSE B(i) ← A(j).high GLOBAL A(low:high). 450. 423.mid. LOCAL B(low:high) h ← low. j ← mid + 1.j. 861. j ← j+1 ENDIF i ← i+1 REPEAT IF h > mid THEN FOR k ← j TO high DO B(i) ← A(k). 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. 179. 652.mid. 520 } Logika & Algoritma RAT Halaman 70 dari 97 halaman .k.I. 285.

6 7.10 1.7.Representasi di dalam tree dari CALL MERGESORT sbb : 1.4 5.1 2.7 1.4.6.5 6.10 1.10 1.9 10.3 4.5 6.2 6.10 1.10 T(n) = Ο (n 2log n) Logika & Algoritma RAT Halaman 71 dari 97 halaman .10 1.3 4.5 6.8.9.1.3.3 4.7 8.8 9.10 1.8 9.5.2 3.8 9.2 6.5 6.5 6.2.7 Representasi di dalam tree dari CALL MERGE sbb : 1.

q) IF p < q THEN j ← q+1 CALL PARTITION(p. GLOBAL A(m-1. 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.i.p) INTEGER m. 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) V ← A(m).A(p)) ELSE EXIT REPEAT A(m) ← A(p). yaitu prosedur PARTITION dan prosedur QUICKSORT.j) CALL QUICKSORT(p.q) ENDIF END QUICKSORT PROCEDURE PARTITION(m.j-1) CALL QUICKSORT(j+1.Quick Sort Algoritma Quick Sort terdiri dari dua prosedur. PROCEDURE QUICKSORT(p.

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 .

. 0 ≤ i ≤ n-1 Sebuah solusi yang optimal adalah himpunan Z = {z0.... Logika & Algoritma RAT Halaman 74 dari 97 halaman .. Setiap benda tersebut diberikan nilai profit yang dinotasikan dengan P = {p0. 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. dan dengan kendala bahwa total bobot dari benda-benda yang dimasukkan ke dalam knapsack tidak melebihi M...... wi 〉 0 . pi 〉 0 . Secara matematis.z1.wn-1}.p1...pn-1}. Jika kita diperbolehkan memasukkan zi bagian dari benda ai yang ada ke dalam knapsack dimana 0 ≤ zi ≤ 1 .Pertemuan ke-12 Metode Greedy Masalah Knapsack Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum M dan sehimpunan benda A = {a0.an-1} yang berbobot W = {w0.w1... maka kita dapatkan profit sebesar zi pi untuk benda ai tersebut.zn-1} yang memaksimalkan nilai Q dan memenuhi kendala-kendala yang ada.a1. 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 ...

Contoh : Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum 15 Kg dan sehimpunan benda A = {a 0. Dengan kata lain : p0/ w0 ≥ p1 / w1 ≥ . Z(n-1) = 0} Halaman 75 dari 97 halaman .z2.4}.135. Sebelum procedure tersebut digunakan.. .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. maka tentukanlah Z = {z0. benda-benda harus diurutkan rasio pi/wi -nya tidak menaik. .a3} yang berbobot (dalam Kg) W = {5.n. Z ←0 cu ← M for i ← 0 to n-1 do if W(i) 〉 cu then exit endif Z(i) ← 1 cu ← cu . . .W.n) real P(0:n-1). Procedure tersebut disebut procedure GREEDY_KNAPSACK. Jika kita diperbolehkan memasukkan zi bagian dari benda ai yang ada ke dalam knapsack dimana 0 ≤ zi ≤ 1 . integer i.Z.Z(0:n-1).a2.2.z1.M.26. Z(1).20}.W(0:n-1).cu..9.W(i) repeat Logika & Algoritma RAT {n = banyak benda} { Z(0). Setiap benda tersebut diberikan nilai profit P = {100.a1. ≥ pn-1 / wn-1 Adapun procedure GREEDY_KNAPSACK adalah sebagai berikut : procedure GREEDY_KNAPSACK(P.

W = { 5.9 = 1 keluar dari loop (exit) Halaman 76 dari 97 halaman .5 = 10 yaitu : 9 〈 10 berarti : Z(1) ← 1 cu ← 10 .9.135.5 x 26 + 0 x 20 = 100 + 135 + 13 + 0 = 248 Analisis : Kompleksitas waktu dari algoritma Greedy_Knapsack ini adalah O(n). 1. 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.20 }.5 Jadi optimisasi masalah knapsack diperoleh bila Z = { 1.5. Tetapi jika data yang digunakan belum terurut rasio pi/wi -nya tidak menaik.26. P = { 100. 0. M = 15.4 }.2. dimana n = 4. maka diperlukan kompleksitas waktu sebesar O(n log n) untuk mengurutkan Logika & Algoritma RAT yaitu : 5 〈 15 berarti : Z(0) ← 1 cu ← 15 . 0 } Sehingga Q = 1 x 100 + 1 x 135 + 0.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.

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

5 } Sehingga Q = 0 x 25 + 1 x 24 + 0.Sekarang kita sudah dapat menggunakan procedure GREEDY_KNAPSACK untuk menyelesaikan masalah tersebut.5 Jadi optimisasi masalah knapsack diperoleh bila Z = { 0.5 Logika & Algoritma RAT Halaman 78 dari 97 halaman .5 Jadi diperoleh : Z(0) = 1 .5 x 15 = 0 + 24 + 7. 0. yakni : berarti : keluar dari loop yaitu : 15 〈 20 berarti : Z(0) ← 1 cu ← 20 .5 . 1. Z(1) = 0.15 = 5 urutan ke(yang saat ini) 2 0 1 urutan ke(yang semula) 0 1 2 Z(i) 0 1 0. 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 = 31. Z(2) = 0 Sekarang urutannya kita kembalikan seperti semula.

T(1:n-1.j.1).l) < COST(i. 2. Setiap graf tidak dapat ditentukan pohon rentangan minimalnya.2)) ← (k. PROCEDURE PRIM(E. 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.COST.l) FOR i ← 1 TO n DO IF COST (i. Adapun graf yang dapat kita tentukan pohon rentangan minimalnya adalah graf yang memenuhi ketiga syarat berikut : 1.T(1.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. Dalam pembahasan ini.mincost INTEGER NEAR(n).n.k.n.l) (T(1. Berikut ini akan disajikan langkah-langkah penyelesaian masalah pohon rentangan minimal dengan menggunakan algoritma PRIM’S.mincost) REAL COST(n.2) (k.k) THEN NEAR (i) ←l Logika & Algoritma RAT Halaman 79 dari 97 halaman . algoritma yang akan dipakai adalah algoritma PRIM’S.l) ← ruas dengan biaya atau bobot yang minimum mincost ← COST(k.T.i.l.n). 3.

serta pohon yang membentuk pohon rentangan minimal tersebut.NEAR(j)) mincost ← mincost + COST(j.NEAR(j)) adalah minimum (T(i. 1 30 4 10 45 2 40 35 50 3 25 20 6 55 5 15 Logika & Algoritma RAT Halaman 80 dari 97 halaman .2)) ← (j.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.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.NEAR(j)) NEAR(j) ← 0 FOR k ← 1 TO n DO IF NEAR(k) ≠ 0 AND COST(k.T(i.1).NEAR(k)) > COST(k.

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

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

4) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=4 NEAR(4) ≠ 0 dan COST(4.4) … ? 0 ≠ 0 dan ~ > 30 … → FALSE dan TRUE → FALSE k=2 NEAR(2) ≠ 0 dan COST(2.3) … ? 6 ≠ 0 dan 20 > ~ … → TRUE dan FALSE → FALSE k=5 NEAR(5) ≠ 0 dan COST(5.T(4.NEAR(3)) > COST(3.3) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=4 NEAR(4) ≠ 0 dan COST(4.6) mincost ← 50 + COST(4.NEAR(4)) > COST(4.0 ≠ 0 dan ~ > 50 … → FALSE dan TRUE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.6) = 50 + 20 = 70 NEAR(4) ← 0 k=1 NEAR(1) ≠ 0 dan COST(1.4) … ? Logika & Algoritma RAT Halaman 83 dari 97 halaman .NEAR(2)) > COST(2.NEAR(6)) > COST(6.NEAR(4)) adalah minimum (T(4.NEAR(5)) > COST(5.2)) ← (4.NEAR(1)) > COST(1.NEAR(4)) > COST(4.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.3) … ? 2 ≠ 0 dan 40 > 35 … → TRUE dan TRUE → TRUE : NEAR(5) = 3 k=6 NEAR(6) ≠ 0 dan COST(6.4) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.1).

1).3) mincost ← 70 + COST(5.5) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=5 NEAR(5) ≠ 0 dan COST(5.NEAR(3)) > COST(3.5) … ? 0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=6 NEAR(6) ≠ 0 dan COST(6.3) = 70 + 35 = 105 NEAR(5) ← 0 k=1 NEAR(1) ≠ 0 dan COST(1.5) … ? 0 ≠ 0 dan ~ > 40 … → FALSE dan TRUE → FALSE k=3 NEAR(3) ≠ 0 dan COST(3.5) … ? 0 ≠ 0 dan ~ > 35 … → FALSE dan TRUE → FALSE k=4 NEAR(4) ≠ 0 dan COST(4.5) … ? 0 ≠ 0 dan ~ > 45 … → FALSE dan TRUE → FALSE k=2 NEAR(2) ≠ 0 dan COST(2.NEAR(5)) adalah minimum (T(5.NEAR(1)) > COST(1.NEAR(4)) > COST(4.5) … ? Logika & Algoritma RAT Halaman 84 dari 97 halaman .2)) ← (5.NEAR(6)) > COST(6.T(5.4) … ? 3 ≠ 0 dan 35 > ~ … → TRUE dan FALSE → FALSE k=6 NEAR(6) ≠ 0 dan COST(6.NEAR(5)) > COST(5.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(5)) > COST(5.0 ≠ 0 dan ~ > ~ … → FALSE dan FALSE → FALSE k=5 NEAR(5) ≠ 0 dan COST(5.NEAR(6)) > COST(6.

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. Berikut ini adalah contoh sebuah graf 5 stage. 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. Dalam merumuskan hubungan-hubungan kembali pemrograman dinamis yang harus dipecahkan. rangkaian optimal dari keputusan-keputusan mungkin dapat ditemukan dengan membuat satu dari keputusan-keputusan pada satu waktu dan jangan pernah membuat keputusan yang keliru. Pemrograman Dinamis seringkali secara drastic (spontan) mengurangi jumlah pembilangan dengan menghindari pembilangan dari beberapa rangkaian keputusan yang tidak memungkinkan menjadi optimal.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. Multistage Graf Sebuah multistage graf adalah sebuah graf berarah dimana bentuk tersebut dibagi dalam k ≥ 2 disjoint set V1. Logika & Algoritma RAT Halaman 86 dari 97 halaman . Untuk beberapa masalah dari masalah-masalah ynag dapat dipandang dengan cara ini.

P(k).r ) + COST(r) D(j) ← r repeat P(1) ← 1 . k.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.r ) + COST(r) is minimum COST(j) ← c( j. 10. r. 2.n. 6. 7.P) real COST(n). 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 . 12. 11. 4. n COST(n) ← 0 for j ← n-1 to 1 by -1 do let r be a vertex such that 〈 j . 8. 5. Procedure FGRAPH(E. dengan pendekatan forward adalah sebagi berikut : 1.k. 3. 9. integer D(n-1). r 〉 ∈ E and c( j. j.

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful