Dasar Pemrograman-8 (Operasi Masukan Dan Keluaran)
description
Transcript of Dasar Pemrograman-8 (Operasi Masukan Dan Keluaran)
-
1
BABIV
OPERASIMASUKANDANKELUARAN
Memasukan data dan menampilkan data/informasi merupakan tindakan yang
sering di lakukan dalamrograman. Penampilan data/informasi biasanya di
tunjukan ke piranti layar (monitor), sedangkan pemasuukan data biasanya
dilaksanakanmelaluipappanketik(keyboard).
IV.1.MENAMPILDATA/INFORMASIKELAYAR
Untuk keperluanmenampilkan data/informasi, turbo Cmenyediakan sejumlah
fungsi.Beberapadiantaranyaadalahberupaprintf(),puts()danputchar().
IV.1.2.printf()
Fungsi printf()merupakan fungsi yang paling umum di gunakan dalam
menampilkan data. Berbagai jenis data dapat ditampilkan ke layar dengan
memakai fungsi ini. Seperti yang di jelaskan pada bab II, bentuk umum
pernyataanprintf():
printf(string kontrol,argumen1, argumen2,....);
String kontrol dapat berupa keterangan yang akan di tampilkan pada layar
beserta penentu format (seperti %d, %f). Penentu format dipakai untuk
memberi tahu kompilermengenai jenis data yang akan ditampilkan.Argumen
sesudah string kontrol (argumen1, argumen2,...) adalah data yang akan di
tampilkanke layar.Argumen inidapat berupavariabel,konstantadanbahkan
ungkapan.
Misal:
-
2
printf(%d, 20); /*argumenberupakonstanta*/ printf(%d, a); /*argumenberupavariabel*/ printf(%d, a+20); /*argumenberupaungkapan*/
Penentuformatuntukdatastringataukarakter:
Untukmenampilkandatabilangan,penentuformatyangdapatdipakaiberupa:
%c untukmenanpilkansebuahkarakter%suntukmenanpilkansebuahstring
%u untuk menampilkan data bilangan tak bertanda (unsigned) dalam bentuk desimal
%d untuk menampilkan bilangan integer bertanda (signed) dalam %i bentuk desimal %o untuk menampilkan bilangan bulat tak bertanda dalam bentuk
oktal %x untuk menampilkan bilangan bulat tak bertanda dalam bentuk %x heksadesimal (%x -- > notasi yang dipakai : a,b,c,d,e dan f %x -- > notasi yang dipakai : A,B,C,D,E dan F %f untuk menampilkan bilangan real dalam notasi : dddd.dddddd %e untuk menampilkan bilangan real %e dalam notasi eksponensial %g untuk menampilkan bilangan real %G dalam bentuk notasi seperti %f, %E atau %f tergantung oleh
kepresisian data (Digit 0 yang tak berarti tak akan ditampilkan) l merupakan awalan yang di gunakan untuk %d, %u,%x,%x,%o
untuk menyatakan long int (misal %ld). Jika di terapkan bersama %e, %E, %f, %F, %g atau %G akan menyatakan double
L merupakan awalan yang di gunakan untuk %f, %e,%E,%g, dan
%G untuk menyatakan long double h merupakan awalan yang di gunakan untuk %d, %i, %o, %u, %x
atau %X untuk menyatakan short int.
-
3
Seandainyatanda%diinginkanuntukdirtampilkanpadalayar,makapenulisanya
harusberupaduabuahtanda%.
Contoh:
printf (komisi 10%%); %ditulisduakali
Untukmenampilkantulisan:
Komisi10%
Contoh program berikut memberikan gambaran penggunaan %x, %o dan %u
untuk menampilkan bilangan dalam bentuk heksadesimal, oktal dan desimal.
Program ini jugamemperlihatkanbahwabilapenentu format yangdigunaklan
adalah%u.Makabilanganakandinyatakandalamsimaltakbertanda.
/**//*fileprogramFORMXOU.C/**/#includemain(){unsignedintsegmen_grafik=0x8800;printf(nilaisegmengrafik(oktal) :%o\n,segmen_grafik);printf(nilaisegmengrafik(desimal) :%u\n,segmen_grafik);printf(nilaisegmengrafik(heksadesimal) :%x\n,segmen_grafik);}
Contoheksekusi:
A>formxou
nilaisegmengrafik(oktal) :104000
nilaisegmengrafik(desimal) :34816
nilaisegmengrafik(heksadesimal) :8800
-
4
Perbedaanpenentuformat%g,%edan%fditunjukkanpadacontohberikut.
/**//*fileprogramFORMXOU.C/*perbedaanformat%e,%fdan%g/**/#includemain(){ floatx=251000.0; printf(Formate>%e\n,x); printf(Formatf>%f\n,x); printf(Formatg>%g\n,x);}Contoheksekusi:A>FORMEFGFormate>2.510000e+05Formatf>251000.000000Formatg>251000
Program42
Tampak bahwa penentu format %e menampilkan bilangan dalam bentuk
eksponensial. Jikapenentu formatyangdigunakanberupa%f,bagianpecahan
secara bawaan ditampilkan dalam bentuk 6 digit. Sedangkan kalau penentu
formatberupa%g,makadigityangtakberartitakakanditampilkan.
Untukmenentukanpanjangmedanyangdisediakanbagitampilandata,sesudah
tanda % dalam penentu format dapat disisipi dengan bilangan bulat yang
menyatakanpanjangmedan.Misalpada
-
5
printf(Abad%4d,20);
%4d menyatakan medan untuk penampilan bilangan 20 adalah sepanjang 4
karakter.
printf(Abad%4d,20);
Gambar41
Gambar 41 sekaligus menunjukkan bahwa nilai 20 ditampilkan rata kanan
terhadapmedanyangdisediakan.
/**//*fileprogramMEDNINT.C/*Untikmelihatefekpenetuanpanjangmedan/*padabilanganbulat/**/#includemain(){ intnilai=20; printf(Abad%d\n,nilai); printf(Abad%3d\n,nilai); printf(Abad%4d\n,nilai);
printf(Abad%5d\n,nilai);}Contoheksekusi:A>MEDNINTAbad20Abad20Abad20Abad20
A b a d 2 0
-
6
Untuknilaireal,spesifikasimedanberupa
m.n
Dengan:m=menyatakanpanjangmedan
n=jumlahdigitpecahan
contoh,padapernyataan
printf(harga:Rp%8.2f\n,500.0)
%8.2f menyatakan bahwa panjang medan dari bilangan real yang akan
ditampilkanadalah8karakterdenganjumlahdigitpecahan2buah.
Gamgar42
Denganmenentukanpanjangmedanpadapenentuformat,informasiberbentuk
sebagaiberikutdapatdiperolehdenganmudah.
printf(harga:Rp%8.2f\n,500.0)
-
7
500.000
25000.00
1000.00
/**//*fileprogram:MDNREAL.C/*contohpenetuanpanjangmedan/*untuktipereal/**/#includemain(){ printf(%8.2f\n,500.0);
printf(%8.2f\n,25000.0);printf(%8.2f\n,1000.0);
}
Program44
Kalau hanya jumlah digit pecahan yang perlu ditentukan, panjang medan tak
perludisertakan.Misal:
printf(%.2f\n,600.0):
printf(%.2f\n,7500.25):
Hasil
600.00
7500.25
Penentu formatyangmengandungpanjangmedan secarabawaanmempunyai
sifat yakni data akan ditampilkan rata kanan terhadap panjang medan yang
diberikan. Hal ini berlaku bagi semua jenis data, termasuk string.Untuk data
-
8
stringsendiribiasanyadikehendakiagar tampilkan ratakiri.Untukmenyatakan
agardataditampilkanratakiri,sesudahtanda%padapenentuformat%sperlu
disisipidengantanda(minus).Contoh:
%24s
Menyatakanbahwastringditampilkandalammedandenganpanjang24karakter
dandiaturratakiri.Contohpenerapanyamisalnyauntukmembuattabelsebagai
berikkut:
|RD21|RadioSANWA2band|Rp24000| |TV111|TelevisiITO14inch/bw|Rp150000| |TR70|TaperecorderSONO21x|Rp176500| Ratakiri RataKiri RataKanan
/**//*fileprogram:TABELBRG.C *//*contohmembuattableyangberisidatastringdan*//*bilangan.Stringdiaturratakiridanbilangan *//*diaturratakanan *//**/#includemain(){printf("|%6s|%24s|Rp%6ld|\n","RD21","RadioSANWA2band",24000L);printf("|%6s|%24s|Rp%6ld|\n","TV111","TelevisiITO14inch/bw",150000L);printf("|%6s|%24s|Rp%6ld|\n","TR70","TaperecorderSONO21x",176500L);}
-
9
Program45
Kalautandatidakdisertakanpada%6sdan%24s,hasilnyaakanberupa:
|RD21|RadioSANWA2band|Rp24000||TV111|TelevisiITO14inch/bw|Rp150000||TR70|TaperecorderSONO21x|Rp176500|_____________________________________________RataKanan RataKanan RataKanan
Catatan:*%6ldmeupakanpenentuformatuntuklongint
*akhiranLpada24000menyatakankonstantalongint
IV.1.2.puts()
Fungsiputs ( )digunakankhususuntukmenanpilkandata stringke layar.Sifat
funngsi ini, string yang ditampilkan secara otomatis akan diakhiri dengan \n
(pindahbaris).Contohpemakaian funsiputs ( )ditunjukkanpadaprogram46.
programdigunakanuntukmenampilkantulisan
Kucobadankucoba
Kiniakumulaimemahaminya
#includemain(){
puts(Kucobadankucoba); puts(Kiniakumulaimemahaminya); }
-
10
program46.
Programserupadiatasyangmenggunakanprintf()
#includemain(){
printf(Kucobadankucoba\n); printf(Kiniakumulaimemahaminya\n); }
Program47
Dibandingkan dengan printf( ), puts( ) mempunyai kode mesin yang lebih
pendek. Sebagai perbandingan berdasarkan pengujian, program 46 dalam
bentuk. EXE mempunyai ukuran 7654 byte, sedangkan program 47 dalam
bentuk.EXEberukuran9545byte.
IV.1.3.putchar()
Fungsi putchar ( ) digunakan khusus untuk menampilkan sebuah karekter ke
layar.Penampilankaraktertidakdiakhiridenganperpindahanbaris.
Contoh:
putchar(A);
Menghasilkankeluaranyangsamadengan
printf (%c,A);
-
11
Contohberikutberupaprogramyangdigunakanuntukmenampilkandua
buahkarakterdenganmenggunakanduabuahputchar().
/**//*fileprogram:PUTCHAR.C *//*contohmemakaiputchar *//*untukmenampilkandatakarakter *//**/#includemain(){ putchar(A); putchar(K);}Contoheksekusi:A>PUTCHARAK
Program48
IV.2.Memasukkandatadarikeyboard
Data dapat dimasukkan lewat keyboad saat eksekusi berlangsung. Untuk
keperluanini,turboCmenyediakansejumlahfungsi,diantaranyaadalahscanf(),
getch()dangetche().
IV.2.1.scanf()
Fungsi scanf( ) merupakan fungsi yang dapat digunakan untuk memasukkan
berbagai jenis data. Misalnya saja, untuk memasukkan data jarijari lingkaran
padaprogram320,penulisan
-
12
radius=20;
Dapatdigantimenjadi:
scanf(%f,&radius);
Denganpemodifikasianini,programdapatdigunakanuntukmenghitungluasdan
keliling lingkaranuntukberbagainilai jarijari tanpaharusmengubahprogram,
melaikan cukup dengan menjalankan program dan mengisikan data melalui
keyboard.
Untuk memperjelas bagi pemakai program bahwa data jarijari harus
dimasukkan, sebelumpernyataan scanf ( )perludisisipkan sebuahpernyataan
misalnya
printf(masukkandatajarijarilingkaran:)
Programselengkapnyasebagaiberikut:
/**/
/*fileprogram:PUTCHAR.C *//*contohmemakaiPutchar *//*untukmenampilkandatakarakter *//**/#include#definePI3.141593main(){ floatradius,keliling,luas; printf(masukkandatajarijarilingkaran:); scanf(%f,&radius);
-
13
keliling=2*PI*radius; luas=0.5*PI*radius*radius;
printf(Datalingkaran:\n);printf(Jarijari=%f:\n,radius);printf(Keliling=%f:\n,keliling);printf(Luas=%f:\n,luas);
}Contoheksekusi:
A> LINGKAR3Masukkandatajarijarilingkaran:5Datalingkaran:Jarijari=5.000000Keliling=31.415930Luas=39.269913
A> LINGKAR3Masukkandatajarijariliingkaran:7.5Datalingkaran:Jarijari=7.500000Keliling=47.123894Luas=88.353700
Program49
Bentuk scanf ( ) sesungguhnya menyerupai fungsi printf ( ). Fungsi ini juga
melibatkanpenentu format yangpadadasarnya samadengan yangdigunakan
padaprintf().Secaraumumbentukscanf()adalahsebagaiberikut:
scanf(stringkontrol,daftarargumen);
Denganstringkontroldapatberupa:
penentuformat karakterspasiputih(whitespace) karakterbukanspasiputih
-
14
penentu format menyaatakan jenis data yang akan dibaca. Pada scanf ( )
penentuformatdapatberupasalahsatudiantarayangadapadadaftarberikut:
Tabel41.penentuformatpadascanf()
KodeArti
%cmembacasebuahkarakter
%smembacasebuahstring
%iatau%dmembacasebuahintegerdesimal
%eatau%fmembacasebuahbilanganreal
(biasdalambentukeksponensial)
%omembacasebuahintegeroktal
%xmembacasebuahintegerheksadesimal
%umembacasebuahintegertakbertanda
lAwalanuntukmebacadatalongint(missal:%ld)atau
untukmembacadatadouble(missal:%lf)
LAwalanuntukmebacadatalongdouble(missal:%Lf)
hAwalanuntukmembacadatashortint
Pada bentuk scanf(), daftar argument dapat berupa satu atau beberapa
argumentdanharuslahberupaalamat.Misalnyahendakmembacadatabilangan
realdanditempatkankevariabelradius,makayangditulisdalamscanf()adalah
alamat dari radius. Untuk menyatakan suatu alamat dari variabel, didepan
variabel,di depan variabel dapat di tambahkan data & ( tanda & dinamakan
sebagaioperatoralamat).Sebagaicontoh,padaprogram48
&radius
-
15
Menyatakanalamatdariradius.Dalambentukyanglengkap:
Scanf(%f,&radius);
Berarti (bagikompute):bacalahsebuahbilanganreal (%f )dan tempatkanke
alamatdariradius(&radius).
Berdasarkanbentukumumscanf(),fungsi inidapatdipakaiuntukmemasukkan
beberapadata.Sebagaicontohdiperlihatkanpadaprogram410.padaprogram
inidatamengenaikarakterdanjumlahnyadimasukkanmelaluipernyataan
Scanf(%c%d,&karakter,&jumlah);
Sebuahspasisebagaipemisahdata
Tampakdiantarapenentu format%cdan%ddiberispasi.Spasi inimenyatakan
pembatassaatpemasukandata,sebagaicontoh:
A20
Dapatberupabeberapaspasi
Padapengisiandatasepetiini,makakarekter,akanterisidenganAdanjumlah
bernilai20.kalaumisalnyadimasukkan:
A20
Hasilnyasamasajakalaudiberispasi.Mengapahalinibisaterjadi?sebabstring
kontrol
-
16
%c%dmenyatakanpadakomputerbacalahsebuahkarakter,kemudiankalau
ada spasi (atau tepatnya sebarang spasiputih) abaikan saja beberapapun
banyaknya,danberikutnyabacalahsebuahbilanganbulat.
/**//*fileprogram:MASUKAN.C *//*contohpemasukkandatahurufdanbilanga*//*dengansatuperintahscanf()*//**/#includemain(){ charhuruf; intjumlah; puts(masukkansebuahhurufdiikutidengannilaijumlahnya!); scanf(%c%d,&huruf,&jumlah); printf(jumlahdari%cadalah%dbuah\n,huruf,jumlah);}Contoheksekusi:A>MASUKANMasukansebuahhurufdiikutidengannilaijumlahnya!A20JumlahdariAadalah20buahA>MASUKANMasukansebuahhurufdiikutidengannilaijumlahnya!
A20
JumlahdariAadalah20buah
Program410
Pada uraian fungsi scanf ( ) di depan terdapat istilah spasiputih. Yang
dimaksudkanspasiputihdapatberupaspasi,tabatauenter (return).Jadikalau
-
17
dalamstringkontrol,karakterspasidigunakansebagaipemisahantarapenentu
format,maka dalam pemasukan data sebagai pemisahnyadapat berupa salah
satudiantarayangtergolongsebagaikarakterspasiputih.Sebagaicontoh:
1. menggunakanENTER
A>MASUKAN
Masukkansebuahhurufdiikutidengannilaijumlahnya!
Aenter
20enter
JumlahdariAadalah20buah
2. meggunakanTAB
A>MASUKAN
Masukkansebuahhurufdiikutidengannilaijumlahnya!
Atab20
JumlahdariAadalah20buah
Pada Program 410, beberapa karakter spasi bisa digunakan sebagai
pemisahantaradatakarakterdanbilangan,padasaatpemasukandata.Sebab
bagidatabilangan,berapapun jumlahspasiyangada didepannya tidak
akanjadimasalah.Spasiakantetapdiabaikan.
Kalaumisalnyaditulis
scanf("%d%c",&jumlah,&karakter);
pernyataan in i berart i (bagi komputer) "bacalah sebuah bilangan
bulat, kemudian kalau ada spasiputih abaikan saja dan selanjutnya
baca sebuah karakter". Dengan cara ini , karakter tidak dapat diisi
dengan spasi L Dengan demikian pemasukandata
-
18
20A atau20A atau
90tabA
akanmembuatjumlahberisi20dankarakterberisi'A'.
Di depan telah dikatakan bahwa string kontrol dapat mengandung
karakter bukan spasiputih. Karakter semacam. ini bisa dipakai sebagai
pembatas dalam pemasukan data. Sebagai contoh diinginkan pembatas
berupatandakoma.Penulisanpadascanf():
scanf ( %c ,%d , &karakter , &jumlah) ;
sebuahtandakoma
Padapernyataanini,datakarakterdanjumlahnyaharusdipisahkan
dengankoma.Misalnya:
A,20
tandakomasebagaipemisahdata
IV.2.2.getch()dangetche()
Fungsi getch() dipakai untuk membaca sebuah karakter, dengan sifat
karakter yang dimasukkan tak perlu diakhiri denganENTER.Disamping
itu,karakteryangdimasukkantakakan ditampilkan pada, layar.
Contohpemakaian:
-
19
/**//*Fileproqram:GETCH.C*//*Contohpenggunaangetch() *//*untukmembacasebuahkarakter*/#include#includemain(){
charkarakter;printf("masukkansebuahkarakter.");karakter=getch();printf("\nAndamemasukkankarakter%c",karakter);
}
ContohEksekusi:A>GETCHMasukkansebuahkarakterAndamemasukkankarakterAProgram411
Padapernyataan
karakter=getch();
j i ka ada tombol yang di tekan , maka has i l fungs i akan diberikan
kevariabelkarakter.Kalaumisalnya yang ditekanadalahtombolA,maka
selanjutnyaprogramakanmenampilkan
keteranganberupa
AndamemasukkankarakterA
Selain getch() terdapat pula fungsi bernama getche(). Kegunaannya sama,
dengan getch(). Perbedaannya, karakter yangdimasukkan akan ditampilkan
-
20
padalayar.HalinibisadilihatmelaluiProgram412.
/**//*Fileprogram:GETCHE.C*//*Contohpenggunaangetche()*//*untukmembacasebuahkarakter*//**/#include#includemain(){
charkarakter;printf(Masukkansebuahkarakter.);karakter=getche();printf(\nAndamemasukkankarakter%c,karakter);
}ContohEksekusi:A>GETCHEMasukkansebuahkarakter.AAndamemasukkankarakterA
Program412
Catatan: Programyangmenggunakanprintf(),putchar(),
scanf()danputs()mengandungbarisyangberisi
#include
Sedangkanprogramyangmetibatkangetche()atau
getch()mengandungbarisyangberisi
#include
Latihan41
-
21
Apahasildariprogramberikut:
#include
main(){puts(Dimanaadakemauan);printf(Disituadajalan);putchar(_);}
Latihan42
Buatlah programuntukmenghitung luas dankelilingpersegipanjang.
Rumusyangdigunakan:
Luas=panjangxlebarKeliling=2(panjang+lebar)
Data panjang dan lebardimasukkanmelalui keyboardsaatprogram
dieksekusi.