Hari ini saya akan melanjutkan tulisan blog saya di hari ke 61 dengan memberikan contoh kode program Golang yang berfungsi untuk mengecek apakah sebuah kalimat merupakan palindrome atau bukan.
Sebelum lanjut saya akan menjelaskan terlebih dahule mengenai palindrome karena saya pun baru tau palindrome itu setelah di berikan tugas ini oleh mas Ridwan.
Apa itu Palindrome?
Palindrome adalah kata, frasa, angka, atau urutan karakter yang dibaca sama dari depan maupun belakang. Dalam hal ini, spasi, tanda baca, dan huruf besar/kecil diabaikan saat memeriksa palindrome.
Contoh palindrome dalam bahasa Indonesia adalah:
- "katak"
- "kasur ini rusak"
Dalam bahasa Inggris, contohnya adalah:
- "racecar"
- "A man, a plan, a canal, Panama!"
Kode Program untuk Mengecek Palindrome
Berikut ini adalah kode Go untuk mengecek apakah input pengguna merupakan palindrome:
1. Import Package
fmt: Untuk menampilkan output dan mengambil input.os: Untuk mengakses input/output dari sistem operasi.bufio: Digunakan untuk membaca input dari pengguna dengan metodebufio.NewReader.strings: Berisi fungsi untuk manipulasi string, seperti mengubah huruf kecil dan menghapus spasi.unicode: Berisi fungsi untuk mengecek tipe karakter, misalnya apakah huruf, angka, atau simbol.
2. Fungsi filterAlphanumeric
Penjelasan:
- Fungsi ini hanya mengambil karakter alfanumerik (huruf dan angka) dari input dan mengubah huruf kapital menjadi huruf kecil.
strings.Builderdigunakan untuk membangun string secara efisien.- Loop
for _, char := range input: Memeriksa setiap karakter dalam input. unicode.IsLetter(char): Mengecek apakah karakter adalah huruf.unicode.IsDigit(char): Mengecek apakah karakter adalah angka.unicode.ToLower(char): Mengubah huruf besar menjadi kecil.
Contoh:
Input:
Hasil dari fungsi ini:
3. Fungsi cekPalindrome
Penjelasan:
- Fungsi ini memanggil
filterAlphanumericuntuk memproses input dan hanya mengambil karakter alfanumerik dengan huruf kecil. - Looping dari awal hingga tengah string:
- Membandingkan karakter dari awal dengan karakter dari akhir string.
- Jika ada perbedaan, fungsi akan mengembalikan
false(bukan palindrome). - Jika semua pasangan karakter cocok, fungsi akan mengembalikan
true(palindrome).
4. Fungsi main
Penjelasan:
bufio.NewReader(os.Stdin): Membuat reader untuk membaca input dari keyboard.reader.ReadString('\n'): Membaca input dari pengguna hingga Enter ditekan.strings.TrimSpace(input): Menghapus spasi di awal dan akhir input.- Fungsi
cekPalindromedigunakan untuk mengecek apakah input tersebut adalah palindrome atau bukan.
Contoh Input dan Output:
Contoh 1:
Input:
Output:
Contoh 2:
Input:
Output:
Penjelasan Alur Program:
- Pengguna memasukkan kalimat.
- Program memanggil
filterAlphanumericuntuk memproses input menjadi hanya karakter alfanumerik dan huruf kecil. - Program memanggil
cekPalindromeuntuk memeriksa apakah string hasil filter tersebut adalah palindrome. - Program menampilkan hasil:
- "True" jika palindrome.
- "False" jika bukan palindrome.
Kesimpulan:
- Spasi, tanda baca, dan simbol diabaikan dalam pemeriksaan palindrome.
- Huruf besar dan kecil tidak dibedakan.
- Program ini efisien dan dapat memproses kalimat panjang dengan berbagai karakter dan simbol.

Komentar
Posting Komentar