Sunday, 6 August 2017

Menentukan Dua Buah Kata Termasuk Anagram Atau Tidak Dengan Java

Anagram adalah salah satu jenis permainan kata yang huruf-huruf di kata awal biasanya diacak untuk membentuk kata lain atau sebuah kalimat. Anagram sering dipakai sebagai kode. Permainan yang menggunakan anagram antara lain adalah scrabble dan boggle. Dalam kedua permainan ini, pemain berusaha membentuk kata-kata dari huruf yang disediakan [source wiki]

Contohnya :

ABC  dengan BCA atau ACB atau BAC adalah Anagram

Kenapa demikian?

Karena setiap satu huruf di kata pertama, dimiliki oleh kata kedua dengan jumlah yang sama. Jadi jika kata pertama mengandung huruf A sebanyak 1, maka dikata kedua juga harus memiliki huruf A sebanyak 1. Jika dikata pertama mengandung huruf B sebanyak 2, maka dikata kedua juga harus memiliki huruf B sebanyak 2, begitu seterusnya.

ABC dengan BBA atau ABBC atau ABCA atau ABA atau BAA bukan merupakan Anagram


Seperti yang dijelaskan pada contoh kasus yang Anagram, pada contoh kasus yang kedua ini, huruf yang ada pada kata pertama dan kata kedua itu sama, namun jumlahnya berbeda (pasti ada yang berbeda jumlahnya). Itulah yang membedakan kenapa pada contoh kedua ini bukan merupakan Anagram

Bagaimana penerapannya dalam java?


Berikut ini saya akan berikan 2 method yang dapat digunakan untuk mencari apakan dua kata termasuk Anagram atau tidak.

Method I


Pada method ini yang pertama dilakukan adalah mengurutkan kata pertama dan kata kedua dari awal sampe akhir (urutan berdasarkan abjad a-z).

Yang digunakan untuk mengurutkan adalah kode Arrays.sort(chars1). Maka dari inputannya bca akan berubah menjadi abc. Tujuannya adalah biar program mundah mendeteksi berapa jumlah setiap hurufnya jika sudah di urutkan.

Jadinya akan begini :

CCABD dan BACD, setelah dilakukan sort maka akan menjadi ABCCD dan ABCA, maka sudah ketahuan kalau kedua kata itu bukan merupakan Anagram

Yang menetukan jumlahnya sama atau tidak adalah pada bagian if yaitu Arrays.equals(chars1, chars2).

Baca juga : Menampilkan Gambar Dari Database MySQL Menggunakan PHP 

Paham kan ya?

Method II


Pada method yang kedua ini saya rasa lebih kompleks dari pada method yang pertama karena lebih banyak main logic dari pada fungsi yang sudah ada di java.

Yang pertama adalah melakukan pengecekan jumlah kata pertama dan kata kedua harus sama jumlahnya, jika beda jumlahnya sudah dipastikan itu bukan Anagram.

Baca juga : Membuat Kakulator Sederhana Dengan Java Netbeans (Di Sertai Penjelasan Secara Lengkap)

Yang kedua melakukan pengecekan setiap hurufnya antara kata pertama dan kata kedua, sebelum ditentukan apakah itu anagram atau bukan

Yang terakhir menentukan Anagram atau tidaknya.

Pada method ini juga dapat mengetahui huruf mana saja yang menyebabkan dua buah kata itu tidak Anagram dan berapa jumlahnya.

Bagaimana jika ada huruf besar dan kecil?


Tidak masalah, jika kasus kalian mengharuskan antara huruf besar dan kecil adalah sama maka gunakan fungsi .toLowerCase().

Jika kasus kalian mengharuskan membedakan antara huruf besar dan kecil maka fungsi .toLowerCase() tidak perlu digunakan.

Cara Pemakaian Method



Hasilnya 


Hasil yang Anagram

Hasil bukan Anagram


Sekian tutorial kali ini, kalian bisa gunakan yang mana saja boleh, keduanya sama dapat menentukan dua buah kata itu Anagram atau tidak.

Please post a polite comment and do not post a spam
EmoticonEmoticon