Pemrograman Komputer I
Jobsheet 1
Input dan Output
1.1 Kompetensi
1. Mahasiswa dapat membedakan konstanta dengan variabel.
2. Mahasiswa dapat menggunakan tipe data (integer, float, character, dan string) yang
sesuai pada sebuah program.
3. Mahasiswa mampu menggunakan kata tercadang printf() untuk mencetak keluaran, dan
scanf() untuk member input pada variabel dengan benar.
4. Mahasiswa mampu menggunakan penentu format sesuai dengan tipe data dari output
yang diinginkan.
1.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.
1.2.1 Konstanta
Konstanta adalah suatu nilai yang sifatnya tetap, misalnya angka ‘21’, dan abjad ‘k’. 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).
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.
1.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
demikian tetap ada batasan-batasan tertentu yang tidak boleh dilanggar.
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 variabel
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.
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.
int jumlah;
float nilai_max;
double gaji;
double nilai_max,nilai_min;
Variabel dengan nama yang sama TIDAK BOLEH dideklarasikan ulang. Contoh: Kita
mendeklarasikan variabel nilai dua kali, pertama sebagai integer kemudian sebagai float pada
program yang sama.
int nilai;
float nilai;
Program ini akan memberikan pesan kesalahan redeclaration, yang berarti adanya deklarasi
ulang atas variabel yanga sama.
/*inisialisasi*/
Harga_satuan=12.50;
Jumlah=40;
main()
{ printf(“saya belajar bahasa pemrograman C”);
Fungsi argumen
}
Contoh program berikut ini digunakan untuk mencetak konstanta string dengan konstanta atau
variabel secara bersamaan.
Di dalam 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.
main()
{
printf (“%c merupakan abjad yang ke %d”, ‘z’,26);
}
Hasil output program ini adalah:
Penggunaan penentu format berkaitan erat dengan tipe-tipe data yang akan dicetak. Artinya
setiap tipe data memiliki penentu format-nya masing-masing. Pada tabel 1.2, diberikan penentu
format untuk setiap tipe data yang telah anda kenal.
Satu hal yang sangat penting diperhatikan adalah urutan dari letak penentu format harus sesuai
dengan urutan data yang akan mengisi penentu format tersebut.
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.
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
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);
}
bilangan 2 . 5 0 =
jumlah decimal = 2
Nomor 3 0 . 7 6
lebar field = 10
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);
2 . 5 0 bilangan
nomor 3 0 . 7 6
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:
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”);
}
outputnya adalah:
bilangan 2 . 5 0
nomor 3 0 . 7 6
\b Backspace
\f Formfeed
\n Baris Baru
\r Carriage Return
\t Tab (default = 8 karakter )
\’ Tanda kutip tuggal (‘)
\” Tanda kutip ganda (“)
\\ Backslash
\xaa Kode ASCII dalam
hexadecimal
\aaa (aa – menunjukkan angka
ASCII ybs.)
Kode ASCII dalam octal
(aa – menunjukkan angka
ASCII ybs.)
1.2.8 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().
Fungsi scanf()
Format dari fungsi scanf adalah sebagai berikut:
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, di 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).
Sebagai contoh kita akan menjumlahkan dua bilangan 45.5 dengan 30.25, maka output program
diatas akan menjadi:
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.
2. Buatlah program seperti berikut ini, dan simpan dalam file Coba11.C dengan cara
pilih File dan Save atau F2. Untuk melihat program tersebut benar atau tidak lakukan
Compile dari menu utama dan untuk menjalankan program lakukan Run.
/* inisialisasi suatu variabel file Coba11.C*/
main()
{
/* deklarasi variabel */
float Tegangan, R1, R2, Arus;
clrscr(); /*membersihkan layar */
/*inisialisasi*/
Tegangan = 12;
R1 = 100;
R2 = 150;
/*menghitung harga total*/
Arus = Tegangan / (R1+R2);
/*mencetak harga arus*/
Jobsheet 1: Input dan Output Halaman 10
Pr. Pemrograman Komputer I
3. Buatlah program seperti berikut ini, dan File Save dalam file Coba12.C kemudian
lakukan Compile dan Run.
/* mencetak tipe data karakter dan integer */
main()
{ clrscr();
printf (“%c merupakan abjad yang ke %d”, ‘B’,2);
getche();
}
4. Buatlah program seperti berikut ini, dan File Save dalam file Coba13.C kemudian
lakukan Compile dan Run.
main()
{ float Arus = 2.5 , R = 300, Tegangan;
clrscr();
Tegangan = Arus * R;
printf(“Dengan arus sebesar %8.2f dan resistor %6.1f \n”, Arus, R);
printf(“Besar tegangannya = %10.4f”, Tegangan”);
getche();
}
5. Buatlah program seperti berikut ini, dan File Save dalam file Coba14.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(“\nBesarnya Luas segiempat adalah %8.3f” , luas);
getche();
}
6. Buatlah program seperti berikut ini, dan File Save dalam file Coba15.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 tombol");
}
2. Buatlah flow-chart dan program untuk menghitung luas dan keliling suatu lingkaran.
Adapun rumus luas lingkaran = π.r2, sedangkan rumus keliling lingkaran =2.π.r, jari-
jari lingkaran dimasukkan melalui keyboard ?.
3. Buatlah flow chart dan program untuk menghitung luas dan volume suatu tabung.
Adapun rumus luas lingkaran= π.r2. sedangkan volume tabung = π.r2.t. Jari-jari alas
dan tinggi dimasukkan ke program sebagai input melalui keyboard ?.
4. Buatlah flow chart dan program untuk mencari konversi suhu dari Celcius ke
Fahrenheit dan Reamur dengan rumus:
Fahrenheit = 9/5*Celcius+32
Reamur = 4/5*Celcius
5. Buatlah program untuk menghitung nilai uang dalam bentuk dollar, yen, dan peso.
Adapun inputan program adalah mata uang rupiah dengan rumus:
Dollar = rupiah/11000;
Yen = rupiah/4000
Peso = rupiah/3000
6. Buatlah program untuk menghitung nilai persamaan berikut ini:
X = a2+b2+c
Hitunglah nilai X dengan nilai a,b, dan c sebagai nilai input.
7. Buatlah program untuk menghitung berapa bulan lamanya cicilan dari seseorang yang
membeli mobil seharga Rp. 150.000.000,- dengan DP Rp. 30.000.000,- dan tiap bulan
dia harus mencicil sebesar Rp. 1.500.000,-