Lompat ke konten Lompat ke sidebar Lompat ke footer

Manipulasi String strtok() di C++: Penjelasan dan Contoh Programnya

Dalam pemrograman, terutama di bahasa pemrograman C++, manipulasi string adalah salah satu keterampilan penting yang perlu dikuasai. Salah satu fungsi bawaan yang paling umum digunakan untuk keperluan ini adalah strtok(). Fungsi ini sering digunakan untuk memecah string menjadi beberapa bagian berdasarkan delimiter atau pemisah tertentu. Artikel ini akan membahas secara mendetail tentang apa itu strtok() di C++, bagaimana cara kerjanya, serta beberapa contoh implementasi yang bisa Anda coba.
Manipulasi String strtok() di C++
Manipulasi String strtok() di C++

Apa Itu strtok()?

Fungsi strtok() adalah sebuah fungsi bawaan di bahasa pemrograman C++ yang digunakan untuk memisahkan string menjadi beberapa substring berdasarkan karakter pemisah yang disebut 'delimiter'. Fungsi ini menjadi salah satu alat paling berguna dalam strtok() di C++ untuk memecah string dan mengelolanya dalam array atau struktur data lainnya.

Sintaks strtok()

Bentuk umum dari fungsi strtok() di C++ adalah sebagai berikut:
char* strtok(char *str, const char *delimiters);
  • char *str: Ini adalah pointer ke string yang akan kita pisahkan. Untuk pemanggilan pertama, kita perlu memberikan string ini. Untuk pemanggilan selanjutnya, kita memberikan nullptr untuk melanjutkan pemisahan string sebelumnya.
  • const char *delimiters: Ini adalah string yang berisi semua karakter yang akan digunakan sebagai delimiter untuk memisahkan str.

Cara Kerja strtok()

Fungsi strtok() membutuhkan dua parameter:
  1. String yang akan dipisah (char *str)
  2. String yang berisi satu atau lebih karakter delimiter (const char *delimiters)
Sebagai contoh, Anda bisa membayangkan sebuah string "saya,adalah,penulis". Jika Anda menggunakan strtok() dengan delimiter berupa koma, maka string akan dibagi menjadi tiga bagian: "saya", "adalah", dan "penulis".


Contoh Program

Untuk lebih memahami cara kerja strtok() di C++, berikut adalah contoh program sederhananya:

Contoh 1: Memisahkan String Berdasarkan Koma

Pada contoh program pertama, kita akan memisahkan sebuah string yang berisi kata-kata yang dipisahkan oleh koma. Berikut adalah kode lengkapnya:
#include <iostream>
#include <cstring>

int main() {
    char str[] = "saya,adalah,penulis";
    char *token = strtok(str, ",");

    // Loop untuk mendapatkan semua token
    while(token != nullptr) {
        std::cout << token << std::endl;
        token = strtok(nullptr, ",");
    }
    return 0;
}
Output
saya
adalah
penulis
Program memisahkan string "saya,adalah,penulis" menjadi tiga token berdasarkan delimiter koma, dan mencetaknya satu per satu.

Penjelasan:
  • String yang akan kita pisahkan adalah "saya,adalah,penulis".
  • Delimiter yang digunakan adalah koma (,).
  • Fungsi strtok() pertama kali dipanggil dengan string str dan delimiter (,). Ini akan memisahkan string pada koma pertama dan mengembalikan pointer ke token pertama, yaitu "saya".
  • Loop while kemudian digunakan untuk terus memanggil strtok() sampai tidak ada token lagi. Dalam setiap iterasi, strtok() dipanggil dengan nullptr sebagai argumen pertamanya, yang berarti ia akan melanjutkan dari string yang sebelumnya sudah dipisahkan.

Contoh 2: Memisahkan String Berdasarkan Spasi dan Tanda Baca

Di contoh kedua ini, kita akan menggunakan lebih dari satu delimiter: spasi dan tanda baca (koma dan titik). Ini akan mempermudah pemisahan kata dalam sebuah kalimat.
#include <iostream>
#include <cstring>

int main() {
    char str[] = "Halo, dunia! Ini adalah contoh strtok() di C++.";
    char *token = strtok(str, " ,.!");

    // Loop untuk mendapatkan semua token
    while(token != nullptr) {
        std::cout << token << std::endl;
        token = strtok(nullptr, " ,.!");
    }
    return 0;
}
Output
Halo
dunia
Ini
adalah
contoh
strtok
di
C++
Di sini, string "Halo, dunia! Ini adalah contoh strtok() di C++." dipecah menjadi delapan token. Token-token ini dipisahkan oleh spasi, koma, titik, dan tanda seru, sesuai dengan delimiter yang kita tentukan dalam kode.

Penjelasan:
  • String yang akan kita pisahkan adalah "Halo, dunia! Ini adalah contoh strtok() di C++.". 
  • Delimiter yang digunakan adalah spasi, koma, titik, dan tanda seru.
  • Seperti sebelumnya, kita menggunakan loop while untuk memisahkan string hingga tidak ada token yang tersisa.

Kelebihan dan Kekurangan strtok()

Seperti halnya dengan setiap fungsi, strtok() di C++ juga memiliki beberapa kelebihan dan kekurangan. 

Kelebihan:
  • Mudah digunakan dan diimplementasikan.
  • Efisien dalam hal memori.
Kekurangan:
  • Mengubah string asli.
  • Tidak thread-safe.


Fungsi strtok() di C++ adalah salah satu alat yang paling berguna untuk memecah string menjadi beberapa bagian. Meski memiliki beberapa kekurangan, fungsi ini tetap menjadi pilihan utama bagi banyak developer karena kemudahannya. Dengan memahami cara kerjanya dan bagaimana mengimplementasikannya, Anda bisa memanipulasi string dengan lebih efisien dan efektif.

Daftar Pustaka
  • Stroustrup, B. (2013). The C++ Programming Language (4th ed.). Addison-Wesley.
  • Schildt, H. (2019). C++: The Complete Reference (5th ed.). McGraw-Hill. ISO/IEC (2017).

Artikel ini diharapkan dapat memberikan wawasan yang komprehensif tentang penggunaan strtok() di C++. Jika Anda mempunyai pertanyaan atau komentar, jangan ragu untuk meninggalkannya di bawah. Selamat belajar programming!

MateriDosen.Com

Posting Komentar untuk "Manipulasi String strtok() di C++: Penjelasan dan Contoh Programnya"