Anda di halaman 1dari 51

Pengertian Algoritma

 Pengertian algoritma adalah suatu


urutan dari beberapa langkah yang
logis guna menyelesaikan masalah.
Pada saat kita memiliki masalah, maka
kita harus dapat untuk menyelesaikan
masalah tersebut dengan menggunakan
langkah-langkah yang logis.
 Contoh dari algoritma sederhana dalam
kehidupan nyata adalah pada saat
memasak air. Hal-hal yang perlu
dilakukan untuk memasak air seperti
berikut : siapkan panci, masukkan air
secukupnya ke dalam panci, tutup panci
tersebut, letakkan panci tersebut di atas
kompor, hidupkan kompor dengan api
sedang, apabila air sudah mendidih,
matikan kompor, setelah itu angkat
panci tersebut dari kompor.
 Langkah-langkah untuk memasak air
tersebut merupakan algoritma
memasak air. Sehingga memiliki urutan
langkah-langkah yang logis.
 Dalam ilmu matematika dan komputer,
pengertian algoritma merupakan
prosedur dari beberapa langkah demi
langkah untuk penghitungan. Algoritma
dipakai untuk penghitungan, penalaran
otomatis, dan pemrosesan data.
Pengertian algoritma ialah suatu metode
yang efektif diekspresikan sebagai
rangkaian yang terbatas dari beberapa
instruksi yang telah dijelaskan dengan
baik guna menghitung sebuah fungsi.
 Susunan algoritma dimulai dari kondisi
awal dan input awal, instruksi tersebut
mendeskripsikan komputasi yang
apabila itu dieksekusi serta diproses
dengan melewati urutan-urutan kondisi
terbatas yang terdefinisi dengan baik,
sehingga dapat menghasilkan output
atau keluaran dan berhenti di kondisi
akhir yang telah ditentukan.
 Algoritma sangat diperlukan untuk
mengolah data yang ada di komputer.
Dalam sistem komputer, pengertian
algoritma ialah logika yang dibuat
dengan memakai software oleh para
pembuat perangkat lunak untuk
membuat software tersebut menjadi
lebih bagus. Algoritma berbeda dengan
Logaritma. Perlu diketahui juga bahwa
logaritma adalah sebuah operasi di ilmu
matematika guna menghitung kebalikan
eksponen dari sebuah perpangkatan.
 Kata Algoritma ditemukan oleh Abu
Abdullah Muhammad Ibnu Musa Al-
Khwarizmi, beliau merupakan
matematikawan yang berasal dari
Persia yang ditemukan pada Abad Ke 9.
Dari masa ke masa, kata algoritma
mulai berkembang di abad ke 18.
 Untuk lebih jelasnya lagi, berikut salah
satu contoh algoritma :
Algoritma untuk menghitung nilai x dari
persamaan x = 17y + 9 :
1) Memulai
2) Menentukan nilai y
3) Menghitung nilai x = 17y + 9
4) Menyelesaikan
Merancang Algoritma yang Baik
 Menurut Donald E. Knuth, dari
pengertian algoritma diatas dapat
diketahui bahwa sebuah algoritma yang
baik yaitu algoritma yang mempunyai
kriteria sebagai berikut :
 Masukan (Input)
Algoritma mempunyai input 0 (nol) atau
lebih
 Keluaran (Output) Algoritma harus
menghasilkan atau mengeluarkan
minimal 1 output.
 Terbatas (Finite) Algoritma harus
berhenti setelah melakukan langkah-
langkah yang diperlukan.
 Pasti (Definite)
Algoritma harus jelas kapan dimulai dan berakhir.
Tujuan dari algoritma harus jelas. Setiap langkah-
langkah harus dijelaskan dengan jelas.
 Efisien
Membuat sebuah algoritma haruslah efisien.
Adanya langkah seperti mencari hasil 1 + 0 tidak
efisien. Hal ini karena bilangan apapun itu jika
ditambah dengan nol maka hasilnya ialah
bilangan itu sendiri. Sehingga adanya langkah
seperti itu tidak perlu dimasukkan ke dalam
sebuah algoritma.
 Algoritma dapat disajikan ke dalam 2
bentuk, yaitu bentuk tulisan atau bahasa
dan bentuk gambar.
 Penyajian algoritma dalam bentuk
bahasa atau tulisan harus memakai
sebuah bahasa yang dapat untuk
dimengerti manusia dalam membuat
langkah-langkah dari algoritma itu
sendiri.
 Penyajian algoritma dalam bentuk
tulisan/bahasa dapat dilakukan dengan
memakai pseudocode.
 Pseudocode berasal dari “pseudo”
aritnya “menyerupai atau mirip” dan
“code” yaitu “kode program”.
 Contoh dari beberapa bahasa
pemrograman yang sering digunakan
untuk menyatakan pseudocode antara
lain : pascal, BASIC, Pascal, C, dan lain
sebagainya. Terdapat juga penyajian
algoritma yang dalam bentuk gambar
disebut flow chart.
Klasifikasi Algoritma
 Salah satu cara untuk
mengklasifikasikan algoritma yaitu
dengan menggunakan cara
implementasi.
 Rekursi atau iterasi ialah suatu
algoritma yang memanggil dirinya
sendiri secara berulang kali (looping)
hingga pada kondisi tertentu dapat
tercapai.
 Rekursi merupakan suatu metode umum
dalam pemrograman fungsional. Algoritma
iteratif memakai konstruksi berulang seperti
pada pengulangan dan terkadang terdapat
struktur data tambahan. Beberapa
permasalahan secara alami dapat cocok
dengan 1 implementasi atau yang lainnya.
Contohnya : Menara Hanoi yang dikenal
dengan implementasi rekursif. Pada setiap
versi rekursif mempunyai adanya kesamaan
(bisa lebih ataupun kurang kompleks) dengan
versi iteratif, ataupun sebaliknya.
 Logical
Algoritma dapat dilihat sebagai sebuah
logika deduksi terkontrol. Pernyataan ini
dapat diekspresikan sebagai: Algoritma
= kontrol + logika. Komponen logika
yang mengekspresikan aksioma dapat
digunakan dalam komputasi serta
komponen kontrol dalam menentukan
cara-cara deduksi yang digunakan pada
aksioma. Hal tersebut adalah dasar dari
paradigma pemrograman logika.
 Dalam pemrograman, logika murni
komponen kontrol ialah tetap serta
algoritma yang ditentukan dengan
memberikan hanya ada komponen
logikanya. Daya tarik dari pendekatan
logical ialah semantik elegan, sebuah
perubahan yang ada dalam aksioma
mempunyai perubahan dalam
algoritma.
 Serial, paralel atau terdistribusi
Pada umumnya, suatu algoritma
menjalankan satu instruksi algoritma
setiap waktu. Komputer tersebut dapat
disebut dengan komputer serial.
Rancangan algoritma yang digunakan
bagi lingkungan tersebut ialah algoritma
serial, terbalik dengan algoritma
terdistribusi atau algoritma paralel.
 Algoritma paralel menggunakan
arsitektur komputer yang mana
terdapat prosesor-prosesor dapat
mengerjakan masalah pada waktu yang
sama. Sedangkan algoritma terdistribusi
menggunakan banyak mesin yang
terhubung ke jaringan. Algoritma
terdistribusi atau paralel membagi
permasalahan ke banyak submasalah
simetris maupun asimetris dan
mengumpulkan hasil yang didapat
kembali.
 Konsumsi dari sumber pada algoritma
tersebut tidak hanya ada perputaran
prosesor tapi juga terdapat daya
komunikasi antara prosesor. Algoritma
pengurutan dapat untuk diparalelkan
secara efisien, namun terdapat biaya
komunikasi yang sangat mahal.
Algoritma iteratif pada umumnya dapat
untuk diparalelkan. Ada juga
permasalah yang tidak ada algoritma
paralelnya, disebut dengan
permasalahan serial lahiriah.
 Deterministik atau non-deterministik
Terdapat juga algoritma determministik
dan non-determenistik. Algoritma
deterministik dapat menyelesaikan
masalah-masalah dengan keputusan
tepat disetiap langkah-langkah dari
sebuah algoritma. Algoritma non-
deterministik dapat menyelesaikan
masalah-masalah lewat adanya
penerkaan walaupun penerkaan
tersebut pada umumnya lebih akurat
dengan memakai heuristik.
 Tepat atau perkiraan
Jika terdapat banyak algoritma dapat
sampai ke solusi yang tepat, ada juga
algoritma perkiraan yang mencari
perkiraan terdekat dengan solusi
benarnya. Perkiraan tersebut dapat
memakai strategi deterministik ataupun
acak. Algoritma yang seperti itu dapat
mempunyai nilai lebih untuk banyak
permasalahan yang sulit.
 Algoritma quantum
Berjalan pada model realistik dari
komputasi quantum. Istilah tersebut
pada umumnya dipakai bagi algoritma
yang pada dasarnya quantum, ataupun
memakai fitur-fitur penting dari
komputasi quantum seperti belitan
quantum atau superposisi quantum.
 Contoh Algoritma
Menentukan Apakah Bilangan Tersebut
Ganjil atau Genap
Terdapat bilangan yang bernama bilang
bulat yaitu 0, 1, -1, 2, dst serta
bilangan asli 1, 2, 3, 4, 5, dst. Kedua
jenis bilangan tersebut sering
digunakan dalam berhitung.
 Himpunan bilangan-bilangan bulat
dalam buku teks aljabar pada umumnya
dinyatakan dengan lambang “Z” dan
himpunan bilangan-bilangan asli
dinyatakan dengan lambang “N”.
Algoritma guna menentukan apakah
bilangan tersebut ganjil atau genap
dapat disajikan dengan flowchart
seperti dibawah ini :
 Menentukan Apakah Bilangan Tersebut
Ganjil atau Genap
Bilangan genap merupakan sebuah
bilangan bulat yang akan habis atau
tidak memiliki sisa jika dibagi 2 (dua).
Bilangan ganjil merupakan sebuah
bilangan bulat yang tidak akan habis
apabila dibagi 2 (dua).
 Menghitung Keliling dan Luas Lingkaran
Lingkaran merupakan suatu himpunan
dari semua titik-titik pada bidang dalam
jarak yang tertentu dan disebut dengan
jari-jari dari titik tertentu dan dapat
disebut titik pusat. Lingkaran
merupakan contoh dari kurva tertutup
sederhana, lingkaran membagi bidang
menjadi bagian luar dan dalam.
Algoritma menghitung keliling serta luas
lingkaran dapat disajikan dengan
flowchart seperti dibawah ini :
 Menghitung Keliling dan Luas Lingkaran
Menampilkan Bilangan Ganjil Diantara
10 sampai 30
Bilangan ganjil yang terletak diantara
10 dan 30 11,13,15, dan seterusnya.
Namun, yang akan ditampilkan kecuali
bilangan 21 dan 27. Jadi output yang
diharapkan dari algoritma tersebut
adalah bilangan ganjil 10 sampai 30
kecuali bilangan 21 dan 27.
 Algoritma untuk menampilkan bilangan
ganjil antara 10 hingga 30 kecuali
bilangan 21 dan 27 disajikan dengan
flowchart dibawah ini :
STRUKTUR DASAR ALGORITMA
1. Struktur Sekuensial
(Runtunan)
2. Struktur Seleksi (Pemilihan)
3. Struktur
Repetition(Pengulangan)
STRUKTUR SEKUENSIAL (Runtunan)

 Pada struktur sekuensial instruksi dikerjakan secara


berurutan baris perbaris mulai dari baris pertama
hingga baris terakhir, tanpa ada loncatan atau
perulangan.

 Tiap instruksi dikerjakan satu per satu.


 Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang
diulang.
 Urutan instruksi yang dilaksanakan pemroses sama dengan
urutan instruksi sebagai tertulis di dalam teks algoritma.
 Akhir dari instruksi terakhir merupakan akhir algoritma.
Contoh Algoritma
Menghitung Luas Persegi Panjang :

1. Masukkan panjang (p)


2. Masukkan lebar ( l )
3. Hitung Luas (p * l )
4. Tulis Luas
Pengaruh Urutan Instruksi
• Urutan instruksi dalam algoritma adalah
penting. Urutan instruksi menunjukan urutan
logik penyelesaian masalah.
• Urutan instruksi yang berbeda mungkin tidak
ada pengaruh terhadap solusi persoalan,
tetapi mungkin juga menghasilkan keluaran
yang berbeda, tergantung pada
masalahnya
Contoh urutan instruksi yang berbeda tetapi
tidak mempengaruhi hasil.

 Deklarasi :  Deklarasi :
A, B, C, D : integer A, B, C, D : integer
Deskripsi : Deskripsi :
1. read (A, B) {1} 1. read (A, B)
2. C A + B {2} 2. D A*B
3. D A * B {3} 3. C A+B
4. write (C, D) {4} 4. write (C, D)

Dari kedua algoritma hasil C dan D adalah SAMA


Tetapi jika algoritma di atas urutan no. 1,2 dan 3
diubah (ditukarkan ) maka menghasil keluaran
yang berbeda (tidaksama) seperti berikut :

 {di baca dua buah bilangan integer kemudian hitung


penjumlahan dan perkalian dua buah bilangan tersebut,
dan tampilkan hasilnya ke layar}

Deklarasi :
A, B, C, D : integer
Deskripsi :
C A+B
D A*B Hasil C dan D akan
berbeda dengan dua
read (A, B)
algoritma sebelumnya
write (C, D)
STRUKTUR SELEKSI (PEMILIHAN)
Struktur seleksi adalah instruksi yang dipakai untuk memilih satu aksi dari
beberapa kemungkinan aksi berdasarkan suatu syarat

Bentuk ke-1 dari pemilihan


Suatu aksi hanya dilakukan bila
persyaratan atau kondisi tertentu
dipenuhi. jika kondisi bernilai
benar kerjakan aksi jika salah,
tidak ada aksi apapun yang
dikerjakan.

Notasi algoritmik :
if Syarat then
Aksi {True}
endif {False}
STRUKTUR SELEKSI

Bentuk ke-2 dari pemilihan


Apabila syarat dipenuhi maka
aksi-1 dilaksanakan bila syarat
tidak dipenuhi maka aksi- 2
yang dilaksanakan

Notasi Algoritma,

IF syarat THEN
aksi-1 {true}
ELSE
aksi-2 {false}
ENDIF
STRUKTUR PERULANGAN

Perulangan adalah instruksi yang dapat mengulang sederetan


Instruksi secara berulang-ulang sesuai persyaratan yang
ditetapkan.

Struktur instruksi perulangan pada dasarnya terdiri atas :


 Kondisi perulangan; suatu kondisi yang harus dipenuhi agar
perulangan dapat terjadi.
 Badan (body) perulangan; deretan instruksi yang akan
diulang-ulang pelaksanaannya.
 Pencacah (counter) perulangan; suatu variabel yang
nilainya harus berubah agar perulangan dapat terjadi dan
pada akhirnya membatasi jumlah perulangan yang dapat
dilaksanakan
Jenis Perulangan :

1. For – Next

2. While – Do

3. Repeat - Until
Perulangan : FOR - NEXT
Bentuk umum :
For I = 1 to 4

For var=awal to akhir


……………. Instruksi

instruksi-instruksi
Next I
……………..
Next var
Makna dari bentuk perulangan di atas adalah
ulangi instruksi tersebut berdasarkan variabel
perulangan mulai dari nilai awal hingga nilai
akhir.
Dari gambar di atas instruksi akan dikerjakan
sebanyak 4 kali, karena perulangan dimulai dari
1 sampai 4.
Perulangan : While - Do
Bentuk umum :

While {kondisi} do
…………..
instruksi-instruksi
…………..
Endwhile
Dari bentuk pengulangan di atas
instruksi akan dilaksanakan berulang
kali selama kondisi bernilai TRUE , jika
FALSE maka badan pengulangan tidak
akan dilaksanakan yang berarti
pengulangan selesai.
Contoh :
 Algoritma Cetak_Angka
 {mencetak 1, 2, .., 8 ke piranti keluaran}
 Deklarasi :
 K: integer

 Deskripsi :
 K 1 {inisialisasi}
 while k <= 8 do

 write (k)

 k k+1
 endwhile
Perulangan : REPEAT - UNTIL
Bentuk umum : flowchart
Instruksi-instruksi

Repeat
……….
instruksi
………. Kondis
i False

Until ( kondisi ) True


Keterangan :

Instruksi (atau runtunan instruksi)


akan dilaksanakan berulang kali
sampai kondisi bernilai true, jika
kondisi bernilai false maka
pengulangan masih terus dilakukan.
 
Contoh :
 Algoritma Cetak_Angka
 {mencetak 1, 2, .., 8 ke piranti keluaran}
 Deklarasi :
 K: integer

 Deskripsi :
 K 1 {inisialisasi}
 repeat

 write (k)

 k k+1
 until k > 8

Anda mungkin juga menyukai