Uploaded by martadillaindahsari

Pengertian, Dasar, Notasi, dan Contoh Algoritma

advertisement
MAKALAH
PENGERTIAN, DASAR-DASAR DAN NOTASI ALGORTIMA
Disusun Guna Memenuhi Tugas 1 Mata Kuliah Pemrograman Komputer
Dosen Pengampu: Drs. Dindin Sobiruddin, M.Kom
Disusun Oleh:
Marta Dilla Indah Sari
(11180170000050)
Program Studi Pendidikan Matematika
Fakultas Tarbiyah dan Keguruan
UIN Syarif Hidayatullah
Jakarta
2020
A. Pengertian Algoritma
Semakin majunya perkembangan zaman membuat manusia mampu menghasilkan
karya yang semakin canggih. Kemajuan teknologi saat ini hampir memenuhi seluruh
aspek kehidupan manusia. Komputer tidak otomatis mampu menyelesaikan masalah
begitu saja. Ada urutan langkah yang dimulai dari analisa masalah, penyusunan langkah
penyelesaiian (Algoritma) oleh analisis, kemudian diterjemahkan/menuliskan langkahlangkah ke dalam bahasa program komputer tertentu oleh programmer, kemudian
dikompilasi dan dijalankan sehingga menemukan output yang diinginkan.1
Asal-usul kata Algoritma mempunyai sejarah yang unik. Para ahli sejarah
matematika menemukan bahwa rupanya kata Algoritma berasal dari nama seorang ahli
metematika dari Uzbekistan yang hidup di masa tahun 770-840 masehi yaitu Abu Ja’far
Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi menulis buku berjudul Kitab
Al Jabar Wal Muwabla yang memili arti “Buku Pemugaran dan Pengurangan”.
Perubahan dari Algorism menjadi Algorithm muncul karena kata Algorism sering
dikelirukan menjadi Arithmetic, sehingga akhiran –sm berubah menjadi –thm.
Perhitungan dengan menggunakan angka Arab sudah menjadi hal yang biasa, maka
kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata
Algorithm diserap menjadi Algoritma.2
Definisi Algoritma menurut beberapa pakar adalah sebagai berikut:3
1. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi: Algoritma adalah suatu metode
khusus untuk menyelesaikan suatu masalah.
2. Donald E. Knuth: Algoritma adalah sekumpulan aturan-aturan berhingga yang
memberikan sederetan proses-proses untuk menyelesaikan suatu masalah yang
khusus.
3. David Bolton: Algoritma adalah deskripsi dari suatu prosedur yang berakhir dengan
waktu yang terbatas.
4. Stone dan Knuth: Algoritma adalah suatu seperangkat aturan yang tepat
mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap aturan yang
Kani, “Pengantar Algoritma dan Pemograman”,
http://www.pustaka.ut.ac.id/reader/index.php?subfolder=MSIM4203/&doc=M1.pdf hlm 1.2 (Diakses pada 2
September 2020)
2
A Aziz Nur Farhana, https://eprints.sinus.ac.id/412/2/BAB_II.pdf (Diakses pada 4 September)
3
Kani, Op. Cit.hlm 1.3
1
efektif, jelas hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang
terbatas.
5. Andrey Andreyevich Markov: Algoritma adalah hal umum untuk dipahami sebagai
suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang
mengarahkan dari data awal hingga hasil yang diinginkan.
Salah satu alasan utama mempelajari algoritma dilihat dari kacamata disiplin ilmu
adalah bahwa algoritma adalah sebuah keterampilan yang memberi potensi untuk
memecahkan masalah serumit apapun dengan waktu penyelesaian proses/eksekusi
singkat, bahkan mungkin bisa meringkas langkah kerja yang tidak efesien menjadi
otomatis. Algoritma yang tepat akan memberikan efek yang signifikan terhadap waktu
dan tenaga.4
B. Dasar-dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah
tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection),
pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar
pembangunan algoritma ada tiga, yaitu: 5
1. Struktur Runtunan Digunakan untuk program yang pernyataannya sequential
atau urutan.
2. Struktur Pemilihan Digunakan untuk program yang menggunakan pemilihan
atau penyeleksian kondisi.
3. Struktur Perulangan
Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Ciri-ciri dari algoritma adalah sebagai berikut:6
1. Ada input/masukan dan output/keluaran
2. Memiliki proses tertentu.
3. Prosesnya merupakan pola pikir dan logis dalam menghasilkan output.
4. Prosesnya memiliki intruksi yang jelas dan tidak ambiguitas.
4
Ibid.hlm 1.5
Kadek bagus, 2018, “PENERAPAN KOMPONEN DAN STRUKTUR ALGORITMA PADA ALGORITMA DAN
PEMROGRAMAN DASAR”,
http://download.garuda.ristekdikti.go.id/article.php?article=905612&val=14237&title=Penerapan%20Kompon
en%20dan%20Struktur%20Algoritma%20pada%20Algoritma%20dan%20Pemrograman%20Dasar (Diakses
pada 7 September)
6
Kani.Op. Cit. hlm 1.14
5
5. Memiliki stopping role atau jika pada keadaan tertentu mengalami proses iterasi
yang berlebihan maka ada proses pemberhentian.
Menurut Ellis Horowitz dan Sartaj Sahni dalam bukunya berjudul “Fundamentals
of Data Structures”, syarat ketercapaian suatu algoritma adalah apabila memenuhi
syarat berikut:7
1. Input: boleh nol atau lebih masukan dalam satu algoritma;
2. Output: dalam satu algoritma, dipesyaratkan memiliki satu keluaran, boleh lebih;
3. Definiteness: setiap intruksi harus jelas, tidak boleh ambigu
4. Finiteness: menyatakan bahwa setelah melakukan proses maka apapun kondisinya
suatu algoritma harus memiliki akhir
5. Effectiveness: algoritma bekerja secara efektif, yaitu semua operasi yang dilakukan
bersifat sederhana dan dapat diselesaikan dengan waktu yang singkat.
C. Notasi Algoritma
Agar algoritma mudah ditranslasikan ke dalam notasi bahasa pemrograman,
maka sebaiknya notasi algpmotmik tersebut berkoresponden dengan notasi bahasa
pemrograman secara umum.8
Misalkan kita menulis perintah: tulis nilai x dan y
Dalam notasi algoritmik ditulis menjadi: write (x,y)
No. Notasi biasa
Notasi algoritmik
Notasi T. Pascal
1
Masukan nilai x
readln(x)
ReadLn(x)
2
Isikan nilai 5 kedalam x
x 5
X:=5
3
Isikan nilai x kedalam min
minx
Min:=x
4
Tambahkan nilai 1 ke X itulah X
X x+1
X:=x+1
5
Tulis nilai x dan y
write(x,y)
Write(x,y)
6
Jika a lebih besar dari b maka
if a>b then
If a>b Then
Tabel 1. Notasi Algoritmik
7
Ibid.
Muhammad Fathoni dan Saniman, 2008, “Pengantar Algoritma dan Pemrograman”,
https://prpm.trigunadharma.ac.id/public/fileJurnal/6BEB3-OK-Jurnal13-Sani-MF-Algo1-1.pdf hlm 126 (diakses
pada 7 September 2020)
8
Aturan diatas tidak baku, hanya penyesuaian dengan bahasa pemrograman Turbo
Pascal. Pada dasarnya teks algoritma tersusun dari 3 bagian (blok) yaitu:
1. Kepala Algoritma atau judul (header)
2. Bagian deklarasi.
3. Bagian deskripsi (uraian) algoritma.
Algoritma dapat disajikan dengan menggunakan banyak cara, diantaranya:9
a. Bahasa alamiah
Penyajian algoritma dengan bahasa alamiah dilakukan dengan menyusun uraian
katayang menggunakan bahasa Inggris atau dengan bahasa lain, misalnya bahasa
Indonesia.Algoritma dengan bahasa alamiah dapat ditulis dengan menggunakan
huruf besar di awalkalimat dan selanjutnya dengan huruf kecil, atau dengan
menggunakan huruf besar seluruhnya. Untuk memperjelas dapat ditambahkan
nomor urut untuk setiap langkahyang ada. Karena menggunakan bahasa yang
sehari-hari digunakan manusia, maka penyajian algoritma dengan bahasa alamiah
dapat dipahami oleh pembaca yang belummemahami bahasa pemrograman,
misalnya pemakai sistem.
b. Pseudocode (sandi semu)
Penulisan sandi semu menggunakan simbol-simbol perintah yang mirip dengan
yang menggunakan di dalam bahasa pemrograman. Pseudocode berasal dari kata
pseudo yang berarti mirip atau menyerupai, dan code yang berarti program.
Pseudocode ditulis denganmenggunakan huruf besar, sedangkan variabel atau
komentar ditulis denganmenggunakan huruf kecil. Untuk memperjelas struktur
algoritma, digunakan tabulasiyang berbeda untuk penulisan sandi semu yang berada
dalam kalang (loop) atau struktur kondisional. Dengan penulisan sandi semu mirip
dengan penulisan program, makaalgoritma yang ditulis dengan sandi semu lebih
tepat digunakan untuk mengkomunikasikan algoritma kepada pemrogram.
9
Arief Wijaya, “dasar-dasar algoritma”
https://www.academia.edu/4400025/03_Dasar_dasar_Algoritma (Diakses pada 5 September)
c. Bagan atau gambar
Salah satu bagan yang digunakan untuk menyatakan algoritma ialah yang
disebut dengan bagan alir (flowchart). Bagan alir terdiri atas sekumpulan gambar
yang digunakan menyatakan simbol-simbol tertentu. Simbol-simbol yang sering
digunakan untuk pembuatan bagan alir diberikan pada Gambar 1.
Gambar 1. Contoh Gambar untuk Bagan Alir/Flowchart
Apapun cara yang dipilih untuk menyajikan algoritma, satu hal yang perlu
diperhatikan ialah bahwa algoritma tidak berhubungan dengan satu bahasa
pemrograman ataupun komputer jenis tertentu yang akan mengeksekusinya. Algoritma
dapat diterjemahkan ke bahasa pemrograman apapun sesuai pilihan dari pemrograman.
D. Contoh Algoritma
Untuk memperluas pemahaman kita tentang konsep algoritma dengan cara yang
lebih baik, kita cermati kasus berikut: katakan Anda ingin melakukan sebuah perjalanan
dari Tangerang ke Bogor, Anda dihadapkan dengan berbagai pilihan untuk mencapai
tujuan, misalnya naik kereta, naik angkot atau naik taksi. Ketiga pilihan yang ada
mempunyai kelebihan dan kelemahan baik dari sisi waktu dan biaya.10
Naik Kereta
10

Ke stasiun terdekat

Membeli tiket kartu Tangerang – Bogor

Gesek kartu untuk membuka pintu masuk

Menunggu keberangkatan kereta

Jika kursi penuh maka berdiri

Sampai tujuan Bogor
Kani, Op. CIt hlm 1.3
Naik Taksi

Memesan taksi lewat Android atau telepon langsung

Menunggu taksi untuk menjemput

Naik taksi

Lewat jalur biasa atau lewat jalan tol

Sampai tujuan

Bayar taksi sesuai argo
Naik Angkot

Ke terminal atau pangkalan angkot

Menunggu angkot penuh

Melalui jalur biasa

Sampai Bogor

Bayar sesuai tarif angkot
Ketiga algoritma di atas mencapai tujuan yang sama, namun masing-masing
algoritma melakukannya dengan cara yang berbeda. Setiap algortima juga memiliki
biaya dan waktu perjalanan yang berbeda. Dengan naik taksi misalnya, adalah cara
tercepat, tapi juga yang paling mahal. Naik angkot, jauh lebih murah tetapi memakan
waktu lebih banyak dari naik taksi, begitu juga dengan naik kereta, menunggu jadwal
kereta, singgah di setiap stasiun dan walaupn bebas hambatan. Jadi setiap algoritma
perjalanan dari Tangerang ke Bogor memiliki kelebihan dan kekurangan masingmasing.
DAFTAR PUSTAKA
Bagus, Kadek. 2018. PENERAPAN KOMPONEN DAN STRUKTUR ALGORITMA PADA
ALGORITMA
DAN
PEMROGRAMAN
DASAR.
http://download.garuda.ristekdikti.go.id/article.php?article=905612&val=1423
7&title=Penerapan%20Komponen%20dan%20Struktur%20Algoritma%20pad
a%20Algoritma%20dan%20Pemrograman%20Dasar
(Diakses
pada
7
September 2020)
Farhana, A Aziz Nur. 2015. https://eprints.sinus.ac.id/412/2/BAB_II.pdf . (Diakses
pada 4 September 2020)
Fathoni, Muhammad dan Saniman, 2008, Pengantar Algoritma dan Pemrograman,
https://prpm.trigunadharma.ac.id/public/fileJurnal/6BEB3-OK-Jurnal13-Sani-MFAlgo1-1.pdf (diakses pada 7 September 2020)
Kani.
Pengantar
Algoritma
dan
Pemograman.
http://www.pustaka.ut.ac.id/reader/index.php?subfolder=MSIM4203/&doc=M
1.pdf (Diakses pada 3 September 2020)
Wijaya, Arief. 2020. https://www.academia.edu/4400025/03_Dasar_dasar_Algoritma .
(Diakses pada 5 September 2020)
Download