Alg1 02 09
Alg1 02 09
ALGORITMA
2.1 Pendahuluan
Komputer hanya melakukan apa yang diperintahkan manusia dan bukan
apa yang manusia inginkan. Sering kali apa yang diinginkan untuk dilakukan oleh
komputer tidak sama dengan apa yang diperintahkan karena adanya kesulitan
untuk menerjemahkan keinginan menjadi perintah yang dipahami oleh komputer.
Hal ini biasa dihadapi oleh para programmer pemula. Sebagai contoh, menghitung
rata-rata hasil percobaan. Bagi manusia, perintah itu cukup jelas: ada beberapa
data hasil percobaan, semua data tersebut dijumlahkan lalu dibagi dengan
banyaknya data sehingga didapat rata-rata hasil percobaan. Bagi komputer,
perintah itu harus diperjelas lebih lanjut dengan menjelaskan apa yang dimaksud
dengan data hasil percobaan, ada berapa banyaknya, bagaimana cara
memasukkannya ke komputer, bagaimana cara menjumlahkannya, bagaimana
cara mencari rata-ratanya, dan seterusnya. Dengan demikian perintah untuk
mencari rata-rata tersebut akan diterjemahkan menjadi sederetan perintah yang
lebih terperinci (lihat gambar 2.1). Hal inilah yang dilakukan oleh para
programmer.
Algoritma Menghitung_Rata_Rata_10_Data
1. S = 0
2. Write(“Masukkan 10 buah data”)
3. For (i = 1 ; i <= 10 ; i++)
{ Read (data)
S = S + data
}
4. rata = S/10
5. Write (“Rata-rata dari 10 data adalah”, rata)
6. Halt
17
Algoritma dan Pemrograman I
BAB II : Algoritma - 18
Algoritma dan Pemrograman I
Bahan:
1 piring nasi putih
1 butir telur
1 susis diiris tipis
1 siung bawang putih dicincang
Margarin untuk menumis
Bumbu:
Kecap manis, kecap asin, garam, dan saus tomat
secukupnya
Cara membuat:
1. Panaskan margarin
2. Tumis bawang putih sampai harum.
3. Masukkan telur, buat orak arik
4. Masukkan potongan susis, aduk
5. Masukkan nasi putih beserta bumbu-bumbu
sambil diaduk sampai rata.
BAB II : Algoritma - 19
Algoritma dan Pemrograman I
Tiap langkah dalam algoritma biasanya dimulai dengan teks yang ditulis di
antara tanda kurung siku. Teks ini berisi keterangan/komentar singkat mengenai
suatu langkah, biasanya berupa deskripsi umum dari sebuah atau beberapa
langkah berikutnya. Fungsinya adalah untuk meningkatkan pembacaan dan
BAB II : Algoritma - 20
Algoritma dan Pemrograman I
BAB II : Algoritma - 21
Algoritma dan Pemrograman I
Untuk masalah sederhana seperti di atas, algoritma dengan deskripsi narasi ini
dapat dengan mudah dimengerti, tetapi untuk masalah yang lebih rumit dan luas,
algoritma dengan dengan deskripsi narasi ini akan menjadi bertele-tele dan
membosankan.
BAB II : Algoritma - 22
Algoritma dan Pemrograman I
Start
Tidak NR Ya
<60
?
Stop
BAB II : Algoritma - 23
Algoritma dan Pemrograman I
Algoritma Menentukan_Kelulusan
BAB II : Algoritma - 24
Algoritma dan Pemrograman I
BAB II : Algoritma - 25
Algoritma dan Pemrograman I
2.3.1 Konstanta
Konstanta (constant) adalah kuantitas yang nilainya tidak berubah selama
program dijalankan. Ada macam-macam konstanta sesuai dengan jenis datanya,
yaitu :
1. Konstanta Numerik: konstanta yang menyimpan data numerik. Ada 2 jenis
konstanta numerik yaitu:
a. Integer merupakan deretan angka yang tidak mempunyai titik desimal,
atau deretan angka yang berupa bilangan bulat, positif atau negatif. Untuk
bilangan negatif, deretan angka tersebut didahului oleh tanda – (minus).
Contoh : 12, -1, 0
b. Real merupakan bilangan yang mempunyai sebuah titik desimal.
Konstanta real dapat juga direpresentasikan dengan cara floating point
yaitu dengan bantuan karakter E (eksponen). Cara penulisannya adalah
diawali dengan angka integer lalu titik desimal lalu angka lainnya dan
diakhiri oleh karakter E dan angka integer. Untuk bilangan negatif, deretan
angka tersebut didahului oleh tanda (-).
Contoh :
- Desimal : 0.0124 32.92001 1256.0
BAB II : Algoritma - 26
Algoritma dan Pemrograman I
2.3.2 Indentifier
Identifier (pengenal) adalah nama yang dibuat untuk algoritma, konstanta,
variabel, fungsi, prosedur, dan lain-lain. Dalam sebuah algoritma, identifier harus
bersifat unik, maksudnya jika sebuah variabel sudah diberi nama “X” maka tidak
boleh ada variabel lain, konstanta, fungsi, prosedur, dan lain-lain dalam algoritma
tersebut yang boleh bernama “X” juga. Selain harus unik, ada beberapa aturan lain
dalam membuat nama (identifier), yaitu:
1. Identifier harus dimulai dengan huruf lalu dapat diikuti oleh
huruf, angka, atau garis bawah ( _ ). Contoh: A, A1, A_1, Apa_itu
BAB II : Algoritma - 27
Algoritma dan Pemrograman I
2.3.3 Variabel
Variabel adalah nama simbolik yang digunakan untuk menggantikan suatu
nilai. Variabel dapat menyimpan macam-macam nilai, tetapi pada satu saat hanya
mempunyai sebuah nilai. Sebagai contoh diketahui rumus: K = 2*P + 2*L, dengan
K adalah keliling dari persegi panjang yang mempunyai panjang tertentu (P) dan
lebar tertentu (L). K, P, dan L adalah nama variabel yang digunakan sebagai
pengganti angka-angka yang menunjukkan keliling, panjang, dan lebar dari suatu
persegi panjang. Disarankan untuk membuat nama variabel yang merupakan
gambaran dari nilai yang digantikannya. Aturan untuk membuat nama variabel
sama seperti aturan untuk membuat identifier.
BAB II : Algoritma - 28
Algoritma dan Pemrograman I
BAB II : Algoritma - 29
Algoritma dan Pemrograman I
2.4 Ekspresi
Ekspresi merupakan kombinasi dari variabel, konstanta, dan operator.
Ekspresi biasanya berupa rumus umum dan digunakan untuk memberikan nilai
pada suatu variabel. Bentuk umumnya :
Variabel = Ekspresi
Ekspresi dapat berupa konstanta, variabel lain yang sudah mempunyai nilai, atau
rumus yang akan dihitung. Dari bentuk umum di atas, dapat dianalogikan variabel
sebagai wadah dan ekspresi sebagai isi. Dengan demikian, jenis variabel harus
sama dengan jenis ekspresi. Yang perlu diingat adalah bahwa semua variabel
dalam ekspresi harus mempunyai nilai yang benar sebelum digunakan. Jika tidak,
maka ekspresi tersebut tidak dapat dikerjakan. Perhatikan contoh algoritma
berikut ini (semua variabel berjenis real).
Algoritma CONTOH
1. A = 17.5
2. Term1 = 13.6 + A
3. Term2 = 0.7 + 28.6
4. Result = Term1 / Term2
5. Write (Result)
Langkah ke dua pada algoritma di atas tidak akan dapat dilaksanakan jika
variabel A belum mempunyai nilai. Demikian juga pada langkah ke empat, tidak
akan dapat dilaksanakan jika variabel Term1 dan Term2 belum mempunyai nilai.
Dengan demikian urutan pengerjaan instruksi dalam algoritma harus diatur
sedemikian rupa sehingga suatu variabel selalu mempunyai nilai ketika variabel
tersebut digunakan.
BAB II : Algoritma - 30
Algoritma dan Pemrograman I
1. Jenis konstanta dan variabel yang menjadi anggota suatu ekspresi aritmetika
harus sama.
Contoh : 4.0*A*B ⇒ konstanta dan variabel berjenis real
J+K+3 ⇒ konstanta dan variabel berjenis integer
2. Operator dalam ekspresi aritmetika harus ditulis dengan jelas dan dalam satu
baris.
Contoh : B2-4AC ⇒ harus ditulis menjadi : B↑2-4*A*C
c
ab + −f 3 ⇒ harus ditulis menjadi : a*b+c/d-f↑3
d
3a+6b ⇒ harus ditulis menjadi : 3*a+6*b
5 X1 + 2 X2 ⇒ harus ditulis menjadi : 5*X1+2*X2
BAB II : Algoritma - 31
Algoritma dan Pemrograman I
2. Hitung hasil ekspresi berikut ini dan tentukan pula jenis datanya
a. 6 ↑ 2 + 5 b. 6 + 2 ↑ 5 c. 7 + 3 – 4.2
d. 7 – 3 + 4.2 e. 5 div 3 – 1 f. 5 – 1 div 3
g. 5 / 3 – 1 h. 5 – 1 / 3 i. 4.8 div 2.5 + 1.5
j. 4.8 + 2.5 div 1.5 k. 4.5 * 2 + 3 l. 4.5 + 2 * 3
BAB II : Algoritma - 32
Algoritma dan Pemrograman I
C
c. D = B × (1+R)n d. E = ( A + B )
D
A + B 2 − 4CD
e. X1 =
2( A + B )
f. C =
A1
B1 + A2
B2 + A3
B3
1
3 2
g. RT = 1
+
1
+
1 h. Y = aX 1 + bX 2 + cX 3 + d
R1 R 2 R3
BAB II : Algoritma - 33
Algoritma dan Pemrograman I
BAB II : Algoritma - 34
Algoritma dan Pemrograman I
Dengan daftar input (input list) adalah deretan nama variabel tempat menyimpan
data yang dimasukkan. Sebagai contoh:
a. Read(x)
⇒ ada sebuah data yang dimasukkan melalui keyboard lalu disimpan dalam
variabel x.
b. Read(A, B,C)
⇒ ada tiga buah data yang dimasukkan melalui keyboard, data pertama
disimpan dalam variabel A, data kedua disimpan dalam variabel B dan
data ketiga disimpan dalam variabel C.
Yang perlu diperhatikan dalam memasukkan data, adalah jenis datanya. Jenis data
dari data yang dimasukkan harus sama dengan jenis variabel yang menyimpan
data itu. Jika tidak sama maka akan terjadi kesalahan input yang dapat
menyebabkan program berhenti atau hasil program salah.
Output hasil proses ditampilkan melalui alat output seperti monitor, printer
dan sebagainya atau disimpan dalam file untuk digunakan kelak atau diproses
lebih lanjut. Perintah untuk menampilkan hasil adalah:
BAB II : Algoritma - 35
Algoritma dan Pemrograman I
Selain untuk menampilkan isi suatu variabel, perintah WRITE juga berfungsi
untuk menampilkan teks atau string yang berisi informasi mengenai data yang
perlu dimasukkan atau isi variabel yang ditampilkan. Sebagai contoh:
Algoritma CETAK
Mencetak pesan ke layar monitor, menerima input dari keyboard
lalu mencetak pesan beserta isi variabel ke layar monitor. Semua
variabel berjenis string.
BAB II : Algoritma - 36
Algoritma dan Pemrograman I
Perhatikan, tanda petik digunakan bersama perintah WRITE untuk mencetak teks
atau string ke layar. Ketika teks tersebut dicetak ke layar, tanda petik tersebut
tidak akan ikut dicetak.
Tabel 2.3 Trace table dari algoritma Menentukan_Kelulusan dengan nilai input
80, 90, 85 dan 95
Langkah N1 N2 N3 N4 NR Kondisi If Output
1 80 90 85 95 ?
2 80 90 85 95 87
3 80 90 85 95 87 false Anda lulus. Nilai anda = 87
4 selesai
Tabel 2.4 Trace table dari algoritma Menentukan_Kelulusan dengan nilai input
40, 50, 45 dan 65
Langkah N1 N2 N3 N4 NR Kondisi If Output
1 40 50 45 65 ?
2 40 50 45 65 50
3 40 50 45 65 50 true Anda tidak lulus. Nilai
anda = 50
4 selesai
BAB II : Algoritma - 37
Algoritma dan Pemrograman I
Keterangan:
- Pada langkah 1, NR belum mempunyai nilai, karena itu diberi simbol “?”.
- Kondisi If : hasil pengujian pada instruksi if
/* Program ALG01_1.CPP
Program untuk mencetak pesan ke layar monitor, menerima input
dari keyboard dan menampilkan input dan pesan ke layar
monitor*/
#include<conio.h>
#include<iostream.h>
void main ()
{
clrscr();
cout<<"Fakultas Teknologi Informasi" << endl;
cout<<"Universitas Tarumanagara" << endl;
cout<<"Nomor Pokok Mahasiswa :" ;
cin>>npm;
cout<<"Nama Mahasiswa : ";
cin>>nama;
cout<<"NPM = "<< npm <<endl;
cout<<"Nama = "<< nama <<endl;
}
BAB II : Algoritma - 38
Algoritma dan Pemrograman I
2 P (sin 2 α + cos 2 β )
e. Rn =
Q (sin 2α + cos 2 β )
2. Tentukan hasil ekspresi berikut ini jika diketahui (A, B dan C adalah
variabel integer, D, E dan F adalah variabel real):
A = -1 B=2 C=4
D = -2.5 E = 1.5 F = 0.5
a. (A – B) ↑ C / B + C + A = ……..
b. A * B + C / D + E ↑ (E div C) = ….
c. B * trunc(E) – A * D + F = ……….
d. D – F + mod(C,B) + C div D = . . . . . . .
e. (Sqrt(C – B * D)) > (round(E) * F) = ………
f. (A ≤ B) and (D>E) or (not(C<>F)) = …….
BAB II : Algoritma - 39
Algoritma dan Pemrograman I
6. Biaya asuransi ladang pertanian terhadap bencana alam adalah 3.5 persen dari
biaya yang ditanggung per hektar dikali dengan luas tanah yang akan
diasuransikan. Diasumsikan asuransi hanya menanggung ladang kentang,
singkong, dan jagung. Buatlah algoritma untuk membaca jenis ladang, luas
ladang, dan biaya yang ditanggung, lalu menghitung dan menampilkan
besarnya asuransi yang harus dibayar petani.
BAB II : Algoritma - 40