Dokumen ini membahas tentang input dan output pada pemrograman komputer. Topik utama yang dibahas adalah konstanta, variabel, tipe data, deklarasi variabel, inisialisasi variabel, dan fungsi input output seperti printf dan scanf.
1. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!1!
!
Jobsheet 1
Input dan Output
1.1 Tujuan Instruksional Khusus (TIK)
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
2. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!2!
!
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.
1.2.3 Jenis-jenis Variabel
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
3. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!3!
!
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.
1.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
meliputi 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 1.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 1.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-variabel harga_jual, harga_beli, serta keuntungan
sebagai float, dan variabel-variabel nilai_max, nilai_min sebagai double.
4. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!4!
!
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 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.
1.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*/
Harga_satuan=12.50;
Jumlah=40;
1.2.6 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.
5. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!5!
!
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 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:
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 1.2, diberikan
penentu format untuk setiap tipe data yang telah anda kenal.
Tabel 1.2 penentu format untuk fungsi printf().
TIPE DATA PENENTU FORMAT UNTUK printf()
Integer
Bentuk Desimal
Character
String
%d
%f
%c
%s
Satu hal yang sangat penting diperhatikan adalah urutan dari letak penentu format harus
sesuai dengan urutan data yang akan mengisi penentu format tersebut.
printf(“%c merupakan abjad yang ke %d” , ‘b’ , 2 );
6. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!6!
!
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’ );
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
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()
{
2 . 5 0
3 0 . 7 6
7. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!7!
!
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
outputnya adalah:
bilangan
nomor
1.2.7 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 1.3.
Tabel 1.3 Escape Sequence
2 . 5 0
3 0 . 7 6
2 . 5 0
3 0 . 7 6
8. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!8!
!
ESCAPE SEQUENCE 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:
main()
{
float bil1=13.5 , bil2=45.2, bil3=4.76;
float bil4=30.75 , bil5=32.1, bil6=7.5;
clrscr();
printf(“%8.2f t%8.2f t%8.2f” ,bil1,bil2,bil3);
printf(“n%8.2ft%8.2f t%8.2f”,bil4,bil5,bil6);
}
Dengan keluaran
13.50 45.20 4.76
30.75 32.10 7.50
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
9. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!9!
!
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 fungsi 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
1.2.9 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(); }
1.3 Peralatan
10. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!10!
!
1. 1 set computer
2. Software bahasa C
1.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 1.1. Tampilan Utama Kompiler Turbo C
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 2.2. Pengesetan 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 harga_satuan, jumlah, total;
clrscr(); /*membersihkan layar */
/*inisialisasi*/
Harga_satuan=12.50;
Jumlah=40;
/*menghitung harga total*/
11. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!11!
!
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 Coba12.C kemudian
lakukan Compile dan Run.
/* mencetak tipe data karakter dan integer */
main()
{ clrscr();
printf (“%c merupakan abjad yang ke %d”, ‘z’,26);
getche();
}
4. Buatlah program seperti berikut ini, dan File Save dalam file Coba13.C kemudian
lakukan Compile dan Run.
main()
{ clrscr();
float bilangan=2.5 , nomor=30.756;
printf(“bilangan = %-10.2f n”,bilangan);
printf(“nomor = %-10.2f”,nomor”);
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(“nLuas segiempat : %10.4f” , luas);
getche();
}
12. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!12!
!
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");
}
1.5 Lembar Kerja
Tuliskanlah hasil dari langkah kerja 2 hingga 6 kedalam tabel berikut ini:
No Nama File Hasil Keluaran
1.6 Pertanyaan 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. float1
e. gaji bulanan k. printf
f. satu_char l. 2_data
13. ! Pr.$Pemrograman$Komputer$1$!
!
Jobsheet!1:!Input!dan!Output! Halaman!!!13!
!
2. Buatlah flow-chart dan program untuk menghitung luas dan keliling suatu lingkaran.
Adapun rumus luas = π.r2
, sedangkan rumus keliling=2.π.r, jari-jari lingkaran
dimasukkan melalui scanf.
3. Buatlah flow chart dan program untuk menghitung luas dan volume suatu tabung.
Adapun rumus luas= 2.π.r.t sedangkan volume = π.r.t2
. Jari-jari alas dan tinggi
dimasukkan ke program sebagai input melalui scanf.
4. Buatlah flow chart dan program untuk mencari konversi suhu dari cecius 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/9000;
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. 50.000.000,- dengan DP Rp. 10.000.000,- dan tiap
bulan dia harus mencicil sebesar Rp. 300.000,-
14. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
14
JOBSHEET 2
OPERASI ARITMATIKA
2.1. Tujuan Instruksional Khusus
1. Mahasiswa dapat membedakan fungsi aritmatika dari operator aritmatika,
ekspresi aritmatika, operator pemberi nilai aritmatika, operator penambah, dan
operator pengurang.
2. Mahasiswa dapat menggunakan operasi aritmatika dengan benar.
2.2. Pendahuluan
Pembahasan Bab ini akan berkisar pada berbagai hal yang berhubungan dengan
operasi aritmatika, baik yang bersifat umum, yang juga dapat Anda jumpai pada
bahasa Pemrograman lainnya, ataupun yang bersifat khusus dimiliki oleh bahasa C.
2.2.1 Operator Aritmatika
Operasi aritmatika yang dikenal oleh Turbo C adalah sebagai berikut :
+ tambah
- kurang
/ bagi
* kali
% sisa
Contoh : A = 10/2; hasilnya = 5
B = 5+2-3; hasilnya = 4
Bila dalam beberapa bahasa Pemrograman lain ada operator untuk pemangkatan,
tetapi di dalam Turbo C jenis operator ini tidak dikenal. Jadi apabila ada rumus-rumus
pemangkatan harus dilakukan dengan cara lain.
Contoh : dalam Turbo C dituliskan A = X*X ;
dalam Turbo C dituliskan B = 5*Y*Y*Y ;
Operator sisa (%) hanya dapat digunakan untuk data yang bertipe char atau int, dan
tidak dapat digunakan untuk tipe data float ataupun double.
Contoh : A = 5 % 2 nilai A = 1
15. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
15
solusinya 5 dibagi 2 = 2 sisa 1
B = 4.3 % 3.2 nilainya akan salah
2.2.2 Ekspresi Aritmatika
Pada contoh di atas, Anda menjumpai pernyataan seperi A = X*X, bentuk X*X ini
disebut sebagai ekspresi aritmatika. Sedangkan A = X*X merupakan pernyataan
pemberian nilai kepada suatu variable. Bentuk umum pernyataan pemberian nilai
adalah :
variable = ekspresi aritmatika
LVALUE RVALUE
Tanda ‘=’ dalam pernyataan di atas dikenal sebagai operator pemberi nilai
(assignment operator), karena tanda ‘=’ ini digunakan untuk memberi nilai kepada
suatu variabel, baik numerik maupun karakter atau string. Sebelah kiri tanda ‘=’, yaitu
variabel, dikenal dengan sebutan LVALUE (Left Value), sedangkan ekspresi
aritmatika yang terlaetak di sebelah kanan tanda ‘=’ dinamakan RVALUE (Right
Value). LVALUE harus selalu berupa variabel tunggal, tidak boleh lain. Sedangkan
RVALUE dapat berupa konstanta, variabel lain maupun suatu ekspresi atau rumus
aritmatika.
Contoh : A = 5;
char = ‘j’;
X = nilai;
rata-rata = total/jumlah;
bil = 0.3*bil_1+0.7*bil_2;
Bila LVALUE bukan berupa variabel, maka akan muncul pesan kesalahan :
Lvalue required in function …
Beberapa contoh ekspresi aritmatika yang salah :
5 = A;
2+4 = B;
total/jumlah = rata_rata;
16. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
16
Pemberian nilai terhadap beberapa variabel yang akan diberi nilai sama, dapat
dilakukan sekaligus dalam satu baris perintah.
Contoh :
A = B = C =10;
Dalam proses ini, C akan diberi nilai lebih dulu dengan 10, kemudian B diberi nilai
sama dengan C, yaitu 10 juga. Akhirnya A diberi nilai sama dengan B yang juga 10.
Pemberian nilai tehadap beberapa variabel yang nilainya berbeda, tidak dapat
dilakukan sekaligus. Contoh dari pemberian beberapa variabel dapat dilihan pada
contoh berikut ini:
Kita akan member nilai A = 10, B = 5, C = 7. Anda tidak dapat menuliskan sebagai :
A = B + 5 = C + 3 = 10;
Ekspresi ini SALAH.
2.2.3 Hierarki Operator Aritmatika
Bila dalam suatu ekspresi aritmatika Anda dapat menjumpai penggunaan beberapa
operator Artmatika yang berbeda secara bersamaan, maka hierarki dari operator ini
adalah sebagai berikut :
* atau / tergantung letak, yang di depan yang di dahulukan.
%
+ atau - tergantung letak.
Contoh : A = 5 + 3*2/6
Langkah-langkah perhitungan yang dilaukan oleh komputer adalah :
1. 3*2 dihitung dulu, karena ‘*’ di depan ‘/’
A = 5 + 6/6
2. Kemudian dihitung 6/6, karena hirearki ‘/’ lebih tinggi dari pada ‘+’
A = 5 + 1
3. Terakhir penjumlahan, sehingga A = 6
B = 10/5*2+3;
Solusinya : B = 2*2+3
B = 4 + 3
B = 7
Hirearki ini dapat dilawan dengan penggunaan tanda kurung ‘(‘ dan ‘)’. Ekspresi yang
terdapat pada kurung terdalam akan dijalankan lebih dahulu.
17. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
17
Contoh :
A = (5+3)*2/4;
Solusinya : A = 8*2/4
A = 16/4
A = 4
B = 100/(5*(2+3));
Solusinya : B = 100/(5*5)
B = 100/25
B = 4
Berikut ini adalah beberapa contoh penulisan ekspresi aritmatika dalam Turbo C.
Contoh :
dituliskan (a+b)/(a-b) – p*q
dituliskan (a+b/p)/a*b–q
dituliskan (a+b/p)/a*b–q
atau ((a+b/p)/a)*b-q
Dua contoh yang terakhir menunjukkan bahwa tanda kurung juga memegang peranan
penting dalam ekspresi aritmatika. Bila terjadi kesalahan meletakkan kurung, maka
ekspresi aritmatika yang dihasilkan kemungkinan besar akan memiliki arti yang
brbeda pula. Oleh karena itu berhati-hatilah (perhatikan (a+b/p)/(a*b)-q memiliki
pengertian yang berbeda dengan (a+b/p)/a*b-q). Kesalahan semacam ini seringkali
dilakukan oleh para programmer tanpa disengaja dan cukup sulit dilacak, karena
Turbo C tidak akan memberikan pesan kesalahan selama sintaks penulisan ekspresi
tadi benar.
Kesalahan lain yang juga mungkin terjadi adalah suatu perkalian variabel yang
melupakan tanda kalinya, misalnya perkalian p dan q yang seharusnya dituliskan p*q,
dituliskan pq saja. Untuk kesalahan semacam ini, Turbo C ada kalanya memberikan
pesan kesalahan, yaitu bila tidak mendeklarasikan suatu variabel lain dengan nama
pq. Bila kebetulan ada variabel dengan nama pq, maka tidak aka nada pesan
kesalahan.
18. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
18
2.2.4 Operator Pemberi Nilai Aritmatika
Bila ‘=’ dikenal sebagai operator pemberi nilai (assignment operator), ada operator-
operator lain sejenis yang khusus digunakan dalam ekspresi-ekspresi aritmatika, oleh
karena itu operator-operator ini lebih dikenal sebagai operator pemberi nilai
aritmatika (arithmetic assignment operators). Sebelum melihat apa saja yang disebut
sebagai operator pemberi nilai aritmatika, kita tinjau dulu sebuah contoh persamaan
berikut ini :
total = total + bilangan ;
Ekspresi semacam ini sering kali kita jumpai dalam mencari nilai kumulatif
(penjumlahan) dari sejumlah nilai tertentu yang banyak dijumpai dalam loop
(program pengulangan). Bila Anda pernah mempelajari suatu bahasa Pemrograman
tertentu, tentunya ekspresi semacam ini tidak merupakan suatu hal yang asing lagi
bagi Anda. Di dalam Turbo C, penulisan ekspresi di atas, dapat disederhanakan
menjadi :
total + = bilangan;
Notasi ‘+=’ ini dikenal dengan operator pemberi nilai aritmatika (arithmetic
assignment operator). Operator pemberi nilai selengkapnya dapat Anda lihat pada
Tabel 2.1
Tabel 2.1 Operator Pemberi Nilai Aritmatika
OPERATOR ARTI
+= Penjumlahan
-= Pengurangan
*= Perkalian
/= Pembagian
%= Sisa
Beberapa contoh berikut ini akan memberikan gambaran tentang penggunaan
operator-operator ini.
langkah += 2; langkah = langkah + 2
nilai -= 4.75; nilai = nilai – 4.75
bil *= 12; bil = bil * 12
19. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
19
bagi /= nomor; bagi = bagi / nomor
sisa %= 2; sisa = sisa % 2
2.2.5 Operator Penambah (increment) dan Pengurang (decrement)
Suatu variabel yang nilainya selal bertambah satu, misalkan seperti pada sebuah
variabel pencacah (counter) dengan rumus sebagai berikut ini :
nomor = nomor + 1;
berdasarkan ketentuan yang telah dijelaskan pada topic sebelumnya, rumus ini dapat
dituliskan sebagai :
nomor += 1;
Rumus di atas sebenarnya merupakan bentuk khusus dari rumus-rumus yang terdapat
pada topic sebelumnya (lihat Operator Pemberi Nilai Aritmatika), dimana
penambahannya selalu ‘1’. Dalam C, rumus di atas ini masih dapat disederhanakan
lagi menjadi :
nomor++
Notasi ‘++’ disebut Operator Penambah (Increment Operator). ‘++’ dapat digunakan
baik di depan nama variabel, seperti :
++nomor
Ataupun di belakang variabel :
nomor ++
Kedua bentuk penulisan ini memiliki arti yang BERBEDA. Bila ‘++’ diletakkan di
depan nama variabel, maka proses penambahan akan dilakukan sesaat sebelum atau
langsung pada saat menjumpai ekspresi ini, sehingga nilai variabel tadi akan langsung
berubah begtu ekpresi ini ditemukan. Jika ‘++’ diletakkan di belakang nama variabel,
maka proses penambahan akan dilakukan setelah ekspresi ini dijumpai, dengan kata
lain nilai variabel akan tetap pada saat ekspresi ini ditemukan.
Hal yang serupa juga berlaku untuk operator pengurang (decrement operator).
Operator ini akan mengurangi nilai variabel dengan 1,setiap prosesnya. Operator
pengurang ini menggunakan notasi ‘-‘, yang juga dapat diletakkan di depan ataupun
di belakang nama variabel, dengan pengertian yang serupa dengan operator
penambah.
20. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
20
2.2.6 Operasi Aritmatika Dari Campuran Tipe Data Yang Berbeda
Operasi aritmatika dapat dilakukan untuk campuran berbagai tipe data yang berbeda.
Pada umumnya hasil akhir akan sesuai dengan tipe variabel yang akan menyimpan
hasil operasi aritmatika ini. Namun demikian ada berbagai penyimpangan yang patut
diperhatikan, guna mencegah terjadinya kesalahan-kesalahan yang sebenarnya tidak
perlu. Untuk memberikan gambaran yang lebih jelas, ikutilah beberapa contoh
dibawah ini.
Pertama kita akan meninjau hasil operasi aritmatika terhadap data-data yang bertipe
integer, dan hasil proses akan disimpan kedalam variabel yang bertipe integer juga.
Perhatikan contoh di bawah ini :
/* Operasi Aritmatika terhadap Data Integer */
/* yang hasilnya disimpan ke dalam variabel integer */
main()
{
int bil1=5,bil2=3,bil3,bil4,bil5,bil6;
clrscr();
bil3=bil1+bil2;
bil4=bil1-bil2;
bil5=bil1*bil2;
bil6=bil1/bil2;
printf("n%4d + %4d = %4d",bil1,bil2,bil3);
printf("n%4d - %4d = %4d",bil1,bil2,bil4);
printf("n%4d * %4d = %4d",bil1,bil2,bil5);
printf("n%4d / %4d = %4d",bil1,bil2,bil6);
}
Output program ini adalah :
5 + 3 = 8
5 – 3 = 2
5 * 3 = 15
5 / 3 = 1
Semua hasil dari operasi aritmatika ini adalah integer. Untuk penjumlahan, selisih,
dan perkalian tidak ada hal yang aneh, namun untuk pembagian yang hasilnya bukan
21. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
21
berupa bilangan bulat, hasil tadi akan selalu dibulatkan kebawah. Sebagai contoh kita
lihat dari proses di atas :
5 / 3 seharusnya 1.666667 disini dibulatkan menjadi 1
contoh lain :
6 / 3 hasilnya 2 (tidak dibulatkan lagi karena hasilnya memang sudah
berupa
bilangan bulat)
11/4 seharusnya 2.75
disini akan dibulatkan menjadi 2
Sekarang kita akan meninjau operasi aritmatika dari data-data yang bertipe integer,
namun hasilnya akan disimpan kedalam variabel yang bertipe float.
/* Operasi Aritmatika terhadap Data Integer */
/* yang hasilnya disimpan ke dalam variabel float */
main()
{
int bil1=1000,bil2=3;
float bil3,bil4,bil5,bil6;
clrscr();
bil3=bil1+bil2;
bil4=bil1-bil2;
bil5=bil1*bil2;
bil6=bil1/bil2;
printf("n%4d + %4d = %4f",bil1,bil2,bil3);
printf("n%4d - %4d = %4f",bil1,bil2,bil4);
printf("n%4d * %4d = %4f",bil1,bil2,bil5);
printf("n%4d / %4d = %4f",bil1,bil2,bil6);
}
Outputnya :
1000 + 3 = 1003.000000
1000 – 3 = 997.000000
1000 * 3 = 3000.000000
1000 / 3 = 333.000000
Bila kita pelajari output diatas, untuk penjumlahan, selisih, dan perkalian tidak ada hal
yang aneh, hanya semua hasilnya sekarang dituliskan dalam bentuk floating point
dengan menampilkan desimalnya. Untuk pembagian ada sedikit keanehan, ternyata
hasilnya tetap dibulatkan menjadi integer, hanya ditampilkan dalam bentuk decimal
22. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
22
(ada 6 angka dibelakang titik decimal ). Dari sini dapat disimpulkan bahwa
pembagian dari dua jenis data integer yang disimpan kedalam variabel float tetap akan
memberikan hasil integer yang dituliskan dalam bentuk desimal. Untuk operasi
aritmatika terhadap data-data yang bertipe campuran, integer dan float, yang hasilnya
akan disimpan dalam variabel integer.
/* Operasi Aritmatika terhadap Data Campuran */
/* yang hasilnya disimpan ke dalam variabel integer*/
main()
{
int bil1=1000,bil3,bil4,bil5,bil6;
float bil2=3.5;
clrscr();
bil3=bil1+bil2;
bil4=bil1-bil2;
bil5=bil1*bil2;
bil6=bil1/bil2;
printf("n%4d + %f = %d",bil1,bil2,bil3);
printf("n%4d - %f = %d",bil1,bil2,bil4);
printf("n%4d * %f = %d",bil1,bil2,bil5);
printf("n%4d / %f = %d",bil1,bil2,bil6);
}
Outputnya :
1000 + 3.500000 = 1003
1000 – 3.500000 = 996
1000 * 3.500000 = 3500
1000 / 3.500000 = 285
Berikutnya adalah operasi aritmatika terhadap data campuran yang akan disimpan
kedalam variabel float.
/* Operasi Aritmatika terhadap Data Campuran */
/* yang hasilnya disimpan ke dalam variabel float */
main()
{
int bil1=1000;
float bil2=3.5,bil3,bil4,bil5,bil6;
clrscr();
bil3=bil1+bil2;
bil4=bil1-bil2;
23. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
23
bil5=bil1*bil2;
bil6=bil1/bil2;
printf("n%4d + %f = %f",bil1,bil2,bil3);
printf("n%4d - %f = %f",bil1,bil2,bil4);
printf("n%4d * %f = %f",bil1,bil2,bil5);
printf("n%4d / %f = %f",bil1,bil2,bil6);
}
Outputnya :
1000 + 3.500000 = 1003.500000
1000 – 3.500000 = 996.500000
1000 * 3.500000 = 3500.000000
1000 / 3.500000 = 285.714294
Dari sini dapat disimpulkan, bila ingin memperoleh hasil float yang benar, tanpa
adanya pembulatan menjadi integer, maka minimum salah satu suku atau faktor yang
terdapat dalam operasi aritmatika harus bertipe float, dan hasil operasi ini harus
disimpan dalam variabel float pula. Hal ini perlu diperhatikan terutama untuk
pembagian. Dari contoh-contoh yang telah diberikan diatas, dapat disimpulkan bahwa
dalam operasi aritmatika, operasi pembagian sering memberikan hasil yang kadang-
kadang sedikit aneh. Ada dua hal yang perlu kita perhatikan dalam operasi pembagian
ini :
1. Untuk pembagian integer, yaitu bila pembilang dan penyebut kedua-duanya
berbentuk integer, maka hasilnya akan integer.
Contoh : 125/100 = 1
15/20 = 0
2. Untuk pembagian campuran, yaitu bila pembilang atau penyebut atau kedua-
duanya merupakan float, maka hasilnya akan menjadi float juga.
Contoh : 125.0/100 = 1.250000
15/20.0 = 0.750000
3.25/6.50 = 0.500000
2.2.7 Pengaturan Tipe (type casting)
Tipe data dapat langsung diatur didalam ekspresi aritmatika yang dituliskan, dengan
demikian konversi tipe data akan langsung dilakukan pada setiap langkah
perhitungannya. Pengaturan tipe data ini dituliskan sebagai :
24. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
24
(tipe) variabel atau konstanta
Sebagai contoh, kita tinjau program dibawah ini.
/* Penggunaan pengatur Tipe */
main()
{
int a1=10,a2,a3,a4,a5,a6,a7;
float b1,b2;
clrscr();
a2=45.5/a1+2.75;
a3=(int) 45.5/a1 + 2.75;
a4=(int) 45.5/a1+(int) (2.75);
a5=(int) 45.75/0.5;
a6=(int) (45.75/0.5);
a7=(int) 45.75/(int) 1.5;
b1=45/a1+2.75;
b2=(float) 45/a1 +2.75;
printf("n %d”,a2);
printf("n %d",a3);
printf("n %d",a4);
printf("n %d",a5);
printf("n %d",a6);
printf("n %d",a7);
printf("n %f",b1);
printf("n %f",b2);
}
Outputnya :
7
6
6
90
91
45
6.750000
7.250000
Proses langkah demi langkahnya adalah sebagai berikut :
a2 = 45.5/a1 + 2.75
= 45.5/10 + 2.75
= 4.55 + 2.75
= 7.30
a3 = (int) 45.5/a1 + 2.75
25. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
25
= 45/10 + 2.75
= 4 + 2.75
= 6.75
dibulatkan menjadi 6, karena a3 integer
a4 = (int) 45.5/a1 + (int) 2.75
= 45/10 + 2
= 4 + 2
= 6
Meskipun a2 dan a3 hasilnya sama, namun proses perhitungan langkah demi
langkahnya berbeda.
a5 = (int) 45.75/0.5
= 45/0.5
= 90.000000
dituliskan sebagai 90
a6 = (int) (45.75/0.5)
= (int) 91.500000
= 91
a7 = (int) 45.75/ (int) 1.5
= 45/1
= 45
b1 = 45/a1 + 2.75
= 45/10 + 2.75
= 4 + 2.75
= 6.750000
b2 = (float) 45/a1 + 2.75
= (float) 45/10 + 2.75
= 4.500000 + 2.75
= 7.250000
Kesimpulan :
1. Pengatur tipe hanya mengatur sebuah variabel atau konstanta yang tepat berada
dibelakang pengatur tipe tadi.
Contoh :
(int) 45.75/0.5 → 45/0.5
26. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
26
2. Bila setiap konstanta atau variabel hendak diubah tipenya, maka konstanta-
konstanta atau variabel- variabel tersebut membutuhkan pengatur tipenya masing-
masing.
Contoh :
(int) 45.75/ (int) 1.5 → 45/1
3. Kita dapat menggunakan tanda kurung untuk mengatur dijalankannya proses
aritmatika lebih dahulu, baru kemudian hasilnya di konversikan ke dalam tipe
yang di inginkan.
Contoh :
(int) (45.75/0.5) → (int) 91.500000
2.2.8 Hierarki Operator
Bila pada beberapa topik sebelumnya telah diberikan hierarki operator aritmatika
(lihat tabel 2.1), pada table berikut ini akan diberikan hierarki yang lebih lengkap.
Tabel 2.2 Hierarki operator.
Prioritas Operator Keterangan
I
II
III
IV
V
VI
VII
VIII
()
++--
*/
%
+-
= += -=
*= /= %=
!
< > <= >=
!= = =
&& ; ;
Tanda kurung
Penambahan dan pengurangan.
Kali dan bagi
Sisa
Tambah dan kurang
Operator pemberi nilai
Aritmatika
Operator logic tidak/bukan.
Operator relasi
Operator logic DAN dan
ATAU
2.2.9 Operasi Character
Meskipun sebenarnya operasi character bukan merupakan bagian dari operasi
matematika,namun topic ini sengaja disisipkan disini,mengingat bahwa karakter dapat
dinyatakan dalam bentuk integer. Karakter umumnya disimpan secara internal dalam
bentuk integer,artinya karakter dikonversikan menjadi integer sebelum disimpan ke
dalam memori dan akan dikonversikan menjadi karakter kembali bila dicetak.pada
27. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
27
umumnya system konversi yang dianut oleh sebagian besar microcomputer akana
menjadi nilai ASCII-nya(lihat Lampiran A).nilai ASCII dapat berkisar dari 0 hingga
127 atau 0 hingga 255, tergantung jenis computer yang anda gunakan.
Seperti yang telah dibahas pada bab sebelumnya, untuk mencetak sebuah karakter
digunakan format specifier ‘%c’.bagaimanakah untuk mencetak nilai ASCII –nya?
Nilai ASCII dapat dicetak dengan menggunakan format specifier ’%d’ (%d mewakili
integer).
/* Program konversi nilai ASCII */
main()
{
char c1='a',c2='A';
clrscr();
printf("nKarakter pertama : %c",c1);
printf("nNilai ASCII nya : %d",c1);
printf("nKarakter kedua : %c",c2);
printf("nNilai ASCII nya : %d",c2);
}
Output program ini:
Karakter pertama : a
Nilai ASCII nya : 97
Karakter kedua : A
Nilai ASCII nya : 65
2.3. Peralatan
1. 1 set computer
2. Software Turbo C
2.4. Langkah Kerja
1. Aktifkanlah editor Turbo C, kemudian lakukanlah konfigurasi directory.
2. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con21.C
/* Penggunaan '++' di depan nama variabel */
main()
{
int bil=10;
clrscr();
printf("n %d",bil);
28. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
28
printf("n%d",++bil);
printf("n%d",bil++);
printf(“n%d”, bil);
getche();
}
3. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con22.C
/* Penggunaan '++' di belakang nama variabel */
main()
{
int bil=10;
clrscr();
printf("n %d",bil);
printf("n %d",bil++);
printf("n %d",++bil);
getche();
}
4. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con23.C
/* Penggunaan '++' di depan dan di belakang nama variabel */
main()
{
int bil=25;
clrscr();
printf("n %d",++bil);
printf("n %d",bil++);
printf("n %d",bil);
printf("n %d",++bil);
printf("n %d",bil++);
printf("n %d",++bil);
getche();
}
5. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con24.C
/* Contoh penggunaan '++' dan '--' */
main()
{
int bil=15;
clrscr();
printf("n %d",++bil);
printf("n %d",bil--);
printf("n %d",bil);
printf("n %d",bil++);
printf("n %d",++bil);
29. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
29
printf("n %d",bil--);
printf("n %d",--bil);
printf("n %d",bil);
printf("n %d",++bil);
printf("n %d",--bil);
printf("n %d",bil);
getche();
}
Bagaimanakah output dari program di atas ? Cobalah menganalisa program ini
tanpa menjalankannya di computer. Bila analisa anda seperti hasil saat eksekusi
program maka Anda telah benar-benar memahami pengertian operator-operator
tersebut.
6. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con25.C
/* Operasi Aritmatika */
main()
{
int a1=10,a2,a3,a4;
float b1=1.5,b2,b3,b4;
clrscr();
a2=a1/b1+2.5;
a3=45/a1+3;
a4=45.0/a1+3;
b2=a1/b1+2.5;
b3=45/a1+3;
b4=45.0/a1+3;
printf("n %d”,a2);
printf("n %d",a3);
printf("n %d",a4);
printf("n %f",b2);
printf("n %f",b3);
printf("n %f",b4);
getche();
}
Langkah kerja nomor 7 merupakan contoh program konversi dari huruf besar
menjadi huruf kecil, dalam kode ASCII selisih antara huruf besar dan huruf kecil
adalah 32 (misal A mempunyai kode 1000001 atau $41 sedangkan a mempunyai
kode 1010001 atau $61), maka sifat ini dapat kita gunakan untuk
mengkonversikan huruf besar menjadi huruf kecil.
30. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
30
7. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con26.C
/* Program konversi huruf besar ke kecil */
main()
{
char besar,kecil;
clrscr();
/* Cetak Judul */
printf("xDB PROGRAM KONVERSI HURUF xDB");
/* Inputkan sebuah huruf besar */
printf("nnInputkan sebuah huruf besar (A-Z)");
besar=getche();
/* Konversi ke huruf kecil */
kecil=besar+32;
/* Cetak huruf kecilnya */
printf("nnHuruf kecil dari %c adalah %c",besar,kecil);
getche();
}
8. Buatlah program seperti dibawah ini dan simpanlah dengan nama Con27.C
/* Program konversi jam */
main()
{
int jam;
float jam_input,menit,tot_menit;
clrscr();
/* Cetak Judul */
printf("xB1xB1 Program Konversi Jam xB1xB1");
/* Input Data */
printf("nnInputkan Jam (x.xx) : ");
scanf("%f",&jam_input);
/* Konversi */
jam=(int) jam_input;
menit=(jam_input-(int) jam_input)*60;
tot_menit=jam*60+menit;
/* Cetak Output */
printf("n%f jam = %d jam %5.2f menit = %.2f menit",jam_input,
jam,menit,tot_menit);
getche();
31. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
31
}
2.5. Lembar Kerja
No Nama File Keluaran
2.6. Pertanyaan dan Tugas
1. Tuliskan ekspresi aritmatika dibawah ini dalam bentuk yang dikenal oleh Turbo
C:
a.
dimana a,b,c,d,p,q,x, dan y masing masing adalah sebuah variable.
2. Bila diketahui a=100, b=10 dan c=2, tentukan hasil ekspresi aritmatika berikut
ini:
a. d = a/2*b; f. z = a/(2*b);
b. x = a*b/5*c; g. p = a+b/2*b;
c. y = a*(b/5)*c; h. q = (a+b)/2*b;
d. f = a+c/10+b; i. r = (a+b)/(2*b);
e. g = a+c/(10+b); j. s = (a+c)/(10+b);
3. Dari program berikut ini, berapakah nilai x ?
main()
{
int x,y ;
32. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
32
y = 3
x = y*3+12;
printf("Nilai dari x adalah : %d ",x);
}
4. Dari program berikut ini, bagaimana outputnya ?
main()
{
int a=12,b=15,c=40,d,x;
float e=5.5,f=12.5,h.i,y;
d=a+e;
h=c/b;
i=f/a;
x=f/e;
y=f/e;
printf("n d : %d",d);
printf("n h : %f",h);
printf("n i : %f",i);
printf("n x : %d",x);
printf("n y : %f",y);
}
5. Tentukan output dari program dibawah ini:
main()
{
int bil=3;
printf("n %d",bil);
printf("n %d",bil++);
printf("n %d",--bil);
bil+=5;
printf("n %d",bil);
printf("n %d",++bil);
printf("n %d",bil++);
printf("n %d",bil);
bil*=5;
printf("n %d",bil++);
printf("n %d",++bil);
printf("n %d",bil);
bil-=5;
printf("n %d",bil);
getche();
}
6. Tentukan output program berikut ini :
main()
{
33. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
33
int bil1=10,bil2,bil3;
float bil4=75.5,bil5,bil6;
bil2=(int) bil4/bil1+(int) bil4;
bil3=(int) (bil4/0.25)+5/2;
bil5=bil1/2+(int) bil4/25;
bil6=bil4/ (int) 1.5+2.4;
printf("n %d",bil2);
printf("n %d",bil3);
printf("n %f",bil5);
printf("n %f",bil6);
}
Tentukan lebih dahulu dengan perhitungan manual, sebelum anda coba
program diatas. Dengan demikian anda dapat menguji apakah anda benar
benar telah memahami langkah langkah perhitungan ini.
7. Tentukan output program dibawah ini, kerjakan secara manual dahulu,kemudian
buatlah programnya, serta periksa apakah hasil manual tersebut sesuai output
program?.
main()
{
char kar1,kar2,kar3;
kar1='a'+10;
kar2=kar1-20;
kar3='C'+'D'-'A'+10;
printf("n %c kode ASCII nya %u",kar1,kar1);
printf("n %c kode ASCII nya %u",kar2,kar2);
printf("n %c kode ASCII nya %u",kar3,kar3);
}
8. Buatlah program untuk menghitung volume dan luas permukaan tabung
apabila masukkannya berupa jari-jari dan tinggi. Jari-jari dan tinggi yang
dimasukkan bertipe float dan output atau keluaran yang dihasilkan adalah
luas dan volume permukaan bola dengan tipe float.
34. Pr. Pemrograman Komputer 1
Jobsheet
2:
Operasi
Aritmatika
Halaman
34
35. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
34
JOBSHEET 3
Percabangan Bersyarat
3.1. Tujuan Instruksional Khusus
1. Mahasiswa dapat membuat program menggunakan percabangan menggunakan if .. else.
2. Mahasiswa dapat membuat program menggunakan percabangan bertingkat menggunakan
if .. else if.
3. Mahasiswa dapat membuat program menggunakan percabangan menggunakan switch ..
case.
3.2. Pendahuluan
Percabangan bersyarat memungkinkan pemrogram untuk memilih suatu alternatif dari
beberapa alternatif yang disediakan berdasarkan kondisi yang sesuai.
3.2.1 Operator Relasi
Operator relasi digunakan untuk membandingkan nilai dua ekspresi aritmatika yang berbeda.
Kedua nilai ekspresi yang dibandingkan tersebut dapat sama, lebih besar, atau lebih kecil atau
tidak sama dan sebagainya.
Tabel 3.1. Operator Relasi
OPERATOR
RELASI
ARTI
< Lebih kecil
> Lebih besar
== Sama dengan
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama
dengan
!= Tidak sama dengan
Kesalahan yang sering terjadi dalam menggunakan operator relasi ini adalah penggunaan
tanda sama dengan (==). Sering pemrogram menggunakan notasi ‘=’ untuk menunjukkan
relasi sama dengan (==). Hal ini dapat dimaklumi karena dalam bahasa pemrograman yang
lain tanda relasi sama dengan yang banyak digunakan adalah ‘=’. Contoh dari ekspresi sama:
36. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
35
Ekspresi pertama : x + 5
Ekspresi kedua : y + 10
Pernyataan yang benar adalah : x+5==y+10
Bila pernyataan tersebut dituliskan x+5=y+10
Akan muncul pesan kesalahan Lvalue required in function…
3.2.2 Operator Lojik
Operator lojik umumnya digunakan untuk membandingkan dua ekspresi relasional atau lebih
dalam suatu ekspresi logik. Operator Logik yang dikenal oleh Turbo C diberikan dalam Tabel
3.2
Tabel 3.2 Operator Lojik
OPERATOR LOGIK ARTI
&& Lojik AND
|| Logik OR
! Lojik NOT
Suatu ekspresi lojik yang terdiri dari dua ekspresi realsional atau lebih yang dihubungkan oled
DAN (logical AND) akan dianggap BENAR bila semua ekspresi relasional tadi BENAR.
Tinjau dari tiga ekspresi relasional berikut ini merupakan contoh dari ekspresi lojik:
1. X+5<10
2. Y>x+3
3. Z-2>3
Bila ketiga ekspresi relasional ini digabungkan dengan &&
(x+5<10 && y>x+3 && z-2>3)
Jika nilai-nilai x=1, y=5, z=10, maka ekspresi-ekspresi relasional tersebut akan memiliki nilai:
X+5<10 → BENAR
Y>x+3 → BENAR
Z-2>3 → BENAR
Berhubung ketiga ekspresi relasional BENAR, maka:
(x+5<10 && y>x+3 && z-2>3) → juga BENAR
Untuk nilai x,y,, dan z yang brbeda, misalkan x=2, y=2, dan z=10, maka:
37. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
36
X+5<10 → BENAR
Y>x+3 → SALAH
Z-2>3 → BENAR
Karena di sini ada ekpresi relasional yang SALAH, maka :
(x+5<10 && y>x+3 && z-2>3) → SALAH
Dua atau lebih ekspresi realsional yagn dihubungkan oleh lojik OR akan BENAR, bila
minimum salah satu ekspresi relasional tersebut Benar. Bila semua relasi memiliki nilai
SALAH, abru pernyataan tersebut akan Salah. Dari contoh tersebut, penggabungan beberapa
ekpresi relasional dalam suatu ekspresi lojik dengan menggunakan && dan ||, akan mengikuti
aturan seperti yang ditunjukkan dalam Tabel 3.3.
Tabel 3.3 Operator lojik
OPERATOR
LOGIK
EKSPRESI LOGIK HASIL
&& (benar) && (benar)
(benar) && (salah)
(salah) && (benar)
(salah) && (salah)
BENAR
SALAH
SALAH
SALAH
|| (benar) || (benar)
(benar) || (salah)
(salah) || (benar)
(salah) || (salah
BENAR
BENAR
BENAR
SALAH
! ! (benar)
! (salah)
SALAH
BENAR
Bila && dan || digunakan secara bersama-sama dalam suatu pernyataan untuk
menggabungkan beberapa relasi, maka && akan dipriotaskan lebih dahulu, baru kemudian
menyusul ||.
.
3.2.3 Pernyataan if
Pernyataan if membagi suatu alur proses menjadi dua cabang, berdasarkan persyaratan yang
diberikan. Cabang yang pertama dijalankan bila persyaratan dipenuhi, sedangkan cabang yang
kedua akan dipilih bila persyaratan tidak dipenuhi. Dalam bentuk diagram alir, proses
percabangan if dapat digambarkan sebagai berikut (lihat gambar 3.1.)
38. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
37
Ya Tidak
Gambar 3.1. Digram Alir Percabangan if
Diagram alir yang diberikan dalam gambar 3.1. menggambarkan proses percabangan if yang
paling sederhana, yaitu bila cabang yang kedua (persyaratan tidak dipenuhi) tidak memiliki
perintah. Dengan kata lain, sekumpulan perintah akan dijalankan bila syarat dipenuhi,
sedangkan bila syarat tidak dipenuhi, sekumpulan perintah tadi akan dilewati atau diabaikan,
proses akan langsung dialnjutkan pada perintah-perintah berikutnya. Struktur if dapat
dituliskan dalam dua bentuk penulisan. Pertama, pada if hanya mengandung sebuah perintah
atau pernyataan dengan format perintah seperti berikut:
if(syarat)
……perintah;
Terlihat bahwa baris if tidak diakhiri oleh ‘;’, notasi ‘;’ baru diberikan pada akhir perintah
baris di bawah if. Bentuk penulisan kedua digunakan bila perintah yang terdapapat di dalam if
merupakan sekumpulan perintah.
if(syarat)
{ ……perintah;
……perintah;
……perintah; }
Pada setiap baris perintah diakhiri oleh ‘;’. Kumpulan perintah yang termasuk di dalam if
diletakkan di antara ‘{‘ dan ’}’.
IF
PERINTAH
PERINTAH
39. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
38
3.2.4 Pernyataan if else
Pernyataan if else sebenarnya merupakan pengembangan dari pernyataan if. Disini kedua
cabang, yaitu syarat dipenuhi dan syarat tidak dipenuhi, masing-masing memiliki perintah
yang harus dijalankan. Diagram alir untuk pernyataan if else dilukiskan dalam Gambar 3.2.
PERINTAH
PERINTAH
PERINTAH
PERINTAH
TidakYa
IF
Gambar 3.2. Diagram Alir untuk pernyataan if .. else
Seperti halnya pernyataan if.cara menuliskan struktur if else ini juga dibedakan dalam dua
bentuk.Yang pertama yaitu bila masing-masing alternative hanya terdiri dari satu perintah
atau pernyataan.
if (syarat)
….perintah;
else
….perintah;
Bila setiap alternatif terdiri lebih dari satu perintah,maka perintah-perintah tadi harus
diletakkan diantara tanda kurung ’{ }’.
if (syarat)
{
....perintah;
....perintah;
....perintah;
}
else
{
40. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
39
….perintah;
….perintah;
….perintah;
}
3.2.5 Bentuk Percabangan if else if
Bentuk else if sebenarnya mirip dengan nested if, bahkan dalam aplikasinya seringkali
sturktur ini digunakan untuk menggantikan struktur nested if. Keuntungan struktur else if
dibandingkan dengan nested if adalah struktur ini menghasilkan bentuk penulisan program
yang lebih sederhana. Diagram alir untuk struktur else if ini di lukiskan dalam Gambar 3.3.
Gambar 3.3. Diagram alir struktur else if
Struktur pertanyaan if else if dapat dituliskan sebagai berikut:
if (syarat)
{
…..perintah;
if
else
if
else
else
if
Perintah
4
Perintah
3
Perintah
2
Perintah
1
41. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
40
…..perintah;
}
else if (syarat)
{
…..perintah;
…..perintah;
}
else if (syarat)
{
…..perintah;
…..perintah;
{
else
{ …..perintah;
…..perintah;
}
Bagian program ini akan dijalankan bila semua syarat if dan else if di atasnya tidak dipenuhi.
Jadi alternative else yang terakhir ini akan dipilih bila semua alternative yang diberikan
sebelumnya bukan merupakan pilihan yang sesuai.
3.2.6 Switch dan break
Perintah switch dan break memiliki sifat yang hamper sama dengan else if, namun
penggunaanya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data yang
bertipe karakter atau integer. Perintah switch dan break ini juga digunakan untuk
menyelesaikan program yang memiliki banyak cabang atau alternative. Bentuk penulisan
perintah ini:
switch (variable integer atau karakter)
{
case nilai pertama variable :
…..perintah;
…..perintah;
break;
case nilai kedua:
…..perintah;
…..perintah;
Break;
case nilai ketiga:
…..perintah;
…..perintah;
break;
42. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
41
default:
…..perintah;
…..perintah;
}
Tanda kurung kurawal ‘{ }’ menunjukkan batas jangkauan switch. Setiap cabang akan
dijalankan bila syarat nilai variable tersebut dipenuhi. Default akan dijalankan bila semua
cabang di atasnya tidak dipenuhi. Pertanyaan break menunjukkan bahwa kita siap keluar dari
switch. Bila pertanyaanya ini tidak ada, maka program akan diteruskan ke cabang-cabang di
bawahnya.
3.2.7 Operator Kondisi (Conditional Operator)
Operator kondisi diperkenalkan oleh Turbo C untuk menyediakan penulisan program yang
sedang disusun. Kita tinjau contoh penggalan program di bawah ini.
if (nilai>=60)
Status=’L’;
else
Status=’G’;
Dimana ‘L’ dan ‘G’ masing-masing menyatakan ‘lulus’ dan ‘gugur’. Penggalan program di
atas ini dapat disederhanakan menjadi:
status = nilai>60 ? ‘L’ : ‘G’;
Bentuk umum dari operator kondisi:
TRUE
nama_variabel = ekspresi logic atau relasi ? ekspresi 1 : ekspresi 2;
FALSE
Nama_variabel: adalah variable yang akan menerima nilai ekspresi 1 atau ekspresi 2. Ekspresi
lojik atau relasi: merupakan ekspresi yang akan memeriksa apakah kondisi yang ada BENAR
atau SALAH. Jadi hasil ekspresi ini adalah ‘TRUE’ (BENAR) atau ‘FALSE’ (SALAH).
T
43. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
42
Kondisi yang BENAR apabila memenuhi syarat yang diberikan dalam ekspresi lojik atau
relasi, sedangkan kondisi yang SALAH tidak memenuhi kreteria ini.
3.3. Peralatan
1. 1 set computer
2. Software turbo C
3.4. Langkah Kerja
1. Aktifkanlah editor Turbo C, kemudian lakukanlah konfigurasi directory.
2. Buatlah program seperti berikut ini yang digunakan untuk menghitung jumlah belanja
yang harus dibayar, bila berlaku ketentuan: Discount 10% diberlakukan bagi pembeli
yang berbelanja Rp.100.000,- ke atas. Program disimpan dengan nama Con31.C.
Input program: Jumlah belanja
Output program: Discount dan Jumlah yang harus dibayar
Ketentuan tentang nama dan tipe variabel yang dugunakan adalah sebagai berikut:
Variabel untuk Nama variabel Tipe
Jumlah belanja jml_belanja float
Discount discount float
Jumlah yang jml_bayar float
harus dibayar
/* Program menghitung uang pembelian */
main()
{
float jml_belanja, discount=0,jml_bayar;
/* Input Jumlah Belanja */
printf("nBesarnya Belanja : ");
scanf("%f",&jml_belanja);
/* Menghitung Discount */
if (jml_belanja>=100000)
discount=0.10*jml_belanja;
/* Menghitung Uang Pembayaran */
jml_bayar=jml_belanja-discount;
/* Cetak Discount dan Uang Pembayaran */
44. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
43
printf("nDiscount : %10.2f",discount);
printf("nUang Pembayaran : %10.2f",jml_bayar);
getche();
}
3. Buatlah program seperti dibawah ini dan simpan dengan nama Con32.C.
/* Struktur if yang terdiri dari sekumpulan perintah */
main()
{
int usia;
clrscr();
printf("Berapakah usia Anda? : ");
scanf("%d",&usia);
if(usia>=40)
{
printf("nWah, Anda sudah cukup tua");
printf("nJangan makan makanan yang banyak mengandung kolesterol");
printf("nTidak baik untuk kesehatan Anda");
}
getche();
}
4. Buatlah program seperti dibawah ini dan simpan dengan nama Con33.C.
/* struktur if else yang terdiri dari sebuah perintah */
main()
{
char jawab;
printf(“nanda mau ikut ujian hari ini ? ”);
jawab=getche();
if(jawab==’Y’ | | jawab==’Y’)
printf(“nCepat datang ke auditorium”);
else
printf(“nTetap kuliah”);
getche();
}
5. Buatlah program seperti dibawah ini dan simpan dengan nama Con34.C. Kemudian
isikanlah angka 30 dan tuliskan hasilnya pada lembar kerja, coba pula untuk angka 60.
45. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
44
/* Penggunaan nested if */
main()
{
int umur;
clrscr();
printf(‘’nBerpakah usia Anda ? : ‘’);
scanf(‘’%d’’,&umur);
if (umur<50)
if (umur>21)
printf(‘’nAnda sudah dewasa’’);
else
printf(“nAnda sudah tua“);
getche();
}
6. Buatlah program seperti dibawah ini dan simpan dengan nama Con35.C. Saat program
dijalankan cobalah dengan mengisikan angka 60, 30 dan 15 secara bergantian saat ada
pertanyaan Berapakah usia anda ? .
/* Penggunaan nested if */
main()
{
int umur;
clrscr();
printf("nBerapakah usia Anda ? : ");
scanf("%d",&umur);
if (umur<50)
{
if (umur>21)
printf("nAnda sudah dewasa");
}
else
printf("nAnda sudah tua");
getche();
}
7. Buatlah program seperti dibawah ini dan simpan dengan nama Con36.C. Saat program
dijalankan cobalah dengan mengisikan angka 1, 2, 3, 4, dan 5 secara bergantian saat ada
pertanyaan Pilihlah angka antara 1 sampai dengan 5 ? .
/* penggunaan switch */
main()
{
46. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
45
int bil;
printf(“nPilihlah angka antara 1 sampai dengan 5 ? “);
scanf(“%d”,&bil);
switch(bil)
{ case 1 : printf(“nanda mengetikkan satu”);
break;
case 2 : printf(“nanda mengetikkan dua”);
break;
case 3 : printf(“nanda mengetikkan tiga”);
break;
case 4 : printf(“nanda mengetikkan empat”);
break;
case 5 : printf(“nanda mengetikkan lima”);
break;
default: printf(nanda mengetikkan bilangan yang salah”);
}
getche();
}
8. Buatlah program seperti dibawah ini dan simpan dengan nama Con37.C. Saat program
dijalankan cobalah dengan mengisikan angka 1, 2, 3, 4, dan 5 secara bergantian saat ada
pertanyaan Pilihlah angka antara 1 sampai dengan 5 ? .
/* penggunaan switch */
main()
{
int bil;
printf(“n Pilihlah angka antara 1 sampai dengan 5 ? “);
scanf(“%d”,&bil);
switch(bil)
{ case 1 : printf(“nanda mengetikkan satu”);
case 2 : printf(“nanda mengetikkan dua”);
case 3 : printf(“nanda mengetikkan tiga”);
case 4 : printf(“nanda mengetikkan empat”);
case 5 : printf(“nanda mengetikkan lima”);
default: printf(nanda mengetikkan bilangan yang salah”);
}
getche();
}
9. Buatlah program seperti dibawah ini dan simpan dengan nama Con38.C. Saat program
dijalankan cobalah dengan menginputkan dengan salah satu bulan dan tahun dan
tuliskanlah hasilnya pada lembar kerja.
/* menentukan jumlah hari pada bulan tertentu */
47. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
46
main()
{
int bulan,tahun,hari;
clrscr();
/* input bulan dan tahun */
printf(“nninputkan bulan dan tahun (xx-xxxx) “);
scanf(“%d-%d”, &bulan,& tahun);
if (bulan==1)
hari=31;
else if (bulan==2)
{ if (tahun % 4 == 0) /* tahun kabisat */
hari=29;
else /* tahun biasa */
hari=28;
}
else if (bulan==3)
hari=31;
else if (bulan==4)
hari=30;
else if (bulan==5)
hari=31;
else if (bulan==6)
hari=30;
else if (bulan==7)
hari=31;
else if (bulan==8)
hari=31;
else if (bulan==9)
hari=30;
else if (bulan==10)
hari=31;
else if (bulan==11)
hari=30;
else if (bulan==12)
hari=31;
else
printf(“nn bulannya ngaco, bos!!!nn”);
/* cetak output */
printf(“nnbulan %2d tahun %4d memiliki %d hari “,bulan ,tahun,hari);
getche();
}
10. Buatlah program seperti dibawah ini dan simpan dengan nama Con39.C. Saat program
dijalankan cobalah dengan menginputkan dengan salah satu bulan dan tahun dan
tuliskanlah hasilnya pada lembar kerja.
48. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
47
/* menentukan jumlah hari pada bulan tertentu */
main()
{
int bulan,tahun,hari;
clrscr();
/* input bulan dan tahun */
printf(“nninputkan bulan dan tahun (xx-xxxx) “);
scanf(“%d-%d”, &bulan,& tahun);
if (bulan<=12)
{
if (bulan<=7)
hari= bulan % 2 == 0 ? 30 : 31 ;
else
hari=bulan % 2 == 0 ? 30 : 31 ;
}
else
printf(“nn bulannya ngaco bos!!!nn”);
if (bulan==2)
hari= tahun % 4 == 0 ? 29 : 28 ;
/* cetak output */
printf(“nnbulan %2d tahun %4d memiliki %d hari “,bulan,tahun,hari);
getche();
}
3.5. Lembar Kerja
No Nama File Keluaran
49. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
48
3.6. Pertanyaan dan Tugas
1. Buatlah flowchart dan program untuk menampilkan total pembelian yang harus
dibayarkan oleh seorang pelanggan apabila diketahui kondisi berikut ini:
Beli=harga barang * jumlah barang
Jika jumlah barang > 100 maka discount = beli*15%
Jika tidak discount = beli*5%
Dimana Total bayar = beli - discount
2. Buatlah flowchart dan program untuk membantu menyelesaikan persoalan pada sebuah
developer menjual dua tipe rumah,Tipe A dengan harga tanah 40000 dan harga bangunan
150000,sedamgkan Tipe B dijual dengan harga tanah 50000 dan harga bangunan 200000.
Sebagai input: luas tanah, luas bangunan, tipe
Sebagai output: harga tanah, harga bangunan, harga total
Ketentuan tentang variable-variabel yang digunakan:
Variable untuk nama variable tipe
Luas tanah luas_tanah float
Luas bangunan luas_bang float
Harga satuan tanah harga_sat_tnh float
Harga satuan bang. harga_sat_bang float
Harga tanah harga_tnh float
Harga bangunan harga_bang float
Harga total harga_total float
Tipe tipe char
3. Buatlah flowchart dan program untuk menyelesaikan permasalahan pada PT POLINOS
yang memberikan komisi kepada para salesmannya dengan ketentuan sebagai berikut:
a. Bila seorang salesman dapat menjual menjual barang hingga Rp.200.000,- dia akan
mendapat uang jasa sebesar Rp.10.000,- ditambah dengan uang komisi sebesar 10%
dari pendapatan yan diperoleh hari itu.
50. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
49
b. Bila seorang salesman menjual barang diatas Rp.200.000,- hingga Rp.500.000,- maka
uang jasa yang diterima sebesar Rp.20.000,- ditambah dengan 15% dari pendapatan
yang dieroleh.
c. Bila seorang salesman menjual barang di atas Rp.500.000,- maka uang jasa yang
diperoleh sebesar Rp.30.000,- ditambah dengan 20% dari pendapatan yang didapat.
Sebagai input: Pendapatan
Sebagai output: Uang jasa, Komisi, Total uang
Ketentuan-ketentuan variable yang digunakan:
Variabel untuk nama variable tipe
Pendapatan p_dptan float
Uang jasa jasa float
Komisi komisi float
Total Uang total float
4. Buatlah flowchart dan program untuk mengkonversikan nilai angka menjadi nilai huruf
akan dibuat berdasarkan ketentuan sebagai berikut:
Nilai Angka Nilai huruf
<50 E
50-59 D
60-69 C
70-84 B
85-100 A
Sebagai input: Nilai Angka
Sebagai Output: Nilai Huruf
Ketentuan variable
Variable untuk nama variable tipe
Nilai Angka angka float
Nilai Huruf huruf char
5. Buatlah program dalam bentuk menu yang mampu menghitung:
a. Luas dan Keliling bujur sangkar
b. Luas dan keliling persegi panjang
c. Luas dan keliling lingkaran
51. Pr Algoritma dan Pemrograman I
Jobsheet
3:
Percabangan
Bersyarat
Page
50
52. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
51
JOBSHEET 4
PERULANGAN (LOOPING)
5.1 Tujuan Instruksional Khusus
1. Mahasiswa dapat membuat program menggunakan perulangan for, while dan
do..while.
2. Mahasiswa dapat membuat program menggunakan perulangan didalam
perulangan atau perulangan bersarang (nested loop).
5.2 Pendahuluan
Proses pengulangan hampir selalu dapat dijumpai dalam berbagai baik yang bersifat
teknik maupun masalah-masalah umum . Dalam Turbo C, proses pengulangan ini
dimungkinkan dengan disediakannya berbagai perintah loop, dimana setiap perintah
loop memiliki keunikannya sendiri. Suatu proses pengulangan yang kurang cocok
diselesaikan dengan sebuah perintah loop, mungkin akan sangat tepat diselesaikan
dengan perintah loop yang lain. Jadi sangat penting untuk memilih perintah loop yang
tepat dalam menyelesaikan suatu masalah pengulangan untuk memperoleh program
yang seefektif mungkin.
5.2.1 Pengulangan dengan for
Perintah pengulangan pertama yang akan kita pelajari adalah for. Bentuk umum
pernyataan for adalah sebagai berikut:
for( inisialisasi; syarat pengulangan; perubah nilai pencacah)
pernyataan/perintah ;
Bila jumlah pernyataan atau perintah di dalam for lebih dari satu, maka pernyataan-
pernyataan atau perintah-perintah tersebut harus diletakkan di antara tanda kurung.
for(inisialisasi; syarat pengulangan; perubah nilai pencacah )
{
Pernyataan / perintah ;
Pernyataan / perintah ;
Pernyataan / perintah ;
}
53. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
52
Argumen dari pernyataan for terdiri dari tiga bagian yaitu: Inisialisasi, syarat
pengulangan, dan perubah nilai pencacah, dimana setiap bagian ini dipisahkan dengan
titik koma (:). Inisialisasi merupakan bagian untuk memberikan nilai awal bagi
variabel-variabel tertentu, terutama bagi variabel pencacah. Pemberian ( nilai ini
hanya dilakukan sekali saja yaitu pada waktu pengulangan mulai dilaksanakan,
selama proses pengulangan Inisialisasi tidak akan dllakukan lagi. Untuk contoh-
contoh di awal pembahasan, Inisialisasi hanya akan dilakukan bagi variabel pencacah
saja, namun pada contoh-contoh lebih lanjut inisialisasi tidak hanya akan dibatasi
pada variabel pencacah saja, namun juga variabel-variabel lain yang
membutuhkannya. Syarat pengulangan memegang kontrol terhadap pengulangan.
karena bagian inilah yang akan menentukan apakah pengulangan masih harus terus
dilaksanakan ataukah harus dihentikan. Pengulangan akan dilakukan selama syarat ini
dipenuhi, dan bila syarat tersebut sudah tidak dipenuhi lagi, maka pengulangan akan
dihentikan. Syarat Pengulangan dapat berupa ekspresi relasional ataupun ekspresi
logik. Perubah nilai pencacah, sesuai dengan namanya. akan mengatur perubahan
nilai variabel pencacah. Sifat perubahan nilai ini dapat berupa kenalkan ataupun
penurunan nilai pencacah. Perubah nilai pencacah dapat dinyatakan dalam bentuk
ekspresi ataupun dalam bentuk variable. Ketiga bagian ini tidak harus selalu
berhubungan satu sama lain, dalam arti bahwa penggunaan variabel pada setiap
bagian tidak perlu sama misalnya pada bagian Inisialisasi, kita memberi nilai awal
pada variabel pencacah, pada bagian syarat pengulangan, syarat yang diberikan tidak
harus berdasarkan variabel pencacah.
5.2.2 Pengulangan dengan while
Pengulangan dengan while merupakan suatu bentuk pengulangan yang mirip dengan
for, namun dengan bentuk yang lebih sederhana. Pernyataan while ini merupakan
pengulangan yang dikendalikan oleh suatu syarat tertentu, dalam arti pengulangan
akan terus dilaksanakan selama syarat tersebut dipenuhi, dan akan dihentikan bila
syarat tersebut sudah tidak dipenuhi lagi. Syarat pengulangan dapat berupa ekspresi
relasional atau ekspresi logik. Bentuk umum dari perintah ini:
inisialisasi ;
while(syarat)
54. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
53
{
pernyataan/perintah;
pernyataan/perintah;
…………………….. ;
perubahan nilai ;
}
5.2.3 Perulangan dengan do..while
Pengulangan dengan do while merupakan kebalikan dari pengulangan dengan while
ataupun for. Bila dalam while dan for pemeriksaan terhadap syarat pengulangan
dilakukan dl awal loop, pada pengulangan do while pemeriksaan terhadap syarat ini
dilakukan di akhir pengulangan. Bentuk umum pernyataan ini adalah:
inisialisasi ;
do
{
perintah/pemyataan;
perintah/pemyataan;
………………… ;
perubahan nilai;
}
while (Syarat perulangan);
5.2.4 Perulangan bersarang (Nested Loop)
Di dalam pernyataan for boleh terdapat for yang lain, bentuk yang demikian disebut
sebagai nested for. Bentuk format dari perulangan ini adalah sbb.:
for(inisialisasi; syarat; perubahan nilai)
{
for(inisialisasi; syarat; perubahan nilai)
{
pernyataan / perintah;
pernyataan / perintah;
}
}
5.3 Peralatan
1. 1 set computer
2. Software turbo C
5.4 Langkah Kerja
55. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
54
1. Buatlah program seperti dibawah ini dan simpan dengan nama Con51, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
main()
{
int bil,total=0;
clrscr();
/* Cetak Judul */
printf("nN Total “);
for(bi1=1 ;bil<=10;bil++)
{
Total += bil;
printf("n%d %d”, bil, total );
}
printf ("nNilai N setelah keluar dari Loop : %d “, bil);
getche();
}
2. Buatlah program seperti dibawah ini dan simpan dengan nama Con52, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
main()
{
int bil, total = 0;
clrscr();
/* cetak judul */
printf("nN Total");
for(bil=10;bil<=10;++bil)
{
total+=bil;
printf("n%d %d", bill, total);
}
printf("nNilai N setelah keluar dari Loop : %d”, bil);
getche();
}
3. Buatlah program seperti dibawah ini dan simpan dengan nama Con53, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Mencetak bilangan genap di antara 1 hingga 10 */
main()
{
int bil;
clrscr;
for(bil=20; bil<=30; bil+=2);
56. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
55
{
printf (“%d “, bil, total);
}
printf(“nNilai N setelah keluar dari Loop : %d”, bil);
getche();
}
4. Buatlah program seperti dibawah ini dan simpan dengan nama Con54, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Mencari rata-rata dari sejumlah bilangan */
main()
{
int i, n; /* n adalah jumlah bilangan */
float bil, rerata, total=0; /* bil adalah bilangan yg akan dimasukkan */
printf (“nJumlah bilangan : “);
scanf (“%d”,&n);
for (i=1;i<=n; i++)
{
printf (“Bilangan ke %d : “,i);
scanf (“%f”,&bil);
total +=bil;
}
rerata= total /n;
printf (“nRata-rata bilangan tersebut : %8.3f “, rerata);
getche();
}
5. Buatlah program seperti dibawah ini dan simpan dengan nama Con55, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Mencari rata-rata dari sejumlah bilangan positif */
main()
{
int i;
float bil, rerata, total=0;
for (i=1; i<=5 ; i++)
{
printf("Bilangan ke %d : “, i);
scanf("%f",&bil);
total+=bi1;
}
rerata=tota1/(i-2);
printf("Rata-rata bilangan tersebut : %8.3f”, rerata);
getche();
}
57. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
56
6. Buatlah program seperti dibawah ini dan simpan dengan nama Con56, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
main()
{
char kar;
clrscr ();
for (kar=’Z';kar>='A’; kar-=2)
printf("%c ", kar);
getche();
}
7. Buatlah program seperti dibawah ini dan simpan dengan nama Con57, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* memasukkan data karakter */
main();
{
char kar;
printf(“nProgram pengulangan tak berhingga”);
for ( ; ; )
{
printf(“nnKetikkan satu karakter : “);
kar=getche();
if (kar==’q’)
{
pritf(?nYachhh!! Benar sekali ?);
break;
}
printf (“nMaaf, anda salah mengetikkan karakter “);
printf (“nCoba kembali, jangan putus asa “);
}
getche();
}
8. Buatlah program seperti dibawah ini dan simpan dengan nama Con58, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Mencetak matriks */
main()
{
int n,i, j,elemen;
clrscr();
printf("nDimensi Matriks : “);
scanf (“%d”, &n);
printf(“nn”);
58. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
57
for(i=1; i<=n; i++)
{
printf(“n”);
for (j=1; j<=n; j++)
{
elemen = i== j ? 1 : 0;
printf(“t%d”, elemen) ;
}
}
getche();
}
9. Buatlah program seperti dibawah ini dan simpan dengan nama Con59, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Progran Memilih suatu bilangan dengan do while */
main()
{
int bil;
clrscr();
printf(“nProgram memilih suatu bilangan");
printf("nInputkan sebuah bilangan bulat");
scanf("%d",&bil);
do
{
printf("nAnda mengetikkan bilangan yang salah");
printf("nCoba lagi : ");
scanf("%d",&bil);
} while(bil!=0);
printf{"nBenar Sekali, Anda hebat !!!!");
getche();
}
10. Buatlah program seperti dibawah ini dan simpan dengan nama Con510, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Penggunaan break */
main()
{
int i;
clrscr();
for(i=1;i<=10;i++)
{
if(i==6)
break;
59. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
58
pritf("%5d",i);
}
printf(“nAkhir pengulangan”);
getche();
}
11. Buatlah program seperti dibawah ini dan simpan dengan nama Con511, kemudian
lakukanlah compile dan run, catat hasilnya pada lembar kerja yang tersedia.
/* Penggunaan continue */
main()
{
int i;
clrscr();
for(i=1;i<=10;i++)
{
if(i==6)
continue;
printf("%5d”,i);
}
printf("nAkhir pengulangan");
getche();
}
5.5 Lembar Kerja
No Nama File Keluaran
1
2
3
4
5
6
7
8
9
60. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
59
10
11
5.6 Pertanyaan dan Tugas
1. Buatlah flowchart dan program untuk menghitung total bilangan ganjil dari 10
sampai dengan 20 ?.
2. Buatlah program untuk menghitung total bilangan genap dari 10 sampai
dengan 20 ?.
3. Buatlah flowchart dan program untuk menghitung total bilangan bulat
kelipatan 3 yang berkisar dari 0 sampai dengan 20. (Buatlah kenaikan
pencacahnya=3, dan nilai awalnya dimulai dengan 0) ?.
4. PT Polinos memberi komisi salesmannya berdasarkan ketentuan sebagai
berikut:
Bila salesman berhasil menjual barang hingga 500.000 maka akan mendapat
komisi sebesar 10%. Bila lebih dari 500.000, untuk 500.000 pertama
komisinya 10% sedangkan sisanya mendapat 15%. Bila perusahaan tersebut
memiliki 5 orang salesman, tentu komisi yang diterima oleh setiap
salesmannya, serta total komisi yang telah dibayarkan oleh PT Polinos kepada
ke 5 salesman tadi.
Input: Hasil penjualan / salesman
Output: Komisi setiap salesman
Total komisi yang dibayarkan PT Polinos.
5. Buatlah flowchart dan program dalam bentuk menu yang tampilannya seperti
berikut:
MENU KONVERSI
[1] Bahan Bakar Minyak
[2] Mata Uang
[3] Suhu
[4] Keluar
Dengan ketentuan sebagai berikut:
61. Pemrograman Komputer I
Jobsheet
4:
Perulangan
(Looping)
Halaman
60
a. BBM meliputi premium, solar dan pertamax, ditampilkan untuk pembelian
dari 1 liter hingga 10 liter dengan kenaikan 1. Harga BBM ditentukan
sesuai dengan harga saat ini.
b. Mata Uang meliputi Rupiah, Yen dan Dollar. Tampilkan konversi rupiah
dari 1000 hinga 10000 dengan kenaikan 500. Nilai kurs mata uang yen dan
dollar ditentukan sesuai dengan kurs saat ini.
c. Suhu meliputi celcius, Fahrenheit dan Reamur. Tampilan konversi suhu
dalam celcius ke Fahrenheit dan Reamur dari 0 hingga 100 derajad dengan
kenaikan 10 derajad ?.
d. Keluar dengan menampilkan ucapan “TERIMA KASIH”.
e. Bila tidak dipilih menu Keluar maka program tetap menampikan MENU
KONVERSI walaupun telah dilakukan pilihan BBM, Mata Uang maupun
Suhu.
62. Permrograman Komputer I
Jobsheet
5:
Larik
(Array)
Halaman
61
JOBSHEET 5
Larik (Array)
5.1 Tujuan Instruksional Khusus
1. Mahasiswa mampu membuat program menggunakan array satu dimensi dan
algoritma array dua dimensi.
2. Mahasiswa mampu membuat program sortir menggunakan metoda bubble –sort
dan quick-sort.
5.2 Pendahuluan
Array adalah sekelompok data sejenis,yang disimpan ke dalam variabel dengan nama
yang sama, untuk membedakan variabel yang satu dengan yang lainya diberilah
indeks. Misalkan ada 10 bilangan yang akan disimpan kedalam variabel bil, maka
bilangan yang pertama akan disimpan kedalam varibel bil[0],bilangan kedua akan
disimpan kedalamvariabel bil[1], bilangan ketiga akan disimpan kedalam variabel [2],
dan seterusnya. Penulisan [0], [1], [2], [3],dan seterusnya disebut sebagai indeks dari
variabel bil.
5.2.1 Variabel Array
Struktur variabel array satu dimensi dituliskan sebagai:
Nama_variabel [indeks]
Ketentuan mengenai nama variabel array sama dengan nama variabel biasa,
sedangkan indeks menunjukkan nomor dari variabel tadi. Array dapat berdimensi
lebih dari satu, misalnya dua, tiga, dan seterusnya. Untuk array berdimensi
dua,variabelnya dituliskan:
Nama_variabel[indeks_1][indeks_2].
Indeks_1 menunjukkan baris, sedangkan indeks_2 menunjukkan kolom
63. Permrograman Komputer I
Jobsheet
5:
Larik
(Array)
Halaman
62
5.2.2 Deklarasi Variabel Array
Sebelum digunakan,variabel array perlu dideklarasikan terlebih dahulu. Cara
mendeklarasikan variabel array sama dengan variabel biasa, hanya disini diikuti oleh
suatu indeks yang menunjukkan jumlah maksimum variabel yang akan disediakan.
Bentuk umum deklarasi variabel array:
Tipe nama_variabel[indeks]:
Sebagai contoh,kita akan mempersiapkan variabel array dengan nama bil yang akan
menampung 10 data yang bertype float:
float bil [10]:
Indeks 10 menunjukkan bahwa variabel bil akan terdiri dari 10 buah elemen, dimana
setiap elemen akan menampung sebuah data. Elemen array akan diberi nomor secara
berurutan mulai dari nol(0) hingga sejumlah data tadi. Jadi bila pada deklarasi
ditentukan:
float bil[10]:
Berarti ke 10 elemen variabel bil akan diurutkan sebagai berikut:
Elemen pertama adalah bil[0]
Elemen kedua adalah bil[1]
Elemen ketiga adalah bil[2]
…………………………
………………………...
Elemen kesepuluh adalah bil[9]
Karena indeks array dimulai dari nol (0), sedangkan nomor elemen biasanya dimulai
dari satu (1), maka ada selisih satu antara nomor elemen dan nomor indeks.
64. Permrograman Komputer I
Jobsheet
5:
Larik
(Array)
Halaman
63
Nomor elemen dapat dibuat sama dengan nomor indeks.untuk mempermudah
pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data
yang dibutuhkan karena elemen dengan indeks nol tidak akan digunakan. Sebagai
contoh untuk deklarasi array dengan 10 bilangan,akan menjadi:
float bil [11];
Dengan bil[0] tidak digunakan .sehingga:
Elemen pertama adalah bil[1]
Elemen kedua adalah bil[2]
dst.............hingga
Elemen ke sepuluh adalah bil[10]
Tetapi apakah hal ini diperlukan? jawabannya saya serahkan kepada anda masing-
masing. Yang harus diingat, yaitu bila variabel array yang digunakan sudah lebih dari
satu jenis, maka maka variabel yang dikorbankan bukan hanya satu lagi, tetapi
sejumlah array yang ada, karena semua elemen ke nol dari masing-masing array tidak
akan digunakan. Contoh lain adalah cara untuk mendeklarasikan variabel array kar
yang akan menampung 4 buah karakter.
char kar [4];
65. Permrograman Komputer I
Jobsheet
5:
Larik
(Array)
Halaman
64
Keempat elemen variabel array ini adalah : kar[1],kar[2],dan kar[3]. Contoh yang
berikutnya,kita akan mendeklarasikan variabel array nomor yang akan menampung 5
data integer:
int nomor[5];
Dengan elemen-elemen array nomor [0], nomor [1], nomor [2], nomor [3] dan nomor
[4]. Deklarasi variabel array dapat dilakukan baik didalam suatu fungsi, maupun
diluar fungsi-fungsi yang ada.jika deklarasi dilakukan didalam suatu fungsi,maka
variabel array ini akan bersifat lokal yang hanya akan dikenal oleh fungsi
tersebut.sebaiknya bila deklarasi dilakukan diluar fungsi,maka variabel array ini akan
bersifat global,yang akan dikenal oleh beberapa atau seluruh fungsi.
5.2.3 Inisialisasi Array Satu Dimensi
Bila diperlukan,variabel array dapat juga diberi nilai awal (inisialisasi). Inisialisasi
dapat dilakukan bersama dengan deklarasi atau tersendiri. Cara menginisialisasi suatu
array adalah dengan meletakkan elemen-elemen array diantara tanda kurung kurawal
seperti:
int bil[5] = {0,1,3,5,2};
Dan diantara elemen yang satu dengan yang lainnya dipisahkan dengan koma. Contoh
inisialisasi di atas menyatakan bahwa:
Bil[0]=0
Bil[1]=1
Bil[2]=3
Bil[3]=5
Bil[4]=2
Sedangkan cara yang kedua yaitu dengan mendefinisikan array tadi sebagai static
array. Static array adalah suatu array yang diinisilisasikan didalam suatu fungsi dan
bersifat seperti variable local, artinya array ini hanya dikenal oleh fungsi yang
bersangkutan, tidak oleh fungsi-fungsi yang lain.sama halnya dengan external array
atau global,nilai yang dimiliki oleh elemen-elemen static array masih tetap akan
tersimpan didalam memori meskipun program dihentikan,jadi nilai-nilai tersebut tidak
66. Permrograman Komputer I
Jobsheet
5:
Larik
(Array)
Halaman
65
hilang sehingga masih dapat digunakan oleh program yang lain. Cara
mendeklarasikan static array yaitu dengan menambahkan kata static didepan tipe
variable atau type specifier seperti:
static int bil[5]={0,0,0,0,0};
apakah keuntungan lain menggunakan global static array dibandingkan dengan
automatic array. Pada automatic array yang tidak diinisialisasi, elemen-elemen array
tersebut akan memiliki nilai yang tidak beraturan.
5.2.4 Array Dua Dimensi
Struktur array dua dimensi memiliki dua macam indeks yang dituliskan seperti
berikut ini:
Nama_variabel [indeks1] [indeks2]
Indeks1 menunjukkan jumlah atau nomor baris, sedangkan indeks2 menunjukkan
jumlah atau nomor kolom
Jumlah elemen yang dimiliki oleh array dua dimensi dapat ditentukan dari hasil
perkalian Indeks1 * Indeks2. Misalkan: array A[2][3] akan memiliki 2 * 3 = 6
elemen, B[7][8] akan memiliki 7 * 8 = 56 elemen. Penanganan terhadap array
dua dimensi mirip sekali dengan array satu dimensi. Pertama, akan diberikan
contoh menginisialisasi array dua dimensi:
67. Permrograman Komputer I
Jobsheet
5:
Larik
(Array)
Halaman
66
atau dapat pula dituliskan dengan # define:
Selanjutnya adalah contoh menginisialisasi array dua dimensi:
Keluaran dari contoh di atas adalah sbb,:
elemen bil [0] [0] adalah 1.1
elemen bil [0] [1] adalah 1.2
elemen bil [0] [2] adalah 1.3
elemen bil [0] [3] adalah 1.4
elemen bil [0] [4] adalah 1.5
elemen bil [1] [0] adalah 2.1
elemen bil [1] [1] adalah 2.2
elemen bil [1] [2] adalah 2.3
elemen bil [1] [3] adalah 2.4
elemen bil [1] [4] adalah 2.5
dst ………
6.2.5 Mengurutkan Array
Proses lain yang cukup penting dipelajari adalah menngurutkan array. Sebenarnya
cukkup banyak metode untuk mengurutkan aray ini, namun pada kesempatan ini
hanya dua metode saja yang akan dibahas, yaitu bubble sort dan quick sort. Bubble
sort dipillih karena metode ini memiliki metode yang mudah dipelajari, Sedangkan