Lompat ke konten Lompat ke sidebar Lompat ke footer

Widget Atas Posting

Program Mengecek Kata Palindrom dengan Menggunakan Bahasa C

Program Mengecek Kata Palindrom dengan Menggunakan Bahasa C
hobingoding.com - Seperti yang sudah pernah saya bahas sebelumnya, palindrom (palindrome) merupakan rangkaian kata, angka, atau kalimat yang memiliki karakter yang sama baik jika dibaca dari depan maupun belakang.

Sebelumnya saya juga sudah membuatkan programnya tetapi dengan menggunakan bahasa pemrograman Python yang program dan penjelasannya dapat kamu baca melalui link berikut:

Baca juga: Program Mengecek Kata Palindrom dengan Menggunakan Python

Sekarang saya ingin mencoba mengimplementasikan algoritma program yang sudah saya buat sebelumnya dalam bahasa pemrograman Python ke dalam bahasa pemrograman C yang sebenarnya alur dasar tahapan logikanya sama saja namun dalam pengimplementasiannya jelas akan memiliki perbedaan mengingat kedua bahasa pemrograman yang ada di atas merupakan dua bahasa pemrograman yang berbeda.

Sebelumnya pada program yang ada di bawah ini saya akan menggunakan 3 buah file header yaitu <stdio.h> yang berisi fungsi-fungsi standar input - output, <string.h> yang berisi fungsi-fungsi yang bisa digunakan untuk melakukan manipulasi string seperti strlen, strcmp, dan <ctype.h> yang berisi fungsi-fungsi yang dapat digunakan untuk melakukan konversi karakter.


Permasalahan

Buatlah program untuk mengecek kata, kalimat atau angka palindrome dengan menggunakan Bahasa Pemrograman C.

Test Case

Test #1
Input Kata: kasur ini rusak
Result: Palindrome

Test #2
Input Kata: kasur itu rusak
Result: Bukan Palindrome

Kode Program

#include <stdio.h>
#include <string.h>
#include <ctype.h>
//source code by hobingoding.com

int main(){
    char kata[50] = {'\0'};
    char temp[50] = {'\0'};
    int n, i, j = 0;

    printf("Program Mengecek Kata - Kalimat Palindrom atau Bukan\n");
    printf("source code by hobingoding.com\n");
    printf("\nInput Kata : ");
    gets(kata);
    n = strlen(kata);
   
    for(i = 0; kata[i]; i++){
        kata[i] = tolower(kata[i]);
    }

    for(i = n-1; i >= 0; i--){
        temp[j] = kata[i];
        j++;
    }

    printf("Result : ");
    if(strcmp(kata, temp) == 0)
        printf("Palindrom");
    else
        printf("Bukan Palindrom");
    getch();
    return 0;
}

Output Program

Tampilan Keluaran Program Mengecek Palindrome Bahasa C

Penjelasan Program

Pertama saya disini mendeklarasikan sebanyak dua buah variabel bertipe array char (pada bahasa pemrograman C, string lebih dianggap sebagai kumpulan dari karakter (char)) yang mana kedua variabel array char ini sudah saya tentukan ukurannya untuk dapat menampung sebanyak 49 karakter + 1 buah karakter NULL (penanda akhir kalimat yang memiliki penulisan sebagai berikut = '\0') sehingga total ukuran tiap array char ini adalah sebanyak 50.

Kemudian saya memanfaatkan fungsi strlen yang terdapat pada file header string.h untuk menghitung berapa jumlah karakter yang ada pada kata - kalimat yang sudah saya input dan disimpan ke variabel n.

Selanjutnya saya melakukan perulangan for loops untuk melakukan konversi agar semua karakter yang sudah saya input tadi di ubah menjadi huruf kecil. Hal ini saya lakukan karena nantinya pada proses pembandingan kedua array char di atas saya menggunakan fungsi strcmp yang lebih jelasnya akan saya jelaskan nanti di bawah.

Kemudian saya melakukan perulangan for loops lagi untuk melakukan proses pembalikan kata - kalimat yang telah saya input tadi untuk disimpan ke dalam variabel array char temp.

Terakhir saya menggunakan fungsi strcmp yang juga merupakan fungsi bawaan dari header string.h untuk melakukan pembandingan antara kata - kalimat yang sudah saya input tadi dengan kata - kalimat yang sudah dibalik.

Fungsi strcmp itu sendiri akan membandingkan kedua kata - kalimat per karakternya sesuai dengan kode ASCInya dimana:
- jika ternyata kedua kata - kalimat yang dibandingkan memiliki karakter yang berbeda maka akan menghasilkan keluaran 1 atau -1, sementara itu
- jika kata - kalimat yang dibandingkan sama persis maka akan menghasilkan keluaran 0.
Nah pada proses pembandingan dengan menggunakan fungsi strcmp ini, karakter 'A' dan 'a' dianggap berbeda. Inilah alasan mengapa saya melakukan konversi karakter terlebih dahulu menjadi huruf kecil semua dengan bantuan fungsi tolower() sebelum saya membaliknya yang sudah sempat saya singgung di atas.

Jika kamu perhatikan logika dasar dari program di atas bisa dikatakan sama saja dengan program Python yang sudah pernah saya bagikan sebelumnya. Untuk penjelasan lebih lanjut tentang fungsi-fungsi yang terdapat pada header string.h dan penggunaannya akan saya buatkan penjelasannya di kemudian hari. Terima kasih.
Fandi Presly Simamora
Fandi Presly Simamora Don't think too long because the chance can't waiting for you.

2 komentar untuk "Program Mengecek Kata Palindrom dengan Menggunakan Bahasa C"

Berlangganan via Email