Operasi Output-Input
Operasi output standar
e.g.
putchar(),putch(),puts(),printf()
Format output
Operasi input standar
e.g.
getchar(),getch(),getche(),gets(),scanf()
Dipakai untuk menampilkan nilai data ke peralatan
output sebagai data keluaran.
Beberapa fungsi (
standard library function
) yang
terdapat pada bahasa pemrograman C dapat:
menampilkan data tidak terformat
Operasi Output
menampilkan data tidak terformat
•
putchar();
•
putch();
•
puts();
menampilkan data terformat
Peralatan output standar biasanya adalah layar monitor.
Simbol yang lazim digunakan dalam
flowchart
untuk
output standar adalah:
Output Standar
Cetak
Fungsi:
Menampilkan karakter ke layar monitor pada cursor,
kemudian (setelah karakter tampil) cursor bergerak ke posisi
berikutnya.
Mengembalikan
EOF
jika error, atau mengembalikan karakter
yang ditampilkan jika sukses
Fungsi
putchar()
yang ditampilkan jika sukses
Header file:
stdio.h
Contoh:
char ch=’A’;
putchar(ch);
Fungsi :
Seperti
putchar(ch)
untuk menampilkan karakter ASCII dari
ch
di layar monitor.
Header file:
conio.h
Tersedia dalam Borland C++ library, tetapi tidak dalam ANSI C
dan ANSI C++
Fungsi
putch()
dan ANSI C++
Mengembalikan
EOF
jika error, atau mengembalikan karakter
yang ditampilkan jika sukses.
Contoh:
char ch=’b’;
putch(ch);
Fungsi:
Menampilkan string ke layar monitor dan memindahkan
kursor ke baris baru.
Header file:
stdio.h
Mengembalikan nilai non-negative jika sukses atau
EOF
Fungsi
puts()
Mengembalikan nilai non-negative jika sukses atau
EOF
jika ada error.
Contoh:
puts(”Selamat Datang”);
Contoh program:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(){
char c, s[20]="Ini data String";
Fungsi
putch(),puts(),putchar()
7
char c, s[20]="Ini data String";
c='A';
putch(65); putchar(65);
putch(c); putchar(c);
puts(s);
putch('\n');
putchar('\n');
system("PAUSE");
return(0);
}
AAAAIni data String
Press any key to continue . . .
Output:
Menampilkan sejumlah nilai data ke
standard output
,
dengan format tertentu.
Standard output
biasanya adalah layar monitor,
sedangkan
standard input
biasanya adalah keyboard.
Fungsi
printf()
sedangkan
standard input
biasanya adalah keyboard.
Header file untuk
printf
adalah:
stdio.h
Sintaks :
printf(const char *format[,argument, …]);
*format
:
format string, mengontrol bagaimana setiap fungsi akan
mengonversi, memformat dan mencetak setiap
argument
-nya
Format specifier
memiliki bentuk:
%[flags][width][.precision] type_char
Komponen
Keterangan
flags
Menentukan rata kanan, kiri atau bertanda:
• None : rata-kanan
Fungsi
printf()
• None : rata-kanan
• -
: rata-kiri
• + : menampilkan tanda (+ atau -)
width
Menentukan jumlah unit ruang (slot karakter)
yang disediakan
precision
Menentukan jumlah angka di belakang titik
desimal (untuk bilangan pecahan) atau jumlah
karakter (untuk string) yang ditampilkan
type_char
Menentukan tipe variabel/nilai-data yang akan
ditampilkan
type_char
Keterangan
c Menampilkan karakter tunggals Menampilkan string
d atau i Menampilkan bilangan integer bertanda
u Menampilkan bilangan integer desimal tak bertanda
Conversion-type Character
(
type_char
)
x Menampilkan bilangan integer hexadesimal tak bertanda (x dlm huruf kecil dan X dlm huruf besar)
o Menampilkan bilangan integer oktal tak bertanda f Menampilkan bilangan pecahan (titik desimal) E atau e Menampilkan bilangan pecahan eksponensial G atau g Menampilkan bilangan pecahan
p Menampilkan pointer
Format
specifier
(kode format)
Keterangan
“%c” Menampilkan sebuah karakter tunggal terformat
“%nc” Menampilkan sebuah karakter lebar n kolom rata kanan “%-nc” Menampilkan sebuah karakter lebar n kolom rata kiri
Contoh:
Format Karakter
Contoh:
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("%c\n",65);
printf("%5c%5c%5c\n",65,66,67);
printf("%-5c%-5c%-5c\n",65,66,67);
system("PAUSE");
return(0);
}
Format
specifier
Keterangan
“%s” Menampilkan sebuah nilai string terformat“%ns” Menampilkan nilai string lebar n kolom rata kanan “%-ns” Menampilkan nilai string lebar n kolom rata kiri
Format String
“%-ns” Menampilkan nilai string lebar n kolom rata kiri
“%n.ms” Menampilkan rata kanan hanya m buah karakter pertama saja dengan lebar n kolom.
“%-n.ms Menampilkan rata kiri hanya m buah karakter pertama saja dengan lebar n kolom.
#include <stdio.h>
#include <stdlib.h>
int main(){
char s[20]="Pemrograman C";
printf("%s%c\n",s,'|');
printf("%30s%c\n",s,'|');
Contoh Format String
printf("%30s%c\n",s,'|');
printf("%-30s%c\n",s,'|');
printf("%30.5s%c\n",s,'|');
printf("%-30.5s%c\n\n\n",s,'|');
system("PAUSE");
return(0);
}
Format
Specifier
Keterangan
“%d”, “%i” Menampilkan sebuah nilai signed integer terformat“%u” Menampilkan sebuah nilai unsigned integer terformat “%ld”, “%li” Menampilkan sebuah nilai long integer terformat
“%hi” Menampilkan sebuah nilai short integer terformat
Format Desimal Integer
“%hi” Menampilkan sebuah nilai short integer terformat
“%hu” Menampilkan sebuah nilai unsigned short integer terformat “%lu” Menampilkan sebuah nilai unsigned long integer terformat “%ni”, “%nd” Menampilkan sebuah nilai integer terformat n kolom rata kanan “%-ni”, “%-nd” Menampilkan sebuah nilai integer terformat n kolom rata kiri
“%+ni”, “%+nd” Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kanan “%-+ni”, “%-+nd” Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kiri
“%0ni”, “%0nd” Menampilkan sebuah nilai integer terformat n kolom rata kanan dg blank di depan diganti 0.
#include <stdio.h>
#include <stdlib.h>
int main(){
int x=1234, y=-567;
long int z = -567;
printf("%d %u %hi %lu\n",y,y,y,z);
printf("Size of short:%d int:%d long:%d\n\n",
sizeof(short int), sizeof(int), sizeof(long int));
printf("%d %+8d %+8d %+8ld\n",x,x,y,z);
Contoh Format Desimal Integer
printf("%d %-8d %-8d %-8ld\n",x,x,y,z);
printf("%d %-+8d %-+8d %-+8ld\n",x,x,y,z);
printf("%d %+-8d %+-8d %+-8ld\n",x,x,y,z);
printf("%0d %+08d %+08d %+08ld\n\n",x,x,y,z);
system("PAUSE");
return(0);
}
Format
Specifier
Keterangan
“%x”, “%X” Menampilkan nilai unsigned integer terformat hexadesimal “%nx”, “%nX” Menampilkan format hexadesimal lebar n kolom rata kanan
“%0nx”, “%0nX” Menampilkan format hexadesimal lebar n kolom rata kanan dg blank di depan diganti 0.
Format Heksadesimal
depan diganti 0.
“%-nx”, “%-nX” Menampilkan format hexadesimal lebar n kolom rata kiri
“%#x”, “%#X” Menampilkan format hexadesimal diawali dengan “0x” atau “0X” “%#nx”, “%#nX” Menampilkan format hexadesimal lebar n kolom rata kanan diawali
dengan “0x” atau “0X”
“%#-nx”, “%#-nX” Menampilkan format hexadesimal lebar n kolom rata kiri diawali dengan “0x” atau “0X”
#include <stdio.h>
#include <stdlib.h>
int main(){
int x=7654;
printf("%x %X %10x %10X\n\n",x,x,x,x);
printf("%x %X %-10x %-10X\n\n",x,x,x,x);
printf("%x %X %010x %010X\n\n",x,x,x,x);
printf("%#x %#X %#10x %#10X\n\n",x,x,x,x);
printf("%#x %#X %#010x %#010X\n\n",x,x,x,x);
Contoh Format Heksadesimal
printf("%#x %#X %#010x %#010X\n\n",x,x,x,x);
printf("%#x %#X %#-10x %#-10X\n\n",x,x,x,x);
system("PAUSE");
return(0);
}
Format
specifier
Keterangan
“%o” Menampilkan nilai unsigned integer terformat oktal “%no” Menampilkan format oktal lebar n kolom rata kanan
“%0no” Menampilkan format oktal lebar n kolom rata kanan dg blank di depan diganti 0.
Format Oktal
diganti 0.
“%-no” Menampilkan format oktal lebar n kolom rata kiri “%#o” Menampilkan format oktal diawali dengan “0”
“%#no” Menampilkan format oktal lebar n kolom rata kanan diawali dengan “0” “%#-no” Menampilkan format oktal lebar n kolom rata kiri diawali dengan “0”
#include <stdio.h>
#include <stdlib.h>
int main(){
int x=7654;
printf("%o %10o%c\n\n",x,x,'|');
printf("%o %-10o%c\n\n",x,x,'|');
printf("%o %010o%c\n\n",x,x,'|');
printf("%o %#o%c\n\n",x,x,'|');
printf("%o %#o%c\n\n",x,x,'|');
Contoh Format Oktal
printf("%o %#o%c\n\n",x,x,'|');
printf("%o %#-10o%c\n\n\n",x,x,'|');
system("PAUSE");
return(0);
}
Format
Specifier
Keterangan
“%f” Menampilkan sebuah nilai float (pecahan) desimal terformat “%e” Menampilkan sebuah nilai float desimal terformat saintifik
“%g” Menampilkan sebuah nilai float desimal terformat yang terpendek di antara “%f” atau “%e”
“%lf”, “%le”, “%lg” Menampilkan sebuah nilai pecahan terformat double
Format Desimal Pecahan
“%lf”, “%le”, “%lg” Menampilkan sebuah nilai pecahan terformat double “%Lf”, “%Le”, “%Lg” Menampilkan sebuah nilai pecahan terformat long double
“%nf” Menampilkan nilai float integer terformat n kolom rata kanan “%-nf” Menampilkan nilai float integer terformat n kolom rata kiri
“%n.mf” Menampilkan nilai float integer terformat n kolom rata kanan dg m digit di belakang titik desimal
“%0n.mf” Menampilkan nilai float integer terformat n kolom rata kanan dg m digit di belakang titik desimal dan blank di depan diganti 0.
“%-+n.mf” Menampilkan nilai float terformat dg tanda (+/-) n kolom rata kiri dg m digit di belakang titik desimal
#include <stdio.h>
#include <stdlib.h>
int main(){
float x=7654.123456789;
double d = 7654.123456789012345l;
printf("%f %15f %15.3f\n\n",x,x,x);
Contoh Format Desimal Pecahan
printf("%f %15f %15.3f\n\n",x,x,x);
printf("%e %15e %15.3e\n\n",x,x,x);
printf("%g %15g %15.3g\n\n",x,x,x);
printf("%lf %20lf %+20.9lf\n\n",d,d,d);
system("PAUSE");
return(0);
}
#include <stdio.h> #include <math.h> #include <stdlib.h>
int main(){
int n; double fb;
printf(" TABEL FAKTOR BUNGA MAJEMUK\n\n"); printf(" n %10s %10s %10s %10s %10s\n\n",
"1.0%","2.0%","3.0%","4.0%","5.0%"); for(n=1; n<=15; n++){
printf("%02d ",n);
Contoh Format Desimal Pecahan
printf("%02d ",n);
for(int i=1; i<=5; i++){
fb = pow(1.0 + i/100.0, n); printf("%11.7lf",fb); } printf("\n"); } printf("\n"); system("PAUSE"); return(0); }
Operasi untuk menyimpan nilai data ke variabel tertentu
melalui peralatan I/O, mis. keyboard, disk, dll.
Standard library function
berkaitan operasi input
standart di bahasa pemrograman C di antaranya:
Operasi Input
standart di bahasa pemrograman C di antaranya:
getchar();
getch();
getche();
gets();
scanf();
Peralatan input standar adalah keyboard
Simbol yang lazim digunakan dalam
flowchart
untuk
input standar adalah:
Input Standar
Baca
Fungsi:
Mengembalikan sebuah karakter (nilai ASCII) dari
keyboard buffer
Karakter ditampilkan di layar monitor
Menunggu sampai ditekan ENTER
Fungsi
getchar()
Menunggu sampai ditekan ENTER
Header file terdapat di
stdio.h
Contoh:
int ch;
//atau ch = getchar();
ch = getchar();
// cetak ch
Fungsi:
Mengembalikan satu karakter dari
keyboard buffer
Karakter tidak ditampilkan di layar monitor (
no echo
)
Tidak menunggu sampai ada ENTER
Header file terdapat di
conio.h
Fungsi
getch()
Header file terdapat di
conio.h
Contoh:
int ch;
//atau ch = getch();
ch = getch();
// cetak ch
Fungsi :
Mengembalikan satu karakter dari
keyboard buffer
Karakter ditampilkan di layar (
echo
)
Tidak menunggu sampai ada ENTER
Header file terdapat di
conio.h
Fungsi
getche()
Header file terdapat di
conio.h
Contoh:
int ch;
//atau ch = getche();
ch = getche();
// cetak ch
Fungsi:
Membaca string dari keyboard sampai new-line
dan
menyimpannya pada buffer.
Kemudian mengubah new-line
menjadi karakter null (\0)
Mengembalikan nilai NULL
jika ada error
dan
Fungsi
gets()
Mengembalikan nilai NULL
jika ada error
dan
mengembalikan argumennya (buffer) jika sukses.
Contoh:
char buffer[40];
gets(buffer);
//cetak buffer
Format:
int
scanf
(const char *
format
[,
argument
, ..]);
Fungsi:
Memindai (scan) serangkaian
input fields di
buffer, satu karakter
dalam satu saat
Memformat setiap
field
sesuai dengan
format specifier
dalam
format
string *
format
Mengembalikan nilai bertipe
integer, yang menyatakan jumlah
field
Fungsi
scanf()
Mengembalikan nilai bertipe
integer, yang menyatakan jumlah
field
yang sukses di-assigned.
Semua tipe argument pada
scanf()
adalah
pointer
(alamat dari
variabel yang akan diisikan data)
Untuk memperoleh alamat dari variabel digunakan operator
&
.
Header file:
stdio.h
Contoh :
int umurTahun;
Format specifier
berbentuk :
“% type_char”
type_char
Dipakai untuk membaca
d,i
u
o
x
-
Data integer
- Data unsigned integer
- Data unsigned octal
- Data heksadesimal
Fungsi
scanf()
x
e,f,g
c
- Data heksadesimal
- Data floating point
- Karakter tunggal (
single character
)
s
[…]
[^..]
-
String, diakhiri dengan
whitespace character
-
String, diakhiri dengan karakter yang tidak ada
didalam [...]; dengan kata lain, string yang dibaca &
disimpan adalah yang berisi karakter di dalam […]
- String, diakhiri dengan karakter yang ada
Jika x adalah variabel integer bernilai 234 dan
memiliki alamat 4567, apakah perbedaan x dengan
&x?
Jawab:
Nama Variabel
Nilai Data/
isi-memori
Alamat-Memori (&x)
Fungsi
scanf()
Jika ada y
bertipe integer
(int y;) dan y = x; maka y akan berisi
data
bernilai 234
Jika ada y
bertipe pointer to integer
(int *y) dan y = &x; maka
y akan berisi alamat dari x yaitu 45678
X
234
Nama Variabel
Alamat-Memori (&x)
Fungsi
scanf()
mengembalikan nilai bertipe
integer
,
yang menyatakan jumlah
field
yang sukses di-
assigned
.
Contoh:
int x,y,z,w;
x = scanf("%d %d %d", &y, &z, &w);
Fungsi
scanf()
x = scanf("%d %d %d", &y, &z, &w);
Jika diinputkan dari keyboard 3 buah nilai integer 6 7 8,
maka nilai x = 3;