hobingoding.com - Halo coders. 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 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 termasuk palindrome atau bukan.
Test Case
Test #1
Input Kata : kasur ini rusak
Hasil : Palindrome
Test #2
Input Kata : kasur itu rusak
Hasil : Bukan Palindrome
Kode Program
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char kata[50] = {'\0'};
char temp[50] = {'\0'};
int n, i, j = 0;
printf("Program Mengecek Kata dan Kalimat Palindrom\n");
printf("visit us hobingoding.com\n\n");
// Input Kata
printf("Input Kata : ");
gets(kata);
n = strlen(kata);
// Ubah Kata Menjadi Lower Case
for(i = 0; kata[i]; i++) {
kata[i] = tolower(kata[i]);
}
// Balik Kata
for(i = n-1; i >= 0; i--) {
temp[j] = kata[i];
j++;
}
// Cek Palindrom
if(strcmp(kata, temp) == 0)
printf("Hasil : Palindrom");
else
printf("Hasil : Bukan Palindrom");
return 0;
}
Lihat source code melalui github: fandipres
Output Program
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.
Thanks
BalasHapusSama-sama, semoga bermanfaat!
Hapus