Operasi Output & Input
Download
Report
Transcript Operasi Output & Input
Dasar Pemrograman
Komputer
Operasi Output & Input
Sutrisno
Ismiarta Aknuranda
Issa Arwani
Adharul Muttaqin
Teknik Informatika - UB
Operasi Output-Input
Operasi output standar
e.g. putchar(),putch(),puts(),printf()
Format output
Operasi input standar
e.g. getchar(),getch(),getche(),gets(),scanf()
Format input
Input Output - TIF UB 2010
2
Operasi Output
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
•
putchar();
•
putch();
•
puts();
menampilkan data terformat
•
printf();
Input Output - TIF UB 2010
3
Output Standar
Peralatan output standar biasanya adalah layar monitor.
Simbol yang lazim digunakan dalam flowchart untuk
output standar adalah:
Cetak
...............
Input Output - TIF UB 2010
4
Fungsi putchar()
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
Header file: stdio.h
Contoh:
char ch=’A’;
putchar(ch);
Input Output - TIF UB 2010
5
Fungsi putch()
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++
Mengembalikan EOF jika error, atau mengembalikan karakter
yang ditampilkan jika sukses.
Contoh:
char ch=’b’;
putch(ch);
Input Output - TIF UB 2010
6
Fungsi puts()
Fungsi:
Menampilkan string ke layar monitor dan memindahkan
kursor ke baris baru.
Header file: stdio.h
Mengembalikan nilai non-negative jika sukses atau EOF
jika ada error.
Contoh:
puts(”Selamat Datang”);
puts(”Di Bahasa Pemrograman C”);
Input Output - TIF UB 2010
7
Fungsi putch(),puts(),putchar()
Contoh program:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(){
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);
}
Output:
AAAAIni data String
Press any key to continue . . .
Input Output - TIF UB 2010
8
Fungsi printf()
Menampilkan sejumlah nilai data ke standard output,
dengan format tertentu.
Standard output biasanya adalah layar monitor,
sedangkan standard input biasanya adalah keyboard.
Header file untuk printf adalah: stdio.h
Input Output - TIF UB 2010
9
Fungsi printf()
Sintaksis untuk prototype:
int printf(const char* format[,argument, …]);
Parameter:
format:
– format string, string yang akan dituliskan pada monitor (stdout)
– dapat mengandung format tags (%...) yang akan digantikan dengan nilai
argument yang terdapat setelah format string dan diformat sesuai kode
pada tag tersebut
argument:
– Argument yang nilainya akan menggantikan %-tag pada format string
Nilai kembalian
– Jika sukses, jumlah karakter yang dicetak akan dikembalikan
– Jika gagal, angka negatif dikembalikan.
Input Output - TIF UB 2010
10
Fungsi printf()
Format tag memiliki bentuk:
%[flags][width][.precision] specifier
Komponen
Keterangan
flags
Menentukan rata kanan, kiri atau bertanda:
• None : rata-kanan
• : rata-kiri
• +
: menampilkan tanda (+ atau -)
width
Menentukan jumlah unit ruang (slot karakter)
yang disediakan
precision
Menentukan presisi bilangan atau karakter, mis.
jumlah angka di belakang titik desimal (untuk
bilangan pecahan ,% f) atau jumlah karakter
(untuk string) yang ditampilkan
specifier
Menentukan tipe variabel/nilai-data yang akan
ditampilkan
Input Output - TIF UB 2010
11
Conversion Specifier
specifier
Keterangan
c
Menampilkan karakter tunggal
s
Menampilkan string
d atau i
Menampilkan bilangan integer bertanda
u
Menampilkan bilangan integer desimal tak bertanda
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
L atau l atau h
Menampilkan pointer
Awalan untuk L atau l (long) dan h (short).
Input Output - TIF UB 2010
12
Format Karakter
Format tags
(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:
#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);
}
Input Output - TIF UB 2010
13
Escape Sequence
\a
\b
\t
\n
\v
\r
\’
\”
\\
bell, alert, system beep
back space
horizontal tab
new line
vertical tab
carriage return, move to the beginning of
current line
single quote
double quote
backslash
Pengantar Bahasa C - TIF UB 2010
14
Format String
Format tags
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
“%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.
Input Output - TIF UB 2010
15
Contoh Format String
#include <stdio.h>
#include <stdlib.h>
int main(){
char s[20]="Pemrograman C";
printf("%s%c\n",s,'|');
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);
}
Input Output - TIF UB 2010
16
Format Desimal Integer
Format tags
“%d”, “%i”
“%u”
Keterangan
Menampilkan sebuah nilai signed integer terformat
Menampilkan sebuah nilai unsigned integer terformat
“%ld”, “%li”
Menampilkan sebuah nilai long integer terformat
“%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”
“%0ni”, “%0nd”
Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kiri
Menampilkan sebuah nilai integer terformat n kolom rata kanan dg blank
di depan diganti 0.
Input Output - TIF UB 2010
17
Contoh Format Desimal Integer
#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);
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);
}
Input Output - TIF UB 2010
18
Format Heksadesimal
Format tags
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.
“%-nx”, “%-nX”
Menampilkan format hexadesimal lebar n kolom rata kiri
“%#x”, “%#X”
“%#nx”, “%#nX”
“%#-nx”, “%#-nX”
Menampilkan format hexadesimal diawali dengan “0x” atau “0X”
Menampilkan format hexadesimal lebar n kolom rata kanan diawali
dengan “0x” atau “0X”
Menampilkan format hexadesimal lebar n kolom rata kiri diawali dengan
“0x” atau “0X”
Input Output - TIF UB 2010
19
Contoh Format Heksadesimal
#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);
printf("%#x %#X %#-10x %#-10X\n\n",x,x,x,x);
system("PAUSE");
return(0);
}
Input Output - TIF UB 2010
20
Format Oktal
Format tags
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.
“%-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”
Input Output - TIF UB 2010
21
Contoh Format Oktal
#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,'|');
printf("%o %#-10o%c\n\n\n",x,x,'|');
system("PAUSE");
return(0);
}
Input Output - TIF UB 2010
22
Format Desimal Pecahan
Format Tags
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”
“%Lf”, “%Le”, “%Lg”
Menampilkan sebuah nilai pecahan terformat double
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
Input Output - TIF UB 2010
23
Contoh Format Desimal Pecahan
#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);
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);
}
Input Output - TIF UB 2010
24
Contoh Format Desimal Pecahan
#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);
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);
}
Input Output - TIF UB 2010
25
Operasi Input
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:
getchar();
getch();
getche();
gets();
scanf();
Input Output - TIF UB 2010
26
Input Standar
Peralatan input standar adalah keyboard
Simbol yang lazim digunakan dalam flowchart untuk
input standar adalah:
Baca
Daftar_variabel
Input Output - TIF UB 2010
27
Fungsi getchar()
Fungsi:
Mengembalikan sebuah karakter (nilai ASCII) dari
keyboard buffer
Karakter ditampilkan di layar monitor
Menunggu sampai ditekan ENTER
Header file terdapat di stdio.h
Contoh:
int ch;
//atau ch = getchar();
ch = getchar();
// cetak ch
printf(“ch = %c”, ch);
Input Output - TIF UB 2010
28
Fungsi getch()
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
Contoh:
int ch;
//atau ch = getch();
ch = getch();
// cetak ch
printf(“ch = %c”, ch);
Input Output - TIF UB 2010
29
Fungsi getche()
Fungsi :
Mengembalikan satu karakter dari keyboard buffer
Karakter ditampilkan di layar (echo)
Tidak menunggu sampai ada ENTER
Header file terdapat di conio.h
Contoh:
int ch;
//atau ch = getche();
ch = getche();
// cetak ch
printf(“ch = %c”, ch);
Input Output - TIF UB 2010
30
Fungsi gets()
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
mengembalikan argumennya (buffer) jika sukses.
Contoh:
char buffer[40];
gets(buffer);
//cetak buffer
printf(“buffer = %s”, buffer);
Input Output - TIF UB 2010
31
Fungsi scanf()
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
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;
scanf(”%d”, &umurTahun);
Input Output - TIF UB 2010
32
Fungsi scanf()
Format tag memiliki bentuk:
%[*][width] type
Komponen
Keterangan
*
Menunjukkan bahwa data akan diambil dari stdin
tetapi diabaikan, i.e. tidak disimpan di argumen
yang berkaitan.
width
Menentukan jumlah unit ruang (slot karakter)
yang disediakan
type
Menentukan tipe variabel/nilai-data yang akan
ditampilkan
Input Output - TIF UB 2010
33
Type specifier
type
d,i
u
o
x
e,f,g
c
Dipakai untuk membaca
- Data integer
- Data unsigned integer
- Data unsigned octal
- Data heksadesimal
- Data floating point
- Karakter tunggal (single character)
Catatan:
Beberapa type specifier di atas dapat ditambahkan dengan modifiers,
seperti h, l, L
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 di dalam [^...]
Input Output - TIF UB 2010
34
Fungsi scanf()
Jika x adalah variabel integer bernilai 234 dan
memiliki alamat 4567, apakah perbedaan x dengan
&x?
Jawab:
Nilai Data/
isi-memori
Nama Variabel
Alamat-Memori (&x)
X
234
45678
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
Input Output - TIF UB 2010
35
Fungsi scanf()
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);
Jika diinputkan dari keyboard 3 buah nilai integer 6 7 8,
maka nilai x = 3;
Jika diinputkan dari keyboard 4 buah nilai integer 6 7 8 9
maka nilai x = 3 (karena hanya ada 3 nilai yangg sukses diassigned ke masing-masing variabel y, z dan w)
Input Output - TIF UB 2010
36
Fungsi scanf()
Contoh Program Luas Segi Empat
/* Program Luas_Segi_Empat */
#include <stdio.h>
#include <stdlib.h>
int main(){
int panjang, lebar, luas;
printf("Menghitung Luas Segiempat\n\n");
printf("Panjang: "); scanf("%d",&panjang);
printf(“Lebar: "); scanf("%d",&lebar);
luas = panjang * lebar;
printf("\nLuas = %d x %d = %d\n\n",
panjang, lebar, luas);
system("PAUSE");
return(0);
}
Input Output - TIF UB 2010
37
Fungsi scanf()
Mengambil data string dari keyboard dengan fungsi
scanf() menggunakan format: %s.
Contoh:
char ss[40];
scanf(”%s”,ss);
Perhatikan contoh diatas, karena variabel ss tipenya
sudah pointer (topik tentang pointer akan dibahas
tersendiri), maka tidak perlu ditambah tanda & (i.e.
&ss).
String yang diambil hanya sampai karakter whitespace.
Input Output - TIF UB 2010
38
Fungsi scanf()
Karakter new line (‘\n’), horizontal tab (‘\t’),
carriage-return (‘\r’), form feed (‘\f’), dan
vertical-tab (‘\v’) disebut ”white-space characters”
Contoh :
– Pada potongan program sebelumnya, jika
dimasukkan string ”Selamat Pagi Pak” dari
keyboard maka yg dimasukkan ke variabel ss hanya
“Selamat” saja.
Untuk mengambil string yang diakhiri karakter tertentu
(misalnya ENTER), dengan scanf() dapat
menggunakan format [^\n]
Input Output - TIF UB 2010
39
Fungsi scanf()
Contoh:
char ss[40];
scanf(”%[^\n]”,ss);
Pada potongan program diatas, jika dimasukkan
string ”Selamat Pagi Pak” kemudian tekan
ENTER dari keyboard maka variabel ss berisi string
“Selamat Pagi Pak”
Input Output - TIF UB 2010
40
Fungsi scanf()
Contoh:
char ss[40];
scanf(”%[a-z]”,ss);
Pada potongan program diatas, jika dimasukkan
string: http://brawijaya.ac.id kemudian
ditekan ENTER dari keyboard maka variabel ss
hanya berisi string: http.
Titik dua (‘:’) tidak ada di antara a dan z, sehingga
titik dua dianggap sebagai akhir dari string yang
dimasukkan.
Input Output - TIF UB 2010
41
Fungsi scanf()
Contoh:
int x;
scanf("%o", &x);
Pada potongan program di atas, jika dimasukkan
bilangan : 44 kemudian ditekan ENTER dari keyboard
maka variabel x akan berisi nilai : 36 desimal, karena
44 dianggap bilangan berbasis oktal.
Input Output - TIF UB 2010
42
Fungsi scanf()
Contoh:
int x;
scanf("%x", &x);
Pada potongan program di atas, jika dimasukkan
bilangan : 44 kemudian ditekan ENTER dari keyboard
maka variabel x akan berisi nilai : 68 desimal, karena
44 dianggap bilangan berbasis heksadesimal.
Input Output - TIF UB 2010
43