“ALGORITMA MATEMATIKA”
DOSEN PENGAMPU :
NIM : 20030039
JURUSAN MATEMATIKA
2021
Apakah Algoritma dan Pemrograman Itu?
1.1 Algoritma
Sebuah program komputer pada dasarnya mengimplementasikan suatu algoritma. Dengan kata
lain, algoritma adalah ide dibalik program komputer apa pun. Prosedur yang berisi langkah-
langkah penyelesaian masalah disebut Algoritma. Algoritma adalah urutan langkah-langkah
untuk memecahkan suatu masalah. Terdapat beberapa definisi lain dari algoritma, tetapi pada
prinsipnya senada dengan definisi yang diungkapkan di atas yaitu, Algoritma adalah deretan
instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang
dlinginkan dari suatu masukan dalam jumlah waktu yang terbatas. [LEV03).
Meskipun kita tidak menyebutkan langkah-langkah pengerjaan itu sebagal algoritma, tetapi
dalam konteks ini langkah di atas adalah algoritma. Sebuah algoritma mengerjakan sebuah
proses. Secara umum, benda yang mengerjakan proses disebut pemroses (processor). Pemroses
melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan
proses tersebut.
Algoritma adalah jantung ilmu komputer atau informatika. Ditinjau dari asal usul kata, kata
"algoritma" sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul di dalam kamus
Webster sampai akhir tahun 1957. Orang hanya menemukan kata “algorism” yang berarti proses
menghitung dengan angka Arab. Kata algorism berasal dari nama penulis buku Arab yang
rerkenal, yaitu Abu Ja'far Muhammad ibnu Musa al-Khuwarizmi. Perubahan dari kata algorism
menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga
ukhiran -sm berubah menjadi -thm. Pada tahun 1950, kata algoritma pertama kali digunakan
pada "algoritma Euclldean”. Terdapat beberapa versi algoritma Euclidean, salah satu versinya
ditulis di bawah ini.
(Diberikan dua buah bilangan bulat tak-negatif m dan n (m≥n). Algoritma Euclidean mencari
pembagi bersama terbesar, gcd, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar
yang habis membagi m dan n.)
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh,
tinjau kembali algoritma Euclidean. Pada langknh 1, jika n=0, algoritma berhenti. Jika n≠0, maka
nilai n selalu berkurang sebagai akibat langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program
yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
2. Setiap Iangkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). Pembaca
harus mengerti apa yang dimaksud dengan "m dan n adalah bilangan bulat tak-negatif", Contoh
lainnya, pernyataan "bagilah p dengan sejumlah beberapa buah bilangan bulat positif" dapat
bermakna ganda. Berapakah yang dimaksud dengan "berapa"? Algorltma menjadi jelas jika
langkah tersebut ditulis "bagilah p dengan 10 buah bilangan bulat positif".
3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan
kepada algoritma untuk diproses. Algoritma Euclidean mempunyai dua buah masukan, m dan n.
4. Algoritma mempunyai nol atau lebih keluaran (output). keluaran dapat berupa pesan atau
besaran yang memiliki hubungan dengan masukan, Algoritma Euclidean mempunyai satu
keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua
masukannya.
5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan
dalam sejumlah waktu yang masuk akal.
Pseudo-code
Pseudo-code (pseudo artinya semu atau tidak sebenarnya) adalah notasi yang mirip dengan
notasi bahasa pemrograman tingkat tinggi, khususnya (paling sering) bahasa Pascal dan C. Lebih
tepatnya Pseudo-code adalah campuran antara bahasa alami dengan bahasa pemrograman. Notasi
algoritmik berupa pseudo-code mempunyai korespondensi dengan notasi bahasa pemrograman
sehingga proses penerjemahan dari pseudo-code ke kode program menjadi lebih mudah. Tidak
ada aturan baku membuat pseudo-code. Tidak seperti bahasa pemrograman yang direpotkan
dengan tanda titik koma (semicolon), indeks, format keluaran, kata-kata khusus, dan sebagainya,
sembarang versi pseudo-code dapat diterima asalkan notasinya bias dipahami. Notasi algoritmik
dalam bentuk pseudo-code sebaiknya mudah ditranslasikan ke dalam notasi bahasa
pemrograman pada saat coding.
Flowchart
Pada masa awal perkembangan komputer, ilmuwan menspesifikasikan algoritma sebagai bagan-
alir (flowchart), yang mengekspresikan algoritma sebagai sekumpulan bentuk-bentuk geometri
(seperti persegi panjang, lingkaran, jajaran genjang, bentuk-intan, dan sebagainya) yang berisi
langkah-langkah komputasi. Flowchart adalah suatu diagram yang digunakan untuk menjelaskan
suatu algoritma. Flowchart terdiri dari simbol-simbol yang dihubungkan dengan sebuah tanda
panah (berarah). Contoh :
1. Flowchart selalu mulai dari terminator MULAI dan berakhir di terminator SELESAI.
Flowchart tidak boleh berputar-putar di dalam tanpa akhir, atau berakhir di simbol selain
terminator
2. Gunakan tanda panah sehingga jelas ke mana arah langkah selanjutnya, jangan gunakan
garis tanpa tanda panah
3. Semua variabel atau parameter yang dibutuhkan harus terdefinisi di bagian
INPUT/OUTPUT
4. Simbol PROSES dan INPUT/OUTPUT selalu menghasilkan sebuah panah aliran,
sehingga jelas langkah selanjutnya ke mana. Sedangkan DECISION akan
menghasilkan tepat dua buah panah yang diputuskan berdasarkan suatu kondisi
(mewakili YA dan TIDAK)
Algoritma berasal dari kata “algorist” yang berarti langkah menghitung dengan memanfaatkan
angka arab. Perubahan kata dari kata algorism menjadi algorithm muncul karena kata algorism
sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena
perhitungan dengan angka Arab sudah menjadi hal yang biasa/lumrah, maka lambat laun kata
algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi
algoritma. Berikut definisi dari Algoritma :
3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.
Menurut KBBI => Algoritma adalah urutan logis (jelas, tegas) pengambilan putusan untuk
pemecahan masalah.
Definisi secara umum => Algoritma adalah langkah yang memiliki pencapaian yang baik.
Dalam ilmu komputer dan matematika => Algoritma didefinisikan sebagai prosedur dari
berbagai macam langkah penghitungan, penalaran secara otomatis, sampai pemrosesan data.
Algoritma juga diartikan sebagai metode yang diekspresikan lewat rangkaian dan instruksi yang
dijabarkan untuk menghitung.
Dalam program komputer => Algoritma adalah daftar langkah atau instruksi untuk
menyelesaikan masalah atau pekerjaan tertentu.
Algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan yang ada.
Menurut Goodman dan Hedetniemi, penulis buku “Introduction to the Design and
Analysis of Algorithms“
Algoritma merupakan Urut-urutan terbatas dari operasi terdefinisi dengan baik, yang masing-
masing membutuhkan memory dan waktu yang terbatas untuk menyelesaikan suatu masalah.
Menurut Donald Ervin Knuth, seorang ilmuan terkenal dalam bidang komputerisasi
Algoritma yaitu Sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-
operasi untuk menyelesaikan suatu jenis masalah yang khusus.
Menurut Seymour Lipschutz dan Marc Lipson, keduanya penulis buku tentang aljabar
dan seorang praktisi matematika dan komputer
Algoritma merupakan suatu daftar langkah demi langkah yang terhingga dari instruksi-instruksi
yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu.
Algoritma adalah seperangkat aturan yang memberitahukan kepada kita dari waktu ke waktu,
tepatnya bagaimana untuk bertindak.
Algoritma merupakan sebuah deskripsi suatu prosedur yang berakhir dengan sebuah hasil.
Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk
mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang
diinginkan.
Menurut Romi Satria Wahono, salah satu praktisi Komputerisasi terbaik dari indonesia
pemilik dari situs ilmukomputer.com
Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk
memecahkan suatu permasalahan.
Berdasarkan dari definisi algoritma yang dijabarkan oleh beberapa ahli. Kita dapat mengetahui
bahwa kata kunci dari algoritma (algorithm) adalah jelas dan logis. Ini menandakan bahwa saat
kita merangkai atau menyusun sebuah algoritma harus logis dan jelas agar nantinya keluaran
(hasil) benar.
Contoh-contoh Algoritma :
Terdapat juga sebuah algoritma guna mencari nilai maks serta min dari suatu n deret bilangan
yang dimasukkan atau diinput oleh user.
Terdapat sebuah algoritma sebagai kalkulator sederhana untuk operasi penjumlahan, perkalian,
pembagian, dan pengurangan. Kalkulator sederhana ini hanya dapat melakukan perhitungan dari
2 bilangan yang diinput oleh user.
Pada flowchart kali ini mengenai sebuah algoritma untuk menghitung beberapa angka dari suatu
bilangan yang dimasukkan atau diinput oleh user.
Ada juga algoritma yang dapat menghitung jumlah dari biaya yang harus dibayar oleh sang
pembeli setelah mendapatkan sebuah diskon 10% dengan syarat jumlah dari total pembelian
tersebut Rp.1.500.000,-.
Terdapat juga algoritma tahun kabisat. Tahun kabisat merupakan sebuah tahun yang memiliki
tambahan 1 hari dan bertujuan agar kalender dapat sinkron dengan musim tahunan dan keadaan
astronomi. Bulan Februari memiliki 29 hari pada saat tahun kabisat. Tahun yang dapat untuk
dibagi dengan 4 adalah tahun kabisat.
Penyajian Algoritma
Misalkan pada kasus Ember A memiliki larutan warna Merah dan Ember B memiliki larutan
warna Biru, kasusnya adalah Isi Larutan Ember A ditukar dengan isi Larutan Ember B, adapun
penyajian untuk algoritma diatas bisa ditulis atau disajikan sebagai berikut :
Jadi secara garis besar penyajian langkah-langkah algoritma menggunakan Bahasa Ilmiah sangat
mudah sekali karena semua orang bisa menjabarkannya sesuai dengan kondisi real dilapangan
dan menuliskan dalam bentuk tulisan sehingga bisa dimengerti ketika orang akan membacanya.
Kelebihannya = kita bisa berkreasi dengan agoritma yang kita inginkan. Serta agoritma tersebut
bisa di kembangkan lagi.
Kekurangannya = biasanya kita melewati dasar" agoritma tersebut yang dapat menimbulkan bug
dalam agoritma tersebut.
Cara menyajikan algoritma yang kedua adalah dengan menggunakan bagan atau gambar, bagi
banyak kalangan bagan atau gambar yang digunakan untuk menyajikan langkah-langkah
algoritma ini sering disebut dengan Flowchart. Flowchart digunakan untuk lebih mempersingkat
proses pembacaan langkah-langkah yang harus dilakukan dalam memahami alur.
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar
proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap
simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis
penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan
pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart
juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim
suatu proyek.
Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena
flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan
komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan
yang lainnya.
Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu:
Ø Input,
Ø Output
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
ü START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani
pemecahan persoalan.
ü READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
ü PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data
yang dibaca.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa
anjuran:
ü Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya
proses menjadi singkat.
ü Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk
memperjelas.
ü Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Sedangkan kekurangannya adalah penyajian media gambar terbatas dan sulit digunakan untuk
kelompok besar, untuk mengatasai kekurangan tersebut maka pada saat proses pembelajaran
berlangsung siswa secara bergantian mengamati media flowchart.
Simbol-simbol Flowchart :
PSEUDOCODE
Menurut wikipedia, pengertian pseudocode adalah deskripsi tingkat tinggi informal dan ringkas
atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa
pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin.
Pseudocode merupakan kode yang mirip dengan pemograman sebenarnya. Pseudocode berasal
dari kata Pseudo yang berarti imitasi, mirip, atau menyerupai dengan kode bahasa pemograman.
Jadi sebenarnya PESUDOCODE merupakan suatu konsep bahasa yang lebih ringkas dari
flowchart yang bisa secara langsung dikonversi ke dalam bahasa pemrograman, Pseudocode bisa
juga di sebut tiruan dari kode program, tetapi Pseudocode lebih mudah untuk dimengerti
sehingga banyak programmer yang membuat Pseudocode terlebih dahulu sebelum mengkoding.
Pseudocode adalah pemecahan kode yang sulit, menggambarkan logika-logika yang sulit
sehingga dapat di terjemahkan di Pseudocode agar dapat dimenegerti.
Jadi Pesudocode sendiri belum termasuk kedalam bahasa pemrograman, hanya saja lebih
mendekati ke dalam bahasa pemrograman. Hal untuk menterjemahkan PSEUDOCODE mejadi
suatu insturksi pemrograman tergantung bahasa pemrograman yang akan digunakan.
Tujuan Penggunaan Pseudocode :
Tujuan dari penggunaan pseudecode adalah untuk mempermudah manusia dalam pemahaman
dibandingkan menggunakan bahasa pemrograman yang umum digunakan, terlebih aspeknya
yang ringkas serta tidak bergantung pada suatu sistem tertentu merupakan prinsip utama dalam
suatu algoritma.
Kelebihan Pseudocode :
1. Ini adalah bahasa yang independen, Pseudocode dapat digunakan oleh sebagian besar
programmer sehingga memungkinkan developer untuk mengekspresikan desain dalam bahasa
yang sederhana dan alami.
2. Lebih mudah untuk mengembangkan program dari Pseudocode dibandingkan dengan diagram
alur. Programmer tidak harus memikirkan sintaks, kita hanya harus berkonsentrasi pada logika
garis bawah. Fokusnya adalah pada langkah-langkah untuk memecahkan masalah daripada
bagaimana menggunakan bahasa komputer.
4. Penggunaan kata-kata dan frasa dalam Pseudocode, yang berada di garis operasi komputer
dasar menyederhanakan terjemahan dari algoritma Pseudocode ke bahasa pemrograman tertentu.
5. Tidak seperti bagan alur, Pseudocode menggunakan struktur sederhana dan mudah dibaca
membuatnya lebih mudah untuk dimodifikasi.
Kekurangan Pseudocode :
2. Tidak ada standar yang diterima untuk menulis Pseudocode. Pemrogram menggunakan gaya
penulisan Pseudocode mereka sendiri.
3. Pseudocode tidak dapat dikompilasi atau dieksekusi dan tidak ada formatif nyata dari sintaks
aturan. Ini hanyalah satu langkah, yang penting, dalam menghasilkan kode akhir.
3. Cara if-else, for, loops dimasukkan dalam suatu program, indent pernyataan juga, karena
membantu untuk memahami kontrol keputusan dan mekanisme eksekusi. Mereka juga
meningkatkan keterbacaan sebagian besar.
Contoh:
jika "1"
respons cetak
"Aku kasus 1"
jika "2"
respons cetak
"Aku kasus 2"
4. Gunakan konvensi penamaan yang tepat. Kecenderungan manusia mengikuti pendekatan
untuk mengikuti apa yang kita lihat. Jika seorang programmer melewati Pseudocode,
pendekatannya akan sama seperti itu, sehingga penamaannya harus sederhana dan berbeda.
5. Gunakan kalimat yang sesuai, seperti CamelCase untuk metode, huruf besar untuk konstanta
dan huruf kecil untuk variabel.
6. Rumuskan semua yang akan terjadi dalam kode aktual. Jangan buat abstrak Pseudocode.
7. Gunakan struktur pemrograman standar seperti 'if-then', 'for', 'while', 'cases' seperti yang kita
gunakan dalam pemrograman.
8. Periksa apakah semua bagian dari Pseudocode sudah lengkap, terbatas dan jelas untuk
dipahami.
9. Jangan menulis Pseudocode dengan cara terprogram yang lengkap. Sangatlah penting untuk
dipahami bahkan untuk orang awam atau klien, oleh karena itu jangan memasukkan terlalu
banyak istilah teknis.