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:
- Kata kasur dengan sukar
- Kata tampan dengan mantap
- Kata kelam dengan lemak
- 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