Program Golang Untuk Memeriksa Apakah Sebuah Kata Palindrome Atau Bukan

 


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.



1 Comments

Previous Post Next Post