Hai sobat LiTe, Apakah kalian tahu apa sih Polindrome itu?
Okee…Langsung saja kita bahas yak, Palindrome adalah sebuah kata, frasa, angka atau urutan karakter lainnya yang dapat dibaca sama baik dari depan maupun dari belakang. Dengan kata lain, sebuah palindrome akan menghasilkan urutan karakter yang sama ketika dibaca dari kiri atau kanan. Contohnya nhi ada kata "malam", jika kita baca dari kanan maka tetap sama yaitu “malam”. Kemudian kata “kodok”, jika kita baca dari sebelah kanan maka tetap sama “kodok”.
Palindrome sering kali menjadi bahan latihan dalam menguji kemampuan untuk membuat algoritma, terutama pada bidang pemrograman dan matematika. Palindrome juga dapat dijumpai pada berbagai jenis bentuk seperti kata, kalimat, angka, dan sebagainya.
Langsung saja pahami kode berikut ini:
Pada program di atas, kita menggunakan fmt.Scanln() untuk menangkap inputan dari console, kemudian memanggil fungsi isPalindrome() untuk memeriksa apakah kata yang dimasukkan adalah palindrome atau bukan. Fungsi isPalindrome() akan mengubah huruf kecil pada kata, menghilangkan spasi pada kata, dan membalikkan urutan karakter pada kata dengan menggunakan []rune dan for loop. Terakhir, fungsi isPalindrome() akan memeriksa apakah kata dan kata terbalik sama.
Jika kita jabarkan lagi, maka :
package main
import (
"fmt"
"strings"
)
func main() {
// Mengambil input dari console
fmt.Print("Masukkan sebuah kata atau kalimat: ")
var input string
fmt.Scanln(&input)
// Memeriksa apakah input adalah palindrome
if isPalindrome(input) {
fmt.Printf("%s adalah palindrome\n", input)
} else {
fmt.Printf("%s bukan palindrome\n", input)
}
}
// Fungsi untuk memeriksa apakah sebuah kata atau kalimat
adalah palindrome atau bukan
func isPalindrome(input string) bool {
// Mengubah huruf kecil pada input
input = strings.ToLower(input)
// Menghilangkan spasi pada input
input = strings.ReplaceAll(input, " ", "")
// Membalikkan urutan karakter pada input
runes := []rune(input)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
inputTerbalik := string(runes)
// Memeriksa apakah input dan input terbalik sama
return input == inputTerbalik
}
Jika kita run programnya, contoh disini pada run pertama saya akan nenginputkan kata "kodok" dan pada run kedua saya menginputkan kata "kuda" maka hasilnya kita bisa lihat dibawah ini :
Dapat dilihat bahwa program berhasil mendeteksi apakah inputan yang kita input termasuk palindrome atau bukan.
Demikian contoh program dan sedikit penjelasan yang bisa kami sampaikan, semoga bermanfaat dan sukses.
👌
ReplyDelete