ANALISIS PERMAINAN KATA MENGGUNAKAN

advertisement
ANALISIS PERMAINAN KATA MENGGUNAKAN ALGORITMA
PEMROGRAMAN ANAGRAM DAN SUBANAGRAM
OLEH :
MUFADHOL
Fakultas Teknologi Informasi dan Komunikasi
Universitas Semarang
[email protected], [email protected]
ABSTRAK :
Anagram adalah salah satu jenis permainan kata, huruf-huruf di kata awal
biasa diacak. Anagram juga sering digunakan sebagai kode untuk penyandian
pesan. Untuk menyelesaikan program anagram dan subanagram menggunakan
strategi bruteforce atau exhaustive search. Tetapi tidak menggunakan bruteforce
murni, dan yang digunakan adalah metode heuristic. Dalam program anagram
dan subanagram sebuah kamus akan digunakan sebagai database. Untuk
mempercepat proses pencocokan kata, bisa dilakukan dengan mengubah kamus.
Adapun pengubahan yang dapat di lakukan yaitu dengan cara mengubah suatu
kata menjadi terurut sesuai tanda baca dan abjad dalam ASCII.
KATA KUNCI : Permainan Kata, Anagram, Subanagram, Algoritma.
I.
PENDAHULUAN
Anagram adalah salah satu jenis permainan kata, huruf-huruf di kata
awal biasa diacak yang dapat dibentuk dari kata lain dengan menggunakan
seluruh huruf kata tersebut dan merubah urutan huruf-hurufnya untuk
membentuk kata lain atau sebuah kalimat. Permainan yang menggunakan
anagram antara lain adalah Scrabble dan Boggle. Dalam kedua permainan
ini, pemain berusaha membentuk kata-kata dari huruf yang disediakan.
Anagram juga sering digunakan sebagai kode untuk penyandian pesan, dalam
buku karangan Dan Brown, the Da Vinci Code, anagram dipakai untuk
menyampaikan pesan kematian.
Pada pengolahan anagram dan subanagram, dilakukan penginputan
dan akan dicari kata yang memiliki jumlah anagram dan subanagram paling
banyak dan paling sedikit, maka yang dilakukan oleh aplikasi ialah
menghitung
dan
membandingkan
jumlah subanagram
dan
jumlah
anagram dari masing-masing kata dan kemudian membandingkan mana yang
maksimal dan mana yang minimal. Proses perbandingan dilakukan dari tiap
kata terhadap tiap kata yang lain di kamus yang sama, maka akan dihasilkan
output yang membutuhkan waktu pemrosesan yang sangat lama.
Jika program anagram dan subanagram dijalankan lalu dengan
memasukkan input nama seseorang, maka dapat diketahui ternyata seseorang
tersebut baru
menyadari bahwa dirinya bisa sangat tertarik melihat
bagaimana namanya dapat membentuk kata lain dengan merubah urutannya.
Hal ini juga merupakan salah satu dari sedikit hal yang dapat dilakukan
komputer yang dapat menarik perhatian orang yang tidak mengerti dan tidak
paham tentang komputer.
II.
METODE
Untuk
menyelesaikan
program
anagram
dan
subanagram
menggunakan strategi bruteforce atau exhaustive search. Tetapi tidak
menggunakan bruteforce murni, dan yang digunakan adalah metode heuristic.
Heuristic yang dipakai yaitu dengan hanya memproses kata-kata dalam
kamus yang memiliki panjang kata sama dengan (=) atau kurang (<) dengan
kata yang dicari anagram dan subanagramnya, karena kata yang lebih
panjang tidak mungkin merupakan anagram atau subanagram dari kata yang
lebih pendek.
Dalam program anagram dan subanagram sebuah kamus akan
digunakan sebagai database kata-kata yang akan dijadikan acuan dalam
menyelasikan persoalan anagram dan subanagram. Terdapat 3 persoalan
yang harus dipecahkan
1) Mencari kata dalam kamus dimana kata tersebut merupakan kata yang
memiliki anagram dan subanagram terbanyak. Jika dalam anagram
menggunakan seluruh huruf dari kata yang dicari anagramnya, maka
pada subanagram kita tidak harus menggunakan seluruh hurufnya.
2) Langkahnya sama seperti yang pertama, tetapi kali ini dengan mencari
kata yang anagram dan sub anagramnya paling sedikit.
3) Jika diberikan inputan sebuah kata, maka program tersebut harus mampu
mencari semua anagram dan subanagramnya di dalam kamus yang telah
diberikan.
Untuk mempercepat proses pencocokan kata, bisa dilakukan dengan
mengubah kamus yang ada menjadi kamus baru yang format katanya
gampang diproses. Adapun pengubahan yang dapat di lakukan ialah dengan
cara mengubah suatu kata menjadi terurut huruf-hurufnya sesuai tanda baca
dan abjad dalam ASCII. Contoh : kata “kakak”, diubah menjadi “aakkk”, lalu
setelah itu kata yang sudah terurut menurut abjad ini direduksi dengan cara
hanya mengambil huruf-huruf yang berbeda saja beserta jumlahnya, sehingga
huruf yang sama, tidak perlu ditulis berulang-ulang. Sehingga “aakkk” tadi
berubah menjadi “a2k3”.kemudian di depan kata tadi ditambahkan panjang
(length) kata tersebut. Sehingga hasil akhirnya, kata “kakak” menjadi
“5a2k3”.
III.
PEMBAHASAN
Struktur data serta algoritma pemrograman merupakan algoritma
yang umum, yaitu algoritma untuk pencarian anagram serta subanagram.
Dengan format baru yaitu peringkasan kata, maka proses mencari anagram
dan subanagram lebih gampang. Pertama untuk mencari angram dan
subangram dari suatu kata, bisa dilakukan hanya dengan membandingkan
angka di depan kata tersebut (bisa 1 atau 2 digit), dimana angka tersebut
menunjukkan panjang kata. Bila panjang kata dalam kamus kurang dari atau
sama dengan (<=) panjang kata yang dicari, maka proses dilanjutkan dengan
mengecek karakter dan jumlah karakter selanjutnya. Syarat anagram dan
subanagram adalah semua karakter pada kata kamus ada pada kata yang
dicari anagramnya, dan jumlah per karakter (dalam format baru, karakter
yang sama hanya ditulis 1 beserta jumlah kemunculannya) kata kamus
tersebut kurang dari atau sama dengan (<=) dengan jumlah karakter kata yang
dicari anagram dan subanagramnya. Tentu saja hal ini hanya bisa dilakukan
dengan terlebih dahulu menyamakan format kata yang dicari anagram dan
subanagramnya dengan format kata diatas ([ length kata] [char1] [ jumlah
char1] [char2] [ jumlah char 2]).
1. Struktur Data Anagram dan Subanagram
Pemakaian struktur data yang tepat di dalam proses pemrograman
akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga
menjadikan program secara keseluruhan lebih efisien dan sederhana Fakta
atau keterangan tentang kenyataan yang disimpan, direkam atau
direpresentasikan dalam bentuk tulisan, atau simbol. Berikut adalah
algoritma untuk program anagram dan subanagram :
Struktur data program ini merupakan data yang bertipe TextFile
untuk pengolahan kata, sehingga disini digunakan file teks bantu untuk
mencari anagram dan subanagram.
Untuk mencari kata dalam kamus yang memiliki jumlah anagram
serta subanagram jumlah maksimal, sehingga ditambahkan :
Sedemikian rupa dengan prosedur untuk mencari kata yang memiliki
anagram dan sub-anagram paling sedikit sama seperti mencari maksimal
hanya saja statement “if (max<=count) then” diganti dengan statement “if
(max>=count) then”.
Melalui algoritma dan struktur data, solusi pada metode ini akan
ditemukan dengan lebih cepat, karena memiliki kompleksitas yang jauh
lebih rendah. Adapun metode pendekatan ini untuk seterusnya digunakan
sebagai dasar logika dalam menemukan anagram maupun subanagram dari
sebuah kata.
2. Algoritma Pemrograman Anagram dan Subanagram
a. Prosedur untuk mengecek anagram
b. Prosedur untuk mengecek subanagram
3. Hasil Pencarian Program
Pada
pengolahan
anagram
dan
subanagram,
dilakukan
penginputan dan akan dicari kata yang memiliki jumlah anagram dan
subanagram paling banyak dan paling sedikit, maka yang dilakukan oleh
aplikasi yaitu menghitung dan membandingkan jumlah subanagram
dijumlahkan dengan jumlah anagram dari masing-masing kata dan
kemudian membandingkan mana yang maksimal dan mana yang minimal.
Proses perbandingan dilakukan dari tiap kata terhadap tiap kata yang lain
di kamus yang sama, maka akan dihasilkan output yang membutuhkan
waktu pemrosesan yang sangat lama, bentuk optimasi hanya bisa
dilakukan pada pemrosesan anagram dan subanagram saja.
IV.
KESIMPULAN
Pemakaian struktur data yang tepat di dalam proses pemrograman
akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan
program secara keseluruhan lebih efisien dan sederhana. Pada pengolahan
anagram dan subanagram, dilakukan penginputan dan akan dicari kata yang
memiliki jumlah anagram dan subanagram paling banyak dan paling sedikit.
Untuk menyelesaikan program anagram dan subanagram menggunakan
strategi bruteforce atau exhaustive search. Tetapi tidak menggunakan
bruteforce murni, dan yang digunakan adalah metode heuristic.
Daftar Pustaka
Antonie Pranata, 2000, Algoritma dan Pemrograman, J&J Learning,
Yogyakarta.
Bambang Wahyudi, 2004, Struktur Data dan Algoritma, Andi Offset,
Yogyakarta.
Dwi Sanjaya, 2001, Bertualang dengan Struktur Data di Planet Pascal,
JJ Learning, Yogyakarta.
Iwan Binanto, 2005, Konsep Bahasa Pemrograman, Andi Offset,
Yogyakarta,
Lihardo, Ranjaliba. S, 2006, Desain Analisis Algoritma Anagram dan
SubAnagram, STT Telkom, Bandung.
Rinaldi, Munir, 2003, Algoritma dan Pemrograman II, Informatika,
Bandung.
Santoso, Insap, P., 1997, Struktur Data dengan Turbo Pascal, Andi
Offset, Yogyakarta.
Download