DPK-03-Input

Download Report

Transcript DPK-03-Input

Pertemuan 03
Dasar Pemrograman Komputer [TKL-4002]
2010
1
Pada akhir pertemuan, diharapkan mahasiswa
akan mampu :

Menggunakan standard library function yang
berhubungan dengan operasi output dan input
standart dalam bahasa pemrograman C.
2
Operasi Output-Input




Operasi Output standart, spt: putchar, putch, puts,
printf.
Format Output
Operasi Input standart, spt: getchar, getch, getche, gets,
scanf
Format Input
3

Operasi output dipakai untuk menampilkan nilai data ke
peralatan output sebagai data keluaran. Beberapa fungsi
(standard library function) yang terdapat pada bahasa
pemrograman C di antaranya:
• Menampilkan Data Tidak Terformat
putchar();
putch();
puts();
 Menampilkan Data Terformat
printf();
4


Peralatan output standart adalah layar monitor.
Simbol yg lazim digunakan dalam flowchart untuk
output standart adalah:
Cetak
...............
5


Sintak:
int putchar(int c)
Fungsi:
• Menampilkan karakter ke layar monitor pada cursor, kemudian
setelah ditampilkan cursor bergerak ke posisi berikutnya.
• Mengembalikan EOF jika error, dan mengembalikan karakter
yang ditampilkan jika sukses
• Putchar adalah macro yang sama artinya dengan: putc(c, stdout )
• Header File : stdio.h

Contoh:
char ch=’A’;
putchar(ch);
6



Sintak:
• int putch(int ch);
Fungsi :
• Seperti putchar(ch) untuk menampilkan karakter
ASCII dari ch di layar monitor.
• Header file : conio.h
• Mengembalikan EOF jika error, dan mengembalikan
karakter yang ditampilkan jika sukses.
Contoh:
char ch=’b’;
putch(ch);
7

Sintak:
int puts(const char *str);

Fungsi:
• Menampilkan string str ke layar monitor dan
memindahkan kursor ke baris baru.
• Header file: stdio.h
• Mengembalikan nilai non-negative jika sukses dan EOF
jika ada error.

Contoh:
puts(”Selamat Datang”);
puts(”Di Bahasa Pemrograman C”);
8

Contoh Program
#include<stdio.h>
#include<conio.h>
int main(){
char c;
c='A';
putch(65); putchar(65);
putch(c); putchar(c);
puts(“Ini data String”);
putch('\n'); putchar('\n');
getch();
return(0);
}
Output:
AAAAIni data String
Press any key to continue . . .
9




Menampilkan sejumlah nilai data ke standard output,
dengan format tertentu.
Standard output adalah Layar Monitor, sedangkan
Standard Input adalah Keyboard.
Header file untuk printf adalah: stdio.h
Sintak :
printf(const char *format[,argument, …]);
10

Spesifikai format sbb:
%[flags][width][.precision] type
Spes. Format
Keterangan
flags
Menentukan rata kanan, kiri atau bertanda:
• None : rata-kanan
• : rata-kiri
• +
: menampilkan tanda (+ atau -)
width
Menentukan jumlah kolom yang disediakan
precision
menentukan jumlah angka di belakang titik
desimal (untuk bilangan pecahan)
type
Menentukan tipe variabel/nilai-data yang akan
ditampilkan
11
Type Format
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).
12
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<iostream.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);
}
13
Kode Format
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.
14
#include<stdio.h>
#include<iostream.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);
}
15
Kode Format
“%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”
“%-ni”, “%-nd”
“%+ni”, “%+nd”
Menampilkan sebuah nilai integer terformat n kolom rata kanan
Menampilkan sebuah nilai integer terformat n kolom rata kiri
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.
16
#include<stdio.h>
#include<iostream.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);
}
17
Kode Format
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”
Menampilkan format hexadesimal diawali dengan “0x” atau “0X”
“%#nx”, “%#nX”
“%#-nx”, “%#-nX”
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”
18
#include<stdio.h>
#include<iostream.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);
}
19
Kode Format
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”
20
#include<stdio.h>
#include<iostream.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);
}
21
Kode Format
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
22
#include<stdio.h>
#include<iostream.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);
}
23
#include<stdio.h>
#include<math.h>
#include<iostream.h>
int main(){
int n; float l; 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);
}
24

Layar dibagi dalam kolom dan baris, umumnya
digunakan ukuran kolom = 80 dan baris = 25.
(1,1)
(80,1)
x
y
(1,25)
(80,25)
25




Pada Turbo-C Layar dapat dihapus dengan
menggunakan fungsi: clrscr();
Kursor dapat dipindahkan ke posisi manapun di dalam
layar monitor dengan menggunakan fungsi :
gotoxy(col,row); dimana col = kolom dan row = baris
Sebagian dari baris, mulai posisi kursor hingga akhir
baris (end of line), dapat dihapus dengan fungsi:
clreol();
Function prototype untuk fungsi gotoxy(), clrscr(),
clreol() pada bahasa C terdapat pada header file :
<conio.h>
26

Contoh :
#include <stdio.h>
#include <conio.h>
int main()
{
float panjang, lebar, luas, keliling; /* local variable */
clrscr();
/*membersihkan layar*/
gotoxy(30,10); printf(”Panjang : ”);
scanf(“%f”,&panjang);
gotoxy(30,11); printf(“Lebar :” );
scanf(“%f”,&lebar);
keliling = 2 * panjang * lebar;
luas = panjang * lebar;
gotoxy(30,13); printf(“Keliling = %8.2f ”, keliling);
gotoxy(30,14); printf(“Luas = %8.2f‘, luas );
return(0);
}
27


Operasi input: operasi untuk menyimpan nilai data
ke variabel tertentu melalui peralatan I/O, spt:
keyboard, disk, dll.
Standard library function berkaitan operasi input
standart di bahasa pemrograman C di antaranya:
getchar();
getch();
getche();
gets();
scanf();
28


Peralatan input standart adalah keyboard.
Simbol yg lazim digunakan dalam flowchart untuk
input standart adalah:
Baca
Daftar_variabel
29


Sintak:
int getchar(void):
Fungsi:
• mengembalikan sebuah karakter (nilai ASCII) dari buffer
keyboard.
• Karakter ditampilkan di layar monitor
• Menunggu sampai ditekan ENTER
• Header file terdapat di stdio.h

Contoh:
char ch;
ch = getchar();
30


Sintak:
int getch(void):
Fungsi:
• mengembalikan satu karakter dari buffer keyboard
• karakter tidak ditampilkan di layar monitor (no echo)
• Tidak menunggu sampai ada ENTER
• Header file terdapat di conio.h

Contoh:
char ch;
ch = getch();
31


Sintak:
int getche(void)
Fungsi :
• mengembalikan satu karakter dari keyboard
• Karakter ditampilkan di layar (echo)
• Tidak menunggu sampai ada ENTER
• Header file terdapat di conio.h

Contoh:
char ch;
ch = getche();
32


Sintak:
void gets(char *buffer)
Fungsi:
• membaca string dari keyboard sampai new-line dan
disimpan pada buffer.
• Kemudian new-line diubah menjadi karakter null
• Mengembalikan nilai NULL jika ada error dan
mengembalikan argumentnya (buffer) jika sukses.

Contoh:
char buffer[40];
gets(buffer);
33




Header file dari scanf terletak di stdio.h
Format:
int scanf( const char *format [, argument]... );
Semua tipe argument pada scanf adalah pointer (alamat
dari variabel yang akan diisi data).
Untuk memperoleh alamat dari variabel digunakan
operator &.

Fungsi scanf didefinisikan di header file stdio.h

Contoh :
int umurTahun;
scanf(”%d”, &umurTahun);
34

Spesifikai format adalah : ”% type”
dimana type bisa diganti dengan salah satu dari sbb:
type
DIPAKAT UNTUK MEMBACA
d,i
u
x
e,f,g
c
- Data integer
s
o
[…]
- Karakter string diakhiri dengan whitespace
[^..]
- Data unsigned integer
- Data heksadesimal
- Data floating point
- Single character
- Data unsigned octal
- Karakter string diakhiri dengan karakter yg tidak ada
didalam [...]
- Karakter string diakhiri dengan karakter yg ada didalam [..]
35

Jika x adalah variabel integer bernilai 234 dan
memiliki alamat 4567. Apakah beda antara x dgn &x?
Jawab:
Nilai Data/
isi-memori
Nama Variabel
Alamat-Memori (&x)
X
234
45678
Bila:
y = x; maka y akan berisi data 234
y = &x; maka y akan berisi alamat dari x yaitu 45678
36


Fungsi scanf mengembalikan tipe integer, dimana nilai
nya menyatakan jumlah field yang sukses di assigned.
Contoh:
int x,y,z,w;
x = scanf("%d %d %d", &y, &z, &w);
 Jika di input dari keyboard 3 buah nilai interger 6 7 8,
maka nilai x = 3;
 Jika di input dari keyboard 4 buah nilai interger 6 7 8 9
maka nilai x = 3 (karena 3 nilai yg sukses di-assigned
masing-masing ke variabel y, z dan w)
37

Contoh Program Luas Segi Empat
/* Program Luas_Segi_Empat v1*/
#include <stdio.h>
#include <iostream.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);
}
38




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 & (&ss).
String yang diambil hanya sampai karakter
whitespace.
39



Karakter Space, tab, linefeed, carriage-return,
formfeed, vertical-tab, dan newline disebut ”whitespace characters”
Contoh :
• Pada potongan program diatas, 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]
40

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”
41

Contoh:
char ss[40];
scanf(”%[a-z]”,ss);
• Pada potongan program diatas, jika dimasukkan
string: http://brawijaya.ac.id kemudian tekan ENTER
dari keyboard maka variabel ss hanya berisi string:
http karena titik dua (:) tidak ada diantara a s/d z,
dan titik dua dianggap sebagai akhir dari string.
42

Contoh:
int x;
scanf("%o", &x);
• Pada potongan program di atas, jika dimasukkan
bilangan : 44 kemudian tekan ENTER dari keyboard
maka variabel x akan berisi nilai : 36 desimal,
karena 44 dianggap bilangan berbasis oktal.
43

Contoh:
int x;
scanf("%x", &x);
• Pada potongan program diatas, jika dimasukkan
bilangan : 44 kemudian tekan ENTER dari keyboard
maka variabel x akan berisi nilai : 68 desimal,
karena 44 dianggap bilangan berbasis
heksadesimal.
44
int x,y,z,w;
x=scanf("%d %d %d",&y,&z,&w);
1.
2.
Apa yang terjadi jika pada program diatas di input 2
nilai integer dari keyboard?
Berapa nilai x jika diinput dari keyboard 3 buah
character ?
45
char ss1[40];
char ss2[40];
x=scanf(”%s %s”,ss1,ss2);
1.
2.
Apa isi variabel ss1 dan ss2, jika dari keyboard
diinput string ”Selamat Pagi Pak” ?
Berapa nilai x jika diinput dari keyboard : ”Kelas
1PAT”
46
char ss[40];
scanf(”%4s”, ss);
1.
Apa isi variabel ss, jika dari keyboard diinput string ”Selamat
Pagi” ?
char ch;
ch = getchar();
2.
Apa isi variabel ch, jika dari keyboard di-input : TIF-FTUB
char ch1, ch2;
ch1 = getchar(); //masukkan kata TIF-FTUB!
ch2 = getchar();
3.
Apa isi variabel ch1 dan ch2, jika dari keyboard di-input : TIFFTUB
47


Buatlah program untuk menerima input dari keyboard,
berupa nilai :
• Tugas Kelompok (NTK)
• Nilai Kuis (NK)
• Nilai UAS (NUAS)
Hitung dan tampilkan nilai akhir dengan rumus :
NA = 20 % * Nilai NTK + 30 % Nilai Kuis + 50 % Nilai UAS
48
#include <stdio.h>
int main()
{
char nama[40];
int nim;
char jk;
printf("Nama:"); scanf("%[^\n]",nama);
printf("Nim:"); scanf("%d",&nim);
printf("Jenis Kelamin (L/P):"); jk=getchar();
return 0;
}
Perhatikan Program di atas!
Setelah memasukkan nama dan nim dari keyboard, program
langsung keluar, instruksi jk=getchar(); seolah-olah tdk pernah
dieksekusi, jelaskan mengapa demikian?
49
#include <stdio.h>
int main(){
char ss[]="10 % 3 = 1\n";
char str[]="Selamat Datang di Binus\n";
printf(ss);
printf("%s",ss);
printf(str);
printf("%s",str);
return 0;
}
Apakah output dari program diatas ?
50


Jelaskan fungsi/kegunaan dari Standard library
function sbb:
• sscanf
• sprintf
• fflush
• cprintf
• Cscanf
Jelaskan maksud dari nama sbb:
• stdin
• stdout
• stderr
51