BAB IV
STRUKTUR INPUT DAN OUTPUT
Kompetensi Umum:
Dapat menjelaskan konsep dasar penggunaan
struktur untuk memasukkan dan mengeluarkan data
pada bahasa C.
Kompetensi Khusus:
Dapat menjelaskan struktur input dasar.
Dapat menggunakan fungsi-fungsi untuk memasuk-
kan data.
Dapat menjelaskan struktur output dasar.
Dapat menggunakan fungsi-fungsi untuk mengeluar-
kan data.
4.1 STRUKTUR INPUT TAK TERFORMAT
Di dalam melakukan pemrograman tentu saja programmer akan melakukan
input dan output program. Input berarti programmer memasukkan data ke
dalam program atau melakukan inisialisasi, sedangkan output berarti pro-
gram akan menghasilkan keluaran berupa data yang ditampilkan ke layar,
tercetak di printer, keluar di speaker, dan keluaran lainnya. Suatu program
yang dibuat pasti menghasilkan output. Di dalam bahasa C sudah terdapat
fungsi-fungsi bawaan (standard function) yang berkaitan dan mengatur
input dan output sehingga programmer hanya perlu menggunakannya saja.
Hal pertama yang dibahas adalah melakukan input secara tak terformat.
Dalam input tak terformat, programmer tidak bisa memasukkan data
dengan bentuk tertentu, misalnya dalam bentuk desimal dengan ketelitian68 Algoritma dan Pemrograman dengan Bahasa C
2 angka di belakang koma. Input tak terformat pada bahasa C merupakan
struktur input yang paling sederhana dan mudah dilakukan. Pemasukan
data dilakukan dengan menggunakan fungsi-fungsi pustaka dari file header
stdio.h, yaitu gets() dan scanf() serta file header conio.h, yaitu getche(),
getchar() dan getch().
4.1.1 Memasukkan Data Karakter Tak Terformat
Fungsi getche(), getchar() dan getch() masing-masing dapat dipilih untuk
Memasukkan data yang berupa sebuah karakter dari keyboard ke suatu
identifier tertentu. Masing-masing mempunyai_karakteristik sebagai
berikut:
Fungsi getche() > Tanpa Enter, karakter terlihat
Fungsi getchar() > Dengan Enter, karakter terlihat
Fungsi getch() > Tanpa Enter, karakter tidak terlihat
Contoh 1:
#include
#include
dint main()
{
char hrf;
printf ("Masukkan sebuah karakter ; “ee
hrf = getche();
printf£("\nNilai yang dimasukkan : %ec\n", hrf);
getch();
Hasilnya :
Masukkan sebuah karakter : N
Nilai yang dimasukkan : N
Contoh 2:
#include
#include
int main()
t
char hrf;Struktur Input dan Output 09
printf ("Masukkan sebuah karakter : ");
hrf = getchar();
printf("\nNilai yang dimasukkan : %c\n",hrf);
getch(); :
Hasilnya :
Masukkan sebuah karak’
Nilai yang dimasukkan
Contoh 3:
#include
#include
int main()
t
char hrf;
print£(*"Masukkan sebuah karakter : ");
hrf = getch ();
printf("\nNilai yang dimasukkan : %c\n",hrf);
getch();
Hasilnya :
Masukkan sebuah karakter :
Nilai yang dimasukkan : N
Contoh 4:
#include
#include
int main()
{ print£("Tekan sembarang tombol...");
getch();
printf("\nTerimakasih, Anda sudah menekan
tombol...");
}10 Algoritma dan Pemrograman dengan Bahasa C
Hasilnya:
Tekan sembarang tombol...
Terimakasih , Anda sudah menekan tombol...
4.1.2 Memasukkan Data String Tak Terformat:
String adalah kumpulan karakter. Jadi jika karakter adalah satu huruf Saja
maka string adalah kumpulan huruf. Untuk lebih jelasnya, contoh karakter
adalah ‘a’, ‘n’, ’t’, ’o’ ,’n’; sedangkan contoh string adalah “anton”. Untuk
memasukkan nilai string dapat digunakan fungsi gets()/. Cara memakai
fungsi ini berbeda dengan fungsi-fungsi sebelumnya, karena memerlukan
sebuah argumen/parameter yang berupa identifier string yang akan
menerima data yang dimasukkan.
Contoh:
#include
#include
int main()
{ char kata[10];
print£("Masukkan suatu nilai string : ");
gets (kata);
print£("Nilai string yang dimasukkan : %s\n",kata);
Hasilnya :
Masukkan suatu nilai string : anton
Nilai string yang dimasukkan :
anton
4.2. STRUKTUR INPUT TERFORMAT
Dalam struktur input terformat, Programmer dapat memasukkan data ke
dalam program dalam bentuk tertentu yang telah didefinisikan oleh bahasa
C. Dengan menggunakan bentuk ini maka Programmer dapat memasukkan
data dengan lebih baik, rapi, dan tertib. Struktur input terformat sedikit
lebih kompleks dibanding struktur input tidak terformat. Memasukkan data
terformat berarti data yang diterima akan diatur bentuk dan lebarnya
dengan kode-kode format menggunakan fungsi scanf(). Berikut adalah tabel
yang berisi format yang dapat diterima oleh fungsi scanf()Struktur Input dan Output rl
Tabel 4.1 Tabel format sconf()
Kode Format Kegunaan
Membaca sebuah karakter
%s Membaca sebuah data string
%d Membaca sebuah nilai desimal integer
%i Membaca sebuah nilai desimal integer
%x Membaca sebuah nilai heksadesimal integer
%o Membaca sebuah nilai oktal integer
EE Membaca sebuah data pecahan
%e Membaca sebuah data pecahan
%E Membaca sebuah data pecahan
Fungsi scanf() menggunakan pengiriman nilai secara acuan, yang dalam
bahasa C dilakukan dengan pointer. Oleh karena itu variabel-variabel yang
dipakai harus berupa variabel pointer (diawali dengan “&”).
4.2.1 Memasukkan Nilai Karakter
Nilai suatu karakter juga dapat dimasukkan dengan fungsi scanf()
menggunakan kode format “%c”. Jika data yang dimasukkan lebih dari satu,
sekaligus dalam satu baris input, maka jumlah nilai yang dimasukkan harus
sama atau lebih banyak dari cacah variabel penerimanya. Data yang
selebihnya akan diabaikan,
Contoh:
#include
#include
dint main()
. char cl,c2,¢3;
print£("Masukkan 3 nilai karakter : ");
scan£ ("%e%e%", &C1,&C2,&C3) ;
printf("\nAnda memasukkan : %c %c %C¢\n",cl,c2,¢3);
eee
Hasilnya :
Masukkan 3 nilai karakter : abede
Anda memasukkan : a bcn Agoritma dan Permrograman dengan Bahasa (
4.2.2 Memasukkan Nilai String
Nilai string juga dapat dimasukkan dengan fungsi scanf(), menggunakan
kode format “%s”. Khusus untuk nilai string, variabel yang digunakan tidak
perlu menggunakan operator pointer “&”, karena pengenal ini sudah
berbentuk pointer.
Contoh:
#include
#include
int main()
{ char kata[10];
printf ("Masukkan suatu nilai string : ");
scant ("%s",kata) ;
printé("Nilai string yang dimasukkan : %s\n",kata);
Hasilnya :
Masukkan suatu nilai string : Anton
Nilai string yang dimasukkan ; Anton
Untuk memasukkan nilai string dengan fungsi ini, jika string yang
dimasukkan mengandung spasi (whie space), maka kata yang diterima
hanyalah sebatas sebelum karakter spasi. Untuk mengatasi hal ini, kode
format “%s” dapat diganti dengan “%[4\n]”, yang berarti bahwa karakter
nilai string akan dibaca terus sampai ditemui penekanan tombol Enter
bentuk ‘*’ menunjukkan maksud ‘tidak’ dan karakter ‘\n’ berarti Enter).
Dengan demikian semua karakter, termasuk spasi dan tabulasi, akan dibaca
sampai ditemukan penekanan tombol Enter.
Contoh 2:
#include
#include
dint main()
{
char kata[20];
printf£("Masukkan suatu nilai string : ");
scanf("%[*\n]",kata) ;
printf£("Nilai string yang dimasukkan : %s\n",kata) ;Struktur Input dan Output B
Hasilnya :
Masukkan suatu nilai string : Antonius RC
Nilai string yang dimasukkan : Antonius RC
Kode format “%{]” juga dapat digunakan sebagai pemetaan dari karakter-
karakter yang akan dimasukkan. Misalnya, kode format “%[abc]” hanya
akan menerima karakter ‘a’, ’b’, atau ‘c’ saja. Karakter yang lain tetap dapat
dimasukkan, tetapi mulai karakter selain ‘a’, 'b’ dan ‘c’ akan diabaikan.
Misalnya, data yang dimasukkan “acabdbacas” maka yang akan diterima
hanya “acab” sementara “dbacas” akan diabaikan.
4.2.3 Memasukkan Nilai Numerik
Untuk nilai numerik, beberapa versi bahasa C juga menggunakan pengubah
“!’ dan “L” yang dikombinasikan dengan kode format data numerik,
Pengubah “I” untuk nilai integer digunakan untuk data long int. Pengubah
“!’ untuk nilai pecahan digunakan untuk data pecahan ketepatan ganda
(double). Pengubah “L” digunakan untuk data long double. Pengubah ini
ditulis di depan huruf konversi dari kode formatnya sebagai berikut:
“#li” atau “%ld” long int
“dle”, “Alf” atau “%lg” double
“%Le”, "LF" atau “%Lg” long double
Nilai numerik integer dalam bentuk heksadesimal dapat dimasukkan
sebagai data dengan menggunakan kode format “%x”. Nilai_numerik
pecahan ketepatan tunggal dapat dimasukkan sebagai data dengan
menggunakan kode format “%f” atau “%e” atau “%g” (dapat dipilih salah
satu).
Contoh:
#include
#include
int main()
t int I;
printf("Masukkan nilai heksadesimal: ");
scant ("%x",&I) 7
print£("Heksadesimal %x adalah %i desimal\n",1,1);4 Algoritma dan Pemrograman dengan Bahasa C
Hasilnya :
Masukkan nilai heksadesimal: fe
Heksadesimal fe adalah 254 desimal
4.3. STRUKTUR OUTPUT TAK TERFORMAT
Struktur output tidak terformat berarti pengguna atau programmer dapat
menampilkan data ke layar atau ke bentuk output lain seperti file dalam
bentuk yang sederhana dan terbatas namun mudah, Di dalam C terdapat
fungsi untuk menampilkan secara tidak terformat, yaitu putchar(char) dan
puts(char[]).
Contoh:
dnt main()
{
char N,D[15] = "antonius re";
N= 'xXt;
putchar(N) ;
puts (D);
getch();
Hasilnya adalah Xantonius rc.
Kebaikan dari pemakaian fungsi ini adalah bentuknya yang sederhana,
sedangkan kelemahannya adalah bahwa fungsi ini tidak dapat digunakan
untuk menampilkan bentuk yang rumit dan hanya dapat menggunakan
sebuah argumen saja.
4.4 STRUKTUR OUTPUT TERFORMAT
Di dalam bahasa C, perintah untuk menampilkan hasil terformat adalah
printf(). Bentuk-bentuk terformat menggunakan kode-kode format tertentu
yang mirip dengan input terformat pada subbab sebelumnya. Berikut
adalah tabel kode untuk menampilkan output terformat pada bahasa C:Struktur Input dan Output 5
Tabel 4.2 Tabel Format Printf()
Kode Format Kegunaan
%C Menampilkan sebuah karakter
%S Menampilkan nilai string
%d Menampilkan nilai desimal integer
%i Menampilkan nilai desimal integer
%u Menampilkan nilai desimal integer tak bertanda
%x Menampilkan nilai heksadesimal integer
%O Menampilkan nilai oktal integer
%E Menampilkan nilai pecahan
%e Menampilkan nilai dalam notasi saintifik
%g Sebagai pengganti %f atau %e tergantung yang
terpendek
%p Menampilkan suatu alamat memori untuk pointer
4.4.1 Menampilkan Nilai Karakter Terformat
Untuk menampilkan karakter di C secara terformat, kita dapat mengguna-
kan “%c”. Misalnya, untuk menampilkan sebuah karakter dengan lebar 3
posisi (dua karakter di depan karakternya blank), digunakan format “%3c”
dan untuk membuat tampilan output rata kiri (blank space ada di sebelah
kanan karakternya) dapat digunakan simbol (flag) minus, misalnya “%-3c’.
Beberapa contoh lainnya dapat dilihat berikut ini:
#include
#include
int main() {
char c = ‘a’;
printf£("%3c\n",c);
print£("%-3c\n",c);
getch();iO Algoritma dan Pemrograman dengan Bahasa C
4.4.2 Menampilkan String Terformat
Seperti yang sudah dijelaskan sebelumnya, string adalah kumpulan karak-
ter. Untuk menampilkan output berupa string dengan format tertentu,
kode-kode formatnya dapat dilihat pada tabel berikut ini.
Tabel 4.3 Tabel Format String
FORMAT | KETERANGAN
“%s" Menampilkan semua nilai karakter pada nilai string.
“%Ns” Menampilkan semua karakter rata kanan dengan lebar N
posisi; N adalah konstanta numerik bulat.
“%-Ns” Menampilkan semua karakter rata kiri dengan lebar N
posisi; N adalah konstanta numerik bulat.
“%N.Ms” Menampilkan rata kanan, hanya M _ buah_ karakter
pertama saja dengan lebar N posisi; M dan N adalah
konstanta numerik bulat.
“%-N.Ms” | Menampilkan rata kiri hanya M buah karakter pertama
saja dengan lebar N posisi; M dan N adalah konstanta
numerik bulat,
Contoh:
#include
#include
int main()
.
char D[15] = "Antonius Rachmat
printé("12345678901234567890\n");
printf("%s\n",D); /* semua karakter, rata kiri */
print£("%20s\n",D); /* lebar 20, rata kanan */
print£("%-20s\n",D); /* lebar 20, rata kiri */
print£("%20.5s\n",D); /* 5 karakter lbr 20, rata
kanen */
print£("%-20,5s\n",D); /* 5 karakter lbr 20, rata
kiri */
getch();
2Struktur Input dan Output 1
Hasil
1234567B901234567890
Antonius Rachmat C
Antonius Rachmat C
Antonius Rachmat C
Anton
Anton
4.4.3 Menampilkan Integer Terformat
Untuk menampilkan data integer (bilangan bulat) juga digunakan beberapa
kode format tertentu, yaitu sebagai berikut:
FORMAT ARTI
“Kd”, “i” signed int
“Yu” unsigned int
“%ld”,"%1i” Long int
“Shi” short int
“%hu"” unsgined short int
“g6lu” unsigned long int R|
Contoh:
#include
#include
int main()
{
int i=1234;
printf ("%i\n",i
printf ("%5i\n",i);
print£("%7d\n",i);
print£("%074\n",i);
print ("%-74\n",i);
getch();I
1B Algoritma dan Pemrograman dengan Bahasa C
4.4.4 Menampilkan Output Bilangan Pecahan
(Floating Point)
Untuk menampilkan output berupa bilangan pecahan hampir mirip dengan
menampilkan output integer, yaitu. menggunakan kode-kode format
tertentu, yang dapat dilihat pada tabel berikut ini:
Tabel 4.4 Tabel Format Float
FORMAT ARTI
“Ae” float dengan nilai pecahan
“He” float dengan notasi saintifik
“%e"” terpendek dari “%f” atau “%e”
“"lt", “Kle” atau “Ig” Double
“*LE", “%Le” atau “Le” long double
Contoh:
#include
ffinclude
int main()
t
float x=123.4567;
print£("%3£ %15£ %020£\n",x,x,x);
print£("%3e %15e %020e\n", x, x, x);
getch();Struktur Input dan Output
Hasilnya:
123.456703 123.456703 0000000000123.456703
1.23457e+02 1.23457e+02 0000000001.23457e+02
Contoh 2:
1
#include
#include
int main()
t
float F=12345.6789;
printf ("%15£\n",F);
print£("%15.2£\n",F);
print£("%015.2£\n",F);
print£("%-15.2£\n",P);
print£("%15.0£\n",F);
getch();
Hasil:
12345.678711
12345.68
000000012345. 68
12345.68
123456
Contoh:
#include
#include
int main()
t
print£("123456789\n\n");
print£("%déc\n",'a');
print£("%-4c\n",'a');
print£("%4d\n",50);
print£("%-44\n",50);
print£("%6f\n",7.56);
print£("%6.2£\n",7.56);
print£("%6.3£\n",7.56);80 Ajgoritma dan Pemrograman dengan Bahasa C
printé ("%-6.3£\n",7.56):
getch();
}
Hasilnya:
123456789
a
a
50
50
7.560000
7.56
7.560
7.560
4.4.5 Menampilkan Oktal dan Heksadesimal
Untuk menampikan output bilangan oktal dapat digunakan format %o
sedangkan untuk menampilkan bilangan heksadesimal dapat digunakan
format %x. Keduanya tetap menerima input berupa data integer desimal
terlebih dahulu. Jadi fungsi %x dan %o hanyalah untuk menampilkan data,
bukan mengubahnya menjadi oktal dan heksa secara sebenarnya.
Contoh heksadesimal:
#include
#include
int main()
{
int x = 1234;
printf ("%x\n",x); //hasil = 442
getch();Struktur Input dan Output 81
Contoh oktal:
#include
#include
int main()
{
int 0=1234;
print£("%o\n"); //Hasil = 2322
getch();
d
Pada program DevC++ ada fungsi yang bisa digunakan untuk membersihkan
layar output dengan meng-include-kan file header conio.h dan
menggunakan fungsi system(“cls”). Fungsi ini mengambil kemampuan dari
sistem operasi Windows untuk membersihkan layar command prompt,
yaitu perintah cls.
Contoh:
#include
#include
int main()
t
system("“cls”);
print£("Layar sudah bersih...");
getch();