0% menganggap dokumen ini bermanfaat (0 suara)
571 tayangan24 halaman

Alg1 02 09

Bab II membahas algoritma dan cara mengekspresikannya. Algoritma adalah urutan langkah-langkah sistematis untuk menyelesaikan masalah dengan bantuan komputer. Ada tiga cara utama untuk mengekspresikan algoritma yaitu deskripsi narasi, bagan alur, dan bahasa algoritma.

Diunggah oleh

Allen Sky Walker
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
571 tayangan24 halaman

Alg1 02 09

Bab II membahas algoritma dan cara mengekspresikannya. Algoritma adalah urutan langkah-langkah sistematis untuk menyelesaikan masalah dengan bantuan komputer. Ada tiga cara utama untuk mengekspresikan algoritma yaitu deskripsi narasi, bagan alur, dan bahasa algoritma.

Diunggah oleh

Allen Sky Walker
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 24

BAB II

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

Gambar 2.1 Algoritma menghitung rata-rata dari 10 data


Membuat program komputer sehingga komputer dapat menjadi alat bantu
penyelesaian masalah dapat saja menjadi pekerjaan yang sulit tetapi ada dua
pendekatan untuk membuatnya lebih mudah, yaitu:
a. Membagi masalah menjadi sub-sub masalah yang tidak terlalu kompleks
dan masing-masing sub masalah dibuat sub programnya. Cara ini dikenal
sebagai pendekatan divide-and-conquer.
b. Memisahkan fase pemecahan masalah dengan fase implementasi. Pada
fase pemecahan masalah, hanya berkonsentrasi pada urut-urutan langkah yang
menggambarkan solusi masalah. Urutan langkah inilah yang disebut
algoritma. Dan pada fase implementasi, berkonsentrasi pada membuat
program dengan cara menerjemahkan algoritma ke suatu bahasa
pemrograman.

Algoritma yang dibuat pada fase pemecahan masalah (problem solving),


mula-mula hanya berupa instruksi secara garis besarnya saja dengan sesedikit
mungkin detil, hanya memperhatikan secara umum bagaimana komputer nantinya
akan menghasilkan solusi. Algoritma seperti ini disebut algoritma umum (general
algorithm). Kemudian algoritma umum ini ditambahkan detil-detil secara
bertahap sehingga pada akhirnya semua instruksi dalam algoritma sudah cukup
rinci sehingga dapat dieksekusi oleh komputer. Algoritma seperti ini disebut
algoritma rinci (refinement algorithm).

Setelah algoritma rinci selesai dibuat, maka selanjutnya adalah fase


implementasi yaitu menerjemahkan algoritma ke suatu bahasa pemrograman
untuk dieksekusi komputer. Biasanya sebuah instruksi dalam algoritma rinci
diterjemahkan menjadi sebuah instruksi dalam bahasa pemrograman.

Meskipun kata algoritma baru dikenal, sebenarnya konsep algoritma sudah


sering ditemui sehari-hari. Contohnya ketika seseorang menunjukkan jalan kepada
orang lain untuk menuju ke suatu tempat, resep masakan (lihat gambar 2.2),
petunjuk untuk merakit mainan, dan sebagainya. Semua hal tersebut
menggunakan urut-urutan langkah untuk mencapai suatu tujuan (tempat,

BAB II : Algoritma - 18
Algoritma dan Pemrograman I

makanan, mainan, dan sebagainya). Yang perlu diperhatikan, langkah-langkah


tersebut harus diikuti sesuai dengan urutannya. Maksudnya yang pertama kali
Nasi Goreng Nath’s

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.

Gambar 2.2 Contoh algoritma dalam kehidupan sehari-hari

dikerjakan adalah langkah nomor 1, setelah selesai langkah nomor 1, baru


dikerjakan langkah nomor 2 dan begitu seterusnya sampai seluruh langkah selesai
dikerjakan.

2.1.1 Asal kata algoritma


Kata algoritma berasal dari kata dalam bahasa Inggris, algorithm. Donald
E. Knuth, sorang ilmuan komputer (computer scientist) dari Amerika Serikat,
dalam bukunya “The Art of Computer Programming” menemukan bahwa kata
algorithm berasal dari kata:
a. Algorism, artinya proses aritmetika dengan angka Arab (process of doing
arithmatic with arabic numerals). Kata ini ditemui dalam buku “Kitāb al-jabr

BAB II : Algoritma - 19
Algoritma dan Pemrograman I

wa’l-muqābala” atau “Buku aturan-aturan untuk restorasi dan reduksi” yang


ditulis oleh Abū ’Abd Allāh Muhammad ibn Mūsā al-Khwārizmī, ahli
matematika bangsa Arab dari abad ke 9.
b. Algorithmus infinitesimalis, artinya cara menghitung dengan bilangan
yang sangat kecil (ways of calculation with infinitely small quantities). Kata
ini dikemukakan oleh Leibniz, seorang ilmuan pada abad ke 18.
c. Algorithm, kata ini baru muncul di kamus Webster’s New World
Dictionary yang diterbitkan tahun 1957, artinya proses atau metode untuk
melakukan sesuatu, biasanya berhubungan dengan komputasi (a process or
method for doing something, ussually with a computational flavor). Arti inilah
yang sekarang digunakan.

2.1.2 Sifat algoritma


Untuk dapat memecahkan masalah, algoritma yang dibuat harus
memenuhi dua sifat yaitu:
a. Langkah-langkah dalam algoritma harus sederhana, tidak berarti ganda
dan mengikuti aturan yang ada.
b. Efektif yaitu dapat menyelesaikan masalah dalam sejumlah langkah
tertentu.

2.1.3 Struktur Algoritma

Algoritma biasanya ditulis dalam tiga bagian yaitu:


a. Kepala (Header): berisi nama algoritma.
b. Deklarasi: berisi penjelasan mengenai variabel dan jenisnya.
c. Badan: berisi langkah-langkah algoritma yang diakhiri dengan instruksi
“Halt”

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

pemahaman mengenai langkah-langkah dalam algoritma. Apapun yang ditulis di


antara tanda kurung siku ini tidak akan mempengaruhi eksekusi algoritma.

2.2 Mengekspresikan Algoritma


Algoritma yang diekspresikan dengan jelas dan mudah diikuti akan
memudahkan dalam tahap implementasinya, yaitu dalam hal penerjemahan
algoritma ke suatu bahasa pemrograman serta dalam dokumentasi program setelah
program selesai dibuat. Ada 3 cara untuk mengekspresikan algoritma yaitu
deskripsi narasi, bagan alur (flowchart) dan bahasa algoritma (pseudocode).
Masing masing cara mempunyai kelebihan dan kekurangannya sendiri.

Untuk menjelaskan masing-masing ekspresi serta melihat kelebihan dan


kekurangan dari masing-masing ekspresi, ketiga macam ekspresi itu digunakan
untuk menjawab masalah berikut ini:

Nilai akhir mahasiswa (NR) dihitung berdasarkan rata-rata dari 4 buah


nilai tes yang telah dilakukan oleh mahasiswa. Nilai rata-rata hasil
perhitungan digunakan untuk menentukan apakah si mahasiswa lulus atau
tidak. Jika nilai rata-ratanya lebih dari atau sama dengan 60 maka dia
lulus; jika nilai rata-ratanya kurang dari 60 maka dia tidak lulus.

2.2.1 Deskripsi narasi


Deskripsi narasi adalah cara mengekspresikan algoritma dengan cara
langsung dengan menggunakan bahasa sehari-hari. Resep masakan adalah salah
satu contoh dari deskripsi narasi ini. Karena menggunakan bahasa sehari-hari
maka setiap orang dapat menggunakannya dan tidak diperlukan suatu latihan
khusus untuk mempelajarinya. Tetapi yang menjadi masalah adalah bahwa bahasa
sehari-hari ini sering bertele-tele dan kurang jelas (tepat) sehingga kurang dapat
diandalkan sebagai alat untuk mentransmisikan informasi. Bahasa sehari-hari juga
dipengaruhi oleh nuansa dan perasaan orang yang berbicara dan orang yang
mendengarkan. Jika nuansa dan perasaan kedua orang tersebut tidak sama maka
mungkin dapat terjadi kesalahan interpretasi atau ada informasi yang hilang.

BAB II : Algoritma - 21
Algoritma dan Pemrograman I

Deskripsi narasi untuk menyelesaikan masalah di atas adalah:

Bacalah 4 buah nilai tes. Hitunglah rata-ratanya dengan menjumlahkan ke


4 nilai tes tadi dan kemudian membaginya dengan 4. Jika nilai rata-rata
dari keempat nilai tes tadi kurang dari 60 maka tampilkan keterangan
“Anda tidak lulus” beserta nilai rata-ratanya. Jika sebaliknya tampilkan
keterangan “Anda lulus” beserta nilai rata-ratanya.

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.

2.2.2 Bagan Alur (Flowchart)

Kadang-kadang lebih mudah menuangkan ide dengan gambar daripada


dengan kata-kata atau tulisan. Sebagai contoh, akan lebih mudah menunjukkan
jalan kepada seseorang dengan menggunakan peta daripada hanya dengan
menggunakan kata-kata saja. Bagan alur atau flowchart adalah bagan yang
memperlihatkan logika dari algoritma dengan menekankan langkah-langkah
individual dan hubungan diantaranya. Maksudnya bagaimana aliran kontrol dan
data berjalan dari satu proses ke proses lain. Tiap proses (operasi atau instruksi)
digambarkan dengan simbol dan aliran kontrol/data digambarkan dengan anak
panah di antara simbol. Simbol–simbol yang biasa digunakan untuk menggambar
flowchart diambil dari ANSI (American National Standard Institute), dapat dilihat
pada gambar 2.3 di bawah ini. Dengan menggunakan simbol-simbol tersebut
maka dibuat flowchart untuk menyelesaikan masalah di atas (lihat gambar 2.4).
Berbeda dengan algoritma yang menggunakan deskripsi narasi atau bahasa
sehari-hari, flowchart sudah mempunyai bentuk yang standar sehingga kesalahan
interpretasi dapat dihindari. Flowchart sangat populer ketika bahasa pemrograman
generasi kedua mulai digunakan (sekitar tahun 1960-an). Seiring dengan
munculnya bahasa pemrograman baru yang lebih terstruktur, kepopuleran
flowchart pun menyusut. Sekarang para programmer tidak lagi menggunakan

BAB II : Algoritma - 22
Algoritma dan Pemrograman I

flowchart untuk mendesain algoritma karena flowchart tidak mendukung konsep


rekursif dan meskipun flowchart menggambarkan logika dari suatu algoritma
tetapi kadang-kadang malah mengaburkan struktur program itu sendiri.

Awal atau akhir Proses atau perhitungan

Input atau output Awal dari struktur pengulangan

Proses yang sudah didefinisikan Arah aliran data/kontrol


(Sub program)

Keterangan Penghubung /konektor Keputusan atau kondisi

Gambar 2.3 Simbol-simbol yang digunakan untuk membuat flowchart

Start

Baca 4 nilai: Read N1, N2, N3, N4


N1, N2, N3, N4

NR = (N1 + N2 + N3 + N4)/4.0 NR: nilai rata-rata

Tidak NR Ya
<60
?

Write “Anda lulus.” Write “Anda tidak lulus. “


“Nilai anda = “, NR “Nilai anda = “, NR

Stop

BAB II : Algoritma - 23
Algoritma dan Pemrograman I

Gambar 2.4 Flowchart untuk menghitung nilai rata-rata (NR)


dan menentukan kelulusan
2.2.3 Bahasa algoritma

Bahasa algoritma adalah bahasa yang seperlunya saja, tidak bertele-tele


seperti bahasa sehari-hari dan biasanya berupa kalimat perintah, sehingga
algoritmanya mudah dibaca dan dimengerti. Pada umumnya pembuatan algoritma
dimulai dari algoritma yang umum (general algortihm). Berbeda dari bahasa
sehari-hari, instruksi-instruksi dalam bahasa algoritma diurutkan dan diberi
nomor. Urutan dan nomor instruksi ini menunjukkan urutan pengerjaan instruksi-
instruksi dalam algoritma.

Algoritma umum untuk menyelesaikan masalah di atas adalah:


1. Baca 4 buah nilai
2. Hitung rata-ratanya dengan menjumlahkan ke 4 nilai lalu dibagi empat
3. Jika rata-rata kurang dari 60,
maka tampilkan nilai rata-rata dengan keterangan “Anda tidak lulus”,
jika tidak, tampilkan nilai rata-rata dengan keterangan “Anda lulus”.
4. Halt

Algoritma umum ini diperbaiki dan ditambah dengan detil-detil sehingga


dapat menjadi algoritma rinci (detail algorithm). Algoritma rinci ini biasanya
sudah menggunakan bahasa yang ringkas dan notasi algoritma sehingga disebut
sebagai pseudocode karena sudah menggunakan konsep-konsep pemrograman
seperti variabel, konstanta dan sebagainya. Variabel adalah suatu tempat di
memori komputer yang diberi nama. Tempat itu digunakan untuk menyimpan
suatu nilai. Nilai yang disimpan tergantung dari input yang dimasukkan melalui
keyboard atau dari hasil perhitungan yang telah dilakukan sebelumnya.

Untuk menjelaskan instruksi dalam pseudocode, dapat ditambah


keterangan yang ditulis dalam tanda kurung siku […] sebelum instruksi
pseudocode. Pseudocode masalah di atas beserta keterangannya adalah:

Algoritma Menentukan_Kelulusan

BAB II : Algoritma - 24
Algoritma dan Pemrograman I

Algoritma untuk menentukan nilai kelulusan seorang siswa.


N1, N2, N3, dan N4 adalah variabel integer yang menyimpan
data nilai. NR adalah variabel integer yang menyimpan nilai
rata-rata
1. [membaca 4 buah nilai dari alat input]
Read (N1, N2, N3, N4)
2. [menghitung rata-rata dari ke 4 nilai tadi]
NR = (N1 + N2 + N3 + N4)/4
3. [Jika rata-rata < 60 maka tidak lulus, selain itu, lulus]
If (NR < 60)
{ Write (“Anda tidak lulus. Nilai anda = “, NR) }
Else
{ Write (“Anda lulus. Nilai anda = “, NR) }
4. Halt

Dari solusi-solusi di atas dengan menggunakan macam-macam alat


algoritma, dapat dilihat bahwa solusi dengan menggunakan bahasa algoritma atau
pseudocode adalah solusi yang paling mudah dibaca dan dimengerti serta
tampilannya paling mirip dengan bahasa pemrograman sehingga lebih mudah
diterjemahkan ke suatu bahasa pemrograman kelak.

LATIHAN SOAL SUBBAB 2.2

1. Carilah contoh algoritma dalam kehidupan sehari-hari


2. Buat algoritma untuk menghitung dan menampilkan luas dan keliling
sebuah persegi panjang jika diketahui panjang dan lebarnya.
3. Buat algoritma untuk menghitung dan menampilkan jari-jari, keliling dan
luas sebuah lingkaran jika diketahui diameternya.
4. Buat algoritma untuk menghitung dan menampilkan luas dan volume
kubus jika diketahui panjang sisinya.
5. Buat algoritma untuk menghitung dan menampilkan resistansi total dari 3
buah resistor yang dipasang secara seri dan paralel.
6. Buat algoritma untuk menghitung dan menampilkan jumlah angka integer
dari 1 sampai 20.
7. Buat algoritma untuk menghitung dan menampilkan hasil konversi
temperatur dari derajat Celcius ke Fahrenheit.

BAB II : Algoritma - 25
Algoritma dan Pemrograman I

2.3 Konstanta dan Variabel


Data adalah fakta sesungguhnya yang didapat dari hasil pengukuran atau
statistik yang digunakan sebagai dasar pemikiran, diskusi, dan perhitungan. Data
merupakan aspek penting dalam pemrograman. Tanpa adanya data yang
dimasukkan dan diproses, secanggih apapun program yang buat tidak akan
menghasilkan apa-apa. Semua data yang dimasukkan, disimpan dalam bentuk
konstanta atau variabel. Data yang dimasukkan ke komputer dibedakan
berdasarkan jenis datanya. Hal ini yang menentukan bagaimana data tersebut
disimpan dan diintepretasikan oleh komputer. Komputer yang mula-mula hanya
dapat memroses data berjenis numerik saja, tetapi sekarang komputer dapat
memroses macam-macam jenis data: karakter, boolean, pointer, teks, suara, video
dan sebagainya.

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

- Floating Point : 1.24E-2 0.3292001E2 1.256E3


2. Karakter (Character): berupa deretan karakter (dapat berupa huruf atau
angka) yang ditulis di antara tanda petik (‘.....’). Deretan karakter ini disebut
juga string.
Contoh: ‘program’ ‘algoritma’ ‘123456’
3. Logika (Logical) atau Boolean: berupa nilai kondisi benar (TRUE) atau salah
(FALSE).
4. Enumerasi (Enumeration) merupakan jenis data yang didefinisikan oleh
pembuat program.
Contoh : TYPE warna = (merah, kuning, hijau)
Instruksi TYPE digunakan untuk membuat jenis data baru beserta data yang
termasuk dalam jenis itu. Untuk contoh di atas, “merah”, “kuning”, dan
“hijau” adalah data yang berjenis warna
5. Pointer merupakan jenis data yang mengandung penunjuk (alamat) ke tempat
data yang sebenarnya berada.

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

2. Identifier tidak boleh mengandung spasi, tanda baca, operator


aritmetika (+ - * /), operator relasional (< > ≤ ≥ ≠ =), operator logika dan
karakter khusus lainnya seperti α β dan seterusnya.

3. Identifier mengenal perbedaan antara huruf kecil dan huruf


besar sehingga identifier NILAI, nilai, serta Nilai merupakan tiga buah
identifier yang berbeda.

BAB II : Algoritma - 27
Algoritma dan Pemrograman I

4. Identifier tidak boleh menggunakan reserved words.

5. Jumlah karakter dalam identifier tidak dibatasi, tetapi harus


merupakan sebuah kata.

Pada umumnya diperbolehkan untuk membuat kombinasi apapun dari


karakter-karakter untuk membuat nama atau identifier. Tetapi dalam pembuatan
algoritma ada beberapa kata yang mempunyai arti tertentu dan digunakan khusus
untuk suatu keperluan. Kata-kata itu disebut reserved words. Beberapa reserved
words yang akan digunakan dalam membuat algoritma adalah: IF, ELSE,
SWITCH, CASE, AND, OR, NOT, EOF, WHILE, DO, UNTIL, STEP, TO, BY,
READ, WRITE, FUNGSI, PROSEDUR, RETURN, FILE, dan HALT.

Contoh identifier yang benar:


X X1 X_1 Gp GP Gaji_Pokok GAJI_POKOK

Contoh identifier yang salah:


- Gaji Pokok : menggunakan spasi
- X2 : menggunakan subscript
- x-1 : menggunakan operator aritmetika minus (-)
- 5N : dimulai dengan angka

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

2.3.3.1 Operasi Assignment


Operasi assignment (Assignment Operation) digunakan untuk memberikan
suatu nilai yang baru kepada suatu variabel. Simbol dari operasi assignment ini
adalah tanda sama dengan (=). Operasi assignment bersifat destruktif, maksudnya
nilai yang disimpan hanya nilai yang terakhir dimasukkan.
Contoh: Diketahui deretan instruksi berikut ini:
A = 3
B = 5
A = B
B = A
Berapa isi variabel A dan B sekarang?

2.3.3.2 Jenis Variabel


Jenis variabel tergantung dari jenis data yang disimpannya. Biasanya
penentuan jenis variabel ditentukan di bagian deklarasi dari suatu algoritma. Yang
perlu diperhatikan, jika suatu variabel sudah ditentukan untuk menyimpan suatu
data dengan jenis tertentu, maka variabel tersebut tidak dapat digunakan untuk
menyimpan data dengan jenis lain. Macam-macam jenis variabel sesuai denga
jenis data yang disimpannya:
1. Variabel Integer
2. Variabel Real
3. Variabel String
4. Variabel Logical
5. Variabel Enumeration
6. Variabel Pointer

Seperti sudah disebutkan di atas bahwa variabel hanya dapat menyimpan


data yang sesuai dengan jenis variabelnya, tetapi ada satu perkecualian untuk
variabel integer dan variabel real. Variabel real dapat menyimpan data integer dan
variabel integer dapat menyimpan data real tetapi hanya bagian integernya saja,

BAB II : Algoritma - 29
Algoritma dan Pemrograman I

bagian desimalnya diabaikan. Contoh: A didefinisikan sebagai variabel integer


dan B sebagai variabel real. Untuk instruksi berikut akan menghasilkan:
1. A = 3.75 ⇒ isi variabel A adalah angka integer 3
2. B = 10 ⇒ isi variabel B adalah angka real 10.0

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.

Ekspresi bukan merupakan instruksi persamaan secara aljabar, tetapi lebih


berarti instruksi untuk menggantikan. Perhatikan contoh potongan algoritma
berikut:

BAB II : Algoritma - 30
Algoritma dan Pemrograman I

1. Diketahui: variabel A berisi angka 23.45 dan variabel B berisi


angka 1.2
Instruksi: A = B ⇒ hasilnya: A berisi angka 1.2 dan B tetap
Sebaliknya,
Instruksi: B = A ⇒ hasilnya: B berisi angka 23.45 dan A tetap

2. Diketahui: Count berisi angka 3.0


Instruksi: Count = Count + 1.0 ⇒ hasilnya: Count berisi angka 4.0

Beberapa hal yang harus diperhatikan dalam membuat dan memproses


suatu ekspresi:

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

3. Urutan pengerjaan suatu ekspresi aritmetika sesuai dengan ketentuan pada


tabel 2.1 di halaman berikut.
4. Operator yang setingkat akan dikerjakan mulai dari kiri ke kanan.
5. Ekspresi yang ada di dalam tanda kurung, akan dikerjakan lebih dulu.

LATIHAN SOAL SUBBAB 2.4


1. Tentukan jenis konstanta berikut ini. Beri penjelasan jika konstanta tersebut
tidak termasuk dalam jenis apapun.
a. 750 b. 750.0 c. ‘750’
d. FALSE e. Nama f. –4.032E03
g. ‘TRUE’ h. 9E05 i. 1234567899999

BAB II : Algoritma - 31
Algoritma dan Pemrograman I

Tabel 2.1 Urutan untuk mengerjakan operator aritmetika


Urutan Simbol Arti
1 ↑ atau ^ Pangkat
2 + Operator tanda tambah / unary plus.
Contoh : +2 (umumnya dituliskan 2 saja)
- Operator tanda kurang / unary minus.
Contoh : -2
3 * Kali
/ Bagi (hasil bagi dalam bentuk integer atau real).
Contoh : 9 / 2 = 4.5
Div Division (hasil bagi dalam bentuk integer)
Contoh : 9 div 2 = 4
4 + Tambah
- Kurang

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

3. Tentukan isi variabel A setelah operasi-operasi berikut ini dieksekusi. Semua


variabel berjenis integer.
a. A = 5 + 7.2 b. A = 3.4 + 8.6
c. X = 4 d. X = 9
Y = 2 Y = X+2
A = X ↑Y – X / Y A = X + Y* X –Y
e. A = 3 f. A = 4.8
X = 2.9 Y = A * 2.5
A = A+X A = A/Y
g. X = 5 h. X = 7.1
Y = 3 Y = 6
A = X -Y*Y A = X * (X - Y) div Y

4. Tuliskan ekspresi berikut ini dalam bentuk ekspresi algoritma


V1 + V2 + V3
a. R S = R1 + R 2 + R3 + R 4 b. VR =
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

2.5 Built-in Function


Beberapa ekspresi sangat sulit jika didefinisikan dalam deretan operator
aritmetika. Sebagai contoh jika ingin menghitung akar kuadrat (√ ) dari suatu
angka. Untuk mengatasi kesulitan ini, para perancang bahasa pemrograman
membuat built-in function yaitu fungsi yang dapat digunakan untuk membantu
programmer dalam melakukan komputasi yang tidak hanya membutuhkan
operator aritmetika biasa. Built-in function memiliki urutan pengerjaan yang
paling tinggi jika dibandingkan dengan operator aritmetika biasa. Dengan adanya
built-in function ini, programmer hanya perlu memasukkan nama built-in function
dan argumennya (nilai yang akan dihitung oleh built-in function) lalu
mendapatkan hasilnya tanpa perlu mengetahui bagaimana cara mendapatkannya.
Beberapa built-in function yang sering digunakan dapat dilihat pada tabel 2.2
berikut.

Tabel 2.2 Built-in Functions yang sering digunakan


Nama Argumen dan Jenisnya Arti dan Jenis Data Hasil Fungsi
ABS(x) x : ekspresi integer atau Nilai absolut: x , jenis data hasil fungsi
real sama dengan jenis data x.
Contoh:
- x = -21 maka ABS(x) = 21
- x = 23.45 maka ABS(x) = 23.45
SQRT(x) x : ekspresi integer atau Akar: x , hasilnya adalah real.
real (harus > 0) Contoh: x = 4 maka SQRT(x) = 2.0
TRUNC(x) x : ekspresi real Truncate (memotong), hasilnya integer
yang nilainya lebih kecil atau sama
dengan x.
Contoh: x = 12.75 maka TRUNC(x) = 12

BAB II : Algoritma - 33
Algoritma dan Pemrograman I

Tabel 2.2 (lanjutan)


Nama Argumen dan Jenisnya Arti dan Jenis Data Hasil Fungsi
ROUND(x) x : ekspresi real Round (membulatkan), hasilnya integer
yang nilainya lebih kecil atau sama
dengan (x+0.5).
Contoh: x = 12.75 maka ROUND(x) = 13
LOG(x) x : ekspresi real Logaritma basis e (ln x), hasilnya adalah
real.
Contoh: x = 1 maka LOG(x) = 0
LOG10(x) x : ekspresi real Logaritma basis 10, hasilnya adalah real.
Contoh : x = 10 maka LOG10(x) = 1
EXP(x) x : ekspresi real Eksponen (ex), hasilnya adalah real.
Contoh : x = 1 maka EXP(x) = 2.718
SIN(x) x : ekspresi real Sinus (x), hasilnya adalah real, dengan x
dalam radian.
Contoh: x = 1.57 (90o) maka SIN(x) = 1.0
COS(x) x : ekspresi real Cosinus (x), hasilnya adalah real, dengan
x dalam radian.
Contoh : x = 1.57 (90o) maka COS(x) =
0.0
TAN(x) x : ekspresi real Tangen (x), hasilnya adalah real, dengan x
dalam radian.
Contoh : x = 0.785 (45o) maka TAN(x) =
1.0
MOD(x,y) x,y : ekspresi integer Modulus: sisa dari x dibagi y, hasilnya
adalah integer.
Contoh: MOD(10,3) = 1
Catatan:
Untuk built-in function SIN(x), COS (x), dan TAN(x), argumen x dalam fungsi
tersebut harus dalam bentuk π radian sehingga sudut (derajat) harus diubah dulu
dengan menggunakan persamaan: 360° = 2 π radian.

2.6 Operasi Input dan Output


Komputer hampir tidak berarti apa-apa jika ia tidak melakukan proses dan
menampilkan hasilnya. Supaya komputer dapat melakukan proses, perlu
dimasukkan data. Kegiatan memasukkan data ke komputer ini disebut sebagai
input. Dan setelah pekerjaan selesai, komputer menampilkan hasilnya sehingga
dapat kita baca, disebut sebagai output.

Input data dilakukan dengan menggunakan alat input seperti keyboard.


Tetapi untuk jumlah data yang banyak sekali biasanya digunakan file untuk

BAB II : Algoritma - 34
Algoritma dan Pemrograman I

menghindari terjadinya kesalahan dalam memasukkan data. Perintah untuk


memasukkan data adalah:

Read (daftar input)

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:

Write (daftar output)


Dengan daftar output (output list) adalah deretan variabel yang akan ditampilkan
isinya. Sebagai contoh:
a. Write (x)
⇒ tampilkan isi variabel x.

b. Write (A, B,C)


⇒ tampilkan isi variabel A, variabel B dan variabel C (isi masing-masing
variabel akan ditampilkan secara berurutan dalam satu baris dari kiri ke
kanan).

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:

Write (‘Ketikkan nama Anda : ‘)

Jika perintah tersebut dieksekusi maka di layar akan tampil teks:

Ketikkan nama Anda :

Untuk lebih jelasnya, perhatikan contoh algoritma berikut ini:

Algoritma CETAK
Mencetak pesan ke layar monitor, menerima input dari keyboard
lalu mencetak pesan beserta isi variabel ke layar monitor. Semua
variabel berjenis string.

1. [Mencetak kalimat: Fakultas Teknologi


Informasi]
Write(‘Fakultas Teknologi Informasi’)
2. [Mencetak kalimat: Universitas
Tarumanagara]
Write(‘Universitas Tarumanagara’)
3. [Mencetak kalimat: Nomor Pokok
Mahasiswa : ]
Write(‘Nomor Pokok Mahasiswa : ‘)
4. [Memasukkan nilai NPM dengan
mengetikkannya pada keyboard]
Read(NPM)
5. [Mencetak kalimat: Nama
Mahasiswa :]
Write(‘Nama Mahasiswa : ’)
6. [Memasukkan nilai NAMA dengan
mengetikkannya pada keyboard]
Read(NAMA)
7. [Mencetak kalimat: NPM = , dan nilai
NPM serta kalimat: Nama = dan nilai NAMA]
Write(‘NPM = ’,NPM)
Write(‘Nama = ’,NAMA)
8. [Selesai]
Halt

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.

2.7. Menguji Algoritma


Setelah algoritma selesai dibuat, perlu diperiksa apakah algoritma sudah
mengeluarkan hasil yang benar atau belum. Jika algoritma sudah benar, maka
program yang dibuat juga akan terbebas dari kesalahan. Dalam bab 1.3, telah
dibahas macam-macam kesalahan yang mungkin terjadi pada sebuah program,
yaitu sintax error, run-time error dan logical error. Ketiga macam kesalahan itu
juga ditemui dalam algoritma. Sintax error dapat diketahui dengan cara membaca
kembali algoritma yang telah ditulis. Jika ditemui salah menulis sintaks, maka
kesalahan tersebut langsung diperbaiki. Untuk menemukan run-time error dan
logical error, caranya adalah dengan menelusuri algoritma langkah demi langkah
dan mencatat semua perubahan nilai variabel. Catatan itu dituangkan dalam
bentuk tabel dan biasanya disebut trace table (tabel telusur). Pada trace table,
dicatat nilai setiap variabel setelah satu langkah algoritma dikerjakan. Kegiatan
untuk menemukan dan memperbaiki kesalahan ini biasanya dikenal dengan istilah
debugging. Trace table untuk algoritma Menentukan_Kelulusan dapat dilihat pada
tabel 2.3 dan 2.4 berikut ini.

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

2.8 Dari Algoritma ke Program


Setelah algoritma dibuat dan diperiksa kebenarannya dalam menjawab
suatu masalah, maka sudah saatnya untuk masuk ke fase implementasi yaitu
algoritma diterjemahkan ke suatu bahasa pemrograman. Penerjemahan ini
dilakukan karena bahasa pemrograman mempunyai sintaks sendiri yang berbeda
dengan sintaks yang digunakan dalam menulis algoritma. Karena dalam
praktikum digunakan bahasa pemrograman C++, berikut ini adalah versi bahasa
pemrograman C++ untuk algoritma CETAK (lihat gambar 2.4)

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

/* mendefinisikan variabel nama dan npm berjenis karakter dengan


panjang masing-masing 25 karakter dan 9 karakter*/
char nama[26];
char npm[10];

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;
}

Gambar 2.4 Listing progam dari algoritma CETAK

LATIHAN SOAL BAB II


1. Tuliskan ekspresi berikut ini dalam bentuk ekspresi algoritma

BAB II : Algoritma - 38
Algoritma dan Pemrograman I

a. Luas = π r √(rr + h2) b. x1 = b2 + √(b2 – 4 a c)

2Vt (sin2 α + c o s2 β ) + sin2ϕ


c. Ra = 2
2Vt + 12 a t2
EI cos( θ )
d. Alpha =
R + ( 2πfL −1 / 2πfC ) 2
2

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)) = …….

3. Pada suatu pertandingan atletik tingkat internasional perlu dikonversikan hasil


pertandingan dari sistem metrik ke sistem lokal. Buatlah algoritma untuk:
a. Mengkonversikan hasil pertandingan lompat tinggi dari meter ke feet dan
inci.
b. Jika diketahui waktu dari hasil pertandingan lari 100 m, hitunglah
waktu yang diperlukan untuk menempuh 100 yard. Diasumsikan,
kecepatan pelari konstan.

4. Bank ABC menerima simpanan berupa deposito yang bunganya dibayarkan


perbulan. Buatlah algoritma untuk membaca nama nasabah, banyaknya uang
yang akan didepositokan, bunga deposito (pertahun) dan lamanya deposito
disimpan. Lalu menghitung bunga yang didapat nasabah tiap bulan dan
menampilkan hasilnya.

BAB II : Algoritma - 39
Algoritma dan Pemrograman I

5. Sebuah perusahaan real estate membayar pegawai penjualannya sebesar Rp.


400.000,- sebulan ditambah komisi sebesar Rp. 100.000,- untuk tiap potong
real estate yang dijual si pegawai dan 1 persen dari nilai yang dijual. Tiap
bulan bagian penggajian menyiapkan data gaji untuk tiap pegawai. Data gaji
terdiri dari nama pegawai, jumlah real estate yang dijual, dan nilai total dari
real estate yang dijual. Buatlah algoritma untuk menghitung dan menampilkan
gaji pegawai pada bulan tertentu.

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

Anda mungkin juga menyukai