Teknik untuk memeriksa anagram

Anagram adalah suatu kata atau frase yang dibentuk dengan menyusun ulang tiap huruf pada kata atau frase asal dengan urutan yang berbeda. Beberapa contoh anagram misalnya:

  1. Kata kasur dengan sukar
  2. Kata tampan dengan mantap
  3. Kata kelam dengan lemak
  4. Kata listen dengan silent

Kita dapat memeriksa apakah suatu kata merupakan anagram dari kata lainnya dengan berbagai pendekatan menggunakan bahasa pemrograman python. Berikut diberikan dua contoh fungsi untuk keperluan dimaksud dengan pendekatan yang berbeda.

Pendekatan 1, mengurutkan kemudian membandingkan

Pada pendekatan pertama, cara yang digunakan adalah mengurutkan karakter/huruf pada kedua kata yang akan dibandingkan. Setelah diurutkan, hasilnya kemudian dibandingkan, jika sama berarti kedua kata merupakan anagram, dan sebaliknya.

Berikut adalah contoh kodenya

def is_anagram(text1,text2):
  if sorted(text1) == sorted(text2):
    return True
  return False

Pendekatan 2, membandingkan huruf demi huruf

Cara kedua adalah membandingkan huruf demi huruf pada tiap kata. Jika setiap huruf pada kata pertama ada pada kata kedua, maka kedua kata merupakan anagram, dan sebaliknya. Pada teknik ini, sebelum kedua kata dibandingkan, terlebih dahulu jumlah huruf pada kedua kata diperika. Jika pada pemeriksaan ini ditemukan bahwa jumlah huruf tidak sama, fungsi langsung mengembalikan nilai False.

Berikut adalah contoh kodenya

def is_anagram2(s1,s2):
  if len(s1) != len(s2): # bila jumlah kata tidak sama
    return False
  for c in s1:
    idx = s2.find(c)
    if idx >= 0: # bila huruf ditemukan
      s2 = s2[:idx] + s2[idx+1:] # buang huruf bersangkutan
    else: # bila huruf tidak ditemukan
      return False 
  return True 

Demo pada repl.it

Silahkan jalankan cuplikan kode di bawah ini untuk lebih memahami dua cara di atas.

Semoga bermanfaat,

Salam

You may also like...

Berikan komentar