gdl usm mufadhol 63 1 anagram

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

Upload: alfan-ghinan-rusydi

Post on 03-Jan-2016

23 views

Category:

Documents


2 download

DESCRIPTION

Tentang Permainan Anagram

TRANSCRIPT

Page 1: Gdl Usm Mufadhol 63 1 Anagram

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.

Page 2: Gdl Usm Mufadhol 63 1 Anagram

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

Page 3: Gdl Usm Mufadhol 63 1 Anagram

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

Page 4: Gdl Usm Mufadhol 63 1 Anagram

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 :

Page 5: Gdl Usm Mufadhol 63 1 Anagram

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.

Page 6: Gdl Usm Mufadhol 63 1 Anagram

2. Algoritma Pemrograman Anagram dan Subanagram

a. Prosedur untuk mengecek anagram

Page 7: Gdl Usm Mufadhol 63 1 Anagram
Page 8: Gdl Usm Mufadhol 63 1 Anagram

b. Prosedur untuk mengecek subanagram

Page 9: Gdl Usm Mufadhol 63 1 Anagram

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

Page 10: Gdl Usm Mufadhol 63 1 Anagram

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.

Page 11: Gdl Usm Mufadhol 63 1 Anagram

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.