Array of Strings in C

Hai pengguna, pengaturan pemrogram! Hari ini, kita akan memulai perjalanan yang menarik ke dunia pemrograman C, khususnya mengeksplorasi konsep Array of Strings. Jangan khawatir jika Anda masih pemula dalam pemrograman; saya akan menghidahkan setiap langkah dengan hati dan kesabaran yang sama seperti yang saya gunakan di kelas selama tahun. mari kita masuk ke dalam!

C - Array of Strings

Apa Itu Array of Strings dalam 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 buku (string).

Dalam istilah teknis, Array of Strings dalam 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 kata, maka array of strings seperti kalimat.
  • Jika string seperti judul buku tunggal, maka array of strings seperti katalog judul buku.

Deklarasi dan Inisialisasi Array of Strings

Sekarang, mari belajar bagaimana membuat "rak buku" kita dalam C. Berikut adalah cara kita 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 memiliki panjang hingga 20 karakter
  • Kita menginisialisasinya dengan tiga judul buku

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

Mencetak Array of Strings

Sekarang kita memiliki rak buku, mari 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 kita. Format spesifik %s memberitahu printf untuk menduga 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 dalam C disimpan sebagai blok memori kontiguous. Setiap string mengambil jumlah tetap ruang (dalam contoh kita, 20 karakter), tanpa menghiraukan panjang sebenarnya.

Berikut adalah representasi visual:

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 menemukan cara yang lebih fleksibel untuk membuat array of strings menggunakan pointer:

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

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

Menemukan String dengan Panjang Terbesar

Mari kita gunakan pengetahuan kita untuk contoh praktis. Berikut adalah program untuk menemukan string terpanjang dalam 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 mengoutputkan:

Judul buku terpanjang adalah: Java for Beginners

Mengurut Array String dalam Urutan Ascending

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 mengoutputkan:

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

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

Dan itu saja! Kita telah mengeksplorasi dunia Arrays of Strings dalam C, dari konsep dasar hingga aplikasi praktis. Ingat, pemrograman seperti belajar bahasa baru - itu memerlukan latihan dan kesabaran. Jangan frustasi jika Anda belum bisa mendapatkannya seketika. Tetap coding, tetap mencoba, dan yang paling penting, tetap bersenang-senang!

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

Credits: Image by storyset