- 1 1. Pendahuluan
- 2 2. Apa itu Input String dalam C? Penjelasan Konsep Dasar
- 3 3. Fungsi Dasar untuk Input String dan Contoh Penggunaannya
- 4 4. Teknik Praktis untuk Input String yang Aman
- 5 5. Fungsi yang Tidak Disarankan dan Alternatifnya
- 6 6. Contoh Praktis dan Penerapan Lanjutan | Input & Pemrosesan String Multi-Baris
- 7 7. Pertanyaan yang Sering Diajukan (Format Q&A)
- 7.1 Q1: Mengapa fungsi gets sebaiknya tidak digunakan?
- 7.2 Q2: Mengapa fungsi scanf tidak bisa membaca input dengan spasi?
- 7.3 Q3: Bagaimana jika input lebih panjang dari ukuran buffer saat menggunakan fgets?
- 7.4 Q4: Bagaimana cara menghapus newline yang tersisa dari fgets?
- 7.5 Q5: Bagaimana jika sisa input masih ada di buffer setelah fgets?
- 7.6 Q6: Bagaimana cara membatasi agar hanya menerima input alfanumerik?
- 7.7 Q7: Bagaimana menangani string yang sangat panjang melebihi buffer?
- 8 8. Ringkasan
- 8.1 1. Memahami Dasar Input String
- 8.2 2. Karakteristik & Pemilihan Fungsi Input
- 8.3 3. Praktik Input String yang Aman
- 8.4 4. Memperkuat Keterampilan melalui Contoh Lanjutan
- 8.5 5. Jawaban atas Pertanyaan Umum
- 8.6 6. Langkah Selanjutnya & Pembelajaran Lanjutan
- 8.7 7. Latihan untuk Memperkuat Pemahaman
- 8.8 Ringkasan Akhir
1. Pendahuluan
Bahasa C adalah bahasa yang sangat penting untuk dipelajari dalam memahami dasar-dasar pemrograman. Salah satu fitur yang tidak dapat diabaikan adalah “input string”, yang digunakan untuk menerima informasi dari pengguna. Artikel ini akan menjelaskan secara detail cara melakukan input string dalam bahasa C, serta memperkenalkan teknik dan perhatian khusus agar dapat digunakan dengan aman.
Terutama bagi pemula, seringkali membingungkan ketika menghadapi error atau risiko keamanan saat memproses string yang diinput. Oleh karena itu, artikel ini mencakup mulai dari fungsi dasar hingga contoh kode lanjutan, dengan tujuan membekali Anda dengan keterampilan praktis.
Jika Anda memahami cara kerja input string dalam bahasa C dan dapat mengimplementasikannya dengan aman, itu akan menjadi langkah awal menuju pembuatan program yang lebih kompleks. Mari kita masuk ke pembahasan secara rinci.
2. Apa itu Input String dalam C? Penjelasan Konsep Dasar
Apa itu String?
Dalam bahasa C, string direpresentasikan sebagai array karakter. Setiap string selalu diakhiri dengan karakter terminator “\0
“, yang menandakan akhir dari string. Dengan adanya terminator ini, bahasa C dapat menangani string tanpa harus menentukan panjangnya secara eksplisit.
Hubungan antara String dan Array
Dalam C, string pada dasarnya adalah array dari tipe karakter (char
). Misalnya, Anda dapat mendeklarasikan string seperti berikut:
char str[10]; // Buffer untuk menyimpan string hingga 10 karakter
Dalam contoh ini, memori disediakan untuk menyimpan string maksimal 10 karakter. Namun, 1 karakter digunakan untuk terminator “\0
“, sehingga jumlah karakter yang dapat disimpan sebenarnya adalah 9.
Contoh Literal String
Literal string adalah teks yang ditulis di dalam tanda kutip ganda (” “). Contoh berikut menunjukkan penggunaan literal string:
char greeting[] = "Hello";
Dalam hal ini, greeting
secara otomatis diperlakukan sebagai array berukuran 6 (5 huruf “Hello” + 1 terminator “\0
“).
Mengapa Input String Diperlukan?
Dalam banyak program, sering kali diperlukan input dari pengguna. Contohnya adalah saat mendaftarkan nama atau alamat, atau memasukkan kata kunci pencarian. Input string sangat penting dalam antarmuka aplikasi. Karena itu, memahami cara menangani string dengan aman dan efisien adalah keterampilan penting.
3. Fungsi Dasar untuk Input String dan Contoh Penggunaannya
3-1. Fungsi scanf
Cara Dasar Menggunakan scanf
Fungsi scanf
digunakan untuk mengambil data dari input standar (keyboard). Untuk memasukkan string, digunakan format spesifier %s
.
Contoh kode:
#include <stdio.h>
int main() {
char str[50]; // Buffer untuk menyimpan string hingga 50 karakter
printf("Masukkan sebuah string: ");
scanf("%s", str); // Ambil string dari input standar
printf("String yang dimasukkan: %s\n", str);
return 0;
}
Program ini menerima string yang dimasukkan oleh pengguna dan menampilkannya di layar.
Peringatan dalam Penggunaan scanf
- Tidak dapat memproses spasi:
Fungsiscanf
menganggap spasi, tab, dan enter sebagai pemisah. Akibatnya, string yang mengandung spasi akan terpotong.
Contoh:
Input:
Hello World
Output:
Hello
- Risiko buffer overflow:
Jika string yang dimasukkan melebihi kapasitas buffer, memori dapat rusak. Hal ini bisa menyebabkan crash atau kerentanan keamanan.
Solusi:
Disarankan menggunakan fungsi yang lebih aman (seperti fgets
, dibahas di bawah).
3-2. Fungsi fgets
Cara Dasar Menggunakan fgets
Fungsi fgets
memungkinkan input string dengan batas jumlah karakter tertentu secara aman. Fungsi ini juga menyertakan karakter newline, sehingga risiko buffer overflow dapat dihindari.
Contoh kode:
#include <stdio.h>
int main() {
char str[50]; // Buffer hingga 50 karakter
printf("Masukkan sebuah string: ");
fgets(str, sizeof(str), stdin); // Input string dengan aman
printf("String yang dimasukkan: %s", str);
return 0;
}
Program ini dapat menerima string hingga 50 karakter dengan aman dan menampilkannya kembali.
Kelebihan fgets
- Mencegah buffer overflow: Panjang input dibatasi sesuai ukuran buffer.
- Dapat memproses string dengan spasi: Termasuk spasi dan tab dalam input.
Keterbatasan fgets
- Karakter newline ikut tersimpan: Sehingga bisa menghasilkan baris kosong tambahan saat ditampilkan.
Contoh menghapus newline:
str[strcspn(str, "\n")] = '\0';
- Sisa data di buffer input: Setelah menggunakan
fgets
, mungkin ada data tersisa di buffer. Untuk mengatasinya bisa menggunakanfflush(stdin)
ataugetchar()
.
3-3. Mana yang Sebaiknya Digunakan?
Nama Fungsi | Kegunaan | Peringatan |
---|---|---|
scanf | Input string sederhana (tanpa spasi, pendek) | Harus hati-hati dengan spasi dan buffer overflow |
fgets | Aman, cocok untuk input dengan spasi | Perlu menghapus newline dan membersihkan buffer |
Untuk pemula maupun aplikasi praktis, disarankan menggunakan fgets
karena lebih aman.
4. Teknik Praktis untuk Input String yang Aman
4-1. Pencegahan Buffer Overflow
Apa itu Buffer Overflow?
Buffer overflow adalah masalah ketika data yang dimasukkan melebihi kapasitas memori (buffer) yang telah disediakan, sehingga data tertulis ke area memori lain. Hal ini bisa menyebabkan program crash atau menimbulkan celah keamanan.
Contoh:
Kode berikut adalah contoh penggunaan yang berbahaya:
char str[10];
scanf("%s", str); // Tidak ada batasan ukuran input
Jika pengguna memasukkan lebih dari 10 karakter, maka akan terjadi buffer overflow.
Solusi 1: Gunakan fgets
Fungsi fgets
memungkinkan input dengan panjang terbatas sesuai buffer, sehingga lebih aman.
Contoh kode yang aman:
#include <stdio.h>
#include <string.h>
int main() {
char str[10];
printf("Masukkan string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // Hapus karakter newline
printf("String yang dimasukkan: %s\n", str);
return 0;
}
Dalam contoh ini, input dibatasi 10 karakter dan newline ditangani dengan benar.
Solusi 2: Validasi Panjang Input
Jika input terlalu panjang, tampilkan peringatan atau hentikan proses.
Contoh:
#include <stdio.h>
#include <string.h>
int main() {
char str[10];
printf("Masukkan string (maksimal 9 karakter): ");
fgets(str, sizeof(str), stdin);
if (strlen(str) >= sizeof(str) - 1 && str[strlen(str) - 1] != '\n') {
printf("Input terlalu panjang.\n");
return 1; // Keluar dengan error
}
str[strcspn(str, "\n")] = '\0'; // Hapus newline
printf("String yang dimasukkan: %s\n", str);
return 0;
}
4-2. Implementasi Penanganan Error
Pentingnya Penanganan Error
Penanganan error sangat penting untuk meningkatkan ketahanan program. Saat menerima input dari pengguna, kita perlu menangani data yang tidak valid atau tidak terduga.
Solusi 1: Mekanisme Ulangi Input (Retry)
Jika pengguna memasukkan data yang tidak valid, program meminta input ulang.
Contoh:
#include <stdio.h>
#include <string.h>
int main() {
char str[10];
int valid = 0;
while (!valid) {
printf("Masukkan string (maksimal 9 karakter): ");
fgets(str, sizeof(str), stdin);
if (strlen(str) >= sizeof(str) - 1 && str[strlen(str) - 1] != '\n') {
printf("Input terlalu panjang. Coba lagi.\n");
while (getchar() != '\n'); // Bersihkan buffer
} else {
str[strcspn(str, "\n")] = '\0';
valid = 1; // Input valid
}
}
printf("String yang dimasukkan: %s\n", str);
return 0;
}
Solusi 2: Filterisasi Input
Terapkan aturan tertentu pada input, misalnya hanya menerima alfanumerik.
Contoh:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int isValidInput(const char *str) {
for (int i = 0; str[i] != '\0'; i++) {
if (!isalnum(str[i])) { // Hanya izinkan alfanumerik
return 0;
}
}
return 1;
}
int main() {
char str[50];
printf("Masukkan hanya karakter alfanumerik: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
if (isValidInput(str)) {
printf("Input valid: %s\n", str);
} else {
printf("Input tidak valid.\n");
}
return 0;
}
Program ini hanya menerima huruf dan angka, menolak simbol atau karakter khusus lainnya.
5. Fungsi yang Tidak Disarankan dan Alternatifnya
5-1. Bahaya Fungsi gets
Apa itu fungsi gets?
Fungsi gets
digunakan untuk membaca string dari input pengguna. Contoh penggunaannya adalah sebagai berikut:
Contoh kode:
char str[50];
gets(str); // Membaca string dari input standar
Sekilas fungsi ini terlihat sederhana, namun memiliki masalah serius.
Masalah dengan fungsi gets
- Risiko buffer overflow:
Fungsigets
tidak memiliki batas panjang input. Jika pengguna memasukkan string lebih panjang dari buffer, memori akan rusak dan dapat menimbulkan celah keamanan.
Contoh:
char str[10];
gets(str); // Tidak ada batas ukuran input
Jika pengguna memasukkan 20 karakter, memori akan rusak dan program bisa crash.
- Risiko keamanan:
Buffer overflow bisa dimanfaatkan untuk melakukan serangan (buffer overflow attack), sehingga sistem dapat diretas. - Dihapus dari standar:
Fungsi ini dinyatakan usang sejak standar C99 dan dihapus dalam C11. Banyak kompiler modern akan memberi peringatan atau error jika digunakan.
5-2. Fungsi Alternatif yang Aman
Menggunakan fgets
Sebagai pengganti gets
, gunakan fgets
untuk menghindari buffer overflow.
Contoh kode aman:
#include <stdio.h>
#include <string.h>
int main() {
char str[50];
printf("Masukkan string: ");
fgets(str, sizeof(str), stdin); // Input string dengan aman
str[strcspn(str, "\n")] = '\0'; // Hapus karakter newline
printf("String yang dimasukkan: %s\n", str);
return 0;
}
Perbandingan dengan scanf
Fungsi scanf
juga dapat digunakan untuk input string, tetapi tidak bisa memproses spasi. Jika Anda perlu menangani string kompleks atau mengutamakan keamanan, fgets
lebih direkomendasikan.
Menggunakan getline
Selain itu, ada fungsi getline
(tersedia di sistem POSIX). Fungsi ini secara dinamis mengalokasikan memori sehingga tidak perlu khawatir tentang ukuran buffer.
Contoh kode:
#include <stdio.h>
#include <stdlib.h>
int main() {
char *line = NULL;
size_t len = 0;
ssize_t read;
printf("Masukkan string: ");
read = getline(&line, &len, stdin); // Alokasi memori dinamis untuk input
if (read != -1) {
printf("String yang dimasukkan: %s", line);
}
free(line); // Bebaskan memori
return 0;
}
Pentingnya Menghindari Fungsi Usang
Dalam C, beberapa fungsi lama sudah tidak disarankan karena alasan keamanan. Terutama saat menangani input dari luar, risiko keamanan sangat tinggi. Oleh karena itu, migrasi ke fungsi alternatif yang lebih aman adalah hal wajib.
Fungsi Usang | Alternatif | Kegunaan & Keuntungan |
---|---|---|
gets | fgets | Aman, mendukung input string dengan panjang terbatas. |
gets | getline | Mendukung alokasi memori dinamis, cocok untuk input string panjang. |
scanf("%s") | fgets | Dapat menangani string dengan spasi secara aman. |
6. Contoh Praktis dan Penerapan Lanjutan | Input & Pemrosesan String Multi-Baris
6-1. Menerima Input String Multi-Baris
Gambaran Umum Input Multi-Baris
Dalam beberapa program, pengguna diminta untuk memasukkan lebih dari satu baris string sekaligus. Misalnya, pada aplikasi catatan (notepad), input multi-baris adalah fitur penting.
Contoh 1: Program untuk Membaca 3 Baris Input
#include <stdio.h>
#include <string.h>
#define MAX_LINES 3 // Jumlah baris input
#define MAX_LENGTH 100 // Maksimal karakter per baris
int main() {
char lines[MAX_LINES][MAX_LENGTH]; // Array 2D untuk menyimpan string
printf("Masukkan %d baris string:\n", MAX_LINES);
for (int i = 0; i < MAX_LINES; i++) {
printf("Baris %d: ", i + 1);
fgets(lines[i], sizeof(lines[i]), stdin);
lines[i][strcspn(lines[i], "\n")] = '\0'; // Hapus newline
}
printf("\nString yang dimasukkan:\n");
for (int i = 0; i < MAX_LINES; i++) {
printf("Baris %d: %s\n", i + 1, lines[i]);
}
return 0;
}
Penjelasan:
- Menggunakan array 2D: Setiap baris disimpan di array terpisah.
- Input dengan fgets: Membatasi jumlah karakter dan menghapus newline.
- Pemrosesan dengan loop for: Memudahkan pengambilan input berulang.
Contoh hasil eksekusi:
Masukkan 3 baris string:
Baris 1: Hello
Baris 2: World
Baris 3: C Language
String yang dimasukkan:
Baris 1: Hello
Baris 2: World
Baris 3: C Language
6-2. Pemrosesan String dengan Spasi dan Karakter Khusus
Contoh Input dengan Spasi
Untuk menangani string yang berisi spasi secara aman, gunakan fgets
.
Contoh 2: Program yang Memproses Input dengan Spasi
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // Buffer hingga 100 karakter
printf("Masukkan sebuah kalimat: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // Hapus newline
printf("Kalimat yang dimasukkan: %s\n", str);
return 0;
}
Poin penting:
- Dapat menangani spasi dan tab dengan aman.
- Penghapusan newline mencegah baris kosong tambahan.
Contoh hasil:
Masukkan sebuah kalimat: Hello World with spaces
Kalimat yang dimasukkan: Hello World with spaces
6-3. Menangani Karakter Khusus & Escape Sequence
Contoh Input dengan Karakter Khusus
Dalam C, kita juga perlu menangani input dengan karakter khusus atau escape sequence.
Contoh 3: Program untuk Mendeteksi Karakter Khusus
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100];
int specialCharCount = 0;
printf("Masukkan string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
for (int i = 0; str[i] != '\0'; i++) {
if (!isalnum(str[i]) && !isspace(str[i])) { // Deteksi non-alfanumerik
specialCharCount++;
}
}
printf("Jumlah karakter khusus: %d\n", specialCharCount);
return 0;
}
Poin penting:
isalnum
→ cek apakah karakter alfanumerik.isspace
→ cek apakah karakter spasi/tab.- Selain itu dianggap karakter khusus.
Contoh hasil:
Masukkan string: Hello, World! 123
Jumlah karakter khusus: 2
6-4. Contoh Aplikasi: Program Catatan Sederhana
Sebagai penerapan lanjutan, berikut contoh program catatan sederhana yang menerima input multi-baris lalu menyimpannya ke file.
Contoh 4: Program Catatan
#include <stdio.h>
#include <string.h>
#define MAX_LINES 5
#define MAX_LENGTH 100
int main() {
char lines[MAX_LINES][MAX_LENGTH];
printf("Anda dapat menulis hingga %d baris catatan.\n", MAX_LINES);
for (int i = 0; i < MAX_LINES; i++) {
printf("Baris %d: ", i + 1);
fgets(lines[i], sizeof(lines[i]), stdin);
lines[i][strcspn(lines[i], "\n")] = '\0';
}
FILE *file = fopen("memo.txt", "w");
if (file == NULL) {
printf("Gagal membuka file.\n");
return 1;
}
for (int i = 0; i < MAX_LINES; i++) {
fprintf(file, "%s\n", lines[i]);
}
fclose(file);
printf("Catatan berhasil disimpan.\n");
return 0;
}
Poin penting:
- Menyimpan input pengguna ke dalam file.
- Contoh penerapan dasar file handling di C.
7. Pertanyaan yang Sering Diajukan (Format Q&A)
Q1: Mengapa fungsi gets sebaiknya tidak digunakan?
A:
Fungsi gets
membaca string tanpa membatasi panjang input, sehingga sangat berisiko menyebabkan buffer overflow. Kerentanan ini bisa dimanfaatkan untuk serangan keamanan. Karena itu, fungsi ini dihapus sejak standar C11. Sebagai gantinya, gunakan fgets
yang lebih aman.
Contoh kode pengganti aman:
char str[50];
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // Hapus newline
Q2: Mengapa fungsi scanf tidak bisa membaca input dengan spasi?
A:
Secara default, scanf
menganggap spasi, tab, dan newline sebagai pemisah. Karena itu, string dengan spasi tidak bisa diproses dengan benar.
Contoh:
Input:
Hello World
Output:
Hello
Solusi:
Gunakan fgets
untuk membaca string dengan spasi.
char str[100];
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
printf("String yang dimasukkan: %s\n", str);
Q3: Bagaimana jika input lebih panjang dari ukuran buffer saat menggunakan fgets?
A:
fgets
hanya membaca sesuai ukuran buffer. Jika input terlalu panjang, sisanya akan terpotong.
Solusi:
- Tampilkan pesan error atau minta pengguna mengulangi input.
- Gunakan
getline
(di sistem POSIX) untuk alokasi memori dinamis.
Contoh kode:
#include <stdio.h>
#include <stdlib.h>
int main() {
char *line = NULL;
size_t len = 0;
printf("Masukkan string: ");
getline(&line, &len, stdin); // Alokasi dinamis
printf("String yang dimasukkan: %s", line);
free(line);
return 0;
}
Q4: Bagaimana cara menghapus newline yang tersisa dari fgets?
A:
Karena fgets
menyertakan karakter newline, hasil output bisa memiliki baris kosong tambahan. Solusinya adalah menghapus newline secara manual.
Contoh kode:
char str[100];
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // Hapus newline
printf("String yang dimasukkan: %s\n", str);
Q5: Bagaimana jika sisa input masih ada di buffer setelah fgets?
A:
Jika input melebihi ukuran buffer, sisa karakter akan tetap di buffer standar input. Untuk membersihkannya, gunakan getchar
.
Contoh kode:
char str[10];
fgets(str, sizeof(str), stdin);
// Jika newline tidak terbaca, berarti ada sisa input
if (strchr(str, '\n') == NULL) {
int c;
while ((c = getchar()) != '\n' && c != EOF); // Buang karakter sisa
}
printf("String yang dimasukkan: %s\n", str);
Q6: Bagaimana cara membatasi agar hanya menerima input alfanumerik?
A:
Tambahkan validasi untuk menolak karakter selain huruf dan angka.
Contoh kode:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int isValidInput(const char *str) {
for (int i = 0; str[i] != '\0'; i++) {
if (!isalnum(str[i])) { // Tolak jika bukan alfanumerik
return 0;
}
}
return 1;
}
int main() {
char str[50];
printf("Masukkan hanya huruf atau angka: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
if (isValidInput(str)) {
printf("Input valid: %s\n", str);
} else {
printf("Input tidak valid.\n");
}
return 0;
}
Q7: Bagaimana menangani string yang sangat panjang melebihi buffer?
A:
Gunakan pembacaan bertahap dengan fgets
atau gunakan getline
untuk alokasi memori dinamis. Dengan getline
, string panjang bisa diproses tanpa khawatir buffer overflow.
Contoh:
Lihat kembali contoh penggunaan getline
di atas.
8. Ringkasan
Artikel ini telah membahas secara sistematis mulai dari dasar hingga penerapan lanjutan mengenai input string dalam bahasa C. Dengan memahami fungsi yang tepat dan teknik praktis, Anda dapat mengelola input string secara aman dan efisien. Bagian ini merangkum poin-poin penting yang telah dipelajari.
1. Memahami Dasar Input String
Dalam bahasa C, string direpresentasikan sebagai array karakter, dan selalu diakhiri dengan karakter terminator \0
. Pemahaman konsep dasar ini penting untuk menguasai manipulasi string.
2. Karakteristik & Pemilihan Fungsi Input
scanf
:
Tidak dapat menangani spasi, serta berisiko buffer overflow.fgets
:
Lebih aman, memungkinkan pembatasan ukuran input. Namun, perlu menghapus newline secara manual.getline
:
Menggunakan alokasi memori dinamis, cocok untuk input string panjang. Hanya tersedia di lingkungan POSIX.
3. Praktik Input String yang Aman
Untuk meningkatkan keamanan, poin-poin berikut perlu diperhatikan:
- Manajemen ukuran buffer: Batasi panjang input agar tidak melebihi kapasitas.
- Penanganan newline: Hapus newline agar data tetap bersih.
- Validasi input: Terapkan filter untuk mencegah data tidak valid. Tambahkan penanganan error dan mekanisme retry.
Dengan praktik ini, program akan lebih stabil dan aman.
4. Memperkuat Keterampilan melalui Contoh Lanjutan
Melalui contoh multi-baris dan penyimpanan ke file, kita dapat memahami penggunaan array 2D serta manajemen memori dinamis. Hal ini membuka jalan menuju pemrograman C yang lebih kompleks.
5. Jawaban atas Pertanyaan Umum
Bagian Q&A memberikan solusi terhadap masalah umum, seperti:
- Bahaya penggunaan
gets
dan pentingnya menggunakanfgets
ataugetline
. - Cara menangani spasi dan karakter khusus.
- Penanganan input yang terlalu panjang dan penghapusan newline.
Dengan memahami poin-poin tersebut, Anda dapat menerapkannya langsung di proyek nyata.
6. Langkah Selanjutnya & Pembelajaran Lanjutan
Input string merupakan dasar dari banyak program C. Dengan menguasainya, Anda dapat melangkah ke topik lebih lanjut, seperti:
- Penggunaan fungsi string standar: Seperti
strlen
,strcmp
, danstrcpy
. - Manajemen memori dinamis: Dengan
malloc
danrealloc
. - File I/O: Untuk mengolah data dalam jumlah besar.
- Struktur data & algoritma: Seperti pencarian string atau algoritma sorting.
7. Latihan untuk Memperkuat Pemahaman
Untuk memperdalam pemahaman, coba selesaikan tugas berikut:
- Tugas 1: Sistem Manajemen Daftar Nama
- Buat program untuk mengelola data (nama, umur, dll.) dengan input multi-baris.
- Tugas 2: Program Pencarian Kata Kunci
- Buat program yang mencari string tertentu dari input pengguna.
- Tugas 3: Sistem Log dengan File
- Simpan input ke dalam file, lalu tampilkan kembali isinya.
Ringkasan Akhir
Artikel ini telah membahas dasar hingga lanjutan mengenai input string dalam bahasa C.
Poin terpenting:
- Keamanan: Gunakan fungsi yang aman seperti
fgets
ataugetline
. - Manajemen buffer & error handling: Batasi ukuran input dan tangani kesalahan dengan benar.
- Penerapan nyata: Latih dengan contoh multi-baris & file handling.
Dengan memahami dan mempraktikkannya, keterampilan Anda dalam bahasa C akan meningkat pesat.