Lecture Note Logika & Algoritma. Jurusan Manajemen Informatika Fakultas Ilmu Komputer & Teknologi Informasi Universitas Gunadarma

Ukuran: px
Mulai penontonan dengan halaman:

Download "Lecture Note Logika & Algoritma. Jurusan Manajemen Informatika Fakultas Ilmu Komputer & Teknologi Informasi Universitas Gunadarma"

Transkripsi

1 Lecture Note Jurusan Manajemen Informatika Fakultas Ilmu Komputer & Teknologi Informasi Universitas Gunadarma

2 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 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 : A Sungai Pregel di Kalilingrad (Uni Soviet) C D B 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 Halaman 2 dari 99 halaman

3 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 Halaman 3 dari 99 halaman

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

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

6 Edge / rusuk / sisi Sehingga sebuah graf dinotasikan sebagai G ( V, E ) Contoh : G ( V, E ) V = { A, B, C, D } E = { ( A, B ), ( B, C ), ( C, D ), ( D, A ), ( B, D ) } Secara Geometri : A e1 e2 e5 B e3 D C e4 terdiri dari 4 simpul dan 5 ruas Tidak ada ketentuan khusus dalam penyajian graf secara geometri, seperti dimana dan bagaimana menyajikan simpul dan ruas. Berikut contoh penyajian Graf yang sama, tetapi disajikan berbeda. A A D B D A B D B C C C Halaman 6 dari 99 halaman

7 Beberapa istilah lain dalam graf : Berdampingan simpul U dan V disebut berdampingan bila terdapat ruas (U,V) Order banyaknya simpul 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. Sedangkan graf yang tidak mengandung ruas sejajar atau gelung dikenal sebagai graf sederhana, atau yang disebut graf. Adapun contoh multigraf adalah sebagai berikut. e2 A e3 A e1 e4 Multigraf A e5 e6 A Subgraf G (V, E ) adalah Subgraf dari G (V, E) bila : V V dan E E Apabila E mengandung semua ruas di E yang kedua ujungnya di V, maka G adalah Subgraf yang dibentuk oleh V (Spanning Subgraph) Halaman 7 dari 99 halaman

8 Contoh : G : A e2 B e1 e5 e3 G : D e4 C G : A B A e2 B e1 e5 e1 e5 D G subgraf dari G D 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 D 12 F A H 4 19 C 13 E 3 G Halaman 8 dari 99 halaman

9 Isomorfisma G (V,E) dan G* (V*,E*) adalah 2 buah Graf. f : V V * suatu fungsi satu-satu dan pada, sedemikian sehingga (u,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, X & K, F & T, dan V & Z, di bawah ini adalah isomorfis. Homomorfis Jika G* dan G** diperoleh dari G dengan membagi beberapa ruas dari G oleh penambahan beberapa simpul pada ruas tersebut, maka kedua graf G* dan G** disebut homomorfis Halaman 9 dari 99 halaman

10 Contoh : G G* G** Operasi pada Graf Berdasarkan definisi graf (yang terdiri dari 2 himpunan) dan operasi pada himpunan, maka pada graf juga dapat dilakukan operasi-operasi. Bila diketahui 2 buah graf : G1(V1,E1) dan G2(V2,E2), maka : 1. Gabungan G1 G2 adalah graf dengan himpunan V nya = V1 V2 dan himpunan E nya = E1 E2 2. Irisan G1 G2 adalah graf dengan himpunan V nya = V1 V2 dan himpunan E nya = E1 E2 3. Selisih G1 - 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 - G2) (G2 - G1) Halaman 10 dari 99 halaman

11 Contoh : G1 G2 A e4 e1 e5 e6 e8 E e7 B e2 A e4 e1 B e2 D e3 C D e10 e3 e9 C G1 G2 A e1 B e5 e6 e4 e2 e8 E e7 D e3 C e10 e9 F G1 G2 A e1 B e4 e2 D e3 C A G1 G2 e5 e6 B e8 E e7 D e10 e9 C A G1 - G2 B G2 G1 e5 e6 e8 E e7 D e10 e9 C D C Halaman 11 dari 99 halaman

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

13 Notasinya : G {V} Contoh : V1 V2 V5 V1 V5 V4 V3 V7 V6 V4 V3 V7 V6 Penghapusan Simpul V2 2) Penghapusan Ruas. Notasinya : G {e} Contoh : e1 e1 e2 e3 e4 e2 e4 e5 e5 Penghapusan Ruas e3 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 : Halaman 13 dari 99 halaman

14 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. 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 99 halaman

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

16 9) B, D, C, B Cycle 10) C, A, B, C, D, E, C, F, E Trail 11) A, B, C, E, F, C, 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. Subgraf terhubung suatu graf disebut komponen dari G bila subgraf tersebut tidak terkandung dalam subgraf terhubung lain yang lebih besar. Jarak antara 2 simpul dalam graf G adalah panjang jalur terpendek antara ke-2 simpul tersebut. Diameter suatu graf terhubung G adalah maksimum jarak antara simpul-simpul G. Ada Subgraf S dari graf terhubung G, yang bila kita ambil / pindahkan dari G, akan menyebabkan G tidak terhubung. Kalau tidak ada Subgraf sejati R dari S, yang pemindahannya juga menyebabkan G tidak terhubung, maka S disebut Cut-Set dari G. Graf Regular Sebuah graf dikatakan graf regular bila derajat setiap simpulnya sama. Halaman 16 dari 99 halaman

17 Contoh : Halaman 17 dari 99 halaman

18 Halaman 18 dari 99 halaman

19 Halaman 19 dari 99 halaman

20 Halaman 20 dari 99 halaman

21 Pertemuan ke-2 Teori Dasar Graf (Lanjutan) Matriks dan Graf Untuk menyelesaikan suatu permasalahan model graf dengan bantuan komputer, maka graf tersebut disajikan dalam bentuk matriks. Matriks-matriks yang dapat menyajikan model graf tersebut antara lain : Matriks Ruas Matriks Adjacency Matriks Incidence Sebagai contoh, untuk graf seperti di bawah ini : e5 V1 e4 V4 e8 V5 e1 e2 e6 e7 V2 e3 V3 Maka, Matriks Ruas : n x Halaman 21 dari 99 halaman

22 Atau : 2 x n Matriks Adjacency : V1 V2 V3 V4 V5 V V V V V Matriks Incidence : e1 e2 e3 e4 e5 e6 e7 e8 V V V V V 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 Halaman 22 dari 99 halaman

23 Graf yang termasuk planar antara lain : Tree / Pohon Kubus Bidang Empat Bidang Delapan Beraturan Tree / Pohon Kubus Bidang Empat Bidang Delapan Beraturan Halaman 23 dari 99 halaman

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

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

26 Contoh : A B C D E F G H Langkah 1 : urutan simpulnya dari besar ke kecil adalah : E, C, G, A, B, D, F, H Langkah 2 : mewarnai : warna Merah : E, A warna Putih : C, D, H warna Biru : G, B, F Sehingga bilangan kromatis graf di atas adalah 3. Teorema : Pernyataan berikut adalah ekivalen : (1) G berwarna 2 (2) G adalah bipartisi (3) Setiap sirkuit dalam G mempunyai panjang genap Graf Lengkap k dengan n simpul membutuhkan n warna Halaman 26 dari 99 halaman

27 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. Gambarkan sebuah simpul baru pada masing-masing region 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. Buatlah tanpa adanya ruas baru yang berpotongan, maka akan terbentuk suatu map M*, yang disebut dual dari map M. Setelah Dualnya terbentuk, dapar dilakukan pewarnaan terhadap simpul-simpulnya. Simpul-simpul tersebut mewakili region sebelumnya, sehingga warna yang digunakan untuk suatu simpul berarti warna yang dapat digunakan untuk pewarnaan region yang diwakilinya. Teorema : suatu map M adalah berwarna 5 Setiap graf planar adalah berwarna (simpul) 4 Dibuktikan oleh Apple & Haken (1976) 2000 Graf, jutaan kasus. Halaman 27 dari 99 halaman

28 Pertemuan ke-3 Pohon (Tree) Pohon Tree atau pohon adalah graf terhubung yang tidak mengandung sirkuit. 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. Sirkuit atau cycle adalah suatu lintasan tertutup dengan derajat setiap simpul dua. Contoh : Sifat : Halaman 28 dari 99 halaman

29 Suatu Graf G adalah Pohon jika dan hanya jika terdapat satu dan hanya satu jalur diantara setiap pasang simpul dari Graf G. Teorema : Suatu Graf G dengan n buah simpul adalah Pohon jika : (1) G terhubung dan tak mengandung sirkuit, atau (2) G tidak mengandung sirkuit dan mempunyai n-1 buah ruas, atau (3) 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, dan merupakan suatu pohon. GRAF G n simpul m ruas SPANNING TREE n simpul n 1 ruas BRANCH (CABANG) Contoh : m ( n 1) CHORD Keterangan Branch Chord Contoh : Halaman 29 dari 99 halaman

30 Graf G : Pohon Rentangan dari Graf G : Halaman 30 dari 99 halaman

31 Pohon Rentangan Minimal Apabila G suatu Graf berbobot (Suatu Network); maka pohon rentangan minimal dari graf adalah pohon rentangan dengan jumlah bobot terkecil. Minimal spanning tree Contoh : Untuk mendapatkan pohon rentangan minimal dapat digunakan Algoritma berikut : Solin Kruskal Prim s SOLIN 1. Urutkan ruas dari G menurut bobotnya; dari besar ke kecil. 2. Lakukan penghapusan ruas berdasarkan urutan yang sudah dilakukan; dengan ketentuan bahwa penghapusan ruas tersebut tidak menyebabkan graf menjadi tidak terhubung. Halaman 31 dari 99 halaman

32 KRUSKAL 1. Urutkan ruas dari G menurut bobotnya; dari kecil ke besar. 2. Lakukan penambahan ruas berdasarkan urutan yang sudah dilakukan; dengan ketentuan bahwa penambahan ruas tersebut tidak menyebabkan adanya sirkuit. PRIM S = Kruskal + menjaga graf tetap terhubung Untuk mencari pohon rentangan maksimal, 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 : Halaman 32 dari 99 halaman

33 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. Seperti diketahui bahwa hanya terdapat satu jalur antara r dengan simpul lain v pada pohon pohon tersebut. Panjang jalur antara r dengan simpul v disebut level atau kedalaman simpul v. Simpul bukan akar, yang berderajat satu disebut daun. Jalur antara suatu simpul dengan suatu daun disebut cabang (branch). Berikut ini contoh pohon berakar. 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. Dengan adanya akar, setiap ruas dari pohon seolah-olah mempunyai arah, yang bermula dari akar tersebut. Simpul u dikatakan mendahului simpul v jika jalur dari akar r ke v melalui u. Dikatakan u mendahului langsung v bila u Halaman 33 dari 99 halaman

34 mendahului v serta simpul u dan v berdampingan. Pada contoh di atas, a mendahului d, mendahului e, dan mendahului h. Suatu pohon berakar dapat digunakan untuk menelusurisemua kemungkinan dari kejadian, 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). Pohon Binar Dalam struktur data, pohon memegang peranan yang cukup penting. Struktur ini biasanya digunakan terutama untuk menyajikan data yang mengandung hubungan hirarkikal antara elemen-elemen mereka. Bentuk pohon khusus yang lebih mudah dikelola dalam komputer adalah pohon binary. Bentuk ini merupakan bentuk pohon yang umum. Sebuah pohon binar T didefinisikan terdiri dari sebuah himpunan hingga elemen yang disebut simpul (node), sedemikian sehingga : a. T adalah hampa (disebut pohon null) atau b. T mengandung simpul R yang dipilih (dibedakan dari yang lain), disebut akar (root) dari T, dan simpul sisanya membentuk 2 pohon binar (subpohon kiri dan subpohon kanan dari R) T1 dan T2 yang saling lepas. Perhatikan bahwa pendefinisian pohon binar di atas adalah rekursif. Jika T1 tidak hampa, maka simpul akarnya disebut suksesor kiri dari R. Hal serupa untuk akar dari T2 (tidak hampa) disebut suksesor kanan dari R. Untuk menyajikan pohon binar, simpul akar adalah simpul yang digambar pada bagian paling atas. Sedangkan suksesor kiri digambarkan sebagai garis ke kiri bawah dan suksesor kanan sebagai garis ke kanan bawah. Contoh : Halaman 34 dari 99 halaman

35 A B C D E F G H I J K Pohon Sintaks Untuk menjelaskan mengenai bahasa secara teoritis dan formal, kita lihat terlebih dahulu sebuah kalimat sehari-hari dalam bahasa Indonesia, yaitu : SI KUCING KECIL MENENDANG BOLA BESAR Gambar penguraian kalimat di atas membentuk struktur pohon, yang disebut pohon sintaks dari kalimat. Disini kalimat dibagi-bagi berdasar jenis dan fungsi kata. 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 : Halaman 35 dari 99 halaman

36 KALIMAT Subyek Predikat Obyek Kata Sandang Kata Benda Kata Keadaan Kata Kerja Kata Benda Kata Keadaan Si Kucing Kecil Menendang Bola Besar Halaman 36 dari 99 halaman

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

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

39 Relasi dan Matriks Pandang D(V,A) suatu graf berarah tanpa arc sejajar, maka A adalah himpunan bagian dari V x V (produk Cartesis himpunan), jadi merupakan Relasi pada V. Sebaliknya bila R adalah Relasi pada suatu himpunan V, maka D(V,R) merupakan graf berarah tanpa arc sejajar. Jadi konsep Relasi dan konsep graf berarah tanpa arc sejajar adalah satu dan sama. Misalkan D(V,A) suatu graf berarah dengan simpul v1, v2,, vm. Matriks M berukuran (mxm) merupakan matriks (matriks adjacency) dari D, dengan mendefinisikan sebagai berikut : M = (Mij), dengan mij banyaknya arc yang mulai di vi dan berakhir di vj Bila D tidak mengandung arc berganda, maka elemen M adalah 0 dan 1. Kalau Graf berarah mengandung arc berganda, elemen M merupakan bilangan bulat non negatif. Jadi suatu matriks berukuran (mxm) yang elemennya bilangan bulat non negatif menyatakan secara tunggal suatu graf berarah dengan m simpul. Contoh : D(V,A) : V1 V V2 V Matriks M Teorema : M adalah Matriks dari sutau graf berarah D, maka elemen baris ke i kolom ke j dari Matriks M n menyatakan banyaknya walk dengan panjang n dari simpul vi ke simpul vj. Halaman 39 dari 99 halaman

40 Algoritma Jalur Terpendek Pandang D suatu graf berarah yang hingga dengan tiap-taip arc mempunyai bobot. Jadi D merupakan suatu network. Kita hendak menentukan Jalur Terpendek antara 2 simpul u dan v. Gambar berikut merupakan suatu network. Kita ingin menghitung jalur terpendek dari simpul u ke simpul v. x 4 a u Sumber 2 6 y b v 2 1 Muara 3 z c Untuk dapat menentukan jalur terpendeknya, kita gunakan cara berikut : Buat table jarak, dengan tiap kolom mewakili simpul yang ada, dan kita isikan data jarak dari satu simpul ke simpul lainnya sesuai dengan kolom yang ada. Usahakan diurut dari yang kecil ke besar. u x y z a b c v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 Kita mulai dengan simpul u sebagai simpul awal. Beri harga = 0. Ambil simpul dengan jarak terdekat dari u, dalam hal ini z (uz =2), kemudian tandai uz. Semua arc lain, yang berakhir di z kita hapus. Beri harga = 2 pada kolom z. Kemudian Halaman 40 dari 99 halaman

41 pada judul kolom yang telah diberi harga, kita tandai *. Hasil langkah tersebut dapat dilihat pada tabel berikut ini : u* (0) x y z* (2) a b c v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 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 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 : u* (0) x* (4) y z* (2) a b c v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 Demikian proses dilanjutkan berturut-turut sebagai berikut : u* (0) x* (4) y* (4) z* (2) a b c v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 u* (0) x* (4) y* (4) z* (2) a b c* (5) v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 Halaman 41 dari 99 halaman

42 u* (0) x* (4) y* (4) z* (2) a b* (6) c* (5) v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 u* (0) x* (4) y* (4) z* (2) a* (8) b* (6) c* (5) v uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 u* (0) x* (4) y* (4) z* (2) a* (8) b* (6) c* (5) v* (8) uz = 2 xy = 3 yc = 1 zy = 2 ab = 2 bv = 3 cv = 3 ux = 4 xa = 4 yb = 2 zc = 5 av = 3 uy = 6 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 : Halaman 42 dari 99 halaman

43 x 4 a u Sumber 2 6 y b v 2 1 Muara 3 z 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. Dalam hal ini ditetapkan bahwa simpul perantara tidak dapat menyimpan barang. Contoh : sumber 8 10 a 7 0 b d 0 muara 0 c 5 10 Halaman 43 dari 99 halaman

44 Untuk menyelesaikan problema aliran maksimal ini dapat digunakan beberapa cara, antara lain dengan menelusuri satu persatu jalur yang dapat dilalui ataupun dengan memanfaatkan max flow min cut. Adapun aliran maksimal dari contoh ini adalah 22. Halaman 44 dari 99 halaman

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

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

47 Pertemuan ke-7 Algoritma Algoritma Istilah algoritma pertama kali diperkenalkan oleh seorang ahli matematika yaitu Abu Ja far Muhammad Ibnu Musa Al Khawarizmi. Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi untuk menyelesaikan suatu masalah Adapun algoritma dapat dinyatakan dalam bentuk : flow chart, diagram alur, bahasa semu Sedangkan secara bahasa, algoritma berarti suatu metode khusus untuk menyelesaikan suatu masalah yang nyata (dari Webster Dictionary). Dari suatu permasalahan yang akan diselesaikan, bisa terjadi terdapat lebih dari satu algoritma. Dalam memilih algoritma yang terbaik yang dapat digunakan, harus diperhatikan beberapa kriteria. 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 : Halaman 47 dari 99 halaman

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

49 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, 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, yang meliputi : a. Waktu tempuh (running time) banyaknya langkah besar dan jenis input data jenis operasi jenis komputer dan kompilator b. Jumlah memori yang dipakai Dalam hal menganalisis algoritma, dikenal istilah kompleksitas. 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 Halaman 49 dari 99 halaman

50 Beberapa definisi kompleksitas: 1. f(n) = (g(n)) dua konstanta positif c dan n 0 f(n) c g(n) n n 0 2. f(n) = (g(n)) konstanta positif c dan n0 f(n) c g(n) n n 0 3. f(n) = (g(n)) konstanta positif c1, c2 dan n0 c 1 g(n) f(n) c 2 g(n) n n 0 4. f(n) (g(n)) sebuah konstanta positif n0 lim f ( n) / g( n) 1, n n 0 n Dari keempat definisi di atas, yang paling banyak digunakan untuk menganalisis algoritma adalah definisi 1 (Big Oh). Teorema : Jika f(n) = a m n m + a m-1 n m a 1 n + a 0 adalah polinomial tingkat m, maka f(n) = (n m ) Sebagai contoh : f(n) = 3n5 + 4n4 + 10n = (n 5 ) f(n) = 9n 7 + 5n = (n 7 ) f(n) = 8n 9 = (n 9 ) f(n) = n = (n 6 ) f(n) = 25 = (n 0 ) = (1) Berikut ini adalah urutan dari Big Oh - Big Oh : (1) (log n) (n) (n log n) (n 2 ) (n 3 ) (2 n ) Halaman 50 dari 99 halaman

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

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

53 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, maka probabilitas masing-masing elemen adalah 1/n F(n) = 1. 1/n /n /n n. 1/n = ( n ). 1/n = (n + 1). n/2. 1/n = (n + 1)/2 = 1/2 n + 1/2 = (n) Halaman 53 dari 99 halaman

54 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, 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, maka : FAK=1, kemudian i FAK 1 1 * 1 = * 2 = * 3 = * 4 = * 5 = 120 Contoh : BARISAN BILANGAN FIBBONACI Halaman 54 dari 99 halaman

55 1, 1, 2, 3, 5, 8, 13, 21,... Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut : 1. Set x, y, n, i, f : integer 2. x 1 ; y 1 3. If n 2 then begin 4. for i 3 to n do begin 5. F x + y 6. x y 7. y F end else 8. F x 9. Write(F) End Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka : x=1, y=1, kemudian i F x y = = = Teknik Rekursif Halaman 55 dari 99 halaman

56 Teknik Rekursif merupakan salah satu cara pembuatan algoritma dengan pemanggilan procedure atau function yang sama Contoh : Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n, adalah sebagai berikut : Function FAK (n : integer) : integer 1. If n := 0 then FAK := 1 2. Else FAK := n * FAK(n-1) Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, 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) Contoh : BARISAN BILANGAN FIBBONACI 1 Halaman 56 dari 99 halaman

57 1, 1, 2, 3, 5, 8, 13, 21,... Teknik Rekursif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut : Procedure F(n : integer) : integer 1. 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 : F(5) F(4) F(3) F(3) F(2) F(2) F(1) F(2) F(1) PERBEDAAN ANTARA TEKNIK ITEIF DAN REKURSIF : Halaman 57 dari 99 halaman

58 ITEIF Tidak ada variabel lokal baru Program tidak sederhana REKURSIF Ada variabel lokal baru Program menjadi lebih sederhana Permainan Menara Hanoi Contoh paling umum dari penggunaan teknik rekursif adalah pada permainan menara Hanoi. Berdasarkan legenda, pertama kali dimainkan secara manual oleh seorang pendeta Budha di Hanoi, sehingga permainan ini disebut Menara Hanoi. Dalam permainan ini, akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya, 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. Untuk jelasnya lihat gambar berikut : Tonggak Asal (A) Tonggak Bantu (B) Tonggak Tujuan (C) Menurut legenda tersebut dikatakan bahwa jika anda selesai memindahkan seluruh 64 piringan, pada saat itu juga dunia kiamat. Ini menurut legenda, yang mungkin juga benar. Secara umum, untuk menyelesaikan n buah piringan diperlukan pemindahan Halaman 58 dari 99 halaman

59 sebanyak 2 n 1 kali. Bayangkan jika untuk setiap pemindahan memerlukan waktu 1 detik, maka berapa waktu yang diperlukan untuk menyelesaikan 64 buah piringan. Halaman 59 dari 99 halaman

60 Pertemuan ke-9 Teknik Backtracking Teknik Backtracking merupakan salah satu teknik dalam penyelesaian masalah secara umum (General Problem Solving). Adapun dasar dari teknik ini adalah suatu teknik pencarian (Teknik Searching). Teknik pencarian ini digunakan dalam rangka mendapatkan himpunan penyelesaian yang mungkin. Dari himpunan penyelesaian yang mungkin ini akan diperoleh solusi optimal atau memuaskan. Teknik Backtracking ini diperkenalkan pertama kali oleh : D.H. Lehmer (1950), Penulisan algoritmanya oleh : R.J. Walker (1960), dan Variasi aplikasinya dikembangkan oleh : Golomb & Baumert (1960) Berikut ini disajikan algoritma backtracking secara umum, yang menggunakan teknik iteratif : PROCEDURE BACKTRACK(n) INTEGER k,n; 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-1)) AND Bk(x(1),, x(k)) = TRUE THEN IF (x(1),, x(k)) adalah sebuah jalur (path) yang merupakan solusi THEN PRINT (x(1),, x(k)) ENDIF k k + 1 ELSE k k 1 ENDIF REPEAT Halaman 60 dari 99 halaman

61 END BACKTRACK Sedangkan bentuk rekursifnya adalah sebagai berikut : PROCEDURE RBACKTRACK(k) GLOBAL n, x(1:n) FOR setiap x(k) sedemikian sehingga x(k) T(x(1),, x(k-1)) AND Bk(x(1),, x(k)) = TRUE IF (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 - Queens Problem The 4 - Queens Problem Sum of Subsets Graph Coloring Hamilton Cycles Knapsack Problem Tic - Tac - 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. Kombinasi yang diinginkan yaitu kombinasi yang jumlah seluruh elemennya sama dengan M (tertentu). Halaman 61 dari 99 halaman

62 Sebelum kita selesaikan masalah tersebut dengan menggunakan teknik backtracking, perhatikan terlebih dahulu penyajian permasalahan dan penyelesaiannya dalam bentuk pohon. Misalkan banyaknya bilangan real tersebut adalah 4 (n=4). Terdapat 2 jenis pohon pencarian, yakni Breadth First Search (BFS) yang menggunakan queue dan Depth First Search (DFS) yang menggunakan stack. Berikut penggambaran kedua jenis pohon tersebut Breadth First Search (BFS) Halaman 62 dari 99 halaman

63 Depth First Search (DFS) Kedua bentuk penyajian pohon dari persoalan sum of subsets, merupakan tahapan pertama dalam proses mendapatkan solusi sesungguhnya (solusi optimal). Untuk mendapatkan solusi yang optimal dari ruang penyelesaian digunakan suatu algoritma lain. Algoritma tersebut menggunakan teknik backtracking, yang selanjutnya disebut dengan algoritma SUMOFSUB. PROCEDURE SUMOFSUB(s,k,r) GLOBAL INTEGER M,n GLOBAL REAL W(1:n) GLOBAL BOOLEAN X(1:n) REAL r,s; INTEGER k,j X(k) = 1 IF s + W(k) = M THEN PRINT (X(j), j 1 TO k) ELSE IF s + W(k) + W(k+1) M THEN Halaman 63 dari 99 halaman

64 CALL SUMOFSUB(s+W(k), k+1, r-w(k)) ENDIF ENDIF IF s + r - W(k) M AND s + W(k) M THEN X(k) 0 CALL SUMOFSUB(s, k+1, r-w(k)) ENDIF END SUMOFSUB Contoh : Suatu himpunan terdiri dari 6 bilangan, yakni {5, 10, 12, 13, 15, 18} yang disusun secara tidak turun. Akan ditentukan himpunan-himpunan bagiannya, yang jumlah seluruh elemennya adalah 30. 0,1,73 5,2,68 0,2,68 15,3,58 5,3,58 10,3,58 0,3,58 27,4,46 15,4,46 17,4,46 5,4,46 10,4,46 12,4,46 0,4,46 15,5,33 B 5,5,33 10,5,33 12,5,33 13,5,33 0,5,33 A 20,6,18 12,6,18 13,6,18 Bagian dari state space tree dengan SUMOFSUB C Halaman 64 dari 99 halaman

65 Perhatikan simpul A, B dan C yang merupakan outputnya dalam bentuk tuple (1,1,0,0,1), (1,0,1,1) dan (0,0,1,0,0,1). Halaman 65 dari 99 halaman

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

67 PROCEDURE DANDC(p,q) GLOBAL n,a(1:n); INTEGER m.p.q IF SMALL(p,q) THEN G(p,q) ELSE M DIVIDE(p,q) COMBINE(DANDC(p,m),DANDC(m+1,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. Jika demikian halnya, maka fungsi G(p,q) yang dipanggil. Pada keadaan lain fungsi DIVIDE(p,q) yang dipanggil. Fungsi DIVIDE(p,q) menghasilkan integer yang menguraikan input menjadi 2 bagian. Misal m = DIVIDE(p,q), maka input dipecah A(p:m) dan A(m+1,q) Metode DANDC biasa dipakai pada searching dan sorting. Searching Menentukan Bilangan Max dan Min Sebelum kita lihat penggunaan metode DANDC-nya, maka kita lihat terlebih dahulu algoritmanya secara iteratif sebagai berikut : PROCEDURE STRAITMAXMIN INTEGER i,n max min A(1) For i 2 TO n DO IF A(i) > max THEN max A(i) bagian perbandingan ELSE IF A(i) < min THEN min A(i) bagian perbandingan Halaman 67 dari 99 halaman

68 ENDIF ENDIF REPEAT END STRAITMAXMIN Procedure STRAITMAXMIN tersebut akan menghasilkan 3 keadaan, yakni: 1. Best Case, bila datanya tersusun menaik, dengan banyak perbandingan adalah n-1 2. Worst Case, bila datanya tersusun menurun, dengan banyak perbandingan adalah 2(n-1) 3. Average Case, bila datanya tidak tersusun menaik ataupun menurun, dengan banyak perbandingan adalah 3(n-1)/2 Bila pada procedure STRAITMAXMIN tersebut, 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,j,fmax,fmin) INTEGER i,j; GLOBAL n,a(1:n) CASE : i=j ; fmax fmin A(i) : i=j-1 ; IF A(i) < A(j) THEN fmax A(j); fmin A(i) ELSE fmax A(i); fmin A(j) ENDIF : ELSE mid (i+j)/2 CALL MAXMIN(i,mid,gmax,gmin) CALL MAXMIN(mid+1,j,hmax,hmin) Halaman 68 dari 99 halaman

69 fmax MAX(gmax,hmax) fmin MIN(gmin,hmin) ENDCASE END MAXMIN Contoh : A = { 22, 13, -5, -8, 15, 60, 17, 31, 47 } Maka simulasi dari procedure MAXMIN tersebut adalah : Jadi outputnya adalah max = 60 dan min = -8 Jumlah perbandingan elemennya, yang direpresentasikan oleh T(n) adalah : T( n/2 ) +T( n/2 ) + 2 ; n > 2 T(n) { 1 ; n = 2 Halaman 69 dari 99 halaman

70 0 ; n = 1 untuk n power value dari 2 = 2 k dan k integer positif, maka : T(n) = 2 T(n/2) + 2 = 2 (2 T(n/4) + 2) + 2 = 4 T(n/4) = 2 2 T(n/2 2 ) = 2 3 T(n/2 3 ) = 2 k-1 T(2) + 2 k k = 2 k-1 +2 k - 2 = 3n/2-2 Jadi T(n) = (n) Halaman 70 dari 99 halaman

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

72 PROCEDURE MERGE(low,mid,high) INTEGER h,i,j,k,low,mid,high GLOBAL A(low:high); LOCAL B(low:high) h low; j mid + 1; i low WHILE h mid AND j high DO IF A(h) A(j) THEN B(i) A(h); h h+1 ELSE B(i) A(j); 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 ELSE FOR k h TO mid 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, 285, 179, 652, 351, 423, 861, 254, 450, 520 } Halaman 72 dari 99 halaman

73 Representasi di dalam tree dari CALL MERGESORT sbb : 1,10 1,5 6,10 1,3 4,5 6,8 9,10 1,2 3,3 4,4 5,5 6,7 8,8 9,9 10,10 1,1 2,2 6,6 7,7 Representasi di dalam tree dari CALL MERGE sbb : 1,1,2 6,6,7 1,2,3 4,4,5 6,7,8 9,9,10 1,3,5 6,8,10 1,5,10 T(n) = (n 2 log n) Halaman 73 dari 99 halaman

74 Quick Sort Algoritma Quick Sort terdiri dari dua prosedur, yaitu prosedur PARTITION dan prosedur QUICKSORT. PROCEDURE QUICKSORT(p,q) IF p < q THEN j q+1 CALL PARTITION(p,j) CALL QUICKSORT(p,j-1) CALL QUICKSORT(j+1,q) ENDIF END QUICKSORT PROCEDURE PARTITION(m,p) INTEGER m,p,i; GLOBAL A(m-1,p) V A(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),A(p)) ELSE EXIT REPEAT A(m) A(p); A(p) V END PARTITION Contoh : Suatu array A berisi elemen-elemen : Halaman 74 dari 99 halaman

75 Hasil tracenya adalah sebagai berikut : i p Analisisnya : Worst Case = (n 2 ) Average Case = (n log n) Halaman 75 dari 99 halaman

76 Pertemuan ke-12 Metode Greedy Masalah Knapsack Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum M dan sehimpunan benda A = {a 0,a 1,...,a n-1 } yang berbobot W = {w 0,w 1,...,w n-1 }. Setiap benda tersebut diberikan nilai profit yang dinotasikan dengan P = {p 0,p 1,...,p n-1 }. Jika kita diperbolehkan memasukkan z i bagian dari benda a i yang ada ke dalam knapsack dimana 0 z i 1, maka kita dapatkan profit sebesar z i p i untuk benda a i tersebut. Yang dimaksud dengan masalah knapsack adalah : Bagaimana kita memilih atau menentukan z i untuk masing-masing benda a i 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. Secara matematis, masalah knapsack tersebut dapat ditulis sebagai berikut : maksimumkan Q n-1 i=0 zi pi dengan kendala n 1 i 0 zi w i W dan 0 z i 1, p i 0, w i 0, 0 i n-1 Sebuah solusi yang optimal adalah himpunan Z = {z 0,z 1,...,z n-1 } yang memaksimalkan nilai Q dan memenuhi kendala-kendala yang ada. Halaman 76 dari 99 halaman

77 Contoh : Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum 15 Kg dan sehimpunan benda A = {a 0,a 1,a 2,a 3 } yang berbobot (dalam Kg) W = {5,9,2,4}. Setiap benda tersebut diberikan nilai profit P = {100,135,26,20}. Jika kita diperbolehkan memasukkan z i bagian dari benda a i yang ada ke dalam knapsack dimana 0 z i 1, maka tentukanlah Z = {z 0,z 1,z 2,z 3 } 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. Procedure tersebut disebut procedure GREEDY_KNAPSACK. Sebelum procedure tersebut digunakan, benda-benda harus diurutkan rasio p i /w i -nya tidak menaik. Dengan kata lain : p 0 / w 0 p 1 / w 1... p n-1 / w n-1 Adapun procedure GREEDY_KNAPSACK adalah sebagai berikut : procedure GREEDY_KNAPSACK(P,W,M,Z,n) real P(0:n-1),W(0:n-1),Z(0:n-1),cu; {n = banyak benda} integer i,n; Z 0 { Z(0), Z(1),..., Z(n-1) = 0} cu M for i 0 to n-1 do if W(i) cu then exit endif Z(i) 1 cu cu - W(i) repeat if i n-1 then Z(i) cu/w(i) endif end GREEDY_KNAPSACK Halaman 77 dari 99 halaman

78 Jika algoritma ini digunakan untuk menyelesaikan masalah seperti pada contoh yang lalu, dimana n = 4; M = 15; W = { 5,9,2,4 }; P = { 100,135,26,20 }, maka akan terlihat hasil tracenya sebagai berikut : Z 0 cu 15 i = 0 i = 1 i = 2 karena W(0) cu yaitu : 5 15 berarti : Z(0) 1 cu 15-5 = 10 karena W(1) cu yaitu : 9 10 berarti : Z(1) 1 cu 10-9 = 1 karena W(2) cu yaitu : 2 1 berarti : keluar dari loop (exit) Karena 2 3 maka Z(2) cu/w(2) = 1/2 = 0,5 Jadi optimisasi masalah knapsack diperoleh bila Z = { 1; 1; 0,5; 0 } Sehingga Q = 1 x x ,5 x x 20 = = 248 Analisis : Kompleksitas waktu dari algoritma Greedy_Knapsack ini adalah O(n). Tetapi jika data yang digunakan belum terurut rasio p i /w i -nya tidak menaik, maka diperlukan kompleksitas waktu sebesar O(n log n) untuk mengurutkan sebelumnya. Sehingga untuk masalah optimisasi knapsack, kompleksitas waktu dari algoritma ini akan lebih besar pada waktu proses pengurutannya. Halaman 78 dari 99 halaman

METODE DEVIDE AND CONQUER (DANDC)

METODE DEVIDE AND CONQUER (DANDC) METODE DEVIDE AND CONQUER (DANDC) Di dalam metode ini, kita mempunyai suatu fungsi untuk menghitung input. Kemudian n input tersebut dipartisi menjadi k subset input yang berbeda (1< k n) k subproblem

Lebih terperinci

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN UTAMA MATA UJIAN : LOGIKA DAN ALGORITMA JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN INI TERDIRI DARI 80 SOAL PILIHAN GANDA

Lebih terperinci

TEORI DASAR GRAF 1. Teori Graf

TEORI DASAR GRAF 1. Teori Graf TEORI SR GRF 1 Obyektif : 1. Mengerti apa yang dimaksud dengan Graf 2. Memahami operasi yang dilakukan pada Graf 3. Mengerti derajat dan keterhubungan Graf Teori Graf Teori Graf mulai dikenal pada saat

Lebih terperinci

Pertemuan ke-1 Teori Dasar Graf

Pertemuan ke-1 Teori Dasar Graf 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

Lebih terperinci

Logika dan Algoritma Yuni Dwi Astuti, ST 2

Logika dan Algoritma Yuni Dwi Astuti, ST 2 ALGORITMA Istilah algoritma pertama kali diperkenalkan oleh seorang ahli matematika yaitu Abu Ja far Muhammad Ibnu Musa Al Khawarizmi. Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi

Lebih terperinci

Graf Berarah (Digraf)

Graf Berarah (Digraf) Graf Berarah (Digraf) Di dalam situasi yang dinamis, seperti pada komputer digital ataupun pada sistem aliran (flow system), konsep graf berarah lebih sering digunakan dibandingkan dengan konsep graf tak

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

TEORI DASAR GRAF 1. Teori Graf

TEORI DASAR GRAF 1. Teori Graf TORI SR GR 1 Obyektif : 1. Mengerti apa yang dimaksud dengan Graf 2. Memahami operasi yang dilakukan pada Graf 3. Mengerti derajat dan keterhubungan Graf Teori Graf Teori Graf mulai dikenal pada saat seorang

Lebih terperinci

Teori Dasar Graf (Lanjutan)

Teori Dasar Graf (Lanjutan) Teori Dasar Graf (Lanjutan) MATRIKS DAN GRAF Untuk menyelesaikan suatu permasalahan model graf dengan bantuan komputer, maka graf tersebut disajikan dalam bentuk matriks. Matriks-matriks yang dapat menyajikan

Lebih terperinci

Teori Dasar Graf (Lanjutan)

Teori Dasar Graf (Lanjutan) Teori Dasar Graf (Lanjutan) ATRIKS DAN GRAF Untuk menyelesaikan suatu permasalahan model graf dengan bantuan komputer, maka graf tersebut disajikan dalam bentuk matriks. atriks-matriks yang dapat menyajikan

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI Sebelum memulai pembahasan lebih lanjut, pertama-tama haruslah dijelaskan apa yang dimaksud dengan traveling salesman problem atau dalam bahasa Indonesia disebut sebagai persoalan

Lebih terperinci

STRATEGI DIVIDE AND CONQUER

STRATEGI DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian masalah

Lebih terperinci

Struktur dan Organisasi Data 2 G R A P H

Struktur dan Organisasi Data 2 G R A P H G R A P H Graf adalah : Himpunan V (Vertex) yang elemennya disebut simpul (atau point atau node atau titik) Himpunan E (Edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk

Lebih terperinci

Pohon (Tree) Contoh :

Pohon (Tree) Contoh : POHON (TREE) Pohon (Tree) didefinisikan sebagai graph terhubung yang tidak mengandung sirkuit. Sedangkan Hutan (Forest) adalah graph yang tidak mengandung sirkuit. Jadi pohon adalah hutan yang terhubung.

Lebih terperinci

METODE GREEDY. Secara matematis, masalah knapsack tersebut dapat ditulis sebagai berikut :

METODE GREEDY. Secara matematis, masalah knapsack tersebut dapat ditulis sebagai berikut : METODE GREEDY MASALAH KNAPSACK Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum M dan sehimpunan benda A = {a 0,a 1,...,a n-1 } yang berbobot W = {w 0,w 1,...,w n-1 }. Setiap

Lebih terperinci

SATUAN ACARA PERKULIAHAN MATA KULIAH GRAPH & ANALISIS ALGORITMA (SI / S1) KODE / SKS : KK / 3 SKS

SATUAN ACARA PERKULIAHAN MATA KULIAH GRAPH & ANALISIS ALGORITMA (SI / S1) KODE / SKS : KK / 3 SKS Pertemuan ke Pokok Bahasan dan TIU Sub Pokok Bahasan dan TIK 1 Pendahuluan Penjelasan mengenai ruang lingkup mata kuliah, sasaran, tujuan dan kompetensi lulusan 2 1. Dasar-dasar 1.1. Kelahiran Teori Graph

Lebih terperinci

GRAF. Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

GRAF. Graph seperti dimaksud diatas, ditulis sebagai G(E,V). GRAF GRAF Suatu Graph mengandung 2 himpunan, yaitu : 1. Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node atau Titik) 2. Himpunan E yang merupakan pasangan tak urut dari simpul. Anggotanya

Lebih terperinci

LOGIKA DAN ALGORITMA

LOGIKA DAN ALGORITMA LOGIKA DAN ALGORITMA DASAR DASAR TEORI GRAF Kelahiran Teori Graf Sejarah Graf : masalah jembatan Königsberg (tahun 736) C A D B Gbr. Masalah Jembatan Königsberg Graf yang merepresentasikan jembatan Königsberg

Lebih terperinci

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e. 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a.membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 2. Sebuah prosedur langkah demi

Lebih terperinci

TEKNIK INFORMATIKA. Teori Dasar Graf

TEKNIK INFORMATIKA. Teori Dasar 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,

Lebih terperinci

SATUAN ACARA PERKULIAHAN MATA KULIAH LOGIKA DAN ALGORITMA (MI/D3) KODE: IT SKS: 3 SKS. Kemampuan Akhir Yang Diharapkan

SATUAN ACARA PERKULIAHAN MATA KULIAH LOGIKA DAN ALGORITMA (MI/D3) KODE: IT SKS: 3 SKS. Kemampuan Akhir Yang Diharapkan SATUAN ACARA PERKULIAHAN MATA KULIAH LOGIKA DAN ALGORITMA (MI/D3) KODE: IT013323 SKS: 3 SKS Pertemuan Ke Pokok Bahasan dan TIU Sub Pokok Bahasan dan Sasaran Belajar Kean Akhir Yang Diharapkan Strategi

Lebih terperinci

Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH

Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH GRAPH Suatu Graph mengandung 2 himpunan, yaitu : 1. Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node atau Titik) 2. Himpunan E yang merupakan

Lebih terperinci

Bagaimana merepresentasikan struktur berikut? A E

Bagaimana merepresentasikan struktur berikut? A E Bagaimana merepresentasikan struktur berikut? B D A E F C G Bagaimana merepresentasikan struktur berikut? Contoh-contoh aplikasi graf Peta (jaringan jalan dan hubungan antar kota) Jaringan komputer Jaringan

Lebih terperinci

Graf dan Analisa Algoritma. Pertemuan #01 - Dasar-Dasar Teori Graf Universitas Gunadarma 2017

Graf dan Analisa Algoritma. Pertemuan #01 - Dasar-Dasar Teori Graf Universitas Gunadarma 2017 Graf dan Analisa Algoritma Pertemuan #01 - Dasar-Dasar Teori Graf Universitas Gunadarma 2017 Who Am I? Stya Putra Pratama, CHFI, EDRP Pendidikan - Universitas Gunadarma S1-2007 Teknik Informatika S2-2012

Lebih terperinci

Syarat dan Ketentuan yang berlaku:

Syarat dan Ketentuan yang berlaku: Syarat dan Ketentuan yang berlaku: Jawaban Quiz dikirimkan dalam format PDF. Untuk jawaban pilihan ganda tuliskan ABJAD beserta jawabannya. Sedangkan untuk soal ESSAY tuliskan jawaban beserta langkah-langkahnya

Lebih terperinci

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Penerapan Algoritma Backtracking pada Pewarnaan Graf Penerapan Algoritma Backtracking pada Pewarnaan Graf Deasy Ramadiyan Sari 1, Wulan Widyasari 2, Eunice Sherta Ria 3 Laboratorium Ilmu Rekayasa dan Komputasi Departemen Teknik Informatika, Fakultas Teknologi

Lebih terperinci

Matematik tika Di Disk i r t it 2

Matematik tika Di Disk i r t it 2 Matematika tik Diskrit it 2 Teori Graph Teori Graph 1 Kelahiran Teori Graph Masalah Jembatan Konigsberg g : Mulai dan berakhir pada tempat yang sama, bagaimana caranya untuk melalui setiap jembatan tepat

Lebih terperinci

SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013. Graf Berarah

SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013. Graf Berarah SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013 Graf Berarah Graf Berarah Suatu graf berarah (Direct Graf/Digraf) D terdiri atas 2 himpunan : 1. Himpunan V, anggotanya disebut Simpul. 2. Himpunan A, merupakan

Lebih terperinci

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum Gerard Edwin Theodorus - 13507079 Jurusan Teknik Informatika ITB, Bandung, email: if17079@students.if.itb.ac.id Abstract Makalah ini

Lebih terperinci

merupakan himpunan sisi-sisi tidak berarah pada. (Yaoyuenyong et al. 2002)

merupakan himpunan sisi-sisi tidak berarah pada. (Yaoyuenyong et al. 2002) dari elemen graf yang disebut verteks (node, point), sedangkan, atau biasa disebut (), adalah himpunan pasangan tak terurut yang menghubungkan dua elemen subset dari yang disebut sisi (edge, line). Setiap

Lebih terperinci

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB VII ALGORITMA DIVIDE AND CONQUER BAB VII ALGORITMA DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang

Lebih terperinci

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif CRITICAL PATH Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5 Graph G Path Bobot Alternatif 1 4 5 16 1 2 5 15 1 2 3 5 24 1 4 3 5 19 1 2 3 4 5 29 1 4 3

Lebih terperinci

Dasar-Dasar Teori Graf. Sistem Informasi Universitas Gunadarma 2012/2013

Dasar-Dasar Teori Graf. Sistem Informasi Universitas Gunadarma 2012/2013 Dasar-Dasar Teori Graf Sistem Informasi Universitas Gunadarma 2012/2013 Teori Graf Teori Graf mulai dikenal saat matematikawan kebangsaan Swiss bernama Leonhard Euler, yang berhasil mengungkapkan Misteri

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Graf (Graph) Graf G didefinisikan sebagai pasangan himpunan (V, E) yang dinotasikan dalam bentuk G = {V(G), E(G)}, dimana V(G) adalah himpunan vertex (simpul) yang tidak kosong

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Konsep Dasar Graf Definisi 2.1.1 Sebuah graf didefinisikan sebagai pasangan terurut himpunan dimana: 1. adalah sebuah himpunan tidak kosong yang berhingga yang anggotaanggotanya

Lebih terperinci

PERTEMUAN 11 TEHNIK SEARCHING

PERTEMUAN 11 TEHNIK SEARCHING PERTEMUAN 11 TEHNIK SEARCHING TEHNIK SEARCHING Tehnik Pencarian : 1. Tehnik Pencarian Tunggal : a. Tehnik Sequential Search / Linier Search b. Tehnik Binary Search 2. Tehnik Pencarian Nilai MAXMIN : a.

Lebih terperinci

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf Bab 2 LANDASAN TEORI 2.1. Konsep Dasar Graf Definisi Graf Suatu graf G terdiri atas himpunan yang tidak kosong dari elemen elemen yang disebut titik atau simpul (vertex), dan suatu daftar pasangan vertex

Lebih terperinci

PERTEMUAN 15 REVEW/QUIZ

PERTEMUAN 15 REVEW/QUIZ PERTEMUAN 15 REVEW/QUIZ 1. Tipe terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe data yang sama disebut sebagai: a. Array Dimensi Satu d. Variabel b. Array Dimensi Dua e. Matrik c. Array

Lebih terperinci

Gambar 6. Graf lengkap K n

Gambar 6. Graf lengkap K n . Jenis-jenis Graf Tertentu Ada beberapa graf khusus yang sering dijumpai. Beberapa diantaranya adalah sebagai berikut. a. Graf Lengkap (Graf Komplit) Graf lengkap ialah graf sederhana yang setiap titiknya

Lebih terperinci

KATA PENGANTAR. Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas

KATA PENGANTAR. Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas KATA PENGANTAR Puji syukur kami panjatkan ke hadirat Alloh SWT atas terbentuknya Lembar Tugas Mahasiswa (LTM) untuk mata kuliah Logika dan Algoritma. Tak lupa kami mengucapkan banyak terima kasih kepada

Lebih terperinci

TINJAUAN PUSTAKA. Pada bab ini akan dijelaskan beberapa konsep dasar teori graf dan dimensi partisi

TINJAUAN PUSTAKA. Pada bab ini akan dijelaskan beberapa konsep dasar teori graf dan dimensi partisi II. TINJAUAN PUSTAKA Pada bab ini akan dijelaskan beberapa konsep dasar teori graf dan dimensi partisi pada suatu graf sebagai landasan teori pada penelitian ini.. Konsep Dasar Graf Pada bagian ini akan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Konsep Dasar Teori Graph 2.1.1 Graph Tak Berarah dan Digraph Suatu Graph Tak Berarah (Undirected Graph) merupakan kumpulan dari titik yang disebut verteks dan segmen garis yang

Lebih terperinci

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN SEKOLAH TINGGI MANAJEMEN INFORMAA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN Mata : GRAPH TERAPAN Kode Mata : MI 4202 Jurusan / Jenjang : D3 MANAJEMEN INFORMAA Tujuan Instruksional Umum : Agar mahasiswa

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Teori Graf 2.1.1 Defenisi Graf Suatu graf G adalah suatu himpunan berhingga tak kosong dari objek-objek yang disebut verteks (titik/simpul) dengan suatu himpunan yang anggotanya

Lebih terperinci

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )}

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )} GRAF Graf G(V,E) didefinisikan sebagai pasangan himpunan (V,E), dengan V adalah himpunan berhingga dan tidak kosong dari simpul-simpul (verteks atau node). Dan E adalah himpunan berhingga dari busur (vertices

Lebih terperinci

Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

Graph seperti dimaksud diatas, ditulis sebagai G(E,V). GRAPH, MATRIK PENYAJIAN GRAPH Suatu Graph mengandung 2 himpunan, yaitu : 1. Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node atau Titik) 2. Himpunan E yang merupakan pasangan tak urut

Lebih terperinci

7. PENGANTAR TEORI GRAF

7. PENGANTAR TEORI GRAF Definisi : Secara umum merupakan kumpulan titik dan garis. Sebuah garf G terdiri dari: 1. Sebuah himpunan V=V(G) yang memiliki elemen2 yg dinamakan verteks/titik/node. 2. Sebuah kumpulan E=E(G) merupakan

Lebih terperinci

Solusi UTS Stima. Alternatif 1 strategi:

Solusi UTS Stima. Alternatif 1 strategi: Solusi UTS Stima 1. a. (Nilai 5) Representasikanlah gambar kota di atas menjadi sebuah graf, dengan simpul merepresentasikan rumah, dan bobot sisi merepresentasikan jumlah paving block yang dibutuhkan.

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI.. Definisi Graf Secara matematis, graf G didefinisikan sebagai pasangan himpunan (V,E) ditulis dengan notasi G = (V, E), yang dalam hal ini: V = himpunan tidak-kosong dari simpul-simpul

Lebih terperinci

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf Marvin Jerremy Budiman / 13515076 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

Penggunaan Perwarnaan Graf dalam Mencari Solusi Sudoku

Penggunaan Perwarnaan Graf dalam Mencari Solusi Sudoku Penggunaan Perwarnaan Graf dalam Mencari Solusi Sudoku Mahdan Ahmad Fauzi Al-Hasan - 13510104 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

APLIKASI PEWARNAAN GRAPH PADA PEMBUATAN JADWAL

APLIKASI PEWARNAAN GRAPH PADA PEMBUATAN JADWAL APLIKASI PEWARNAAN GRAPH PADA PEMBUATAN JADWAL Aplikasi Pewarnaan Graph pada Pembuatan Jadwal Janice Laksana / 13510035 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut

Lebih terperinci

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir 1 Pendahuluan Runut-balik (backtracking) adalah algoritma yang berbasis pada DFS untuk mencari solusi persoalan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB LANDASAN TEORI. Teori Graf Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan

Lebih terperinci

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016 Analisa dan Perancangan Algoritma Ahmad Sabri, Dr Sesi 2: 16 Mei 2016 Teknik rekursif dan iteratif Algoritma rekursif adalah algoritma yang memanggil dirinya sendiri sampai tercapai kondisi yang ditetapkan

Lebih terperinci

Sirkuit Euler & Sirkuit Hamilton SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013

Sirkuit Euler & Sirkuit Hamilton SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013 Sirkuit Euler & Sirkuit Hamilton SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013 Sirkuit Euler Lintasan Euler ialah lintasan yang melalui masing-masing sisi di dalam graf tepat satu kali. Sirkuit Euler

Lebih terperinci

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf Nur Fajriah Rachmah - 0609 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jalan

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Kinerja yang perlu ditelaah pada algoritma: beban komputasi efisiensi penggunaan memori Yang perlu

Lebih terperinci

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf BAB 2 GRAF PRIMITIF Pada Bagian ini akan dijelaskan beberapa definisi dan teorema terkait graf, matriks adjency, terhubung, primitifitas, dan scrambling index sebagai landasan teori yang menjadi acuan

Lebih terperinci

Studi Algoritma Optimasi dalam Graf Berbobot

Studi Algoritma Optimasi dalam Graf Berbobot Studi Algoritma Optimasi dalam Graf Berbobot Vandy Putrandika NIM : 13505001 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : if15001@students.if.itb.ac.id

Lebih terperinci

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL Yosef Sukianto Nim 13506035 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung,

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Teori Graph 2.1.1 Definisi Graph Menurut Dasgupta dkk (2008), graph merupakan himpunan tak kosong titik-titik yang disebut vertex (juga disebut dengan node) dan himpunan garis-garis

Lebih terperinci

Decrease and Conquer

Decrease and Conquer Decrease and Conquer Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika ITB 1 Decrease and conquer: metode desain algoritma

Lebih terperinci

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem) Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-ueens Problem) Pradipta Yuwono NIM 350603 Prodi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi andung, Jalan

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Teori Graf 2.1.1 Defenisi Graf Graf G didefenisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G = (V,E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul

Lebih terperinci

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Penerapan Algoritma Runut-balik pada Permainan Math Maze Penerapan Algoritma Runut-balik pada Permainan Math Maze Angela Lynn - 13513032 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien. Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien. Algoritma yang efektif diukur dari berapa jumlah waktu dan

Lebih terperinci

II. TINJAUAN PUSTAKA. kromatik lokasi pada suatu graf sebagai landasan teori pada penelitian ini

II. TINJAUAN PUSTAKA. kromatik lokasi pada suatu graf sebagai landasan teori pada penelitian ini 5 II. TINJAUAN PUSTAKA Pada bagian ini akan diberikan konsep dasar graf, graf pohon dan bilangan kromatik lokasi pada suatu graf sebagai landasan teori pada penelitian ini 2.1 KONSEP DASAR GRAF Konsep

Lebih terperinci

MA3051 Pengantar Teori Graf. Semester /2014 Pengajar: Hilda Assiyatun

MA3051 Pengantar Teori Graf. Semester /2014 Pengajar: Hilda Assiyatun MA3051 Pengantar Teori Graf Semester 1 2013/2014 Pengajar: Hilda Assiyatun Bab 1: Graf dan subgraf Graf G : tripel terurut VG, E G, ψ G ) V G himpunan titik (vertex) E G himpunan sisi (edge) ψ G fungsi

Lebih terperinci

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni Kecerdasan Buatan Pertemuan 02 Penyelesaian Masalah dengan Pencarian... Husni Lunix96@gmail.com http://komputasi.wordpress.com S1 Teknik Informatika, STMIK AMIKOM, 2013 Outline Konsep Pencarian Pencarian

Lebih terperinci

LANDASAN TEORI. Pada bab ini akan diberikan beberapa konsep dasar teori graf dan bilangan. kromatik lokasi sebagai landasan teori pada penelitian ini.

LANDASAN TEORI. Pada bab ini akan diberikan beberapa konsep dasar teori graf dan bilangan. kromatik lokasi sebagai landasan teori pada penelitian ini. 6 II. LANDASAN TEORI Pada bab ini akan diberikan beberapa konsep dasar teori graf dan bilangan kromatik lokasi sebagai landasan teori pada penelitian ini. 2.1 Konsep Dasar Graf Pada sub bab ini akan diberikan

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma Bahan Kuliah IF2120 Matematika Disktit Rinaldi M/IF2120 Matdis 1 Rinaldi M/IF2120 Matdis 2 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah

Lebih terperinci

Bab 2 LANDASAN TEORI

Bab 2 LANDASAN TEORI Bab LANDASAN TEORI Pada bab ini akan dijelaskan mengenai teori teori yang berhubungan dengan penelitian sehingga dapat dijadikan sebagai landasan berfikir dalam melakukan penelitian dan akan mempermudah

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Algoritma adalah teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sitematis

Lebih terperinci

Discrete Mathematics & Its Applications Chapter 10 : Graphs. Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika

Discrete Mathematics & Its Applications Chapter 10 : Graphs. Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika Discrete Mathematics & Its Applications Chapter 10 : Graphs Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika 16/12/2015 2 Sub Topik A. Graf dan Model Graf B. Terminologi Dasar Graf dan Jenis

Lebih terperinci

Graf. Bekerjasama dengan. Rinaldi Munir

Graf. Bekerjasama dengan. Rinaldi Munir Graf Bekerjasama dengan Rinaldi Munir Beberapa Aplikasi Graf Lintasan terpendek (shortest path) (akan dibahas pada kuliah IF3051) Persoalan pedagang keliling (travelling salesperson problem) Persoalan

Lebih terperinci

Algoritma Runut-balik (Backtracking)

Algoritma Runut-balik (Backtracking) Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir Program Studi Informatika STEI-ITB 1 2 Pendahuluan Backtracking dapat dipandang sebagai salah satu dari dua

Lebih terperinci

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF Anthony Rahmat Sunaryo NIM: 3506009 Jurusan Teknik Informatika ITB, Bandung email : if6009@students.if.itb.ac.id Abstract -- Makalah ini membahas tentang analsis

Lebih terperinci

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal Salman Muhammad Ibadurrahman NIM : 13506106 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI Pada bab ini akan dijelaskan himpunan dan beberapa definisi yang berkaitan dengan himpunan, serta konsep dasar dan teori graf yang akan digunakan pada bab selanjutnya. 2.1 Himpunan

Lebih terperinci

Bab 2. Teori Dasar. 2.1 Definisi Graf

Bab 2. Teori Dasar. 2.1 Definisi Graf Bab 2 Teori Dasar Pada bagian ini diberikan definisi-definisi dasar dalam teori graf berikut penjabaran mengenai kompleksitas algoritma beserta contohnya yang akan digunakan dalam tugas akhir ini. Berikut

Lebih terperinci

Algoritma Branch & Bound

Algoritma Branch & Bound Algoritma Branch & Bound Bahan Kuliah IF2211 Strategi Algoritma Program Studi Informatika STEI ITB 2018 Overview Pembentukan pohon ruang status (state space tree) dinamis untuk mencari solusi persoalan

Lebih terperinci

BAB II KAJIAN PUSTAKA

BAB II KAJIAN PUSTAKA BAB II KAJIAN PUSTAKA A. Logika Fuzzy Logika fuzzy pertama kali dikembangkan oleh Prof. Lotfi A. Zadeh, seorang peneliti dari Universitas California, pada tahun 1960-an. Logika fuzzy dikembangkan dari

Lebih terperinci

Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma

Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma POHON 1. Ubahlah graf berikut ini dengan menggunakan algoritma prim agar menjadi pohon merentang minimum dan tentukan bobot nya! 2. Diberikan

Lebih terperinci

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1 . PENGANTAR TEORI GRAF Definisi : Secara umum merupakan kumpulan titik dan garis. NET terdiri atas : 1. Himpunan titik (tidak boleh kosong) 2. Himpunan garis (directed line) 3. Setiap directed line menentukan

Lebih terperinci

MATEMATIKA DISKRIT II ( 2 SKS)

MATEMATIKA DISKRIT II ( 2 SKS) MATEMATIKA DISKRIT II ( 2 SKS) Rabu, 18.50 20.20 Ruang Hard Disk PERTEMUAN XI, XII RELASI Dosen Lie Jasa 1 Matematika Diskrit Graf (lanjutan) 2 Lintasan dan Sirkuit Euler Lintasan Euler ialah lintasan

Lebih terperinci

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe Penerapan Runut-Balik (Backtracking) pada Permainan Nurikabe Putri Amanda Bahraini Program Studi Teknik Informatika, Institut Teknologi Bandung Jalan Ganesha 10, Bandung e-mail: if14041@students.if.itb.ac.id

Lebih terperinci

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf Rahadian Dimas Prayudha - 13509009 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

IF5110 Teori Komputasi. Teori Kompleksitas. (Bagian 1) Oleh: Rinaldi Munir. Program Studi Magister Informatika STEI-ITB

IF5110 Teori Komputasi. Teori Kompleksitas. (Bagian 1) Oleh: Rinaldi Munir. Program Studi Magister Informatika STEI-ITB IF5110 Teori Komputasi Teori Kompleksitas (Bagian 1) Oleh: Rinaldi Munir Program Studi Magister Informatika STEI-ITB 1 Sebuah persoalan dikatakan Solvable, jika terdapat mesin Turing yang dapat menyelesaikannya.

Lebih terperinci

Aplikasi Pohon Merentang Minimum dalam Rute Jalur Kereta Api di Pulau Jawa

Aplikasi Pohon Merentang Minimum dalam Rute Jalur Kereta Api di Pulau Jawa Aplikasi Pohon Merentang Minimum dalam Rute Jalur Kereta Api di Pulau Jawa Darwin Prasetio ( 001 ) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.

Lebih terperinci

Kode MK/ Matematika Diskrit

Kode MK/ Matematika Diskrit Kode MK/ Matematika Diskrit TEORI GRAF 1 8/29/2014 Cakupan Himpunan, Relasi dan fungsi Kombinatorial Teori graf Pohon (Tree) dan pewarnaan graf 2 8/29/2014 1 TEORI GRAF Tujuan Mahasiswa memahami konsep

Lebih terperinci

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour Krisnaldi Eka Pramudita NIM-13508014 Prodi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Bandung 40135, Email : if18014@students.if.itb.ac.id

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT Disusun untuk memenuhi tugas UTS mata kuliah : Analisis Algoritma Oleh : Eka Risky Firmansyah 1110091000043 Program Studi Teknik Informatika

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 15 BAB II LANDASAN TEORI 2.1 Konsep Dasar Graf Definisi 2.1.1 Graf Sebuah graf G adalah pasangan (V,E) dengan V adalah himpunan yang tak kosong yang anggotanya disebut vertex, dan E adalah himpunan yang

Lebih terperinci

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf Abstrak Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf Neni Adiningsih, Dewi Pramudi Ismi, Ratih Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut

Lebih terperinci

PENGETAHUAN DASAR TEORI GRAF

PENGETAHUAN DASAR TEORI GRAF PENGETAHUAN DASAR TEORI GRAF 1 Sejarah Singkat dan Beberapa Pengertian Dasar Teori Graf Teori graf lahir pada tahun 1736 melalui makalah tulisan Leonard Euler seorang ahli matematika dari Swiss. Euler

Lebih terperinci

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013 Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013 Pohon (Tree) Pohon (Tree) didefinisikan sebagai graf terhubung yang tidak mengandung sirkuit. Karena merupakan graf terhubung, maka pohon selalu

Lebih terperinci

MateMatika Diskrit Aplikasi TI. Sirait, MT 1

MateMatika Diskrit Aplikasi TI. Sirait, MT 1 MateMatika Diskrit Aplikasi TI By @Ir.Hasanuddin Sirait, MT 1 Beberapa Aplikasi Graf Lintasan terpendek (shortest path) (akan dibahas pada kuliah IF3051) Persoalan pedagang keliling (travelling salesperson

Lebih terperinci