• Tidak ada hasil yang ditemukan

Bab. 2 Input dan Output

N/A
N/A
Protected

Academic year: 2021

Membagikan "Bab. 2 Input dan Output"

Copied!
28
0
0

Teks penuh

(1)

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(), da n 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/O utput itu sendiri, seperti pengertian tentang Konstanta dan Variabel, serta tipe-tipe data yang dike nal 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 ko nstanta. ` 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’ buka n lagi ko nstanta , melainka n suatu variable. Secara garis besar konstanta dapat kita bagi atas dua bagian, bilangan (numerik) dan teks (string).

(2)

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 Ekspo nen

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 da n 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 not asi- 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- uba h. 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.

(3)

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.

(4)

Seperti halnya ko nstanta, 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 po int, 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.

(5)

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 tadi. Contoh: Kita akan mendeklarasikan variabel-variabel bil dan no sebagai integer, variabel-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 BO LEH dideklarasikan ulang. Contoh: K ita mendeklarasikan variabel niali dua kali, pertama sebagai integer kemudian sebagai float pada program yang sama.

(6)

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: K ita akan mendeklarasikan varibel pencacah sebagai unsigned integer.

Unsigned int pe ncacah;

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.

(7)

d. Gabunga n 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 i nt_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,j umlah,harga_total; /*membersihkan layar*/

clrscr(); /*inisialisasi*/

Harga_satuan=12.50; Jumlah=40;

/*menghitung harga total*/

Harga_total=harga_satuan*j umlah; /*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:

(8)

/*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*j umlah; /*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 memor i yang lebih besar. Pilihlah tipe variabe l sesuai de ngan kepe rluan, 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’

(9)

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 ba hasa 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 pe mrograman 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 sebe narnya berfungsi untuk menunjukka n dimana data lain (tidak hanya terbatas pada ko nstanta saja) akan diletakka n bila dicetak menjadi satu kesatuan dengan konstanta string di depannya. Program dibawah ini akan memperjelas penggunaan penentu format.

(10)

main() {

printf (“%c me rupakan abjad yang ke %d”, ‘z’,26); }

Hasil output program ini adalah:

z me rupakan abjad ya ng 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 pent ing dipe rhatika n ada lah urutan dari letak pe nent u for mat harus sesuai de ngan ur utan da ta yang aka n mengisi penentu format tersebut.

printf(“%c me rupakan 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.

(11)

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, o utput yang dihasilkan akan sebagai berikut:

bilanga n = 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

(12)

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

(13)

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( “B ARIS 1” ); printf( “B ARIS 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 d icetak da lam satu baris. Sekarang k ita lihat contoh berikutnya:

main() {

clrscr();

printf( “B ARIS 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( “B ARIS 1 \n ” ); printf( “B ARIS 2” ); } 3 0 . 7 6

(14)

Outpunya program : BARIS 1 BARIS 2

Perhatikan, bahwa antara \n de ngan karakter berikutnya tidak perlu dibe ri spa si. main() { clrscr(); printf( “B ARIS 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( “B ARIS 1 \n BARIS 2” ); }

Outputnya

BARIS 1 BARIS 2

\n dapat diletakka n dimana saja, bila diletakka n dalam satu baris, maka teks dalam baris tersebut akan dipenggal dalam dua baris. Contoh lain:

main() {

clrscr();

printf( “B ARIS 1 \nBARIS 2” ); printf( “B ARIS 3”);

}

Keluaran yang dihasilkan BARIS 1

(15)

Contoh lain:

main() {

clrscr();

printf( “B ARIS 1\nBARIS 2\nBARIS 3”); }

Keluaran dari program diatas adalah seperti berikut: BARIS 1

BARIS 2 BARIS 3

Notasi ‘\n’ ini dike nal de ngan 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.)

(16)

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 ya ng dihasilka n 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. Seba gai contoh untuk mencetak beep (bel), kode ASCII- nya 07, jadi notasi yang digunakan: \x07.

main() {

clrscr();

printf(“Bel be rbunyi , s etelah 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. Fungs i scanf()

(17)

scanf(“ penentu format”,&nama_va riabel);

Dalam penggunaanya scanf() seringkali dikombinasikan dengan printf() untuk sekedar memberikan keterangan data apakah yang harus dimasukkan dalam scanf() tersebut, karena scanf() sendiri tidak dapat digabungka n dengan teks. Selain itu, d i depa n 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).

/* pengg unaa n 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 bilanga n pe rtama : 45.5 Masukkan bilanga n 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);

(18)

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 Berpa ngkat 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 dimasukka n 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 d ua (:) . pemisah data dalam input yang dimasukka n harus sama dengan pemisah data yang digunakan dalam scanf(), bila dalam scanf() data dipisahkan dengan spasi, maka data yang anda inputka n juga harus dipisahka n de ngan spasi atau bila seba gai pe misah da lam scanf(). Bila menggunakan koma, maka data yang diinputkan juga harus menggunaka n ko ma sebagai pemisah.

Contoh:

printf(“\nmasukka n tiga bilangan bulat : “); scantf(“%d %d %d “,& bil1,&bil2,&bil3);

Dipisahkan dengan spasi Contoh bent uk input yang diberikan:

(19)

dipisahka n 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

dipisahka n oleh ko ma b. Fungs i 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 tombo l 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( ).

(20)

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 aka n dilakukan pengubahan nilai bil, maka pada waktu proses COMPILE dan LINK akan muncul suatu peringatan yang menyatakan bahwa nilai konstan ini tidak dapat diubah.

/* mendeklarasika n constant */ main()

{

float bil1,b il2; const float bil=2.50 ;

clrscr();

printf(“”inp utka n 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 ko nstanta (bil) aka n diruba h 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().

(21)

2.2.12 Membe rikan Kome ntar 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 ba hasa C, komentar diletakkan di antara tanda ‘/*’ dan ‘*/’. Misalkan /* ini sebuah kome ntar */ . 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. Seba gai 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 lakuka nlah setting directories dengan cara pilih Options pada menu utama software, kemudian pilih Directories pada sub- menu options.

Gambar 21. Tampilan Utama Kompiler Turbo C

(22)

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 da n Save atau F2. Untuk melihat program tersebut benar atau tidak lakuka n Compile dari menu utama dan unt uk menjalanka n program lakuka n 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 lakuka n Compile dan Run.

/* mencetak tipe data karakter dan integer */ main()

{ clrscr();

printf (“%c merupakan abjad yang ke %d”, ‘z’,26); getche();

(23)

4. Buatlah program seperti berikut ini, dan File Save dalam file Coba23.C kemudian lakuka n 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 lakuka n 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 lakuka n Compile dan Run.

/* Penggunaan fungsi getche() */ main()

{

/* mendeklarasikan variabel getche() */ /* nama variabel boleh sembarang */ /* da lam program ini dipilih x */ char x;

(24)

printf("\nSaya mempelajari penggunaan getche()"); /* contoh penggunaan getche() */

printf("\nTekan sembarang tombol"); x=getche();

/*periksa tombol yang Anda tekan */ printf("\nAnda teka n meneka n tombo l %c",x); }

7. Buatlah program seperti berikut ini, dan File Save dalam file Coba26.C kemudian lakuka n 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 meneka n sebuah tombo l"); }

8. Buatlah program seperti berikut ini, dan File Save dalam file Coba27.C kemudian lakuka n 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 meneka n sebuah tombo l %c",x); }

9. Buatlah program seperti berikut ini, dan File Save dalam file Coba28.C kemudian lakuka n Compile dan Run.

(25)

/* 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 meneka n 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

(26)

f. satu_c har 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 d ua bilangan integer. Kemudian cetaklah hasil penjumlahan serta selisih tadi denga n 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)

(27)

Bila panjang dan lebar Anda inputkan (dengan fungsi scantf()), kemudian cetaklah besar keliling yang telah dihitung dengan rumus di atas, d imana keliling d icetak de nga n 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 diinginka n:

Alas segitiga : . . .

Tinggi segitiga : . . . Luas segitiga : . . .

(28)

Daftar Pustaka

1. Al Fatt, Hanif. Dasar Pemrograman C++

.

Andi O ffset, Jogyakarta, 2007.

2. Hartanto, Jogiyanto. Buku Konsep Dasar Pemrograman Bahasa C. Ando Offset, Jogyakarta, 2006.

3. Kadir, Abdul. Algoritma Pemrograman Menggunakan C++. Andi O ffset, 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.

Gambar

Tabe l 2.2. Hubungan antara tipe data dengan memori yang diperlukan
Tabe l 2.3  penentu format untuk fungsi printf().
Tabel 2.4  Escape Sequence
Tabe l 2.5 penentu format untuk fungsi scanf().
+2

Referensi

Dokumen terkait

Hasil dari penelitian ini menunjukkan kadar albumin pada sampel penelitian yang merupakan pria sehat pada kelompok yang mengonsumsi diet V kelompok lebih rendah

4.4.2 Enote policije za delo na področju korupcije Policija je po Zakonu o policiji zadolžena za »preprečevanje, odkrivanje in preiskovanje kaznivih dejanj in prekrškov, odkrivanje

Penelitian ini dilakukan untuk mengetahui keefektifan metode pembelajara kolaboratif dengan goal free problems ditijau dari kemampuan pemecahan masalah kelas VIII di MTs Al

Perbandingan rerata indeks FIB4, King’s Score dan APRI Score terhadap hasil fibroscan pada penelitian ini menunjukkan kesesuaian yang signifikan (p&lt;0,001), hal

Tim penjaringan dan penyaringan sebagaimana dimaksud dalam Pasal 8, melaksanakan tugas terhitung sejak tanggal ditetapkannya Keputusan Kepala Desa tentang Pembentukan Tim

Oleh karena itu Marketing Public Relations / Public Relations wajib melakukan serangkaian kegiatan yang terencana sebagai upaya-upaya dalam mempertahankan citra

Komitmen afektif memberikan pengaruh positif terhadap kepuasan kerja dengan nilai sebesar 0,273, dapat diketahui pula bahwa komitmen afektif memberikan pengaruh