Artikel Terbaru

2 Jenis Utama Rasa Percaya dalam Soft Skills Bisnis dan Pekerjaan

Bayangkan jika seseorang menyebutkan kata pebisnis, jika mendengar kata tersebut, sebagian besar orang mungkin akan membayangkan seseorang dengan sebuah setelan jas yang rapi, yang selalu berangkat kerja pada pukul 7.00 hingga 8.00, atau mungkin juga tentang seseorang yang lain seperti agen periklanan yang menjual produk tertentu melalui YouTube, atau bisa juga seseorang yang terlihat sama seperti anda, atau mungkin juga tidak. Tapi, jika dipahami secara umum, pada dasarnya semua orang adalah pebisnis dalam setiap urusan bisnisnya masing-masing.

5 Fakta Antara Strlen vs Sizeof pada Bahasa C

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

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()
  • satu, Tipe: operator sizeof adalah operator unary dimana strlen() adalah fungsi predefinisi pada bahasa C.
  • dua, Mendukung tipe data: sizeof memberikan nilai real dari tipe data apapun dalam satuan byte tempat dimana nilai ukuran dari array string.
  • tiga, 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.
  • empat, Hasil: Keduanya merupakan konsep yang berbeda dan digunakan untuk tujuan yang berbeda pula.
  • lima, 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.

// 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.

Perkirakan hasil output dari contoh 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;

}

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

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

Komentar

  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

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D

Hot Artikel!!!

6 Contoh Program Method Overloading pada Java

Enkapsulasi pada Java

4 Tipe Utama Acces Modifier pada Java