Penerapan Algoritma Knuth Morris Pratt dalam Aplikasi Penerjemah Teks

dokumen-dokumen yang mirip
Implementasi Algoritma Knuth Morris Pratt pada Alat Penerjemah Suara

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATT PADA APLIKASI PENERJEMAHAN BAHASA MANDAILING-INDONESIA

Penilaian Ujian Tertulis Menggunakan Algoritma Pattern Matching IF3051 Strategi Algoritma

Aplikasi Algoritma String Matching dan Regex untuk Validasi Formulir

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

Kombinasi Algoritma Pattern Matching dan BFS-DFS pada aplikasi Music Discovery

Algoritma String Matching pada Mesin Pencarian

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Aplikasi Algoritma BFS dan String Matching pada Tag Suggestions di Facebook

Penerapan Algoritma String Matching dalam Intelligent Personal Assistant Siri

Pattern Matching dalam Aplikasi SimSimi

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan

Aplikasi String Matching Pada Fitur Auto-Correct dan Word-Suggestion

Penerapan String Matching pada Fitur Auto Correct dan Fitur Auto Text di Smart Phones

Penerapan Pencocokan String pada Aplikasi Kamusku Indonesia

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

Penggunaan String Matching Dalam Mencari Kata Dalam Permainan Mencari Kata Dari Sebuah Matriks Huruf

String Matching Dalam Permainan The Hunt for Gollum

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

Penggunaan Algoritma Pencocokkan Pola pada Sistem Barcode

Penerapan Algoritma Pencocokan String Boyer-Moore dan Knuth-Morris-Pratt (KMP) dalam Pencocokkan DNA

A. Pencocokan String Pencocokan string adalah cara untuk mencari sebuah teks

Aplikasi Algoritma Pencocokan String dan Algoritma Runut Balik dalam Konversi Romaji ke Hangul

Implementasi Algoritma Pencocokan String dalam Penentuan Tombol Respons Facebook

II. DASAR TEORI I. PENDAHULUAN

PENGGUNAAN ALGORITMA APOSTOLICO-CROCHEMORE PADA PROSES PENCARIAN STRING DI DALAM TEKS

Aplikasi String Matching pada Plugin SMS Blocker untuk Validasi Pesan

BAB I PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN. tanpa aturan-aturan yang baku. Sedangkan dalam pemasaran konvensional, barang

Penerapan Pencocokan String dalam Aplikasi Duolingo

TECHNICAL REPORT PENGGUNAAN ALGORITMA PENCOCOKAN STRING BOYER-MOORE DALAM MENDETEKSI PENGAKSESAN SITUS INTERNET TERLARANG

Penerapan Algoritma Brute Force pada Password Recovery

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Modifikasi Algoritma Caesar Cipher Menjadi SPICA-XB (Spinning Caesar dengan XOR Binary)

Penerapan Algoritma Knuth-Morris-Pratt dalam Music Identification (Musipedia)

Aplikasi String Matching dalam Analisis Cap Bibir

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Perbandingan Algoritma String Matching yang Digunakan dalam Pencarian pada Search Engine

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Pemanfaatan Algortima Boyer Moore dalam Penyaringan Teks Halaman Website Sederhana

Perbandingan Penggunaan Algoritma BM dan Algoritma Horspool pada Pencarian String dalam Bahasa Medis

Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik Kompresi Data


ANALISIS STRING MATCHING PADA JUDUL SKRIPSI DENGAN ALGORITMA KNUTH-MORRIS PRATT (KMP)

BAB I PENDAHULUAN. Kemajuan teknologi internet dan e-business belakangan ini telah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Deteksi Plagiarisme Gambar menggunakan Algoritma Pencocokan Pola Rabin-Karp

APLIKASI PENENTUAN JENIS PART OF SPEECH MENGGUNAKAN METODE N-GRAM DAN STRING MATCHING

Aplikasi Algoritma Pencocokan String pada Mesin Pencari Berita

Algoritma Pencocokan String dalam Permainan Hangman

PENERAPAN DIGITAL SIGNATURE UNTUK VALIDASI SURAT BERHARGA DIGITAL DAN NON DIGITAL

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

Pattern Matching dalam Aplikasi Pencarian Jodoh

Penerapan Interpolasi Polinom pada Sinkronisasi Subtitle

PENCARIAN BARANG DALAM BASIS DATA ONLINE SHOP MENGGUNAKAN ALGORITMA BFS, DFS, DAN KMP

Analisis Plagiarisme dalam Dua Buah Lagu Yang Berbeda dengan Algoritma Pattern Matching

Penggunaan Algoritma Greedy Untuk Menyelesaikan Permainan Cluedo

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

IMPLEMENTASI ALGORITMA BRUTE FORCE DALAM PENCARIAN DATA KATALOG BUKU PERPUSTAKAAN

Penerapan Algoritma Greedy untuk Permainan Flood It

Penerapan Algoritma Brute force dan Greedy pada Penjadwalan Disk

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

DIGITAL SIGNATURE UNTUK VALIDASI IJAZAH SECARA ONLINE

Penggunaan Algoritma Boyer Moore untuk Memindai Berkas dari Virus

Pendeteksian Plagiarisme Musik dengan Algoritma Boyer- Moore

Penerapan Algoritma Greedy dalam Pembuatan Artificial Intelligence Permainan Reversi

Penerapan Algoritma Brute Force pada permainan Countdown Number

Strategi Optimized Brute Force Pada Tent Puzzle Solver

Penerapan Algoritma Boyer Moore-Dynamic Programming untuk Layanan Auto-Complete dan Auto-Correct

Penggunaan Pohon Biner Sebagai Struktur Data untuk Pencarian

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Pengembangan Fungsi Random pada Kriptografi Visual untuk Tanda Tangan Digital

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA KAMUS KOMPUTER BERBASIS ANDROID.

PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT, STRING MATCHING ON ORDERED ALPHABET, dan BOYER-MOORE dalam PENCARIAN UNTAI DNA

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

PENERAPAN ALGORITMA PATTERN MATCHING KNUTH-MORRIS-PRATT DALAM PROGRAM MOUSE CAM

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

Implementasi Algoritma KMP dan Boyer-Moore dalam Aplikasi Search Engine Sederhana

Perbandingan dan Pengujian Beberapa Algoritma Pencocokan String

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Penerapan Algoritma Greedy untuk Permainan Halma

Perbandingan Algoritma Knuth-Morris-Pratt dan Algoritma Boyer-Moore dalam Pencarian Teks di Bahasa Indonesia dan Inggris

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

ALGORITMA PENCARIAN STRING DENGAN ALGORITMA BRUTE FORCE, KNUTH-MORRIS-PRATT DAN ALGORITMA DUA ARAH

Penerapan Algoritma Pencocokan String dalam Perangkat Lunak Pemblokir Akses Situs Negatif

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

Penggunaan Algoritma Pencocokkan Pola pada Aplikasi How-Old.net

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Penerapan Graf pada PageRank

Aplikasi Algoritma Stringmatching pada Analisa Teks (Text Analysis) untuk Decision Support System

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Menyelesaikan Kakuro Puzzle dengan Kombinatorial

Algoritma Brute Force pada Fluid Particle Engine

Transkripsi:

Penerapan Algoritma Knuth Morris Pratt dalam Aplikasi Penerjemah Teks Okharyadi Saputra (13510072) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia okharyadi@gmail.com Abstrak Aplikasi penerjemah teks, seperti layaknya Google Translate ataupun Bing Translator merupakan aplikasi yang memiliki kemampuan untuk mengenali teks yang diberikan dalam suatu bahasa dan menerjemahkannya ke dalam bahasa yang lain. Begitu banyak metode algoritma yang dapat digunakan dalam pembuatan aplikasi penerjemah seperti itu, salah satunya dengan menggunakan algoritma Knuth Morris Prath (KMP). Dengan algoritma KMP ini, setiap teks yang akan diterjemahkan akan ditinjau kata-kata untuk kemudian dicari kecocokannya dengan kata padanan dalam bahasa lain yang diinginkan. Dalam makalah ini penulis akan melakukan analisa sekaligus uji coba terhadap penerapan algoritma KMP ini dalam aplikasi penerjemah teks. Kata Kunci penerjemah, KMP, teks. I. PENDAHULUAN Aplikasi penerjemah teks merupakan aplikasi yang sangat populer saat ini. Didukung dengan kemunculan berbagai aplikasi penerjemah seperti Google Translate, semakin memberikan kemudahan kepada pengguna internet agar dapat menerjemahkan teks yang mereka inginkan ke dalam bahasa apapun. Akurasi sekaligus kecepatan dalam proses penerjemahan merupakan kunci dalam keberhasilan aplikasi semacam ini. Dalam aplikasi penerjemah teks, seorang user dapat menginputkan data berupa teks yang akan diterjemahkan. Selanjutnya, user dapat menentukan teks tersebut akan diterjemahkan ke dalam bahasa apa, dan secara otomatis aplikasi akan menghasilkan output berupa teks dengan hasil terjemahannya. Pada dasarnya, suatu aplikasi penerjemah teks bekerja dengan melakukan string matching atau pencocokan string berdasarkan kata-kata yang terdapat dalam database yang merupakan kamus aplikasi tersebut. Seperti yang kita ketahui, pencocokan string dapat dilakukan dengan berbagai algoritma yang ada, seperti Brute Force dan Knuth Morris Pratt. Sayangnya, algoritma Brute Force tidaklah cukup efisien jika digunakan dalam aplikasi penerjemah teks seperti itu. Terdapat algoritma lain yang lebih mangkus yaitu algoritma Knuth Morris Pratt. Algoritma Knuth Morris Pratt atau disingkat KMP merupakan algoritma pencocokan atau pencarian string yang merupakan pengembangan dari algoritma Brute Force. Berbeda dengan algoritma Brute Force yang melakukan pencocokan string dengan pergeseran satu per satu karakter, algoritma KMP mampu melakukan pencocokan dengan pergeseran yang lebih baik. Gambar 1 Simulasi Kerja Algoritma KMP II. APLIKASI PENERJEMAH TEKS Sebelum penulis melakukan pembahasan lebih lanjut mengenai implementasi algoritma KMP dalam aplikasi penerjemah teks, sebelumnya penulis akan melakukan sedikit peninjauan dan analisa terhadap aplikasi penerjemah yang sudah ada, yaitu Google Translate. Aplikasi Google Translate merupakan aplikasi penerjemah teks berbasis online yang dapat menerjemahkan teks dalam 65 bahasa yang berbeda, termasuk bahasa Indonesia. Sebagai contoh, penulis mencoba untuk menginputkan kalimat berbunyi: Halo apa kabar? Selanjutnya penulis mencoba untuk menerjemahkannya ke dalam bahasa Inggris, dan didapt hasil sebagai Gambar 2 Google Translate

Jika diperhatikan dalam gambar diatas, Google Translate akan melakukan penerjemahan terhadap kalimat Halo apa kabar menjadi Hello how are you dalam bahsa Inggris. Jika dilakukan highlighting pada suatu kata dengan mengarahkan pointer mouse ke kata tertentu, dapat dilihat padanan kata tersebut dalam bahasa yang berlawanan. Misalkan dalam gambar berikut ini: Gambar 3 Padanan Kata dalam Google Translate Dapat dilihat dalam gambar diatas, kata hello dalam bahasa Inggris akan diberi tanda berpadanan dengan kata halo dalam bahasa Indonesia. Selain itu, jika kata hello tersebut diklik, akan muncul alternatif-alternatif terjemahan yang lainnya. Dengan meninjau Google Translate ini, dapat disimpulkan bahwa secara umum aplikasi ini melakukan penerjemahan dengan melakukan string matching kata per kata. Memang sebenarnya ada proses lebih kompleks lainnya seperti peninjauan terhadap idiom ataupun pola kalimat lainnya, namun dalam makalah kali ini penulis akan mengabaikan hal tersebut. Terdapat hal yang unik dalam contoh kasus diatas, yaitu penerjemahan kata apa dan kabar yang diterjemahkan menjadi how are you. Padahal, jika dilakukan penerjemahan secara kata per kata, terjemahan yang terjadi akan menjadi what dan news. Hal ini jugalah yang harus diperhatikan dalam aplikasi terjemah, yaitu kata-kata yang bersifat majemuk. Hal yang sama juga terjadi ketika dilakukan uji coba terhadap aplikasi penerjemah yang lainnya, yaitu Bing Translator. Dengan menginputkan kata halo apa kabar, Bing Translator memberikan hasil sebagai III. ALGORITMA KNUTH MORRIS PRATT Algoritma Knuth Morris Pratt bekerja dengan memanfaatkan pergeseran yang semaksimal mungkin dalam pencocokan string dalam teks. Misalkan saja terdapat kata kabar yang ingin dicari padanannya dalam bahasa Inggris. Aplikasi penerjemah haruslah melakukan pencocokan kata untuk mencari padanan kata tersebut dalam bahasa asing. Haruslah diperhitungkan apakah kata tersebut merupakan bagian dari kata majemuk lainnya. Misalkan kata kabar yang dimaksud disini merupakan bagian dari kata apa kabar yang dapat dianggap sebagai satu kesatuan kata majemuk. Proses dengan menggunakan algoritma KMP akan menjadi sebagai 1. Sebelumnya dilakukan pencocokan dengan katakata lain yang terdapat dalam kamus, hingga akhirnya tiba dalam kalimat apa kabar, algoritma KMP akan mengenali terdapat kata kabar dalam kalimat tersebut dengan proses sebagai Ket. Kata yang dibaris atas merupakan kata yang diperiksa, dan kata yang dibawah merupakan kata yang dicocokkan. Dalam proses pencocokan pertama tidak ditemukan kemiripan dalam kata tersebut, maka selanjutnya akan dilakukan penggeseran untuk pencocokan selanjutnya. Dalam kasus diatas, penggeseran akan dilakukan sejauh satu karakter, dan terus berulang selama tiga kali pencocokan selanjutnya (dalam tiga kali pencocokan selanjutnya tidak ditemukan kesamaan karakter), sehingga pencocokan selanjutnya adalah sebagai Dan akhirnya ditemukan bahwa kata kabar merupakan bagian dari kata apa kabar. Dalam contoh lain dapat dilihat bahwa dalam algoritma KMP memiliki perhitungan khusus dalam melakukan pergeseran string. Misalkan untuk pencocokan kata abcabd dalam abcabcabd. Prosesnya adalah sebagai A B C Gambar 4 Aplikasi Penerjemah Bing Translator Dalam tahap awal dilakukan pencocokan mulai dari karakter paling kiri, dapat dilihat bahwa terdapat kecocokan hingga 5 karakter, namun pada karakter ke 6,

yaitu D terdapat perbedaan. Untuk menentukan sejauh apa pergeseran yang akan dilakukan, terlebih dahulu haruslah dilakukan penghitungan terhadap fungsi pinggiran untuk karakter yang cocok. Fungsi pinggiran merupakan ukuran awalan terpanjang dari suatu string P yang merupakan akhiran dari P[1..j]. Sebagai gambaran lengkap, berikut daftar fungsi pinggiran untuk kata abcabd : 0 0 0 1 2 0 Dalam kasus diatas, string yang cocok merupakan string abcab yang memiliki fungsi pinggiran ab (bernilai 2 karakter). Sehingga berdasarkan algoritma KMP, pergeseran yang dilakukan adalah sejauh panjang abcab dikurangi nilai fungsi pinggirannya yaitu 5-2=3. Maka pergeseran yang dilakukan adalah sejauh 3 karakter. A B C Setelah dilakukan penggeseran akhirnya ditemukan kecocokan dalam string diatas. IV. PENERAPAN ALGORITMA KMP DALAM APLIKASI PENERJEMAH Untuk menguji cobakan algoritma KMP dalam aplikasi penerjemah, penulis melakukan percobaan dengan membuat suatu program dalam bahasa C++. Berikut beberapa pertimbangan dan analisa yang dilakukan dalam pembuatan program kali ini: 1. Aplikasi penerjemah akan menerima inputan kalimat-kalimat dalam bahasa Indonesia. 2. Selanjutnya akan dilakukan pemrosesan terhadap kalimat-kalimat tersebut menjadi kata-kata yang terpecah-pecah demi kemudahan dalam melakuakn pencocokan string. Misalkan untuk kata halo apa kabar akan dipecah sebagai Halo Apa Kabar Sebenarnya kata apa dan kabar haruslah dianggap sebagai satu kesatuan kata karena terjadi perbedaan makna jika kedua kata tersebut diterjemahkan secara terpisah, namun hal itu akan dilakukan pada tahapan yang selanjutnya. 3. Aplikasi penerjemah akan melakukan pembandingan kata dengan daftar kata-kata yang ada dalam kamus. 4. Pembandingan kata dilakukan berdasarkan kata dengan kemiripan yang paling tinggi, selain itu perbandingan akan dilakukan dengan kata yang bersebelahan dengan kata tersebut, misalkan dalam kasus kata apa kabar, kata apa dan kabar sama-sama akan menemukan kecocokan dalam kata how are you, sehingga program mampu mengenali kata apa kabar sebagai satu kesatuan how are you. Untuk lebih jelasnya perhatikan dalam tabel A P A Ket. Dalam kasus kata apa, ditemukan kecocokan dalam kata apa kabar yang diterjemahkan sebagai how are you. Ket. Dalam kasus kata kabar, kembali ditemukan kecocokan dalam kata apa kabar yang samasama diterjemahkan sebagai how are you. Jika kasus seperti diatas terjadi, maka sistem akan mempertimbangkan kata apa kabar sebenarnya merupakan satu kesatuan yang bermakna how are you. Berbeda jika kata yang diinputkan adalah apa itu, tidak akan dianggap sebagai satu kesatuan dengan how are you. Langkah inilah yang dilakukan dalam uji coba kali ini untuk menemukan padanan kata yang paling sesuai untuk kata-kata ternteu juga untuk kata majemuk. Pencocokan ini dilakukan dengan algoritma KMP. 5. Selanjutnya program akan menampilkan hasil terjemahan dalam bahasa Inggris sesuai dengan pencocokan kata yang dilakukan. V. UJI COBA PROGRAM Setelah dilakukan pembuatan prorgam dalam bahsa C++ selanjutnya dilakukan uji coba program untuk menguji keberhasilan program ini. Berikut adalah hasil uji coba tersebut: 1. Sistem menerima inputan kalimat dalam bahasa Indonesia. Gambar 5 Inputan Awal 2. Sistem memecah kalimat menjadi kata-kata yang terpisah.

Gambar 6 Pemecahan Kata 3. Sistem mulai menerjemahkan kata satu per satu. berarti stepchild. Jika diperhatikan dalam hasil uji diatas terdapat keterangan kemiripan 4/8, maksudnya adalah sebagai Dalam pemrosesan yang pertama, yaitu kata anak dilakukan sebagai A N A K C H I L D Kemiripan : 4/4 A N A K T I R I S T E P C H I L D Kemiripan: 4/8 Gambar 7 Hasil Terjemahan Dapat dilihat dalam screenshot program diatas, sistem melakukan penerjemahan kata per kata dengan turut mempertimbangkan kehadiran katakata yang mungkin sepadan, seperti kata apa kabar. Dalam percobaan kali ini, sistem melakukan penerjemahan ke dalam dua kalimat yang berbeda dengan mempertimbangkan seperti penjelasan yang dilakukan pada bagian IV sebelumnya. Selanjutnya juga dilakukan uji coba untuk kata majemuk lainnya, misalnya anak tiri, dengan hasil sebagai 1. Sistem menerima inputan kalimat dalam bahasa Indonesia. Gambar 8 Inputan Awal Versi 2 2. Sistem melakukan pemecehan kata per kata. Gambar 9 Pemecahan Kata Versi 2 3. Sistem mulai menerjemahkan kata satu per satu. Gambar 10 Hasil Terjemahan Versi 2 Dapat dilihat dari hasil diatas, pada awalnya program menganggap kata anak tiri sebagai dua buah kata yang terpisah, yaitu anak dan tiri. Namun dalam pemrosesannya, akhirnya program menyadari bahwa sebenarnya anak tiri merupakan kata majemuk yang Karena kemiripan anak dibandingkan anak tiri lebih tinggi, maka pada tahap awal kata yang dipilih adalah kata anak yang diartikan child. Namun ketika sampai pada kata tiri: T I R I S T E P Kemiripan: 4/4 A N A K T I R I S T E P C H I L D Kemiripan: 4/4 Berdasarkan kemiripan memang pada awalnya dipilih kata step namun akhirnya program mempertimbangkan bahwa sebenarnya kata anak tiri merupakan satu kesatuan yang berarti stepchild karena itulah pada akhir program muncul dua arti yang salah satunya adalah kata stepchild. Dari hasil dua uji coba diatas, dapat disimpulkan bahwa program telah berhasil diimplementasikan dengan baik. Sebagai keterangan tambahan, program membaca arti kata dengan berdasarkan pada file eksternal yang berisi kata dalam bahasa indonesia disertai terjemahannya dalam bahasa Inggris, misalnya sebagai apel=apple# buku=book# apa kabar=how are you# play=bermain# Kata yang berada disebelah kiri merupakan kata dalam bahasa Indonesia, sementara yang disebelah kanan merupakan kata dalam bahasa Inggris (dipisahkan oleh tanda sama dengan = ). Setiap kata yang berbeda dipisahkan juga oleh tanda pagar #.

VI. KESIMPULAN Setelah dilakukan uji coba terhadap implementasi algoritma KMP dalam aplikasi penerjemah kata, dapat disimpulkan bahwa algoritma ini memang dapat digunakan untuk melakukan penerjemahan kata dengan berdasarkan pada string matching atau pencocokan string. Diperlukan pengembangan lebih lanjut untuk program ini, terutama dalam masalah kemangkusan algoritma yang digunakan. REFERENSI [1] Munir, Rinaldi, Diktat Kuliah IF3051 Strategi Algoritma. Program Studi Teknik Informatika ITB, 2012. [2] Munir, Rinaldi, Matematika Diskrit. Informatika Bandung, Bandung, September 2010. PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 16 Desember 2012 Okharyadi Saputra 13510072