Panduan Lengkap Fungsi strcmp di C: Membandingkan String dengan Tepat

Dalam bahasa C, apa yang Anda gunakan saat membandingkan string? strcmp adalah fungsi untuk memeriksa apakah dua string sama, seperti menanyakan program “Apakah dua ini sama?”. Tentu saja, program tidak bisa menilai mana yang lebih lucu antara kucing dan anjing, tapi setidaknya bisa membedakan antara “HELLO” dan “hello”. Artikel ini akan menjelaskan cara kerja, penggunaan, dan poin-poin yang sering salah mengenai strcmp.

1. Apa itu Fungsi strcmp?

Fungsi strcmp membandingkan dua string karakter demi karakter dan mengembalikan nilai integer sebagai hasilnya. Fungsi ini bekerja sebagai berikut:

  • 0: Jika string cocok
  • Nilai positif: Jika string pertama berada di urutan leksikografis setelah string kedua
  • Nilai negatif: Jika string pertama berada di urutan leksikografis sebelum string kedua

Fungsi ini tidak hanya dapat memeriksa apakah semua karakter dalam string sama, tetapi juga dapat menentukan mana yang datang lebih dulu. Dalam program, Anda dapat menggunakannya dengan mudah seperti di bawah ini:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";

    int result = strcmp(str1, str2);
    printf("Hasil strcmp: %dn", result);
    return 0;
}

Kode di atas membandingkan “Hello” dan “World” dan menampilkan hasilnya. Poin pentingnya adalah strcmp membedakan huruf besar dan kecil, sehingga “HELLO” dan “hello” dianggap sebagai string yang berbeda.

2. Prinsip Kerja Fungsi strcmp

Cara kerja strcmp sederhana namun powerful. Ia membandingkan dua string karakter demi karakter dari awal, dan mengembalikan perbedaan begitu karakter yang berbeda muncul. Mekanisme ini juga diterapkan pada perbandingan urutan alfabetis, misalnya ketika membandingkan “apple” dan “banana”, strcmp akan membandingkan “a” dan “b” terlebih dahulu dan mengembalikan nilai negatif.

Berikut adalah contoh program untuk lebih memahami cara kerja strcmp:

#include <stdio.h>
#include <string.h;

int main() {
    char str1[] = "apple";
    char str2[] = "banana";

    int result = strcmp(str1, str2);
    if (result == 0) {
        printf("String cocok.n");
    } else if (result < 0) {
        printf("str1 ada sebelum str2.n");
    } else {
        printf("str1 ada setelah str2.n");
    }

    return 0;
}

Dalam kode ini, “apple” dan “banana” dibandingkan. Hasilnya, strcmp memberi tahu kita bahwa “apple” berada di urutan leksikografis sebelum “banana”. Ini berguna saat mengurutkan string secara alfabetis.

年収訴求

3. Contoh Penggunaan Fungsi strcmp

1. Memeriksa Input Pengguna

strcmp berguna saat membandingkan data yang dimasukkan pengguna dengan data yang sudah ada. Misalnya, dapat digunakan untuk memverifikasi kecocokan kata sandi.

#include <stdio.h;>
#include <string.h;>

int main() {
    char password[] = "secret";
    char input[256];

    printf("Masukkan kata sandi: ");
    scanf("%s", input);

    if (strcmp(password, input) == 0) {
        printf("Kata sandi cocok.n");
    } else {
        printf("Kata sandi salah.n");
    }

    return 0;
}

Program ini membandingkan kata sandi yang dimasukkan dengan kata sandi yang benar menggunakan strcmp.

2. Mengurutkan secara Leksikografis

strcmp juga berguna saat mengurutkan string secara leksikografis. Saat mengurutkan beberapa kata, Anda dapat menggunakan strcmp untuk menentukan kata mana yang seharusnya datang lebih dulu.

4. Alternatif Fungsi strcmp

Meskipun strcmp sangat berguna, ada fungsi lain yang mungkin perlu dipertimbangkan tergantung pada penggunaannya.

strncmp: Membandingkan Substring

strncmp digunakan ketika Anda hanya ingin membandingkan sebagian dari string. Misalnya, digunakan untuk membandingkan hanya 3 karakter pertama dari sebuah string.

#include <stdio.h;>
#include <string.h;>

int main() {
    char str1[] = "apple";
    char str2[] = "apricot";

    if (strncmp(str1, str2, 3) == 0) {
        printf("3 karakter pertama cocok.n");
    } else {
        printf("3 karakter pertama tidak cocok.n");
    }

    return 0;
}

memcmp: Membandingkan Memori

memcmp adalah fungsi untuk membandingkan seluruh memori, bukan hanya string. Ini berguna ketika Anda perlu membandingkan data biner.

5. Kesalahan Umum

1. Tidak Memperhatikan Perbedaan Huruf Besar dan Kecil

strcmp membedakan huruf besar dan kecil. Misalnya, “HELLO” dan “hello” diperlakukan sebagai hal yang berbeda. Jika Anda membutuhkan perbandingan yang tidak peka huruf besar/kecil, pertimbangkan menggunakan strcasecmp.

2. Membandingkan NULL Pointer

Membandingkan NULL pointer dengan strcmp dapat menyebabkan crash. Penting untuk memastikan bahwa string yang dibandingkan diinisialisasi dengan benar.

Kesimpulan

strcmp adalah fungsi yang sangat penting dalam bahasa C, yang memungkinkan perbandingan string dengan mudah. Kami telah menjelaskan penggunaannya dalam program nyata, seperti verifikasi kata sandi dan pengurutan string, sambil menunjukkan contoh-contoh. Jangan ragu untuk merasakan kemudahan fungsi ini dalam manipulasi string di program Anda.

侍エンジニア塾