Berikut adalah materi lengkap tentang Input dan Output di C, termasuk penjelasan tentang
bagaimana menangani input string, baik yang mengandung spasi maupun tidak.
Input dan Output di C
1. Fungsi printf() untuk Output
Fungsi printf() digunakan untuk menampilkan (output) data ke layar.
Sintaks:
printf("format string", argumen);
• "format string" adalah template teks yang akan dicetak. Di dalamnya, kita bisa
menggunakan format specifier untuk menampilkan variabel dengan tipe tertentu.
• argumen adalah nilai variabel yang akan digantikan di tempat format specifier.
Contoh:
#include <stdio.h>
int main() {
int a = 5;
float b = 3.14;
char c = 'A';
// Menampilkan berbagai tipe data
printf("Nilai integer: %d\n", a); // %d untuk integer
printf("Nilai float: %.2f\n", b); // %.2f untuk float dengan 2 digit desimal
printf("Nilai char: %c\n", c); // %c untuk char
return 0;
Output:
Nilai integer: 5
Nilai float: 3.14
Nilai char: A
2. Fungsi scanf() untuk Input
Fungsi scanf() digunakan untuk membaca input dari pengguna.
Sintaks:
scanf("format string", &argumen);
• "format string" adalah template yang mendefinisikan tipe data yang diinginkan dari input.
• &argumen adalah alamat variabel tempat input akan disimpan (menggunakan operator &
untuk mendapatkan alamat variabel).
Contoh:
#include <stdio.h>
int main() {
int a;
float b;
char c;
// Menerima input dari pengguna
printf("Masukkan sebuah integer: ");
scanf("%d", &a); // Input integer
printf("Masukkan sebuah float: ");
scanf("%f", &b); // Input float
printf("Masukkan sebuah karakter: ");
scanf(" %c", &c); // Input karakter (perhatikan spasi sebelum %c)
// Menampilkan hasil input
printf("Integer yang dimasukkan: %d\n", a);
printf("Float yang dimasukkan: %.2f\n", b);
printf("Karakter yang dimasukkan: %c\n", c);
return 0;
}
Output:
Masukkan sebuah integer: 10
Masukkan sebuah float: 3.5
Masukkan sebuah karakter: X
Integer yang dimasukkan: 10
Float yang dimasukkan: 3.50
Karakter yang dimasukkan: X
3. Format Specifiers di printf() dan scanf()
Berikut adalah beberapa format specifiers yang sering digunakan:
Tipe Data Format Specifier Penjelasan
int %d Menampilkan integer
float %f Menampilkan angka desimal
double %lf Menampilkan angka desimal ganda
char %c Menampilkan karakter
string %s Menampilkan string (array char)
unsigned int %u Menampilkan unsigned integer
long %ld Menampilkan long integer
4. Input String di C
Di C, kita bisa menggunakan scanf() untuk membaca string, tetapi perlu diperhatikan bahwa scanf()
tidak membaca spasi dalam string. Untuk input yang mengandung spasi, kita bisa menggunakan
fgets().
4.1 Menggunakan scanf() untuk Input String
Untuk membaca string yang tidak mengandung spasi, kita menggunakan format specifier %s pada
scanf().
Contoh:
#include <stdio.h>
int main() {
char str[100]; // Menyediakan array untuk string
printf("Masukkan sebuah string: ");
scanf("%s", str); // Membaca string tanpa spasi
printf("String yang dimasukkan: %s\n", str);
return 0;
Output:
Masukkan sebuah string: HelloWorld
String yang dimasukkan: HelloWorld
4.2 Masalah dengan scanf() untuk Input String dengan Spasi
Jika pengguna memasukkan kalimat yang mengandung spasi, scanf("%s", str) hanya akan membaca
kata pertama sebelum spasi.
Contoh:
#include <stdio.h>
int main() {
char str[100];
printf("Masukkan sebuah string: ");
scanf("%s", str); // Menggunakan %s, akan berhenti di spasi
printf("String yang dimasukkan: %s\n", str);
return 0;
Input:
Hello World
Output:
String yang dimasukkan: Hello
4.3 Solusi untuk Input String dengan Spasi: Gunakan fgets()
Untuk membaca input yang mengandung spasi, kita bisa menggunakan fgets(), yang membaca satu
baris input (termasuk spasi) dan memasukkannya ke dalam array karakter.
Contoh:
#include <stdio.h>
int main() {
char str[100];
printf("Masukkan sebuah string (termasuk spasi): ");
fgets(str, sizeof(str), stdin); // Membaca seluruh baris termasuk spasi
printf("String yang dimasukkan: %s\n", str);
return 0;
Input:
Hello World C Programming
Output:
String yang dimasukkan: Hello World C Programming
4.4 Menghapus Karakter Newline pada fgets()
Karakter newline (\n) akan ditambahkan di akhir input oleh fgets(). Untuk menghapusnya, kita bisa
menggunakan fungsi strcspn() untuk mencari posisi newline dan menggantinya dengan karakter null
(\0).
Contoh:
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Masukkan sebuah string (termasuk spasi): ");
fgets(str, sizeof(str), stdin); // Membaca seluruh baris termasuk spasi
// Menghapus karakter newline (\n) yang ditambahkan oleh fgets
str[strcspn(str, "\n")] = '\0';
printf("String yang dimasukkan: %s\n", str);
return 0;
Input:
Hello World
Output:
String yang dimasukkan: Hello World
Kesimpulan:
• printf(): Digunakan untuk menampilkan output ke layar. Format specifiers seperti %d, %f, %s
digunakan untuk menampilkan data sesuai tipe yang diinginkan.
• scanf(): Digunakan untuk menerima input dari pengguna. %s digunakan untuk membaca
string tanpa spasi.
• fgets(): Digunakan untuk membaca seluruh baris input, termasuk spasi. Biasanya digunakan
ketika kita ingin memasukkan kalimat lengkap.
• Untuk menghapus karakter newline yang ditambahkan oleh fgets(), kita dapat menggunakan
strcspn().
Jika ada bagian yang masih kurang jelas atau kamu ingin contoh lain, beri tahu saya!