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