1)
Pengertian
Algoritma
Pandangan mengenai
komputer sebagai sebuah mesin yang “pintar” adalah pandapat yang salah, karena
komputer hanyalah suatu alat yang diberi serangkaian perintah oleh manusia
sehingga dapat menyelesaikan permasalahan secara cepat, akurat, bahkan
berulang-ulang tanpa kenal lelah dan bosan. Sekumpulan instruksi yang merupakan
penyelesaian masalah itu dinamakan program.
Agar program dapat dilaksanakan oleh komputer, program tersebut harus
ditulis dalam suatu bahasa yang dimengerti oleh komputer. Bahasa komputer yang
digunakan dalam menulis program dinamakan bahasa
pemrograman. Urutan langkah-langkah yang sistematis untuk menyelesaikan
sebuah masalah dinamakan algoritma. Jadi algoritma adalah
urutan logis pengambilan keputusan untuk pemecahan masalah. Kata logis
merupakan kata kunci. Langkah-langkah tersebut harus logis, ini berarti nilai
kebenarannya harus dapat ditentukan, benar
atau salah. Langkah-langkah yang
tidak benar dapat memberikan hasil yang salah. Sebagai contoh tinjau persoalan
mempertukarkan isi dua buah bejana, A dan B. Bejana A berisi larutan yang
berwarna merah, sedangkan bejana B berisi air berwarna biru. Kita ingin
mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah. Ada 2
algoritma untuk menyelesaikan permasalahan tersebut, yaitu :
a)
Algoritma yang pertama, ada dua langkah :
(1)
Tuangkan larutan dari bejana A ke dalam bejana B
(2)
Tuangkan larutan dari bejana B ke dalam bejana A
Algoritma
tukar isi bejana di atas tidak menghasilkan pertukaran yang benar, karena langkah-langkahnya tidak logis
sehingga yang terjadi adalah percampuran keduanya.
b) Algoritma yang kedua, ada 3
langkah :
(1)
Tuangkan larutan dari bejana A ke dalam bejana C
(2)
Tuangkan larutan dari bejana B ke dalam bejana A
(3)
Tuangkan larutan dari bejana C ke dalam bejana B
Sekarang, dengan
algoritma tukar isi bejana yang sudah diperbaiki ini, isi bejana A dan B dapat
dipertukarkan dengan benar.
Dari kedua contoh
algoritma di atas dapat diambil 2 pesan penting. Pertama, algoritma harus
benar. Kedua, algoritma harus berhenti, dan setelah berhenti, algoritma memberi
hasil yang benar.
2)
Pengertian
Pemrograman
Komputer
hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma
harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi
program adalah perwujudan atau implementasi algoritma yang ditulis dalam bahasa
pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Program ditulis
dalam salah satu bahasa pemrograman, dan kegiatan membuat program disebut pemrograman (programmming). Orang yang
menulis program disebut pemrogram
(programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program
tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka
operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan oleh
komputer.
3)
Mekanisme
Pelaksanaan Algoritma oleh Pemroses
Secara garis besar komputer tersususn atas empat komponen
utama: piranti masukan, piranti keluaran, unit pemroses utama dan memori. Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang
berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan,
operasi perhitungan, operasi membaca dan operasi menulis. Memori adalah
komponen yang berfungsi menyimpan atau mengingat-ingat.Yang disimpan di dalam
memeori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU)
dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti
masukan atau keluaran (I/O devices)
adalah alat yang memasukkan data atau program kedalam memori, dan alat yang
digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan adalah : keyboard, mouse, scanner dan disk. Contoh
alat keluaran adalah : monitor,
printer, plottter dan disk.
4)
Bahasa
Pemrograman
Saat ini kita dapat berkomunikasi dengan komputer dengan
menggunakan bahasa yang kita mengerti. Hal ini dapat kita lakukan karena para
ahli telah berhasil membuat kamus yang disebut dengan bahasa pemrograman yang
akan menterjemahkan bahasa yang kita buat menjadi bahasa mesin, kamus ini
disebut dengan Compiler. Proses
penterjemahan bahasa manusia ke bahasa mesin disebut dengan kompilasi. Adapaun
bahasa-bahasa pemrograman tersebut antara lain :
Bahasa Pemrograman
|
Tipe
|
Dibuat
|
FORTRAN
|
Prosedural
|
1950
|
BASIC
|
Prosedural
|
1960
|
LISP
|
Fungsional
|
1950
|
Prolog
|
Deklaratif
|
1970
|
Ada
|
Prosedural
|
1970
|
SmalTalk
|
Berorientasi Objek
|
1970
|
Pascal
|
Prosedural
|
1970
|
C
|
Prosedural
|
1970
|
C++
|
Berorientasi Objek
|
1980
|
5)
Dasar-dasar
Algoritma
a)
Proses,
Instruksi dan Aksi
Pada dasarnya, sebuah algoritma merupakan deskripsi
pelaksanaan suatu proses. Algoritma disusun oleh sederetan langkah instruksi yang logis. Tiap langkah
instruksi tersebut melakukan suatu tindakan atau aksi. Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu
dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan
membandingkan keadaan pada saat aksi belum dimulai, t0, dan keadaan pada saat aksi selesai dikerjakan, t1.
To : Keadaan sebelum aksi dikerjakan
Aksi
T1 : Keadaan setelah aksi dikerjakan
Sebagai contoh, tinjau kembali algoritma yang
menggambarkan proses mempertukarkan larutan dari dua buah bejana A dan B. Pada
setiap pelaksanaan aksi kita amati keadaan awal dan keadaan akhirnya.
To : bejana A berisi larutan berwarna
merah, bejana B berisi larutan
berwarna biru (bejana C masih kosong).
(1) Tuangkan
larutan dari bejana A ke dalam bejana C
T1 : bejana A kosong, bejana C berisi larutan
berwarna
Merah
To :
bejana A kosong, bejana B berisi larutan
berwarna biru.
(2) Tuangkan
larutan dari bejana B ke dalam bejana A
T1 : bejana A berisi larutan berwarna biru, bejana B kosong
To : bejana B kosong, bejana C berisi larutan berwarna merah.
(3) Tuangkan
larutan dari bejana C ke dalam bejana B
T1 : Bejana B berisi larutan berwarna merah, bejana A sudah berisi larutan berwarna
biru (bejana C kosong).
Keadaan awal dan keadaan akhir algoritma dapat dijadikan
acuan bagi pemrogram dalam merancang suatu algoritma. Keadaan akhir
mencerminkan hasil yang diinginkan dari sebuah keadaan awal. Algoritma berisi
langkah-langkah pencapaian keadaan akhir dari keadaan awal yang didefinisikan.
Tahap-tahap penyusunan algoritma seringkali dimulai dari
langkah yang global lebiha dahulu. Langkah global ini diperhalus sampai ke
langkah yang lebih rinci. Pendekatan desain algoritma seperti ini dinamakan
perancangan puncak turun (top-down design).
Cara pendekatan seperti ini angat bermanfaat dalam membuat algoritma untuk
masalah yang cukup rumit atau kompleks.
b)
Struktur
Dasar Algoritma
Algoritma
berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi, pemilihan aksi dan pengulangan aksi. Ketiga jenis
langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma
dapat dibangun dari 3 buah struktur dasar, yaitu :
(1) Runtunan
(sequence)
(2) Pemilihan
(selection)
(3) Pengulangan
(repetition)
c)
Runtunan
Sebuah runtunan terdiri dari satu atau lebih instruksi.
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya.
Urutan instruksi menentukan keadaan akhir dari suatu algoritma. Bila urutannya
diubah, maka hasil akhirnya mungkin juga akan berubah.
d)
Pemilihan
Ada kalanya sebuah instruksi dikerjakan jika kondisi
tertentu dipenuhi. Penulisan pemilihan secara umum :
If kondisi then
Aksi
Dalam bahasa indonesia, if berarti “jika” dan then artinya “maka”. Kondisi adalah persyaratan
yang dapat bernilai salah atau benar. Aksi hanya dilakukan jika kondisi
bernilai benar. Perhatikan kata yang digarisbawahi, if dan then
merupakan kata kunci(keywords) untuk
struktur pemilihan ini. Dalam kehidupan sehari-hari, kita sering menuliskan
pernyataan tindakan bila suatu persyaratan dipenuhi. Misalnya :
If Zaki memperoleh juara kelas then
Ayah
akan membelikannya sepeda
If
jalan panenan macet then
Ambil
alternatif jalan dipati ukur
Struktur pemilihan if-then hanya memberikan satu pilihan
aksi jika kondisi dipenuhi (bernilai benar), dan tidak memberi pilihan aksi
lain jika bernilai salah. Bentuk pemilihan yang lebih umum ialah memilih satu
dari dua buah aksi bergantung pada nilai kondisinya :
If kondisi then
Aksi 1
Else
Aksi 2
Else artinya “kalau tidak”. Bila kondisi bernilai
benar, aksi 1 akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan.
Misalnya pada pernyataan berikut :
If hari hujan then
Pergilah dengan
naik beca
Else
Pergilah dengan
naik motor
Jika kondisi “hari hujan” bernilai benar, maka aksi
“pergilah dengan naik beca” dilakukan, sebaliknya aksi “pergilah dengan naik
motor” akan dilakukan jika “hari hujan” tidak benar.
e)
Pengulangan
Salah
satu kelebihan komputer adalah kemampuannya untuk melakukan melakukan pekerjaan
yang sama berulang kali tanpa mengenal lelah. Struktur pengulangan disebut
kalang (loop), dan bagian algoritma
yang diulang (aksi) dinamakan badan
kalang (loop body).
6)
Struktur Program Bahasa Pascal dan Bahasa C
a) Algoritmik
Algoritma nama_algoritma
{kepala algoritma berisi penjelasan seperlunya}
Deklarasi {berisi variabel yang terlibat}
Deskripsi {berisi detail algoritma}
b) Bahasa Pascal
Program nama_program;
[deklarasi label]
[deklarasi
konstan]
[deklarasi tipe]
[deklarasi variable]
[deklarasi subprogram]
Begin
Pernyataan;
……
Pernyataan
End.
c) Bahasa C
#include <stdio.h>
[deklarasi subprogram]
Main()
{
[deklarasi variabel]
Pernyataan;
……
Return 0;
}
7)
Variabel
Variabel (perubah) merupakan suatu nama yang menyiratkan
lokasi memori komputer yang dapat digunakan untuk menyimpan nilai, dimana
isinya dapat diubah-ubah. Variabel dapatdipandang sebagai abstraksi dari
lokasi. Hasil evaluasi dari variabel adalah nilai dari variabel itu. Nilai dari
suatu variabel dapat diubah dengan assignment
statement. Sebuah assignment
statement terdiri dari sebuah variabel di sebelah kirinya dan suatu
ekspresi disebelah kanannya.
Algoritmik
|
Bahasa Pascal
|
Bahasa C
|
Deskripsi
Jumlah ß B1 + B2
|
Jumlah := B1 + B2
|
Jumlah = B1 + B2
|
Variabel
jumlah diubah nilainya menjadi nilai dari ekspresi B1 + B2 setelah dievaluasi.
Dalam suatu program Pascal maupun C, setiap variabel yang akan digunakan
terlebih dahulu dideklarasikan, dimana setiap variabel harus mempunyai tipe.
Deklarasi variabel berguna untuk memberi informasi kepada compiler serta
membantu programmer untuk berpikir secara jelas dan berencana.
Algoritmik
|
Bahasa Pascal
|
Bahasa C
|
Deklarasi B1,B2,jumlah:integer
|
Var B1,B2,jumlah:integer;
|
Int B1,B2,jumlah;
|
Aturan penamaan suatu variabel
a)
Pada bahasa pascal penulisan dengan huruf
besar dan kecil tidak dibedakan, sedangkan pada bahasa C dibedakan (Case Sensitif).
b)
Boleh
terdiri dari angka dengan syarat penulisannya setelah huruf, misal :
Umur31
Sepeda3
c)
Tidak
boleh mengandung spasi, terdiri dari underscore
(karakter _), misal :
Suhu_ruang (boleh)
Suhu ruang (tidak boleh)
SuhuRuang
(boleh)
d)
Tidak
boleh ada 2 atau lebih nama yang sama
e)
Tidak
boleh menggunakan reserved word (kata
kunci), misal :
Ø Dalam
pascal : program, end, begin, var, dll
Ø Dalam
C : #include, void, dll
8)
Konstanta
Variabel
yang mempunyai nilai yang sifatnya tidak bisa diubah, nilai ditentukan pada
saat pendefinisian. Misal :
<nama konstanta1> =
<nilai1>;
Phi = 3.14;
9)
Jenis/Tipe
Data
Pada waktu suatu variabel dideklarasikan, maka tipenya
sekaligus ditentukan. Tipe dari suatu variabel menyatakan :
a)
Jenis nilai yang dapat disimpan dalam lokasi
memori untuk variabel tersebut, (membatasi himpunan nilai-nilai yang dapat
dipunyai variabel tersebut).
b)
Jenis operasi yang dapat dilakukan terhadap
variabel bersangkutan.
10)
Ekspresi
Matematika
Ekspresi
matematika adalah kalimat matematika yang akan memberikan nilai jika
dievaluasi.
a)
Ekspresi aritmatika : Suatu ekspresi
matematika yang memberikan hasil bertipe angka jika dievaluasi. Operator yang
digunakan : +, -, *, /, (, )
Contoh
:
Ø 6 * 5
+ 7 à 37
Ø 4 * 6
/ 3 à 8
b)
Ekspresi Logika : Suatu ekspresi matematika
yang memberikan hasil berupa nilai kebenaran (benar/salah, true/false).
Operator yang digunakan :
(1) Perbandingan
: =, <, >, <=, >=, <>
(2) Logika : and, or
Contoh
:
Ø True
and true à true
Ø True
and false à false
Ø (4<=5)
and (5>=1)
Ø True
and true à true
11)
Prioritas Operator
Sebuah
ekspresi matematika yang terdiri dari beberapa operator, beberapa operator
dievaluasi terlebih dahulu dibandingkan operator yang lain. Sebuah operator
didahulukan berarti mempunyai prioritas lebih tinggi. Urutan prioritas :
a)
Operator aritmatika
b)
Operator logika dan perbandingan
Contoh
: 2 + 5 <= 5 + 7
à 7
<= 12
à true
Urutan
prioritas operator aritmatika :
a)
*, /
b)
+, -
Jika
2 operator mempunyai prioritas sama, maka yang paling kiri didahulukan.
Contoh
:
Ø 7 + 5
* 6 – 10 à 7 + 30 – 10 à 37
-10 à 27
Ø (4 +
5) / (2 + 1) à 9 / 3 à 3
(Ekspresi yang terletak dalam tanda kurung harus
didahulukan).
Aritmatika
|
Arti
|
Pascal
|
C
|
+
|
Penjumlahan
|
+
|
+
|
-
|
Pengurangan
|
-
|
-
|
div
|
Pembagian integer
|
div
|
/
|
modulo
|
Sisa pembagian
|
mod
|
%
|
Dalam
bahasa pascal dan bahasa C, pernyataan yang berkaitan dengan operasi dasar
adalah sebagai berikut :
Pernyataan
|
Algoritmik
|
Pascal
|
C
|
Input
|
read
|
read atau readln
|
scanf
|
output
|
write
|
write atau writeln
|
printf
|
Penugasan
|
ß
|
:=
|
=
|
Akhir pernyataan
|
;
|
;
|
Fungsi yang sering digunakan :
Pascal
|
C
|
Arti
|
Sqr
|
Pow
|
Kuadrat
|
Sqrt
|
Sqrt
|
Akar kuadrat
|
Ln
|
Log
|
Logaritma alami
|
Exp
|
Exp
|
eksponensial
|
12)
Flowchart
Flowchart atau diagram alir
merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran
algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam
bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut
menggunakan tanda panah.
0 komentar:
Posting Komentar