Algoritma dan
Pemrograman
Jobsheet 1
Algoritma dan I/O
1.1 Kompetensi
1. Mahasiswa dapat membuat diagram alir (flow-chart) untuk menyelesaikan
permasalahan program.
2. Mahasiswa dapat membedakan konstanta dengan variabel.
3. Mahasiswa dapat menggunakan tipe data (integer, float, character , dan string) yang
sesuai pada sebuah program.
4. Mahasiswa mampu menggunakan kata tercadang printf() untuk mencetak keluaran,
dan scanf() untuk member input pada variabel dengan benar.
5. 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.
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.
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.
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;
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:
1. Aktifkan software bahasa C, dan lakukanlah setting directories dengan cara pilih
Options pada menu utama software, kemudian pilih Directories pada sub-menu
options.
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*/
printf(“Jadi besarnya arus = %8.3f”, Arus);
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”, ‘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();
1 Cahjoss 1.2
2 Cahjoss 2.2
3 Cahjoss 3.2
4 Cahjoss 4.2
5 Cahjoss 5.2
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,-