BAB 2 ALGORITMA - BAB 2 Algoritma.pdf
BAB 2
ALGORITMA
BAB 2 ALGORITMA
Tujuan Pembelajaran Umum:
1. Mahasiswa mampu membuat logika berfikir
2. Mahasiswa mampu menggambarkan pola kerja program
Tujuan Pembelajaran Khusus:
1. Mahasiswa mampu membuat logika berfikir dengan algoritma
2. Mahasiswa mampu menggambarkan pola kerja program secara lisan dan tulisan
Pre Test
1. Apa yang disebut dengan logika berfikir?
2. Apa yang disebut dengan pola kerja program?
3. Bagaimana anda menggambarkan pola kerja dengan menggunakan algoritma?
2.1 Pendahuluan
Pemrograman Algoritma pada dasarnya adalah penyusunan atas instruksi-instruksi
secara sistematis dan terintegrasi yang biasanya disebut source code yang dibuat oleh
programmer (pembuat program). Ditinjau dari asal usul katanya kata Algoritma sendiri
mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti
proses menghitung dengan angka arab. Kita dikatakan Algorist jika kita menghitung
menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun
hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal
kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja‟far
Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi
Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala
yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and
reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra).
Perubahan kata dari 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. Maka lambat laun 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.2 Langkah Pembuatan Program
Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu
langkah-langkah pembuatan suatu program. Terdapat beberapa langkah umum dalam
pembuatan suatu program yaitu:
1.
Mendefinisikan masalah
Dasar Pemrograman untuk Keuangan
2-1
2.
Mencari solusinya
3.
Menentukan algoritma
4.
Menulis program
5.
Menguji program
6.
Mendokumentasikan program
7.
Merawat program
Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini
harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan
output program. Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila
untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan
pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan.
Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan
solusi. Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan
algoritma yang sesuai dan efisien untuk masalah yang dihadapi. Penulisan program bisa
dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki
kompabilitas dengan perangkat keras yang akan menggunakan program tersebut. Bila
program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program
yang dibuat sudah layak untuk digunakan. Penulisan dokumentasi yang biasanya
dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada
program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar
pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi). Program
yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum
diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna
program. Dari penjelasan di atas, dapat kita peroleh kesimpulan bahwa pembelajaran
algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program.
2.3 Algoritma Pemrograman
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu
komputer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan
algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun
banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue
atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma.
Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkahlangkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang
mencoba suatu resep masakan akan membaca satu per satu langkah-langkah
pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak
(benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut
dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses
melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang
menjabarkan proses tersebut.
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar
memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.
Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturanaturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan
memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya
dalam bahasa itu saja.
Dasar Pemrograman untuk Keuangan
2-2
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan
tujuan dan fungsinya. Hal penting dalam pemrograman adalah:
Belajar memprogram ≠ belajar bahasa pemrograman
Belajar memprogram: belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati bersama
Belajar memprogram: bersifat pemahaman persoalan, analisis dan
sintesis
Belajar memprogram, titik berat: designer program
Bahasa pemrograman yang berkembang saat ini adalah;
Gambar 2.1 Perkembangan Bahasa Pemrograman
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan
kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya,
pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus
dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses
harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
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 teknis Algoritma yang
ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Algoritma digunakan dalam banyak hal, mulai dari hal-hal kecil dalam kehidupan
sehari-hari sampai pada ilmu pengetahuan modern. Saat ini, algoritma sangat sering
dikaitkan dengan penyelesaian masalah menggunakan komputer, misalnya algoritma
Quicksort, algoritma FFT (Fast Fourier Transform), algoritma Genetika, algoritma
Metropolis, dan lain sebagainya.
Algoritma adalah suatu urutan langkah-langkah (steps) yang disusun secara logis
untuk menyelesaikan masalah dengan menggunakan komputer, dengan kriteria sebagai
berikut :
1. Setiap langkah/step harus jelas dan pasti (definite).
Contoh :
Tambahkan nilai X dengan 1 atau 2
X = X + (1 atau 2)
Langkah di atas tidak definite, agar definite (1 atau 2) dipilih secara RANDOM
X = X + (random(2) + 1)
2. Diperbolehkan tanpa ada input, tetapi minimal harus ada 1 output.
Dasar Pemrograman untuk Keuangan
2-3
3. Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping criteria.
Ketika menyelesaikan suatu masalah, seringkali tersedia berbagai algoritma yang
berbeda. Untuk memilih salah satu di antara algoritma-algoritma tersebut maka
perlu diketahui terlebih dahulu efisiensi dari masing-masing algoritma yang ada.
Analisis algoritma (analysis of algorithms) merupakan suatu alat yang dapat
digunakan untuk mengetahui efisiensi tersebut. Untuk melakukan analisis terhadap
algoritma, tidak ada suatu formula yang tetap, mudah, dan ringkas. Proses analisis
lebih bertumpu pada pertimbangan (judgement), intuisi, dan pengalaman [2].
Contoh :
Dengan analisis algoritma, dapat diketahui bahwa pengurutan bilangan dapat
dilakukan secara lebih efisien dengan menggunakan algoritma Heapsort dibanding
dengan algoritma Bubblesort. Analisis algoritma menjadi bagian yang tidak terpisahkan
dari algorithmics.
Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Analoginya sama dengan resep membuat kue. Sebuah resep dapat ditulis dalam bahasa
apapun. Bahasa Jepang, Inggris, Perancis, Indonesia, dan lain sebagainya. Apapun
bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti.
Mengapa demikian ? Karena setiap juru masak (sebagai pemroses) dapat melakukan
operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain
sebagainya.
Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda
teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-operasi
dasar dalam pemrograman seperti operasi pembacaan data, operasi perbandingan,
operasi aritmatika, dan sebagainya. Perkembangan teknologi komputer tidak mengubah
operasi-operasi dasar it, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian.
Pada sisi lain setiap program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam
bahasa mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa
mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama
pada setiap computer.
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut
dapat ditulis dalam notasi apapun, asalkan mudah dibaca dan dimengerti, karena
memang tidak ada notasi baku dalam penulisan algoritma. Tiap orang dapat membuat
aturan penulisan dan notasi algoritma sendiri. Agar notasi algoritma mudah ditranslasi
ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut
berkorespnden dengan notasi bahasa pemrograman secara umum.
Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
• Judul (Header)
• Kamus
• Algoritma
Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap bagian
tersebut dituliskan diantara t kita kurung kurawa contoh { Komentar }. Notasi
algoritmis yang dituliskan diantara t kita ini tidak akan dieksekusi oleh program.
Contoh :
Judul
{ Komentar mengenai Algoritma seperti cara kerja program, Kondisi awal dan kondisi
akhir dari algoritma }
Kamus
Dasar Pemrograman untuk Keuangan
2-4
{ Pada bagian ini, didefinifikan nama konstanta, nama variable, nama prosedur dan
nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak diantara t kita
kurung kurawa akan dianggap sebagai notasi algoritma yang akan berpengaruh terhadap
kebenaran algoritma }.
Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan
nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.
Setelah judul disarankan untuk menuliskan spesifikasi singkat dari teks algoritma
tersebut. Nama algoritma sebaiknya singkat namun cukup menggambarkan apa yang
akan dilakukan oleh algoritma tersebut.
Untuk memisahkan antara kata dalam judul algoritma menggunakan t kita “_” bukanlah
suatu keharusan. kita dapat menuliskan LuasLingkaran atau Luas_Lingkaran. Tetapi
sebaiknya kita tidak menggunakan spasi “ “ untuk memisahkan antara kata di dalam
nama algoritma.
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
• Nama type
• Nama konstanta
• Nama variabel
• Nama fungsi
• Nama prosedur
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah didefinisikan
terlebih dahulu didalam kamus. Penulisan sekumpulan nama dalam kamus sebaiknya
dikelompokan menurut jenis nama tersebut. Nama variabel belum terdefinisi nilainya
ketika didefinisikan. Pendefinisian nama konstanta sekaligus memberikan harga
konstanta tersebut, pendefinisian nama fungsi dilakukan sekaligus dengan domain /
range serta spesifikasinya. Pendefinisian nama prosedur sekaligus dengan pendefinisian
parameter (jika ada) dan spesifikasi prosedur (kondisi awal “Initial State”, Kondisi akhir
“ Final State” dan proses yang dilakukan).
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan
aksi yang telah didefinisikan. Komponen teks algoritma dalam pemrograman procedural
dapat berupa :
• Instruksi dasar seperti input/output, assignment
• Sequence (runtutan)
• Analisa kasus
• Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan perintah.
Lihat contoh di bawah ini;
Ada dua buah bejana, A dan B; bejana A berisi larutan kopi, bejana B berisi larutan
susu. Pertukarkan kedua isi bejana itu, sehingga A berisi larutan susu, dan B berisi
larutan kopi. Tidak boleh jadi kopi susu…!?
Bagaimana algoritma menyelesaikan kasus di atas?
Jawabannya: ada tiga langkah, yaitu:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
Dasar Pemrograman untuk Keuangan
2-5
3. Tuangkan larutan dari bejana C ke dalam bejana B.
Selesai dan tidak jadi kopi susu, kecuali kita minum isi kedua bejana itu dan
mencampurnya di perut kita.
Kadangkala sebuah instruksi dikerjakan setelah „kondisi‟ tertentu terpenuhi. Dalam
bahasa pemrograman, ini dikenal dengan “if” dan “then”. Kondisi adalah persyaratan
yang dapat dinilai benar atau salah sehingga akan memunculkan „aksi‟ yang berbeda
dengan „kondisi‟ yang berbeda. contohnya dalam kehidupan sehari-hari kita sering
punya pilihan semacam ini:
„if‟ Widi memperoleh juara kelas
„then‟ ayah akan membelikannya sepeda
„if‟ Jalan Dago macet
„then‟ ambil alternatif Jalan Dipati Ukur
„if‟ Mobilmu rusak
„then‟ pakai saja motorku
Tampak struktur pemilihan „if-then‟ hanya memberikan satu pilihan aksi
bila kondisi dipenuhi atau bernilai benar dan tidak memberikan aksi lain
bila kondisi salah. Bentuk pemilihan yang lebih umum adalah memilih satu
dari dua aksi bergantung pada nilai kondisinya, seperti:
„if‟ hari hujan
„then‟ pergilah dengan naik taxi
„else‟ pergilah dengan naik motor.
di sini secara logika; jika kondisi „hari hujan‟ benar, maka aksi „pergi naik taxi‟
dilakukan. Sebaliknya jika kondisi „hari hujan‟ bernilai salah, maka aksi „pergi naik
motor‟ akan dilaksanakan. Contoh yang lebih kompleks dapat ditemui dalam pemilihan
dengan tiga atau lebih variable, seperti penentuan bilangan terbesar dari tiga buah
bilangan; x, y, dan z.
„if‟ x > y „then‟
„if‟ x > z „then‟
tulis x sebagai bilangan terbesar
„else‟
tulis z sebagai bilangan terbesar
„else‟
„if‟ y > z „then‟
tulis y sebagai bilangan terbesar
„else‟
tulis z sebagai bilangan terbesar
Contoh di atas biasa disebut dengan „pemilihan bersarang‟.
Dalam mempelajari algoritma, kita tidak dituntut untuk menguasai ilmu eksak secara
keseluruhan. Hal mutlak yang diperlukan dalam mempelajari algoritma adalah logika
kita dalam menganalisis suatu permasalahan. Ada 2 hal penting yang mesti kita ketahui
dari algoritma adalah sebagai berikut:
Pertama, Algoritma harus benar.
Maksudnya adalah setiap masalah yang kita coba uraikan dalam bentuk program harus
menghasilkan output yang benar. Contohnya, kita buat program penjumlahan 2 tambah
3dan hasilnya harus 5, jika output diluar itu, berarti algoritma kita dalam pemrograman
kacau.
Hal penting kedua, algoritma harus berhenti.
Dasar Pemrograman untuk Keuangan
2-6
Contoh sederhananya seperti algoritma intrusion. Algoritma tersebut berhenti setelah
melewati proses Covering Track & Installing Backdoor (jika instruksi tidak ada akhir
maka system computer akan merespon dengan layar biru “hang”). Apabila mengalami
kebuntuan dalam mendesign algoritma suatu masalah, langkah yang perlu kita lakukan
adalah dengan melihat/menganalisis masalah tersebut secara menyeluruh setelah itu
kita coba uraikan/bagi permasalahan tersebut sehingga menjadi kumpulan²
permasalahan yang lebih sederhana.
Struktur perulangan “While…Do” tidak terlalu jauh berbeda dengan struktur
perulangan “Repeat…Until”. Bila pada “Repeat…Until” memungkinkan terjadinya
proses
terlebih dahulu sesudah itu baru terjadi pengecekan kondisi, tetapi pada “While…Do”,
anda tidak akan dapat menjalankan baris-baris aksi bila syarat (kondisi) yang
memungkinkan aksi itu dijalankan tidak sesuai. While artinya sementara, sedangkan Do
artinya kerjakan, jadi bila diindonesiakan sintaksnya sendiri berbentuk seperti ini :
Sementara /kondisi terpenuhi/ Kerjakan
aksi dijalankan
Selesai
Contoh penggunaan “While…Do” seperti ini, misalnya anda ingin mencetak kalimat
“saya suka kuliah di POLBAN” di layar sebanyak 10 kali, menggunakan “While…Do”
maka
sintaksnya akan seperti ini:
pencacah
ALGORITMA
BAB 2 ALGORITMA
Tujuan Pembelajaran Umum:
1. Mahasiswa mampu membuat logika berfikir
2. Mahasiswa mampu menggambarkan pola kerja program
Tujuan Pembelajaran Khusus:
1. Mahasiswa mampu membuat logika berfikir dengan algoritma
2. Mahasiswa mampu menggambarkan pola kerja program secara lisan dan tulisan
Pre Test
1. Apa yang disebut dengan logika berfikir?
2. Apa yang disebut dengan pola kerja program?
3. Bagaimana anda menggambarkan pola kerja dengan menggunakan algoritma?
2.1 Pendahuluan
Pemrograman Algoritma pada dasarnya adalah penyusunan atas instruksi-instruksi
secara sistematis dan terintegrasi yang biasanya disebut source code yang dibuat oleh
programmer (pembuat program). Ditinjau dari asal usul katanya kata Algoritma sendiri
mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti
proses menghitung dengan angka arab. Kita dikatakan Algorist jika kita menghitung
menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun
hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal
kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja‟far
Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi
Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala
yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and
reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra).
Perubahan kata dari 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. Maka lambat laun 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.2 Langkah Pembuatan Program
Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu
langkah-langkah pembuatan suatu program. Terdapat beberapa langkah umum dalam
pembuatan suatu program yaitu:
1.
Mendefinisikan masalah
Dasar Pemrograman untuk Keuangan
2-1
2.
Mencari solusinya
3.
Menentukan algoritma
4.
Menulis program
5.
Menguji program
6.
Mendokumentasikan program
7.
Merawat program
Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini
harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan
output program. Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila
untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan
pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan.
Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan
solusi. Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan
algoritma yang sesuai dan efisien untuk masalah yang dihadapi. Penulisan program bisa
dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki
kompabilitas dengan perangkat keras yang akan menggunakan program tersebut. Bila
program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program
yang dibuat sudah layak untuk digunakan. Penulisan dokumentasi yang biasanya
dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada
program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar
pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi). Program
yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum
diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna
program. Dari penjelasan di atas, dapat kita peroleh kesimpulan bahwa pembelajaran
algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program.
2.3 Algoritma Pemrograman
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu
komputer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan
algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun
banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue
atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma.
Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkahlangkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang
mencoba suatu resep masakan akan membaca satu per satu langkah-langkah
pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak
(benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut
dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses
melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang
menjabarkan proses tersebut.
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar
memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.
Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturanaturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan
memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya
dalam bahasa itu saja.
Dasar Pemrograman untuk Keuangan
2-2
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan
tujuan dan fungsinya. Hal penting dalam pemrograman adalah:
Belajar memprogram ≠ belajar bahasa pemrograman
Belajar memprogram: belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati bersama
Belajar memprogram: bersifat pemahaman persoalan, analisis dan
sintesis
Belajar memprogram, titik berat: designer program
Bahasa pemrograman yang berkembang saat ini adalah;
Gambar 2.1 Perkembangan Bahasa Pemrograman
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan
kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya,
pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus
dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses
harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
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 teknis Algoritma yang
ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Algoritma digunakan dalam banyak hal, mulai dari hal-hal kecil dalam kehidupan
sehari-hari sampai pada ilmu pengetahuan modern. Saat ini, algoritma sangat sering
dikaitkan dengan penyelesaian masalah menggunakan komputer, misalnya algoritma
Quicksort, algoritma FFT (Fast Fourier Transform), algoritma Genetika, algoritma
Metropolis, dan lain sebagainya.
Algoritma adalah suatu urutan langkah-langkah (steps) yang disusun secara logis
untuk menyelesaikan masalah dengan menggunakan komputer, dengan kriteria sebagai
berikut :
1. Setiap langkah/step harus jelas dan pasti (definite).
Contoh :
Tambahkan nilai X dengan 1 atau 2
X = X + (1 atau 2)
Langkah di atas tidak definite, agar definite (1 atau 2) dipilih secara RANDOM
X = X + (random(2) + 1)
2. Diperbolehkan tanpa ada input, tetapi minimal harus ada 1 output.
Dasar Pemrograman untuk Keuangan
2-3
3. Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping criteria.
Ketika menyelesaikan suatu masalah, seringkali tersedia berbagai algoritma yang
berbeda. Untuk memilih salah satu di antara algoritma-algoritma tersebut maka
perlu diketahui terlebih dahulu efisiensi dari masing-masing algoritma yang ada.
Analisis algoritma (analysis of algorithms) merupakan suatu alat yang dapat
digunakan untuk mengetahui efisiensi tersebut. Untuk melakukan analisis terhadap
algoritma, tidak ada suatu formula yang tetap, mudah, dan ringkas. Proses analisis
lebih bertumpu pada pertimbangan (judgement), intuisi, dan pengalaman [2].
Contoh :
Dengan analisis algoritma, dapat diketahui bahwa pengurutan bilangan dapat
dilakukan secara lebih efisien dengan menggunakan algoritma Heapsort dibanding
dengan algoritma Bubblesort. Analisis algoritma menjadi bagian yang tidak terpisahkan
dari algorithmics.
Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Analoginya sama dengan resep membuat kue. Sebuah resep dapat ditulis dalam bahasa
apapun. Bahasa Jepang, Inggris, Perancis, Indonesia, dan lain sebagainya. Apapun
bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti.
Mengapa demikian ? Karena setiap juru masak (sebagai pemroses) dapat melakukan
operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain
sebagainya.
Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda
teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-operasi
dasar dalam pemrograman seperti operasi pembacaan data, operasi perbandingan,
operasi aritmatika, dan sebagainya. Perkembangan teknologi komputer tidak mengubah
operasi-operasi dasar it, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian.
Pada sisi lain setiap program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam
bahasa mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa
mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama
pada setiap computer.
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut
dapat ditulis dalam notasi apapun, asalkan mudah dibaca dan dimengerti, karena
memang tidak ada notasi baku dalam penulisan algoritma. Tiap orang dapat membuat
aturan penulisan dan notasi algoritma sendiri. Agar notasi algoritma mudah ditranslasi
ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut
berkorespnden dengan notasi bahasa pemrograman secara umum.
Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
• Judul (Header)
• Kamus
• Algoritma
Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap bagian
tersebut dituliskan diantara t kita kurung kurawa contoh { Komentar }. Notasi
algoritmis yang dituliskan diantara t kita ini tidak akan dieksekusi oleh program.
Contoh :
Judul
{ Komentar mengenai Algoritma seperti cara kerja program, Kondisi awal dan kondisi
akhir dari algoritma }
Kamus
Dasar Pemrograman untuk Keuangan
2-4
{ Pada bagian ini, didefinifikan nama konstanta, nama variable, nama prosedur dan
nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak diantara t kita
kurung kurawa akan dianggap sebagai notasi algoritma yang akan berpengaruh terhadap
kebenaran algoritma }.
Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan
nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.
Setelah judul disarankan untuk menuliskan spesifikasi singkat dari teks algoritma
tersebut. Nama algoritma sebaiknya singkat namun cukup menggambarkan apa yang
akan dilakukan oleh algoritma tersebut.
Untuk memisahkan antara kata dalam judul algoritma menggunakan t kita “_” bukanlah
suatu keharusan. kita dapat menuliskan LuasLingkaran atau Luas_Lingkaran. Tetapi
sebaiknya kita tidak menggunakan spasi “ “ untuk memisahkan antara kata di dalam
nama algoritma.
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
• Nama type
• Nama konstanta
• Nama variabel
• Nama fungsi
• Nama prosedur
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah didefinisikan
terlebih dahulu didalam kamus. Penulisan sekumpulan nama dalam kamus sebaiknya
dikelompokan menurut jenis nama tersebut. Nama variabel belum terdefinisi nilainya
ketika didefinisikan. Pendefinisian nama konstanta sekaligus memberikan harga
konstanta tersebut, pendefinisian nama fungsi dilakukan sekaligus dengan domain /
range serta spesifikasinya. Pendefinisian nama prosedur sekaligus dengan pendefinisian
parameter (jika ada) dan spesifikasi prosedur (kondisi awal “Initial State”, Kondisi akhir
“ Final State” dan proses yang dilakukan).
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan
aksi yang telah didefinisikan. Komponen teks algoritma dalam pemrograman procedural
dapat berupa :
• Instruksi dasar seperti input/output, assignment
• Sequence (runtutan)
• Analisa kasus
• Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan perintah.
Lihat contoh di bawah ini;
Ada dua buah bejana, A dan B; bejana A berisi larutan kopi, bejana B berisi larutan
susu. Pertukarkan kedua isi bejana itu, sehingga A berisi larutan susu, dan B berisi
larutan kopi. Tidak boleh jadi kopi susu…!?
Bagaimana algoritma menyelesaikan kasus di atas?
Jawabannya: ada tiga langkah, yaitu:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
Dasar Pemrograman untuk Keuangan
2-5
3. Tuangkan larutan dari bejana C ke dalam bejana B.
Selesai dan tidak jadi kopi susu, kecuali kita minum isi kedua bejana itu dan
mencampurnya di perut kita.
Kadangkala sebuah instruksi dikerjakan setelah „kondisi‟ tertentu terpenuhi. Dalam
bahasa pemrograman, ini dikenal dengan “if” dan “then”. Kondisi adalah persyaratan
yang dapat dinilai benar atau salah sehingga akan memunculkan „aksi‟ yang berbeda
dengan „kondisi‟ yang berbeda. contohnya dalam kehidupan sehari-hari kita sering
punya pilihan semacam ini:
„if‟ Widi memperoleh juara kelas
„then‟ ayah akan membelikannya sepeda
„if‟ Jalan Dago macet
„then‟ ambil alternatif Jalan Dipati Ukur
„if‟ Mobilmu rusak
„then‟ pakai saja motorku
Tampak struktur pemilihan „if-then‟ hanya memberikan satu pilihan aksi
bila kondisi dipenuhi atau bernilai benar dan tidak memberikan aksi lain
bila kondisi salah. Bentuk pemilihan yang lebih umum adalah memilih satu
dari dua aksi bergantung pada nilai kondisinya, seperti:
„if‟ hari hujan
„then‟ pergilah dengan naik taxi
„else‟ pergilah dengan naik motor.
di sini secara logika; jika kondisi „hari hujan‟ benar, maka aksi „pergi naik taxi‟
dilakukan. Sebaliknya jika kondisi „hari hujan‟ bernilai salah, maka aksi „pergi naik
motor‟ akan dilaksanakan. Contoh yang lebih kompleks dapat ditemui dalam pemilihan
dengan tiga atau lebih variable, seperti penentuan bilangan terbesar dari tiga buah
bilangan; x, y, dan z.
„if‟ x > y „then‟
„if‟ x > z „then‟
tulis x sebagai bilangan terbesar
„else‟
tulis z sebagai bilangan terbesar
„else‟
„if‟ y > z „then‟
tulis y sebagai bilangan terbesar
„else‟
tulis z sebagai bilangan terbesar
Contoh di atas biasa disebut dengan „pemilihan bersarang‟.
Dalam mempelajari algoritma, kita tidak dituntut untuk menguasai ilmu eksak secara
keseluruhan. Hal mutlak yang diperlukan dalam mempelajari algoritma adalah logika
kita dalam menganalisis suatu permasalahan. Ada 2 hal penting yang mesti kita ketahui
dari algoritma adalah sebagai berikut:
Pertama, Algoritma harus benar.
Maksudnya adalah setiap masalah yang kita coba uraikan dalam bentuk program harus
menghasilkan output yang benar. Contohnya, kita buat program penjumlahan 2 tambah
3dan hasilnya harus 5, jika output diluar itu, berarti algoritma kita dalam pemrograman
kacau.
Hal penting kedua, algoritma harus berhenti.
Dasar Pemrograman untuk Keuangan
2-6
Contoh sederhananya seperti algoritma intrusion. Algoritma tersebut berhenti setelah
melewati proses Covering Track & Installing Backdoor (jika instruksi tidak ada akhir
maka system computer akan merespon dengan layar biru “hang”). Apabila mengalami
kebuntuan dalam mendesign algoritma suatu masalah, langkah yang perlu kita lakukan
adalah dengan melihat/menganalisis masalah tersebut secara menyeluruh setelah itu
kita coba uraikan/bagi permasalahan tersebut sehingga menjadi kumpulan²
permasalahan yang lebih sederhana.
Struktur perulangan “While…Do” tidak terlalu jauh berbeda dengan struktur
perulangan “Repeat…Until”. Bila pada “Repeat…Until” memungkinkan terjadinya
proses
terlebih dahulu sesudah itu baru terjadi pengecekan kondisi, tetapi pada “While…Do”,
anda tidak akan dapat menjalankan baris-baris aksi bila syarat (kondisi) yang
memungkinkan aksi itu dijalankan tidak sesuai. While artinya sementara, sedangkan Do
artinya kerjakan, jadi bila diindonesiakan sintaksnya sendiri berbentuk seperti ini :
Sementara /kondisi terpenuhi/ Kerjakan
aksi dijalankan
Selesai
Contoh penggunaan “While…Do” seperti ini, misalnya anda ingin mencetak kalimat
“saya suka kuliah di POLBAN” di layar sebanyak 10 kali, menggunakan “While…Do”
maka
sintaksnya akan seperti ini:
pencacah