Lompat ke konten Lompat ke sidebar Lompat ke footer

Strlen dan Sizeof Bahasa C dan Fungsinya

Artikel ini akan menjelaskan perbedaan dan karakteristik dari operator sizeof() dan operator strlen() pada bahasa pemrograman C.


5 Fakta Antara Strlen vs Sizeof pada Bahasa C
Ilustrasi Strln Sizeof Bahasa C

Sebelum memahami lebih dalam materi tentang Strlen dan Sizeof Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Fakta tentang Sizeof pada Bahasa C [klik], Printf dengan Operator Increment pada Bahasa C [klik], dan Titik Sekuensial Bahasa C dan Fungsinya [klik].

sizeof()
Operator sizeof adalah compile time unary operator yang dapat digunakan untuk menghitung ukuran dari nilai operannya.

Hasil dari sizeof adalah tipe unsigned integral yang biasanya dinotasikan oleh size_tsizeof dapat diterapkan untuk tipe data apapun, termasuk tipe data primitif seperti integer dan float, atapun tipe data compound seperti struktur, union, dan lain sebagainya.


strlen()
strlen() adalan fungsi predefinisi pada bahasa C yang pendefinisiannya mengandung file header "string.h".

strlen() menerima pointer menuju array sebagai argumen dan melewati memori ketika runtime dari alamat yang diberikan untuk karakter NULL dan menghitung berapa banyak lokasi memori yang dilewatinya sebelum karakter yang dicari tersebut ditemukan. Tugas utama dari strlen() adalah menghitung panjang dari array atau string.

sizeof vs strlen()
  • Tipe: operator sizeof adalah operator unary dimana strlen() adalah fungsi predefinisi pada bahasa C.
  • Mendukung tipe data: sizeof memberikan nilai real dari tipe data apapun dalam satuan byte tempat dimana nilai ukuran dari array string.
  • Evaluasi ukuran: sizeof() adalah ekspresi kombinasi yang memberikan ukuran dari sebuah tipe data atau sebuah variabel. Tidak peduli hal tersebut apakah tentang nilai dari sebuah variabel itu sendiri atau bukan. Sementara strlen, memberikan ukuran panjang dari C-style NULL string.
  • Hasil: Keduanya merupakan konsep yang berbeda dan digunakan untuk tujuan yang berbeda pula.
  • Dalam kontek bahasa C++: Keduanya tidaklah diperlukan. strlen() dalam string style-C dapat digantikan penggunaannya pada C++ dengan std::strings. sizeof(), dimana pada bahasa C adalah argumen menuju fungsi seperti halnya malloc(), memcpy(), atau memset() yang dapat digantikan penggunaannya pada bahasa C++ dengan use new, std::copy(), dan std::fill(), ataupun dengan menggunakan konstruktur lainnya.

Contoh:

// Program bahasa C untuk

// mendemonstrasikan perbedaan

// antara strlen() dan

// sizeof()

#include<stdio.h>

#include<string.h>

 

int main()

{

char str[] = "November";

printf("Panjang string adalah"

" %lu\n", strlen(str));

printf("Ukuran string adalah"

" %lu\n", sizeof(str));

}

Output:
Panjang string adalah 8
Ukuran string adalah 9

Karena dalam bahasa C nilai ukuran char adalah 1 byte maka ditemukan pula bahwa strlen() akan memberikan nilai yang lebih kecil daripada sizeof().

Catatan: Diketahui bahwa, setiap string yang diakhiri dengan karakter NULL ("\0"). 

strlen() selanjutnya akan mencari nilai NULL tersebut dan menghitung angkanya dari memory alamat yang dilewatinya, sehingga akan mendapatkan hasil hitung nilai sebenarnya dari angka yang ditampilkan pada elemen dalam string sebelum berakhir pada nilai NULL. Dengan nilai ukurannya adalah 8.

sizeof(): operator sizeof() akan mengembalikan jumlah nyata dari alokasi memori untuk operand yang telah dilewatinya. Dimana nilai operand array dari karakter adalah mengandung 9 karakter termasuk karakter NULL itu sendiri, dan ukuran dari 1 karakter adalah 1 byte. Sehingga, total dari ukurannya adalah 9 byte.

Contoh: Perkirakan hasil output dari program berikut ini.

#include <iostream>

#include <string.h>

using namespace std;

 

int main()

{

char a[] = {"nasi padang"};

char b[] = {'n','a','s','i',' ','p','a','d','a','n','g'};

 

cout << "sizeof(a) = " << sizeof(a);

cout << "\nstrlen(a) = "<< strlen(a);

cout<< "\nsizeof(b) = " << sizeof(b);

cout<< "\nstrlen(b) = " << strlen(b);

return 0;

}

Output:
sizeof(a) = 12
strlen(a) = 11
sizeof(b) = 11
strlen(b) = 22

Catatan: Fungsi strlen mencari karakter NULL dan berperilaku tidak normal jika tidak menemukan karakter NULL tersebut.

5 komentar untuk "Strlen dan Sizeof Bahasa C dan Fungsinya"

  1. Apa yang dimaksud dengan strlen pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Fungsi strlen() pada bahasa C adalah digunakan untuk menghitung panjang nilai string.

      Catatan: strlen() menghitung panjang string hingga batas tertentu, tetapi tidak termasuk nilai karakter NULL pada bagian akhir dengan nilai return akan mengembalikan panjang string yang diteruskan kepada fungsi tersebut sebelumnya.

      Hapus
  2. Apa fungsi library standar C terhadap strlen()?

    BalasHapus
    Balasan
    1. Untuk penggunaan fungsi strlen, maka pada bahasa C harus disertakan library standar C dengan menggunakan header . Setelah library string C tersebut disertakan, maka program dapat melakukan pemanggilan fungsi strlen secara langsung pada program tersebut.

      Hapus
  3. Sangat bagus penjelasannya, terima kasih jadi lebih bisa memahai perbedaan antara strlen() dan sizeof() pada bahasa C.

    BalasHapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -