Anda di halaman 1dari 7

Implementasi Algoritma Dynamic Programming untuk Koreksi

Kesalahan Ejaan Kata pada Search Engine


Muhammad Fauzi1, Veri Ilhadi2, Muhammad Nuh3
Program Studi Magister Teknik Informatika Fasilkom-TI USU
Jl. Universitas No. 24 A Kampus USU Medan

Abstrak
Kesalahan pengetikan sering terjadi ketika kita melakukan
pencarian pada search engine, hal tersebut disebabkan pada
tata letak keyboard yang saling berdekatan, slip jari, ataupun
karena dua karakter yang letaknya tertukar. Pada text mining
untuk mengatasi permasalahan tersebut dapat dilakukan
dengan menambahkan algoritma untuk mengoreksi kesalahan
ejaan kata yang diinput user sebelum melanjutkannya
kembali pada pencarian lebih lanjut. Salah satu cara untuk
mengatasi masalah ini adalah dengan menerapkan algoritma
Dynamic Programming untuk menghitung score dan
menetapkan string yang benar yang paling mendekati (closest
match) atau mirip dengan string yang dimasukkan oleh user
atau sering dikenal dengan Algoritma Levenshtein Distance.
Pengembangan teknik ini banyak diterapkan pada bidang
disiplin ilmu Bioinformatika untuk mengecek kemiripian
rumus DNA atau protein (sequence aligment). Pemecahan
masalah string edit distance menjadi titik temu antara bidang
informatika dengan biologi. Pada makalah ini akan dibahas
secara singkat bagaimana langkah-langkah teknis algoritma
Dynamic Programming dalam memecahkan masalah ini,
serta bagaimana kompleksitas ruang dan waktu dari langkahlangkah tersebut.
Kata Kunci : Koreksi ejaan Kata, Dynamic Programming,
Text Mining, string edit distance, Levenshtein Distance

1.

Proses pengecekan kesalahan pengetikan dengan cara


manual akan menghabiskan banyak waktu dan
membutuhkan suatu sumber pasti sebagai acuan
bahwa kata tersebut memang salah dalam proses
penulisannya. Efisiensi waktu yang dibutuhkan jika
dilakukan dengan manual tentunya tidak akan optimal
dan cukup membosankan sehingga kemungkinan
adanya human error dapat mengakibatkan proses
pengecekan kata menjadi tidak optimal.

Beberapa algoritma pun dapat diimplementasikan dalam


memberikan kata saran yang paling mendekati dari kata yang
salah pengetikannya. Salah satunya algoritma Levenshtein
Distance yang dapat menghitung jarak keterbedaan antara dua
string [1].
Selain itu ada juga kesalahan pengetikan karena kurangnya
spasi sehingga kata tersebut tidak memiliki arti. Untuk
permasalahan kata yang berdempetan tersebut digunakan
metode empiris yaitu dengan cara memecah kata menjadi dua
bagian dan mencocokkan kata ke dalam basis data dan
memberikan saran kemungkinan adanya kata yang diketik
tanpa spasi [2].

1.2 Perumusan Masalah


1. Mengimplementasikan

algoritma
dynamic
programming untuk koreksi kesalahan ejaan kata
pada search engine.

PENDAHULUAN

1.1 Latar Belakang Masalah


Kesalahan pengetikan kata pada search engine memang
sering sekali terjadi. Apalagi belakangan ini kesadaran
masyarakat untuk menuangkan idenya ke dalam artikel, jurnal
ilmiah, tugas kuliah ataupun dokumen lainnya mengalami
peningkatan. Tentu saja dalam penulisan dokumen tersebut
adanya kesalahan pengetikan yang disebabkan oleh beberapa
faktor seperti :
Letak huruf pada keyboard yang berdekatan,
-

Kesalahan karena kegagalan mekanis atau slip dari


tangan atau jari,

Kesalahan yang disebabkan oleh ketidaksengajaan.

2.

Mendeteksi
engine.

kesalahan

pengetikan

pada

search

1.3 Tujuan Kajian


1. Mengoptimalkan kinerja search engine dalam hal
pengoreksi kata.
2. Mengimplementasikan
algoritma
dynamic
programming untuk koreksi kesalahan ejaan kata
pada search engine.

a.

1.4 Manfaat Kajian


b.
2.3.1
Menyajikan aplikasi search engine yang
dapat mengoreksi kesalahan ejaan.
2.3.2
Dapat memberikan alternative kata yang
sesuai dengan library yang ada pada search engine.

2.

DASAR TEORI

2.1 Algoritma Dynamic Programming


Dynamic Programming merupakan sebuah algoritma
pemecahan masalah dengan cara menguraikan solusi menjadi
sekumpulan langkah (step) atau tahapan (stage) sedemikian
sehingga solusi dai persoalan dapat dipandang dari
serangkaian keputusan yang saling berkaitan. Pada
penyelesaian metode in kita menggunakan persyaratan
optimasi dan kendala untuk membatasi sejumlah pilihan yang
harus dipertimbangkan pada suatu tahap. Algoritma Dynamic
Programming memiliki karakteristik sebagai berikut :
1. Persoalan dapat dibagi mejadi beberapa tahap(stage),
yang pada setiap tahap hanya diambil satu keputusan
yang optimal.
2. Masing-masing tahap terdiri dari sejumlah
status(state) yang berhubungan dengan tahap
tersebut.
3. Hasil keputusan yang diambil pada tahap
ditransformasikan dari status yang bersangkutan ke
status berikutnya pada tahap berikutnya.
4. Ongkos (cost) pada suatu tahap bergantung pada
ongkos tahap-tahap sebelumnya dan meningkat
secara teratur dengan bertambahnya jumlah tahapan.
5. Keputusan terbaik pada suatu tahap bersifat
independen terhadap keputusan yang dilakukan tahap
sebelumnya.
6. Adanya hubungan rekursif yang mengidentifikasikan
keputusan terbaik untuk setiap status pada tahap k
memberikan keputusan terbaik untuk tahap
sebelumnya.
7. Prinsip optimalitas berlaku pada persoalan tersebut.
Ciri utama dari dynamic programming adalah prinsip
optimalitas yang berbunyi : jika solusi total optimal,
maka bagian solusi sampai tahap ke-k juga optimal.
Dari karakteristik poin ke-4 di atas, kita dapat menyimpulkan
bahwa algoritma Dynamic Programming dapat diaplikasikan
apabila peningkatkan ongkos secara linear dan diskrit
sehingga optimasi parsial dapat dilakukan.
Dalam
menyelesaikan
persoalan
dengan
Dynamic
Programming, kita dapat menggunakan 2 pendekatan berbeda
yaitu :

Maju (forward atau up-down) : bergerak mulai dari


tahap 1, terus maju ke tahap 2,3,..,n. Urutan variabel
keputusan adalah x1,x2,...,xn.
Mundur(backward atau bottom-up) : bergerak mulai
dari tahap n, terus mundur ke tahap n-1, n-2,..,2,1.
Urutan variabel keputusan adalah xn xn-1, x2, x1 [3].

2.2 Algoritma Levenshtein Distance


Levenshtein Distance dibuat oleh Vladimir Levenshtein
pada tahun 1965. Perhitungan edit distance didapatkan dari
matriks yang digunakan untuk menghitung jumlah perbedaan
string antara dua string. Perhitungan jarak antara dua string ini
ditentukan dari jumlah minimum operasi perubahan untuk
membuat string A menjadi string B [2].
Ada 3 macam operasi utama yang dapat dilakukan oleh
algoritma ini yaitu :
1. Operasi Pengubahan Karakter Operasi pengubahan
karakter merupakan operasi menukar sebuah karakter
dengan karakter lain contohnya penulis menuliskan
string yamg menjadi yang. Dalam kasus ini karakter
m diganti dengan huruf n.
2.

Operasi Penambahan Karakter Operasi penambahan


karakter berarti menambahkan karakter ke dalam suatu
string. Contohnya string kepad menjadi string
kepada, dilakukan penambahan karakter a di akhir
string. Penambahan karakter tidak hanya dilakukan di
akhir kata, namun bias ditambahkan diawal maupun
disisipkan di tengah string .

3.

Operasi Penghapusan Karakter Operasi penghapusan


karakter dilakukan untuk menghilangkan karakter dari
suatu string Contohnya string barur karakter terakhir
dihilangkan sehingga menjadi string baru. Pada
operasi ini dilakukan penghapusan karakter r [2].

Algoritma ini berjalan mulai dari pojok kiri atas sebuah


array dua dimensi yang telah diisi sejumlah karakter sring
awal dan string target dan diberikan nilai cost. Nilai cost pada
ujung kanan bawah menjadi nilai edit distance yang
menggambarkan jumlah perbedaan dua string.

2.3 Text Mining


2.3.1 Pengertian Text Mining
Text mining, yang juga disebut sebagai Text Data
Mining (TDM) atau Knowledge Discovery in Text (KDT),
secara umum mengacu pada proses ekstraksi informasi dari
dokumen-dokumen teks tak terstruktur (unstructured). Teks
mining dapat didefinisikan sebagai penemuan informasi baru
dan tidak diketahui sebelumnya.

Tujuan utama teks mining (text mining) adalah


mendukung proses knowledge discovery pada koleksi
dokumen yang besar. Pada prinsipnya, teks mining adalah
bidang ilmu multidisipliner, melibatkan information retrieval
(IR), text analysis, information extraction (IE), clustering,
categorization, visualization, database technology, natural
language processing (NLP), machine learning, dan data
mining. Dapat pula dikatakan bahwa teks mining merupakan
salah satu bentuk aplikasi kecerdasan buatan (artificial
intelligence / AI).
Teks mining mencoba memecahkan masalah
information overload dengan menggunakan teknik-teknik dari
bidang ilmu yang terkait. Teks mining dapat dipandang
sebagai suatu perluasan dari data mining atau knowledgediscovery in database (KDD), yang mencoba untuk
menemukan pola-pola menarik dari basis data berskala besar.
Namun teks mining memiliki potensi komersil yang lebih
tinggi dibandingkan dengan data mining, karena kebanyakan
format alami dari penyimpanan informasi adalah berupa teks.
Teks mining menggunakan informasi teks tak terstruktur dan
mengujinya dalam upaya mengungkap struktur dan arti Yang
tersembunyi dalam teks.
Perbedaan mendasar antara teks mining dan data
mining terletak pada sumber data yang digunakan. Pada data
mining, pola-pola diekstrak dari basis data yang terstruktur,
sedangkan di teks mining,pola-pola diekstrak dari data
tekstual (natural language). Secara umum, basis data didesain
untuk program dengan tujuan melakukan pemrosesan secara
otomatis, sedangkan teks ditulis untuk dibaca langsung oleh
manusia. (Hearst, 2003)
2.3.2 Ruang Lingkup Teks Mining
Teks mining merupakan suatu proses yang melibatkan
beberapa area teknologi. Namun secara umum proses-proses
pada teks mining mengadopsi proses data mining. Bahkan
beberapa teknik dalam proses teks mining juga menggunakan
teknik-teknik data mining. Ada empat tahap proses pokok
dalam teks mining, yaitu pemrosesan awal terhadap teks (text
preprocessing), transformasi teks (text transformation),
pemilihan fitur (feature selection), dan penemuan pola
(pattern discovery). (Even-Zohar, 2002).
a.

Text Preprocessing

Tahap ini melakukan analisis semantik (kebenaran arti)


dan sintaktik (kebenaran susunan) terhadap teks. Tujuan dari
pemrosesan awal adalah untuk mempersiapkan teks menjadi
data yang akan mengalami pengolahan lebih lanjut. Operasi
yang dapat dilakukan pada tahap ini meliputi part-of-speech
(PoS) tagging, menghasilkan parse tree untuk tiap-tiap
kalimat, dan pembersihan teks.
b.

Text Transformation

Transformasi teks atau pembentukan atribut mengacu


pada proses untuk mendapatkan representasi dokumen yang
diharapkan. Pendekatan representasi dokumen yang lazim
digunakan adalah bag of word dan model ruang vektor
(vector space model). Transformasi teks sekaligus juga
melakukan pengubahan kata-kata ke bentuk dasarnya dan
pengurangan dimensi kata di dalam dokumen.
Tindakan ini diwujudkan dengan menerapkan stemming dan
menghapus stopwords.
c.

Feature selection

Pemilihan fitur (kata) merupakan tahap lanjut dari


pengurangan dimensi pada proses transformasi teks.
Walaupun tahap sebelumnya sudah melakukan penghapusan
kata-kata yang tidak deskriptif (stopwords), namun tidak
semua kata-kata di dalam dokumen memiliki arti penting.
Oleh karena itu, untuk mengurangi dimensi, pemilihan hanya
dilakukan terhadap kata-kata yang relevan yang benar-benar
merepresentasikan isi dari suatu dokumen. Ide dasar dari
pemilihan fitur adalah menghapus kata-kata yang
kemunculannya di suatu dokumen terlalu sedikit atau terlalu
banyak.
d.

Pattern Discovery

Pattern discovery merupakan tahap penting untuk


menemukan pola atau pengetahuan (knowledge ) dari
keseluruhan teks. Tindakan yang lazim dilakukan pada tahap
ini adalah operasi teks mining, dan biasanya menggunakan
teknik-teknik data mining. Dalam penemuan pola ini, proses
teks mining dikombinasikan dengan proses-proses data
mining. Masukan awal dari proses teks mining adalah suatu
data teks dan menghasilkan keluaran berupa pola sebagai hasil
interpretasi atau evaluasi. Apabila hasil keluaran dari
penemuan pola belum sesuai untuk aplikasi, dilanjutkan
evaluasi dengan melakukan iterasi ke satu atau beberapa tahap
sebelumnya. Sebaliknya, hasil interpretasi merupakan tahap
akhir dari proses teks mining dan akan disajikan ke pengguna
dalam bentuk visual. (Even-Zohar,2002).
2.3.3 Ekstraksi Dokumen
Teks yang akan dilakukan proses teks mining, pada
umumnya memiliki beberapa karakteristik diantaranya adalah
memiliki dimensi yang tinggi, terdapat noise pada data, dan
terdapat struktur teks yang tidak baik. Cara yang digunakan
dalam mempelajari suatu data teks, adalah dengan terlebih
dahulu menentukan fitur-fitur yang mewakili setiap kata untuk
setiap fitur yang ada pada dokumen. Sebelum menentukan
fitur-fitur yang mewakili, diperlukan tahap preprocessing
yang dilakukan secara umum dalam teks mining pada
dokumen, yaitu case folding, tokenizing, filtering, stemming,
tagging dan analyzing. Gambar 2.1 adalah tahap dari
preprocessing: (Triawati, 2009).

2.3.3.3 Stemming
CASE FOLDING
TOKENIZING
FILTERING
STEMMING
Gambar 2.1 : Tahap Preprocessing (Pemrosesan Awal)

2.3.3.1 Case Folding dan Tokenizing


Case folding adalah mengubah semua huruf dalam
dokumen menjadi huruf kecil hanya a sampai huruf z
yang diterima. Karakter selain huruf dihilangkan dan dianggap
delimiter. Tahap tokenizing/parsing adalah tahap pemotongan
string input berdasarkan tiap kata yang menyusunnya. Gambar
2.1 adalah proses tokenizing: (Triawati, 2009).

Gambar 2.2 : Proses Tokenizing

2.3.3.2 Filtering

Tahap stemming adalah tahap mencari root kata dari tiap


kata hasil filtering. Pada tahap ini dilakukan proses
pengembalian berbagai bentukan kata ke dalam suatu
representasi yang sama. Tahap ini kebanyakan dipakai untuk
teks berbahasa inggris dan lebih sulit diterapkan pada teks
berbahasa Indonesia. Hal ini dikarenakan bahasa Indonesia
tidak memiliki rumus bentuk baku yang permanen (Triawati,
2009 ).
Stemming merupakan suatu proses untuk menemukan
kata dasar dari sebuah kata. Dengan menghilangkan semua
imbuhan (affixes) baik yang terdiri dari awalan (prefixes),
sisipan (infixes), akhiran (suffixes) dan confixes (kombinasi
dari awalan dan akhiran) pada kata turunan. Misalnya kata
berlari dan dilarikan akan diubah menjadi sebuah kata
yang sama yaitu lari.
Metode stemming memerlukan masukan berupa kata yang
terdapat dalam suatu dokumen, dengan menghasilkan
keluaran berupa kata dasar. Mencari kata dasar (root word)
dari suatu kata yang berimbuhan di dalam bahasa Indonesia
merupakan pekerjaan yang kompleks. Berbeda dengan bahasa
Inggris yang hanya memiliki imbuhan berupa suffixes
(akhiran), kata-kata dalam bahasa Indonesia bisa memiliki
imbuhan yang terdiri dari prefixes (awalan), suffixes (akhiran),
infixes (sisipan) dan confixes (kombinasi dari awalan, akhiran
dan sisipan). Penggunaan imbuhan di dalam bahasa Indonesia
bisa memakai lebih dari satu prefiks dan sufiks dalam satu
kata. Sebuah kata dengan awalan bisa memiliki arti yang
berbeda dari kata dasarnya. hal ini disebut kata turunan. selain
itu sebuah awalan juga dapat mengubah huruf awal suatu akar
kata yang biasa disebut peluluhan, sehingga dibutuhkan
pengkodean ulang (recode) untuk menemukan kembali akar
kata berdasarkan penggunaan awalan.

Filtering adalah tahap mengambil kata-kata penting


dari hasil token. Bisa menggunakan algoritma stoplist
(membuang kata yang kurang penting) atau wordlist
(menyimpan kata penting). Stoplist / stopword adalah katakata yang tidak deskriptif yang dapat dibuang dalam
pendekatan bag-of-words.

Gambar 2.4 : Proses Stemming

Gambar 2.3 : Proses Filtering

3.

PERANCANGAN

3.1 Perancangan Sistem


Dalam tahap ini dilakukan pencarian dan pengumpulan
informasi yang dibutuhkan selama perancangan sistem.
Metode yang digunakan untuk mengumpulkan informasi dan
data adalah metode studi literatur, yaitu dengan mempelajari
literatur yang terkait dengan penelitian, antara lain mengenai
Algoritma Levenshtein Distanse dan penerapannya pada
sistem pengecekan ejaan berbahasa Indonesia, bahasa
pemrograman PHP, HTML dan Javascript.
Pengecekan dilakukan per kata, kalimat masukan akan
masuk ke dalam tahap preprocessing terlebih dahulu, sebelum
diproses lebih lanjut. Proses preprocessing-nya meliputi
penghilangan tanda baca, tokenisasi terhadap masing-masing
kata. Kemudian setiap token akan dicocokkan ke basis data
menggunakan Algoritma Dynamic Programming berupa
algoritma Levenshtein Distance. Setelah dilakukan
perhitungan maka sistem akan menampilkan kata saran yang
mendekati kesalahan penulisan. Diagram alir Sistem
pengecekan ejaan kata adalah sebagai berikut.

Gambar 3.1 Flowchart Sistem Pengecekan Ejaan

3.2 Perancangan Basis Data


Perancangan basis data meliputi perancangan tabel yang
akan digunakan untuk menyimpan data kata Dasar bahasa
Indonesia yang dapat diunduh dari http://indodic.com/
IndoWordList. zip. Referensi kata yang tersedia cukup banyak
yaitu 41,057 kata Berbahasa Indonesia.

4.

IMPLEMENTASI

Pada implementasi ini sistem yang dibangun akan


memberikan saran kata kunci baru yang merupakan
pembetulan dari ejaan kata kunci sebelumnya. Saran kata
kunci baru yang diberikan adalah: universitas yang
merupakan pengkoreksian dari kata unverstas. Prosesnya
dapat dijelaskan sebagai berikut:
Kata kunci = unverstas
-

Langkah 1
Kata kunci = unverstas, dipecah ke dalam array sehingga:
Array ( [0] => unverstas).
-

Langkah 2
Untuk setiap isi array lakukan pencarian pada table
CRAWL. Apabila pencarian bernilai false maka lakukan
proses saranKata. Pada kondisi ini kata unverstas bernilai
false sehingga proses saran Kata akan dilakukan terhadap
kata unverstas.

Langkah 3
Filter semua kata pada tabel KATA yang memiliki panjang
karakter (P) antara Pkatakunci-3 sampai Pkatakunci+3.
Sehingga untuk kata unverstas dengan panjang 9 maka
kata-kata yang terpilih adalah yang memiliki panjang
antara 6 sampai 12.

Langkah 4
Untuk setiap kata terfilter dari tabel KATA lakukan
penghitungan jarak terhadap kata unverstas dengan metode
Levenshtein Distance. Misalkan tiga kata dari tabel kata
yang akan dibandingkan adalah investasi (panjang kata =
9), universitas (panjang kata = 11) dan integritas (panjang
kata = 10).

I
N
V
E
S
T
A
S
I

0
1
2
3
4
5
6
7
8
9

U
1
1
1
2
3
4
5
6
7
8

N
2
2
1
2
3
4
5
6
7
8

V
3
3
2
1
2
3
4
5
6
7

E
4
4
3
2
1
2
3
4
5
6

R
5
5
4
3
2
2
3
4
5
6

S
6
6
5
4
3
2
3
4
4
5

T
7
7
6
5
4
3
2
3
4
5

A
8
8
7
6
5
4
3
2
3
4

Tabel 4.1 Menghitung nilai jarak untuk kata investasi

S
9
9
8
7
6
4
4
3
2
3

U
N
I
V
E
R
S
I
T
A
S

0
1
2
3
4
5
6
7
8
9
10
11

U
1
0
1
2
3
4
5
6
7
8
9
10

N
2
1
0
1
2
3
4
5
6
7
8
9

V
3
2
1
1
1
2
3
4
5
6
7
8

E
4
3
2
2
2
1
2
3
4
5
6
7

R
5
4
3
3
3
2
1
2
3
4
5
6

S
6
5
4
4
4
3
2
1
2
3
4
4

T
7
6
5
5
5
4
3
2
2
2
3
4

A
8
7
6
6
6
5
4
3
3
3
2
3

S
9
8
7
7
7
6
5
3
4
4
3
2

5. HASIL RUNNING
Berikut merupakan hasil running
menerapkan rancangan sistem tersebut.

program

untuk

Tabel 4.2 Menghitung nilai jarak untuk kata universitas

I
N
T
E
G
R
I
T
A
S

0
1
2
3
4
5
6
7
8
9
10

U
1
1
2
3
4
5
6
7
8
9
10

N
2
2
1
2
3
4
5
6
7
8
9

V
3
3
2
2
3
4
5
6
7
8
9

E
4
4
3
3
2
3
4
5
6
7
8

R
5
5
4
4
3
3
3
4
5
6
7

S
6
6
5
5
4
4
4
4
5
6
7

T
7
7
6
5
5
5
5
5
4
5
6

A
8
8
7
6
6
6
6
6
5
4
5

S
9
9
8
7
7
7
7
7
6
5
4

Tabel 4.3 Menghitung nilai jarak untuk kata integritas

Dari perhitungan yang dilakukan melalui Tabel 4.1, Tabel


4.2 dan Tabel 4.3 di peroleh nilai jarak untuk setiap kata
yang dibandingkan sebagai berikut:
LD(unverstas, investasi) = 3
LD(unverstas, universitas) = 2
LD(unverstas, integritas) = 4
-

Langkah 5
Update nilai jarak dari semua kata di tabel KATA terfilter
yang memiliki nilai jarak antara 1 sampai 3. Oleh karena
sistem hanya menyimpan nilai jarak antara 1 sampai 3
maka hanya kata universitas dan investasi yang terupdate
nilai jaraknya pada table KATA.

Langkah 6
Urutkan isi tabel kata berdasarkan kriteria jarak terendah.
Kata pada urutan teratas merupakan kata saran terpilih.
Sehingga pada kasus ini kata universitas terpilih sebagai
kata saran bagi kata unverstas. [4]

Gambar 2 Hasil Running Program

6. KESIMPULAN
Berdasarkan hasil pengujian yang dilakukan dapat kita
ketahui bahwa algoritma dynamic programming dapat
diterapkan pada text mining, hal tersebut dibuktikan dengan
pengujian koreksi ejaan kata dengan mencari nilai terdekat
dari kemungkinan perubahan kata yang ada di database kamus
kata yang tersimpan.

7.

DAFTAR PUSTAKA

[1] Andhika, Fatardhi Rizky. 2010. Penerapan String


Suggestion dengan Algoritma Levenshtein Distance dan
Alternatif Algoritma Lain dalam Aplikasi. Bandung :
Institut Teknologi Bandung.
[2] Adriyani, N. M. M. 2012. Implementasi algoritma
levenshtein distance dan metode empiris untuk
menampilkan saran perbaikan kesalahan pengetikan
dokumen berbahasa Indonesia. Universitas Udayana.
[3] Ghifary, Muhammad. 2007. Penerapan Algoritma
Dynamic Programming untuk Mencari Solusi Masalah
String Edit Distance. Bandung : Institut Teknologi
Bandung.
[4] Benisius. Sistem Pengkoreksian Kata Kunci dengan
Menggunakan Metode Levenshtein Distance. Maluku :
Universitas Halmahera.
[5] http://jurnal.untad.ac.id/jurnal/index.php/JIMT/article/vi
ew/135/107 diakses tanggal 17 Mei 2015 jam 21.30

[6] http://www.math.uchicago.edu/~may/VIGRE/VIGRE20
09/REUPapers/Scarvalone.pdf diakses tanggal 17 Mei
2015 jam 22.30
[7] http://www.sans.org/reading_room/whitepapers/vpns/rev
iew-diffie-hellman-algorithm-secure-internetprotocols_751 diakses tanggal 18 Mei 2015 jam 23.45

Anda mungkin juga menyukai