Array of Strings in C

Hai teman-teman pemula programmer! Hari ini, kita akan memulai perjalanan yang menarik ke dalam dunia pemrograman C, khususnya mengexplore konsep Array of Strings. Jangan khawatir jika Anda benar-benar baru dalam pemrograman; saya akan mengajarkan Anda setiap langkah dengan hati-hati dan kesabaran yang sama seperti yang saya gunakan di kelas selama tahun-tahun. Jadi, mari kita masuk ke dalamnya!

C - Array of Strings

Apa Itu Array of Strings di C?

Bayangkan Anda sedang mengatur rak buku. Setiap rak dapat menampung banyak buku, kan? Dalam pemrograman C, Array of Strings bekerja sama seperti itu. Itu seperti sebuah koleksi rak (array) tempat setiap rak menampung sebuah buku (string).

Dalam istilah teknis, Array of Strings di C adalah array dua dimensi karakter. Itu adalah cara untuk menyimpan banyak string dalam satu variabel. Setiap string dalam array ini secara esensial adalah array satu dimensi karakter.

mari kitauraikan ini dengan analogi sederhana:

  • Jika string seperti sebuah kata, maka array of strings seperti sebuah kalimat.
  • Jika string seperti judul buku tunggal, maka array of strings seperti katalog judul buku.

Mendeklarasikan dan Inisialisasi Array of Strings

Sekarang, mari kita belajar membuat "rak buku" kita di C. Berikut adalah cara mendeklarasikan dan menginisialisasi array of strings:

char books[3][20] = {
"C Programming",
"Python Basics",
"Java for Beginners"
};

Dalam contoh ini:

  • books adalah nama array kita
  • [3] menunjukkan kita menyimpan 3 string
  • [20] berarti setiap string dapat mencapai panjang 20 karakter
  • Kita menginisialisasinya dengan tiga judul buku

Ingat, dalam C, string selalu diakhiri dengan karakter null '\0', jadi pastikan Anda mengalokasikan cukup ruang untuknya!

Mencetak Array of Strings

Sekarang kita memiliki rak buku, mari kita belajar bagaimana menampilkan isiannya. Kita dapat menggunakan loop sederhana untuk mencetak setiap string:

#include <stdio.h>

int main() {
char books[3][20] = {
"C Programming",
"Python Basics",
"Java for Beginners"
};

for(int i = 0; i < 3; i++) {
printf("%s\n", books[i]);
}

return 0;
}

Kode ini akan mencetak:

C Programming
Python Basics
Java for Beginners

Di sini, books[i] memberikan kita string ke-i dalam array. Format spesifikator %s memberitahu printf untuk mengharapkan string.

Bagaimana Array of Strings Disimpan di Memori?

Sekarang, mari kita lihat di balik tabir dan lihat bagaimana rak buku kita sebenarnya diatur di memori komputer.

Array of strings di C disimpan sebagai blok memori kontiguous. Setiap string menduduki jumlah tetap ruang (dalam contoh kita, 20 karakter), tanpa menghiraukan panjang sebenarnya.

Berikut adalah representasi visualnya:

Memory Address | Content
--------------|-----------------
0x1000        | C Programming\0...
0x1014        | Python Basics\0...
0x1028        | Java for Beginners\0

Setiap baris mewakili satu string, dan mereka disimpan satu setelah lain di memori.

Array of Strings dengan Pointer

Saat Anda maju dalam C, Anda akan temui cara yang lebih fleksibel untuk membuat array of strings menggunakan pointer:

char *books[] = {
"C Programming",
"Python Basics",
"Java for Beginners"
};

Metode ini memungkinkan string berbeda panjang, karena setiap elemen books adalah pointer ke string, bukan array tetap ukuran.

Menemukan String Terpanjang

Marilah kita gunakan pengetahuan kita untuk contoh praktis. Berikut adalah program untuk menemukan string terpanjang di array kita:

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

int main() {
char *books[] = {
"C Programming",
"Python Basics",
"Java for Beginners"
};
int n = sizeof(books) / sizeof(books[0]);
int max_length = 0;
char *longest_book = NULL;

for(int i = 0; i < n; i++) {
int length = strlen(books[i]);
if(length > max_length) {
max_length = length;
longest_book = books[i];
}
}

printf("Judul buku terpanjang adalah: %s\n", longest_book);
return 0;
}

Program ini akan mencetak:

Judul buku terpanjang adalah: Java for Beginners

Mengurutkan Array String dalam Urutan A-Z

Sebagai tantangan terakhir, mari kita urutkan array of strings kita dalam urutan alfabetik:

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

int main() {
char *books[] = {
"C Programming",
"Python Basics",
"Java for Beginners"
};
int n = sizeof(books) / sizeof(books[0]);

for(int i = 0; i < n-1; i++) {
for(int j = i+1; j < n; j++) {
if(strcmp(books[i], books[j]) > 0) {
char *temp = books[i];
books[i] = books[j];
books[j] = temp;
}
}
}

printf("Judul buku yang diurutkan:\n");
for(int i = 0; i < n; i++) {
printf("%s\n", books[i]);
}

return 0;
}

Ini akan mencetak:

Judul buku yang diurutkan:
C Programming
Java for Beginners
Python Basics

Kami telah menggunakan algoritma bubble sort disini, membandingkan string berdekatan menggunakan strcmp() dan menukar mereka jika mereka dalam urutan yang salah.

Dan begitu saja! Kita telah mengeksplor dunia Arrays of Strings di C, dari konsep dasar hingga aplikasi praktis. Ingat, pemrograman seperti belajar bahasa baru - itu memerlukan latihan dan kesabaran. Jangan frustasi jika Anda belum bisa mengetahui semuanya sekaligus. Tetap kode, tetap eksperimen, dan terutama, tetap bersenang-senang!

Metode Deskripsi
strlen() Menghitung panjang string
strcmp() Membandingkan dua string
strcpy() Menyalin satu string ke lain
strcat() Menggabungkan dua string
strtok() Memotong string menjadi token

Fungsi manipulasi string ini akan menjadi teman terbaik Anda saat Anda terus melanjutkan perjalanan pemrograman C. Selamat coding!

Credits: Image by storyset