Upload
ngongoc
View
226
Download
2
Embed Size (px)
Citation preview
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 6
Bab. 2
Input dan Output
2.1 Tujuan Instruksional Khusus (TIK)
a. Mahasiswa dapat membedakan konstanta dengan variabel.
b. Mahasiswa dapat menggunakan tipe data (integer, float, character , dan string) yang
sesuai pada sebuah program.
c. Mahasiswa mampu menggunakan kata tercadang printf() untuk mencetak keluaran, dan
scanf() untuk member input pada variabel dengan benar.
d. Mahasiswa mampu menggunakan penentu format sesuai dengan tipe data dari output yang
diinginkan.
e. Mahasiswa mampu menggunakan kata tercadang getch(), dan getche().
f. Mahasiswa dapat menambahkan keterangan pada program.
2.2 Pendahuluan
Input dan Output memegang peranan yang cukup penting dalam suatu program, karena bagian
dari program inilah yang membuka jalur komunikasi dengan manusia. Sebelum menginjak
pada pembahasan Input/Output, kita akan meninjau beberapa hal penting yang berhubungan
erat dengan penggunaan Input/Output itu sendiri, seperti pengertian tentang Konstanta dan
Variabel, serta tipe-tipe data yang dikenal oleh Turbo C .
2.2.1 Konstanta
Konstanta adalah suatu nilai yang sifatnya tetap, misalnya angka ‘21’, ’21’ adalah ‘21’ bukan
‘30’. Jadi ‘21’ mempunyai nilai yang sudah tetap, maka ‘21’ ada lah konstanta. ` lain,
misalkan abjad ‘k’, ‘k’ adalah ‘k’ bukan ‘s’ ataupun ‘x’, jadi ‘k’ juga mempunyai nilai atau
arti yang tetap, maka ‘k’ adalah konstanta juga. Sebagai ilustrasi, kita lihat p=2, ‘p’ disini
bukan lagi merupakan konstanta, karena pada saat ini ‘p’ mewakili angka ‘2’, pada
kesempatan lain bias saja ‘p’ mewakili nilai yang lain pula, misalkan ‘3’ atau ‘100’, jadi ‘p’
telah lepas dari hakekat artinya (‘p’ adalah ‘p’), dalam hal ini ‘p’ bukan lagi konstanta ,
melainka n suatu variable. Secara garis besar konstanta dapat kita bagi atas dua bagian,
bilangan (numerik) dan teks (string).
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 7
Bahasa C membagi konstanta bilangan (numerik) menjadi tiga kelompok, yaitu:
a. Bilangan Bulat (integer)
b. Bilangan Desimal Berpresisi Tunggal (floating point)
Bilangan ini dapat dinyatakan dalam dua tampilan:
• Bentuk Desimal
Contoh: 2.1333
• Bentuk Eksponen
Contoh: 2.1333e2 yang artinya 2.1333 * 102
c. Bilangan Desimal Berpresisi Ganda (double precision).
Pada prinsipnya bilangan ini serupa dangan Floating Point, hanya derajad ketelitian
yang dimiliki lebih tinggi.
Konstanta teks dibedakan dalam dua jenis, yaitu: karakter dan string. Data karakter terdiri
dari sebuah karakter saja, dan ditandai dengan dua tanda kutip tunggal (‘) sebagai
pembatasnya. Karakter dapat berupa abjad, baik huruf besar maupun kecil, angka, ataupun
notasi-notasi lain, seperti ^ % * dan lain- lain. Contoh: ‘A’, ‘k’, ‘2’, ‘*’ dan lain- lain.
Data string merupakan rangkaian dari beberapa karakter dan ditandai dengan tanda kutip
ganda (“) sebagai pembatasnya. Contoh: “Telekomunikasi”, “belajar”, “Semarang”, “50
tahun”, “Jalan Telaga Blok G88 Telepon 024-7612345”, dan lain- lain.
Perlu diperhatikan, bahwa Turbo C benar-benar membedakan antara data karakter dan data
string, jadi janganlah beranggapan bahwa data karakter merupakan data string yang memiliki
sebuah karakter. Jadi ‘J’ tidaklah sama dengan “J”.
2.2.2 Variabel
Variabel dapat kita andaikan seperti sebuah tempat penampung data atau konstanta.
Sedangkan konstanta lebih bersifat sebagai data yang akan mengisi variabel tersebut. Bila
konstanta memiliki arti atau nilai yang selalu tetap, variabel dapat berubah-ubah. Sebuah
variabel yang sama dapat mengandung data yang berbeda pada saat yang berbeda. Bahasa
pemrograman apapun yang anda gunakan, variabel selau memegang peranan yang sangat
besar dalam pembuatan program. Karena itu amatlah penting mempelajari sifat-sifat variabel
dalam setiap bahasa pemrograman. Pemberian nama umumnya dapat dilakukan secara bebas,
namun de mikian tetap ada batasan-batasan tertentu yang tidak boleh dilanggar.
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 8
Beberapa hal penting perlu diperhatikan dalam memberikan nama pada variabel Bahasa C
adalah sebagai berikut:
a. Nama variabel Turbo C hanya boleh terdiri dari abjad, bilangan, dan tanda hubung(_).
Contoh: no1, Gaji_pegawai, Pajak_tahunan.
b. Nama variabel boleh dimulai oleh tanda hubung (_) , atau abjad. Contoh: _gaji_pokok,
_tunj_isteri, Laba_bersih.
c. Nama variabel tidak boleh dimulai oleh angka. Contoh nama variabel yang salah: 2no,
90_tahun, 4nilai_max.
d. Nama variabel tidak boleh menggunakan operator aritmatika (+-/*%). Contoh nama
variabe l yang salah: Nilai+min, Tunj-anak, Nama/pegawai, Alamat*rumah,
Potongan%.
e. Nama variabel tidak boleh menggunakan karakter-karakter khusus sebagai berikut:
;:,#@$^!& dan titik(.). Contoh nama variabel yang salah: Luas:segitiga, Sisi#kubus,
Luas;tanah! , kell@linkaran, gaji$tahunan, tempat&tgl.lahir.
f. Nama variabel tidak boleh mengandung spasi. Contoh nama variabel yang salah: Gaji
bulanan, _kota asal .
g. Jangan menggunakan nama fungsi atau kata-kata lain yang mempunyai arti khusus dalam
Turbo C (reversed words). Contoh nama variabel yang salah: main, printf, float, char.
h. Nama variabel boleh terdiri dari reversed words yang digabungkan dengan kata lain.
Contoh nama variabel yang benar: char_pertama, fungsi_printf, data_float,
i. Turbo C membedakan antara huruf besar dan huruf kecil. Contoh: gaji, GAJI, dan Gaji,
merupakan tiga nama variabel yang berbeda.
Sebuah anjuran: untuk mencegah kesalahan semacam ini sebaiknya semua nama variabel dituliskan dalam huruf kecil, kecuali bila anda dangan sengaja memang ingin menggunakan dua nama variabel yang sama untuk variabel yang berbeda, maka salah satu bias dituliskan dengan huruf besar.
2.2.3 Jenis-jenis Variabel
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 9
Seperti halnya konstanta, variabel juga terbagi menjadi dua kelompok besar, yaitu variabel
numerik dan variabel teks. Variabel numerik digolongkan atas:
a. Bilangan bulat atau integer
Integer ini mampu menampung bilangan bulat yang bekisar antara -32,768 hingga
+32,767.
b. Bilangan desimal berpresisi tunggal atau floating point
Dalam bentuk bilangan berpangkat floating point dapat digunakan untuk menampung data
dari 10-38 hingga 1038, sedangkan dalam bentuk decimal jenis variabel ini umumnya dapat
menampung hingga 6 desimal (6 angka di belakang koma). Contoh: nilai_max=2.3e-20,
Std_dev=100.234567 (6 digit di belakang titik decimal).
c. Bilangan desimal berpresisi ganda atau double precision
Bila data numeric yang akan diolah melebihi kapasitas yang dimiliki oleh floating point,
anda dapat menggunakan double precision ini sebagai alternative. Dalam bentuk bilangan
berpangkat, double precision dapat mengolah angka-angka dengan ketelitian yang
berkisar antara 10-308 hingga 10+308.Sedangkan dalam bentuk bilangan decimal mampu
menampung hingga 15 digit. Jadi double precision banyak digunakan dalam hal
pengolahan data numeric yang besar atau bila diperlukan tingkat ketelitian yang tinggi.
Contoh: teliti=1234.5678901234, A=1.34567e-100
Sedangkan variabel teks dibedakan atas:
a. Karakter (untuk karakter tunggal)
Selain dapat digunakan untuk menampung sebuah karakter, variabel ini dapat pula
dikonversikan dalam bentuk bilangan (ASCII code), bilangan hasil konversi data ini
dinyatakan dengan bilangan bulat yang berkisar dari -128 hingga +127.
b. String (untuk rangkaian karakter)
String pada prinsipnya merupakan rangkaian karakter yang diakhiri dengan karakter null
(‘0’). Variabel string tidak akan dibahas disini karena Turbo C menganggap string sebagai
array (jajaran) dari character.
Ditinjau dari nama variabel, sama sekali tidak ada perbedaan antara variabel numerik dan
variabel teks. Perbedaan dari kedua jenis variabel ini hanya dapat kita pantau pada waktu
variabel-variabel tersebut di deklarasikan.
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 10
2.2.4 Deklarasi Variabel
Sebelum sebuah variabel digunakan, variabel tersebut harus ‘diperkenalkan’ lebih dahulu
kepada Turbo C. Proses memperkenalkan variabel kepada Turbo C ini dikenal dengan istilah
Deklarasi Variabel. Deklarasi variabel ini sifatnya mutlak, artinya tanpa adanya deklarasi
variabel, Turbo C tidak akan menerima variabel tersebut. Perkenalan atau deklarasi variabel
meliput i tipe variabel, seperti integer atau character, dan nama variabel itu sendiri. Contoh:
int gaji.
Urutan deklarasi variabel ini baku, yaitu tipe variabel dulu kemudian disusul dengan nama
variabel (lihat contoh di atas). Daftar tipe variabel dapat anda lihat dalam table 2.1. Contoh:
kita akan mendeklarasikan variabel jumlah sebagai integer, variabel nilai_max sebagai
floating point, dan variabel gaji sebagai double precision.
int jumlah; float nilai_max; double gaji; Table 2.1. Tipe-tipe variabel serta simbol yang digunakan.
TIPE VARIABEL SIMBOL DEKLARASI Integer Floating point Double precision Karakter
int float double char
Beberapa variabel yang bertipe sama dapat dideklarasikan sekaligus, dengan memberikan
koma (,) sebagai pemisah variabel-variabel tadi. Contoh: Kita akan mendeklarasikan variabel-
variabel bil dan no sebagai integer, variabel-variabe l harga_jual, harga_be li, serta keuntungan
sebagai float, dan variabel-variabel nilai_max, nilai_min sebagai double.
int bil,no;
float harga_beli,harga_jual,keuntungan;
double nilai_max,nilai_min;
Variabel dengan nama yang sama TIDAK BOLEH dideklarasikan ulang. Contoh: Kita
mendeklarasikan variabel niali dua kali, pertama sebagai integer kemudian sebagai float pada
program yang sama.
int nilai;
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 11
float nilai;
Program ini akan memberikan pesan kesalahan redeclaration, yang berarti adanya deklarasi
ulang atas variabel yanga sama.
1.2.4 Tipe-tipe Variabel Lain
Selain dari jenis-jenis vaariabel yang telah diperkenalkan tadi ada variabel-variabel lain yang
merupakan pengembangan dari variabel-variabel tersebut. Jenis-jenis variabel tersebut antara
lain:
a. Unsigned
Varibel ini digunakan bila anda hanya ingin bekerja dengan data yang bernilai positif saja.
Misalnya unsigned integer menerima data dari 0 hingga 65.535 (tidak lagi dari -32.768
hingga 32.676). data karakter yang bila dikonversikan dalam bentuk bilangan akan
mempunyai nilai dari -128 hingga 127, dapat pula dinyatakan dalam bentuk unsigned
character yang kemudian akan memiliki nila dari 0 hingga 255. Contoh: Kita akan
mendeklarasikan varibel pencacah sebagai unsigned integer.
Unsigned int pencacah;
Variabel inisial akan dideklarasikan sebagai unsigned character.
Unsigned char inisial;
b. Short
Variabel ini kadangakala disamakan dengan integer, kadangakala dibedakan, tergantung
pada system dan jenis computer yang digunakan.Misalnya IBM system 370, variabel short
dibuat menjadi separuh kapasitas integer.Namun dalam Turbo C kedua variabel initidak
dibedakan.
c. Long
variabel ini digunakan untuk menaikan kapasitas dari variabel yang bersangkutan.
Misalnya long integer memiliki jangkauan bilangan bulat dari -2.147.483.648 hingga
2.147.483.647 (bandingkan dengan integer biasa yang hanya memiliki jangkauan dari -
32.768 hingga 32.767). contoh: kita akan mendeklarasikan variabel harga_rumah sebagai
long integer.
long int harga_rumah;
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 12
d. Gabungan dari unsigned dan long
kita dapat pula menggabungkan kedua jenis variabel tersebut, misalnya unsigned long
integer yang kini jangkauan dari 0 hingga 4.294.967.295. contoh: kita akan
mendeklarasikan variabel angg_belanja sebagai unsigned long integer.
unsigned long int_belanja;
2.2.5 Inisialisasi Suatu Variabel
Inisialisasi adalah proses pemberian nilai awal terhadap suatu variabel. Pemberian nilai
terhadap suatu variabel ini dapat dinyatakan dengan penggunaan tanda sama dengan (=).
Contoh: Variabel harga_satuan dan jumlah yang bertipe float terlebih dahulu akan diberi nilai
sebesar 12.50 dan 40 sebelum digunakan untuk menghitung harga_total yang juga bertipe
float.
/* inisialisasi suatu variabel */ main() { /* deklarasi variabel */ float harga_satuan,jumlah,harga_total; /*membersihkan layar*/ clrscr(); /*inisialisasi*/ Harga_satuan=12.50; Jumlah=40; /*menghitung harga total*/ Harga_total=harga_satuan*jumlah; /*mencetak harga total*/ printf(“harga total : %f”, harga_total); getche(); }
Dari contoh program di atas anda melihat adanya notasi (/*…*/) yang berarti komentar,
pengertian serta contoh lebih lanjut tentang komentar ini akan dijelaskan pada topik tersendiri
di akhir Bab ini. Demikian juga fungsi printf() beserta argumennya akan di bahas pada
bagian lain dalam Bab ini. Dalam program tersebut anda jumpai pula fungsi clrscr() yang
digunakan untuk menghapus atau membersihkan layar. Fungsi ini harus dituliskan setelah
deklarasi variabel. Inisialisasi dapat juga dilakukan bersama-sama dengan deklarasi, sebagai
ilustrasi lihat contoh berikut:
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 13
/*inisialisasi bersama-sama dengan deklarasi*/ main() { /*inisialisasi bersama dengan deklarasi*/ float harga_satuan=12.50, jumlah=40, harga_total; clrscr(); /*menghitung harga total*/ Harga_total=harga_satuan*jumlah; /*mencetak harga total*/ printf(“harga total : %f”, harga_total); } Contoh program di atas ini memiliki arti yang sama seperti contoh yang telah diberikan
sebelumnya.
2.2.6 Tipe-tipe Data Serta Memori Yang Digunakan
Tipe variabel yang akan dipakai dalam suatu program sangat erat kaitannya dengan
penggunaan memori pada komputer anda. Seringkali tipe variabel yang memiliki ketelitian
tinggi mempunyai konsekuensi akan perlunya memori yang lebih besar. Oleh karena itu
efisiensi suatu program antara lain juga dipengaruhi atas tepat atau tidaknya pemilihan tipe
variabel yang akan anda gunakan. Janganlah anda sampai terpancing untuk menggunakan
variabel dengan ketelitian yang berlebihan sehingga akibatnya program ataupun data anda
membutuhkan memori yang lebih besar. Pilihlah tipe variabe l sesuai dengan keperluan,
dengan demikian anda tidak menghamburkan memori untuk hal-hal yang tidak perlu. Jumlah
memori yang dialokasikan untuk variabel-variabel tersebut tidak ditentukan oleh bahasa C itu
sendiri, melainkan sangat tergantung pada sistem komputer serta kompiler yang digunakan.
Berikut ini diberikan jumlah memori yang diperlukan untuk berbagai jenis variabel dalam
Turbo C (lihat tabel 2.2).
Tabe l 2.2. Hubungan antara tipe data dengan memori yang diperlukan TYPE DATA Jumlah Memory ( BYTES) Integer Shor t Integer Long Integer Floating point Double precision Unsigned Integer Unsigned long Integer Character String
2 2 (untuk Turbo C) 4 4 8 2 4 1 Sesuai dengan jumlah karakter +1 (untuk karakter ‘null’
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 14
2.2.7 Output program
Agar hasil proses yang telah dilakukan oleh computer dapat dibaca oleh pemakai, hasil
tersebut harus dapat ditampilkan dalam media output (dapat printer atau monitor atau media
yang lain). Untuk menampilkan hasil proses tadi, tentunya diperlukan adanya perintah-
perintah atau fungsi- fungsi yang mengatur output itu. Dalam bahasa C, salah satu fungsi
output yang paling umum adalah printf(). Fungsi printf() dapat digunakan untuk mencetak
data baik yang bertipe numeric atau teks, baik konstanta ataupun variabel. Contoh di bawah
ini menunjukan pemakaian fungsi printf() dalam bentuk yang paling sederhana.
main() { printf(“saya belajar bahasa pemrograman C”);
Fungsi argumen }
Keluaran dari program adalah sebagai berikut :
Saya belajar bahasa pemrograman C
Contoh program berikut ini digunakan untuk mencetak konstanta string dengan konstanta atau
variabel secara bersamaan.
main() koma pemisah { printf(“Jumlah ikan Koi dikolam sebanyak %d” , 14); }
Konstanta String konstanta integer Penentu format
Keluaran dari program tersebut adalah
Jumlah ikan Koi dikolam sebanyak 14 Di da lam contoh program diatas penentu format yang sebenarnya berfungsi untuk
menunjukkan dimana data lain (tidak hanya terbatas pada konstanta saja) akan diletakkan bila
dicetak menjadi satu kesatuan dengan konstanta string di depannya. Program dibawah ini
akan memperjelas penggunaan penentu format.
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 15
main() { printf (“%c merupakan abjad yang ke %d”, ‘z’,26); } Hasil output program ini adalah:
z merupakan abjad yang ke 26 Penggunaan penentu format berkaitan erat dengan tipe-tipe data yang akan dicetak. Artinya
setiap tipe data memiliki penentu format-nya masing-masing. Pada tabel 2.3, diberikan
penentu format untuk setiap tipe data yang telah anda kenal.
Tabe l 2.3 penentu format untuk fungsi printf().
TIPE DATA PENENTU FORMAT UNTUK printf() Integer Floating Point Bentuk Desimal Bentuk Berpangkat Yang lebih pendek antara decimal dan berpangkat Double Precision Character String Unsigned Integer Long Integer Long Unsigned Integer Unsigned hexadecimal Integer Unsigned octal integer
%d
%f %e
%g %If %c %s %u %Id %Iu
%x %o
Satu hal yang sangat penting dipe rhatikan ada lah urutan dari letak penentu format harus
sesuai dengan urutan da ta yang akan mengisi penentu format tersebut.
printf(“%c merupakan abjad yang ke %d” , ‘b’ , 2 ); Penentu format untuk ‘b’ adalah %c, sedangkan untuk 2 adalah %d. karena %c mendahului
%d, maka ‘b’ harus diletakkan didepan 2. Bila urutan data yang akan diambil tidak sesuai
dengan urutan penentu formatnya maka akan terjadi kesalahan program.
printf(“%c merupakan abjad yang ke %d ,2, ‘b’ );
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 16
Bila anda mencetak data yang bertipe float, seringkali tampilan yang diberikan tampak kurang
manis, misalnya decimal yang dicetak terlalu banyak. Sebagai ilustrasi kita lihat contoh
berikut ini:
main() { float bil=2.5,nomor=30,756; clrscr(); printf(“bilangan= %f \n”,bil); printf(“nomor =%f”,nomor); } Bila program ini Anda jalankan, output yang dihasilkan akan sebagai berikut: bilangan = 2.500000 nomor = 30.756001 Angka desimal yang diberikan sebenarnya dapat diatur, demilkian juga dengan panjang data
(panjang field-nya ). Cara mengatur lebar field dan jumlah desimal yang akan dicetak dengan
format tambahan %f seperti berikut :
%a.bf Lebar field jumlah decimal
Dimana a dan b berupa bilangan bulat. Contoh dari format tersebut dapat dilihat pada contoh
berikut ini :
main() {
float bil=0.5 , nomor=30.756; clrscr(); printf(“bilangan = %10.2f \n”,bil ); printf(“nomor” = %10.2f”,nomor);
}
Data tersebuat akan dicetakkan dengan format sebagai berikut: bilangan =
jumlah decimal = 2 Nomor lebar field = 10
. 5 0
3 0 . 7 6
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 17
Bila jumlah desimal yang ada lebih panjang dari yang akan dicetak, maka desimal tersebut
akn dibulatkan ke angka terdekat, dapat dibulatkan ke atas atau ke bawah. Pengaturan lebar
field juga dapat diabaikan, dengan pengertian bahwa kita tidak ambil pusing berapapun
jumlah angka didepan koma, di sini yang kita perhatikan hanya jumlah angka di belakang
komanya saja. Untuk keadaan yang demikian maka lebar field dapat dibuang dari format
tambahan tadi. Sebagai Ilustrasi, dapat dilihat pada contoh berikut ini:
main() { float bil=2.5 , nomor=30.756; clrscr(); printf(“bilangan = %2.f \n”,bil); printf(“nomor = %2f”,nomor); } Output yang dihasilkan akan menjadi: bilangan nomor penentuan lebar field berlaku juga untuk data yang bertipe integer. Berhubung integer tidak
mengandung bilangan pecahan, maka pengaturan jumlah angka di belakang titik decimal
tidak diperlukan. Bentuk penentu lebar field untuk integer adalah:
%ad dimana: a adalah bilangan bulat contoh:
%10d lebar field untuk integer ini adalah 10 Bila lebar field ditentukan, data umumnya dicetak rata kanan. Untuk kebutuhan khusus, kita
dapat juga mencetak data dalam format rata kiri dengan cara menyisipkan tanda minus (-)
pada format tambahan tadi. Sebagai contoh perhatikan program berikut ini:
main() { float bilangan=2.5 , nomor=30.756; printf(“bilangan = %-10.2f \n”,bilangan); printf(“nomor = %-10.2f”,nomor”); } titik ini jangan lupa
2 . 5 0
3 0 . 7 6
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 18
outputnya adalah: bilangan nomor Pada contoh contoh di atas Anda melihat sebuah notasi baru \n. arti notasi ini adalah teks yang
terdapat setelah \n akan dicetak pada baris berikutnya. Untuk memperjelas pengertian notasi
ini akan kita lihat contoh-contoh program berikut ini.
main() {
clrscr(); printf( “BARIS 1” ); printf( “BARIS 2” );
} Outputnya :
BARIS 1 BARIS 2 Perhatikan, meskipun BARIS 1 dan BARIS 2 di berikan oleh dua buah fungsi printf(), namun
hasil output dari kedua program tadi tetap dicetak da lam satu baris. Sekarang k ita lihat contoh
berikutnya:
main() {
clrscr(); printf( “BARIS 1 \n BARIS 2” );
} Program ini akan memberikan output sebagai berikut:
BARIS 1 BARIS 2
Perhatikan setelah tanda \n ditemui, maka teks yang berikutnya akan dicetak dibaris
bawahnya. Contoh lain:
main() {
clrscr(); printf( “BARIS 1 \n ” ); printf( “BARIS 2” );
}
3 0 . 7 6
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 19
Outpunya program :
BARIS 1 BARIS 2
Perhatikan, bahwa antara \n dengan karakter berikutnya tidak perlu dibe ri spa si. main() {
clrscr(); printf( “BARIS 1 ” ); printf( “\nBARIS 2” );
}
Outputnya
BARIS 1 BARIS 2
Karena ada spasi antara \n dengan karakter berikutnya (dalam hal ini ‘B’), maka spasi tersebut
ikut tercetak. Contoh lain:
main() {
clrscr(); printf( “BARIS 1 \n BARIS 2” );
}
Outputnya
BARIS 1 BARIS 2
\n dapat diletakkan dimana saja, bila diletakkan dalam satu baris, maka teks dalam baris
tersebut akan dipenggal dalam dua baris. Contoh lain:
main() {
clrscr(); printf( “BARIS 1 \nBARIS 2” ); printf( “BARIS 3”);
} Keluaran yang dihasilkan
BARIS 1 BARIS 2 BARIS 3
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 20
Contoh lain:
main() {
clrscr(); printf( “BARIS 1\nBARIS 2\nBARIS 3”);
}
Keluaran dari program diatas adalah seperti berikut:
BARIS 1 BARIS 2 BARIS 3
Notasi ‘\n’ ini dikenal dengan nama escape sequence. Selain ‘\n’ masih ada beberapa escape
sequence lain yang pembahasannya dapat diikuti dalam bagian berikut ini.
2.2.8 Escape Sequence
Disebut escape sequence karena notasi ‘\’ dianggap sebagai karakter “escape” (menghindari),
dalam arti bahwa karakter yang terdapat setelah tanda ‘\’ dianggap bukan merupakan teks
biasa. Beberapa escape sequence lainnya dapat anda lihat dalam tabel 2.4.
Tabel 2.4 Escape Sequence
ES CAPE S EQUENCE PENGERTIAN
\b \f \n \r \t \’ \” \\ \xaa \aaa
Backspace Formfeed Baris Baru Carriage Return Tab (default = 8 karakter ) Tanda kutip tuggal (‘) Tanda kutip ganda (“) Backslash Kode ASCII dalam hexadecimal (aa – menunjukkan angka ASCII ybs.) Kode ASCII dalam octal (aa – menunjukkan angka ASCII ybs.)
Sebagai ilustrasi dapat dilihat contoh berikut ini:
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 21
main() { float bil1=13.5 , bil2=45.2, bil3=4.76; float bil4=30.75 , bil5=32.1, bil6=7.5; clrscr(); printf(“%8.2 f \t%8.2f\ t%8.2f” ,bil1,bil2,bil3); printf(“\n%8.2f\t%8.2f\ t%8.2f”,bil4,bil5,bil6); } Dengan keluaran
13.50 45.20 4.76 30.75 32.10 7.50
2.2.9 Mencetak Kode ASCII
Agar keluaran program yang dihasilkan dapat lebih menarik pembuat program dapat
mengunakan karakter-karakter grafis dari kode ASCII. Cara mencetak kode ASCII ini secara
tidak langsung telah ditunjukkan dalam tabel 2.4, karena kode ASCII ini sebenarnya juga
merupakan bagian dari escape sequence. Namun contoh-contoh penggunaannya belum
diberikan dalam topic bahaan tersebut. Disini kita akan melihat beberapa contoh cara
mencetak kode ASCII. Untuk mencetak kode ASCII dalam hexadecimal ini digunakan notasi:
\xaa
Dimana aa merupakan bilangan ASCII dalam hexadecimal. Sebagai contoh untuk mencetak
beep (bel), kode ASCII-nya 07, jadi notasi yang digunakan: \x07.
main() { clrscr(); printf(“Bel berbunyi , setelah teks ini \x07”); } Keluarannya:
Bel berbunyi , setelah teks ini <diikuti oleh bunyi bel>
2.2.10 Input
Kegunaan input tidaklah kalah pentingnya dengan output. Sebagai pengumpan data, input
akan meneruskan data tersebut agar diproses oleh komputer sebelum dikeluarkan oleh output.
Tiga perintah input yang ada dalam program bahasa C adalah scanf(), getche(), dan getch().
a. Fungsi scanf()
Format dari fungsi scanf adalah sebagai berikut:
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 22
scanf(“ penentu format”,&nama_variabel);
Dalam penggunaanya scanf() seringkali dikombinasikan dengan printf() untuk sekedar
memberikan keterangan data apakah yang harus dimasukkan dalam scanf() tersebut, karena
scanf() sendiri tidak dapat digabungkan dengan teks. Selain itu, d i depan nama variabel dalam
scanf() harus digunakan ‘&’. Salah satu kesalahan yang sering dilakukan dalam penggunaan
scanf() adalah lupa memberikan ‘&’ di depan nama variabel, hal ini akan mengakibatkan
proses program menjadi kacau. ‘&’ dikenal sebagai operator alamat (address operator).
/* penggunaan funsi scanf() */
main() {
float bil1 , bil2 , bil3 ; clrscr(); printf(“ Masukkan bilangan pertama :”); scanf(“%f”, &bil1); printf(“ Masukkan bilangan kedua :”); scanf(“%f”, &bil2); bil3=bil1+bil2
printf(“ Total kedua bilangan : %3f”,bil3); getche();
} Sebagai contoh kita akan menjumlahkan dua bilangan 45.5 dengan 30.25, maka output
program diatas akan menjadi:
Masukkan bilangan pertama : 45.5 Masukkan bilangan kedua : 30.25 Total kedua bilangan : 75.750 Dengan adanya fungsi scanf() tidak diperlukan tanda ‘\n’ untuk berpindah baris, karena
scanf(), akan memindahkan teks yang berikutnya ke baris yang baru. Misalkan fungsi printf()
yang mendahului scanf() dihilangkan, maka keterangan ‘Masukkan bilangan pertama :’ dan
‘Masukkan bilangan kedua : ‘tidak akan tampil di layar. Program tidak komunikatif lagi,
karena kita menjadi tidak tahu data apa yang harus dimasukkan. Jadi penggunaan printf()
bersama-sama dengan scanf() aka n membuat program menjadi lebih komunikatif (user-
friendly).
printf(“ Masukkan bilangan Pertama :”); scanf(“%10.2f”, &bil1);
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 23
penentu format yang digunakan dalam scanf() terdapat pada tabel 2.5.
Tabe l 2.5 penentu format untuk fungsi scanf(). TIPE DATA PENENTU FORMAT
UNTUK SCANF() Integer Floating Point Bentuk Desimal Bentuk Berpangkat Double Precision Character String Unsigned Integer Long Integer Long Unsigned Integer Unsigned hexadecimal Integer Unsigned Octal Integer
%d %e atau %f %e atau %f %lf %c %s %u %ld %lu %x %o
Dengan menggunakan funsi scanf(), dimungkinkan untuk memasukkan beberapa data
sekaligus dalam satu baris selama jumlah dan type data yang dimasukkan tadi sesuai dengan
format penentu yang diberikan dalam scanf(). Data yang akan dimasukkan dapat dipisahkan
dengan spasi, tab, atau dengan tanda pemisah lain sepert (,), garis hubung (-) atau titik dua (:)
. pemisah data dalam input yang dimasukkan harus sama dengan pemisah data yang
digunakan dalam scanf(), bila dalam scanf() data dipisahkan dengan spasi, maka data yang
anda inputkan juga harus dipisahkan dengan spasi atau bila sebagai pemisah da lam scanf().
Bila menggunakan koma, maka data yang diinputkan juga harus menggunakan koma sebagai
pemisah.
Contoh: printf(“\nmasukkan tiga bilangan bulat : “); scantf(“%d %d %d “,& bil1,&bil2,&bil3); Dipisahkan dengan spasi Contoh bentuk input yang diberikan: masukkan tiga bilangan bulat : 12 30 7
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 24
dipisahkan oleh spasi contoh lain:
printf(“\nMasukkan tiga bilangan dengan format float,float,inte-ger: “); scantf(“%f,%f,%f” ,&num1,&num2,&num3);
dipisahkan oleh koma cara memasukkan data untuk program ini:
masukkan tiga bilangan float : 12.5,6.5,7 dipisahkan oleh koma b. Fungsi getche ( ) dan getch ( )
Fungsi input getche() memiliki sifat yang sedikit berbeda dari scantf(). Bila dalam scantf()
jumlah karakter data yang diinputkan boleh bebas, dalam getche() hanya sebuah karakter
yang dapat diterima. Bila scantf() membutuhkan tombol RETURN/ENTER untuk
mengakhiri input, getche() tidak membutuhkan RETURN/ENTER, input akan dianggap
selesai begitu data selesai diketikkan satu karakter, dan secara otomatis akan melanjutkan
perintah-perintah berikutnya. Fungsi getche() sebenarnya merupakan singkatan (dalam
bahasa inggris) dari get character and echo yang artinya lebih kurang 'menerima sebuah
karakter kemudian ditampilkan'.
c. Fungsi input lain yang mirip dengan getche( ) adalah getch( ). Satu-satunya perbedaan
antara kedua fungsi ini adalah getche() akan menampilkan karakter yang telah diketikkan
di layar, sedangkan getch( ) hanya akan menyimpan karakter tersebut dalam memori,
tanpa menampilkannya di layar. Data yang diterima melalui getch( ) juga akan
diperlakukan seba gai karak ter. Untuk membandingkan kedua fungsi ini akan kita
gunakan contoh program yang telah digunakan dalam getche( ), dengan menggantikannya
dengan getch( ).
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 25
2.2.11 Mendeklarasikan suatu nilai secara konstan
Bila Anda mengenal Bahasa Pemrograman Pascal dengan cukup baik, di dalam bahasa ini
dapat dijumpai adanya deklarasi terhadap suatu nilai yang sifatnya konstan. Pada Turbo C,
dan bahasa C lain yang mengacu pada standar ANSI yang baru, pendeklarasian terhadap suatu
nilai yang bersifat konstan ini juga dapat ditemui. Cara mendeklarasikan konstanta ini, cukup
dengan menambahkan kata const di depan tipe dan nama variabel. Sebagai contoh, kita akan
mendeklarasikan variable bil yang bertipe float dengan nilai konstanta sebesar 2.50.
const float bil=2.50
Dalam baris program ini nilai variabel bil dilainya selalu tetap, yaitu 2.50. Bila kemudian
ternyata akan dilakukan pengubahan nilai bil, maka pada waktu proses COMPILE dan LINK
akan muncul suatu peringatan yang menyatakan bahwa nilai konstan ini tidak dapat
diubah.
/* mendeklarasikan constant */ main()
{ float bil1,b il2; const float bil=2.50 ;
clrscr(); printf(“”inputkan suatu bilangan : “); scantf(“%f”,&bil1); printf(“”inputkan bilangan lain : “); scantf(“%f”,&bil); bil2=bil1+bil; printf(“jumlah bilangan ini dengan suatu konstanta : %f”,bil2); }
Bila nilai konstanta (bil) akan dirubah dengan menggunakan scantf(). Simpan kembali
program ini kedalam disket kerja Anda, kemudian lakukan sekali lagi proses COMPILE dan
RUN. Perhatikan, ternyata proses ini berjalan dengan lancar, tanpa adanya pesan kesalahan
lagi, coba jalankan program ini:
- Isikan 2 pada ’inputkan suatu bilangan : ‘
- Dan isikan 4.5 pada ‘inputkan bilangan lain : ‘
- Ternyata jumlah yang diperoleh adalah 6.500000
Kesimpulannya: suatu nilai konstan yang telah dideklarasikan sebelumnya, masih dapat
diubah dengan menggunakan scantf().
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 26
2.2.12 Memberikan Komentar Dalam Program
Memberikan komentar-komentar atau keterangan dalam program sering kali akan membantu
pemrogram dalam mempelajari atau mengecek kembali program bila terjadi kesalahan-
kesalahan ataupun di kemudian hari ingin mengembangkan program tersebut. Dalam bahasa
C, komentar diletakkan di antara tanda ‘/*’ dan ‘*/’. Misalkan /* ini sebuah komentar */ .
Komentar dapat dituliskan dalam huruf besar, huruf kecil, ataupun kombinasi huruf dengan
karakter-karakter lain, seperti angka dan sebagainya. Komentar dapat diletakan di awal
maupun di tengah program. Dapat di tuliskan pada baris yang terpisah ataupun pada baris
yang sama dengan perintah-perintah lainnya. Sebagai contoh dapat dilihat pada program
berikut ini:
main() { /* Deklarasi variabel */ float gaji,pajak,bersih; clrscr(); /* Menghapus layar */ gaji=500000; /* gaji = gaji kotor per bulan */ pajak=50000; /* pajak = pajak per bulan */ bersih=gaji-pajak; /* bersih = gaji bersih per bulan*/ /* CETAK GAJI BERSIH PER BULAN */ printf("\nGaji bersih yang diterima: %.2f",bersih); getche(); }
2.3 Peralatan 1. 1 set computer 2. Software bahasa C
2.4 Langkah Kerja
1. Aktifkan software bahasa C, dan lakukanlah setting directories dengan cara pilih
Options pada menu utama software, kemudian pilih Directories pada sub-menu
options.
Gambar 21. Tampilan Utama Kompiler Turbo C
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 27
Isikanlah letak file- file Include, Library, dan Turbo C (biasanya sama dengan letak
folder TC). Isikan pula letak tempat menyimpan file- file program pada Output
directory.
Gambar 22. Pengesetan Directory
2. Buatlah program seperti berikut ini, dan simpan dalam file Coba21.C dengan cara
pilih File dan Save atau F2. Untuk melihat program tersebut benar atau tidak
lakukan Compile dari menu utama dan unt uk menjalankan program lakukan Run.
/* inisialisasi suatu variabel file Coba21.C*/ main() { /* deklarasi variabel */ float harga_satuan, jumlah, total; clrscr(); /*membersihkan layar */ /*inisialisasi*/ Harga_satuan=12.50; Jumlah=40; /*menghitung harga total*/ total=harga_satuan*jumlah; /*mencetak harga total*/ printf(“harga total : %f”, total); getche(); /*menahan layar */ }
3. Buatlah program seperti berikut ini, dan File Save dalam file Coba22.C kemudian
lakukan Compile dan Run.
/* mencetak tipe data karakter dan integer */ main() { clrscr(); printf (“%c merupakan abjad yang ke %d”, ‘z’,26); getche(); }
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 28
4. Buatlah program seperti berikut ini, dan File Save dalam file Coba23.C kemudian
lakukan Compile dan Run.
main() { clrscr(); float bilangan=2.5 , nomor=30.756; pr intf(“bilangan = %-10.2f \n”,bilangan); pr intf(“nomor = %-10.2f”,nomor”); getche(); }
5. Buatlah program seperti berikut ini, dan File Save dalam file Coba24.C kemudian
lakukan Compile dan Run.
/*Menghitung Luas segiempat */ main()
{ float panjang , lebar , luas ; clrscr(); /* Input data – panjang dan lebar */ printf(“panjang segiempat :”); scanf(“%f”, & panjang); printf(“lebar segiempat :”); scanf(“%f”, & lebar); /* Menghitung luas segiempat */ luas=panjang*lebar ; /* Mencetak luas segiempat */ printf(“\nLuas segiempat : %.4f” , luas); /* Mencetak alamt varibel-variabel yang digunakan */ printf(“\nAlamat variabel panjang: %u” ,&panjang); printf(“\nAlamat variabel Lebar : %u” ,&lebar); printf(“\nAlamat variabel Luas : %u” ,&luas); getche(); }
6. Buatlah program seperti berikut ini, dan File Save dalam file Coba25.C kemudian
lakukan Compile dan Run.
/* Penggunaan fungsi getche() */ main() { /* mendeklarasikan variabel getche() */ /* nama variabel boleh sembarang */ /* da lam program ini dipilih x */ char x; clrscr();
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 29
printf("\nSaya mempelajari penggunaan getche()"); /* contoh penggunaan getche() */ printf("\nTekan sembarang tombol"); x=getche(); /*periksa tombol yang Anda tekan */ printf("\nAnda tekan menekan tombo l %c",x); }
7. Buatlah program seperti berikut ini, dan File Save dalam file Coba26.C kemudian
lakukan Compile dan Run.
/* Penggunaan getche() tanpa variabel */ main() { clrscr(); printf("\nSaya mempelajari penggunaan getche()"); /* Contoh penggunaan getche() */ printf("\nTekan sembarang tombol"); getche(); /* periksa tombol yang Anda tekan */ printf("\nAnda telah menekan sebuah tombo l"); }
8. Buatlah program seperti berikut ini, dan File Save dalam file Coba27.C kemudian
lakukan Compile dan Run.
/* Penggunaan fungsi getch() */ main() { /* Mendeklarasikan fungsi getch() */ /* nama variabel boleh sembarang */ /* da lam program ini dipilih x */ char x; clrscr(); printf("\nSaya mempelajari penggunaan getch()"); /* Contoh penggunaan getch() */ printf("\nTekan sembarang tombol"); x=getch(); /* periksa tombol yang Anda tekan */ printf("\nAnda telah menekan sebuah tombo l %c",x); }
9. Buatlah program seperti berikut ini, dan File Save dalam file Coba28.C kemudian
lakukan Compile dan Run.
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 30
/* Penggunaan getche() tanpa variabe l */ main() { clrscr(); printf("\n nSaya mempelajari penggunaan getch()"); /* contoh penggunaan getch() */ /* tanpa menggunakan variabel */ printf("\nTekan sembarang tombol"); getch(); /* periksa tombol yang Anda tekan */ printf("\nAnda telah menekan sebuah tombo l");
getche(); }
2.5 Lembar Kerja
Tuliskanlah hasil dari langkah kerja 2 hingga 9 kedalam tabel berikut ini:
No Nama File Hasil Keluaran
2.6 Pertanyaa n dan Tugas
1. Dari nama-nama variable berikut ini, mana yang benar dan mana yang salah, dan bila salah
apakah penyebab kesalahan tadi.
a. nama_orang g. uang+muka
b. alamat.rumah h. nilai*max
c. uang* i. rata-rata
d. _alamat j. floa t1
e. gaji bulanan k. printf
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 31
f. satu_char l. 2_data
2. Bagaimana output dari program berikut ini:
/* Program Tugas 2.2 */ main() { int bil=2,bil2=3,bil13; float bil4=3.5,bil5=4.2,bil6; bil3=bil1+bil2; bil6=bil4+bil5; printf(“\n%d %10d”,bil1,bil2,bil3); printf(“\n%10.2f %10.2f”,bil4,bil5,bil6); getche(); }
3. Buatlah program untuk menghitung jumlah serta selisih dua bilangan integer. Kemudian
cetaklah hasil penjumlahan serta selisih tadi dengan mengunakan format lebar field = 8.
Sebagai input: - bilangan 1
- bilangan 2
Sebagai output: - jumlah
- selisih
Ketentuan variable yang digunakan:
Variable untuk nama variable tipe
bilangan 1 bilangan 1 integer
bilangan 2 bilangan 2 integer
jumlah jumlah integer
selisih selisih integer
Tampilan di layar yang diinginkan adalah seperti berikut:
masukka n bilangan 1 : . . .
masukka n bilangan 2 : . . .
jumlah kedua bilangan : . . .
selisih kedua bilangan : . . .
4. Buatlah sebuah program untuk menghitung keliling segiempat dengan rumus:
Kell=2*(panjang+lebar)
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 32
Bila panjang dan lebar Anda inputkan (dengan fungsi scantf()), kemudian cetaklah besar
keliling yang telah dihitung dengan rumus di atas, dimana keliling d icetak dengan format
lebar field = 10 dan jumlah angka di belakang titik decimal = 3.
Ketentuan-ketentuan variable yang digunakan:
Variable untuk nama variable tipe variabel
Panjang panjang float
Lebar lebar float
Keliling kell float
Sedangkan tampilan yang diinginkan adalah sebagai berikut:
Panjang segiempat : . . .
Lebar segiempat : . . .
Keliling segiempat : . . .
5. Buatlah sebuah program sederhana untuk menghitung luas segitiga bila luas tersebut dapat
dihitung dengan:
Luas_sgt=0.5*alas*tinggi
Sebagai input:
alas
tinggi
sebagai output:
luas segitiga
ketentuan variable serta jenisnya adalah sebagai berikut:
variable untuk nama variablel tipe
alas alas float
tinggi tinggi float
luas segitiga luas_segitiga float
Tampilan yang diinginkan:
Alas segitiga : . . .
Tinggi segitiga : . . .
Luas segitiga : . . .
Jobsheet Dasar Pemrograman Bab. 2: Input dan Output
Hal. 33
Daftar Pustaka
1. Al Fatt, Hanif. Dasar Pemrograman C++. Andi Offset, Jogyakarta, 2007.
2. Hartanto, Jogiyanto. Buku Konsep Dasar Pemrograman Bahasa C. Ando Offset,
Jogyakarta, 2006.
3. Kadir, Abdul. Algoritma Pemrograman Menggunakan C++. Andi Offset, Jogyakarta,
2007.
4. Ngeon, Thomson Susabda . Pengantar Algoritma Dengan Bahasa C. Salemba Infotek,
Jakarta, 2006.
5. Nugroho, Adi. Algoritma dan Struktur Dara Dengan C. Andi Offset, Jogyakarta, 2009.
6. Partoharsojo, Hartono. Tuntunan Praktis Pemrograman Bahasa C 2.0. PT Elex Media
Komputindo, Jakarta, Indonesia, 1989.
7. Supardi, Yuniar. Cara Mudah Belajar Bahasa C dan Flow Chart Dalam Praktek.
Dinastindo, Jakarta, 2006.