Bab 2
Bab 2
APLIKOM
BAB 2
PENGANTAR ALGORITMA
1. Menganalisis masalah.
Informasi yang diperlukan pada tahap ini adalah mengumpulkan informasi awal mengenai
masalah, memahami keluaran yang dikehendaki, mengumpulkan masukan-masukan yang
diperlukan, dan mengenali pemrosesan data masukan sehingga bisa menjadi keluaran.
2, Merancang program yang digunakan untuk memecahkan masalah.
Penyiapan program dilakukan pada tahap ini. Sketsa penyelesaian, rancangan antarmuka,
desain database, dan pemilihan atau penyusunan algoritma merupakan bagian dari aktivitas ini.
3. Menuliskan program.
Setelah aktivitas tahap kedua sudah terkumpul, penuangan ke dalam program mulai bisa
dilaksanakan.
4. Menguji program.
Tahap akhir pernbuatan program adalah memastikan bahwa program yang dibuat benar-benar
sesuai dengan tugas yang diembannya dan bebas dari kesalahan.
Agar algoritma (atau pseudokode) bisa dituangkan ke dalam program, ada tiga hal yang perlu
diperhatikan, yaitu tidak ambigu, dapat dieksekusi, dan berurutan (Brown, 2012).
"Tidak ambigu” berarti bahwa setiap instruksi hanya mempunyai satu interpretasi.
"Dapat dieksekusi” berarti bahwa setiap instruksi dapat dieksekusi oleh orang atau sistem
kompüter tanpa memerlukan informasi tambahan.
"Berurutan" berarti bahwa instruksi-instruksi di dalam algoritma telah tersusun urut
sehingga dapat digunakan untuk melaksanakan tugas dengan tepat.
Menurut Knuth (1973) dan juga Horowitz, dkk. (1999), ada lima ciri-ciri penting yang harus
dimiliki oleh suatu algoritma, yaitu berupa finjteness, definiteness, maşukan, keluaran, dan
efektivitas.
1. Finiteness. Finiteness menyatakan bahwa suatu algoritma harus berakhir untuk semua
kondisi setelah memproses sejumlah langkah.
3. Maşukan. Setiap algoritma bisa tidak memiliki maşukan, tetapi umumnya mempunyai
satu atau beberapa maşukan. Maşukan merupakan suatu besaran yang diberikan di awal
sebelum algoritma diproses.
4. Keluaran. Setiap algoritma memiliki keluaran, entah hanya sebuah keluaran atau banyak
keluaran. Keluaran merupakan besaran yang mempunyai kaitan atau hubungan dengan
maşukan.
5. Efektivitas. Setiap algoritma diharapkan bersifat efektif, dalam arti semua operasi yang
dilaksanakan oleh algoritma haruslah sederhana dan dapat dikerjakan dalam waktu yang
terbatas
LATİHAN
1. Cobalah uji algoritma untuk menghitung luas lingkaran di depan dengan ketiga hal yang
diutarakan oleh Brown. Apakah ada langkah yang tidak memenuhi kriteria tersebut?
2. Bagaimana halnya kalau terdapat algoritma seperti berikut yang ditujukan untuk
memberitahukan suatu tempat? Asumsikan yang akan mengerjakan adalah orang.
a. Jalanlah lurus sampai bertemu perempatan yang pertama.
b. Ambil jalan ke kanan.
c. Carilah rumah tingkat. Di situlah lokasinya.
Contoh di Gambar 2.1 memperlihatkan algoritma dalam bentuk pseudokode yang diterjemahkan
ke dalam dua bahasa pemrograman: C++ dan Pascal.
Gambar 2.1 Algoritma dapat dituangkan ke dalam bahasa pemrograman yang berbeda dengan mudah
Untuk memahami cara menyusun algoritma berdasarkan suatu permasalahan, ikuti contoh-
contoh berikut.
Contoh 1:
Terdapat dua anak bersaudara, sebut saja A dan B. A berkedudukan sebagai kakak dan B sebagai
adik Usia kedua anak tersebut kalau dijumlahkan adalah 26, sedangkan kalau diselisihkan bernilai
8. Berapa
Solusi:
Pada contoh ini, A dan B jelas berkedudukan sebagai keluaran karena yang dipertanyakan.
Bagaimana dengan maşukannya? Jika Anda membandingkan dengan kasus perhitungan keliling
persegi panjang di depan, kasus usja ini sebenarnya tidak mengandung maşukan. Informasi
tentang jurnlah dan selisih usia
13
Contoh 2:
Sekarang, angka 26 dan 8 akan dijadikan sebagai variabel X dan Y. Persoalannya menjadi
seperti berikut. A berkedudukan sebagai kakak dan B sebagai adik. Usia kedua anak
tersebut kalau dijumlahkan adalah X, sedangkan kalau diselisihkan adalah Y. Berapa usia
A dan B?
Solusi:
Pada persoalan di atas, X dan Y berkedudukan sebagai masukan. Jika dinyatakan dalam bentuk
gambar adalah seperti berikut.
X A
Algoritma
Y B
Itulah sebabnya, berdasarkan cara pada contoh pertama, algoritma bisa ditulis seperti berikut:
1. Baca X
2. Baca Y
3. Hitung : A ← (X + Y) / 2
4. Hitung: B ← A - X
5. Tampilkan A, B
Contoh 3:
solusi pada persoalan kedua bisa berbeda dengan solusi di Contoh 2. Jika solusi di atas mengacu
pada perhitungan A terlebih dulu, perhitungan sebenarnya juga bisa dimulai dari B dahulu. Hal
ini menunjukkan bahwa persoalan yang sama bisa dipecahkan dengan menggunakan algoritma
yang berbeda.
Solusi:
1. Baca X
2. Baca Y
3. B ← (X-Y)/2
4. A ← X - B
5. Tampilkan A, B
Contoh 4:
Solusi:
Persoalan ini sangat sederhana. Namun, solusi yang digunakan untuk menuangkan algoritma
tidak sekadar bisa diselesaikan dengan penalaran aljabar. Contoh ini menunjukkan bahwa
dalam kasus tertentu Anda harus melakukan pencarian untuk memperoleh solusinya. Dalam
hal ini, Anda bisa melihat rumus lingkaran di buku-buku geometri, menanyakan pada teman
atau adik, atau dengan melakukan pencarian melalui Search engine. Setelah Anda mengetahui
cara menghitung luas lingkaran (yaitu πR2), Anda bisa menuangkannya menjadi seperti
berikut:
1. Baca R
3. Tampilkan R
Contoh 5:
Solusi:
penyelesaian persoalan ini tidak semudah contoh-contoh di depan. Untuk memahami penulisan
algoritmanya, mula-mula kita siapkan secarik kertas dan pensil. Perhatikan uraian berikut.
Terlihat bahwa penjumlahan dilakukan per bilangan (tidak serentak untuk kesepuluh
bilangan), dimulai saat pencacah bernilai 1 hingga bernilai 10. Dengan cara seperti itu,
jika nilai 10 ditambahkan, akan diperoleh penjumlahan 1+2+3+4+5+6+7+8+9+10.
Berdasarkan uraian di depan, ada dua besaran yang dilibatkan dalam pengulangan
perhitungan, yaitu:
CATATAN
Dalam praktik, seringkali pemrogram menyelesaikan persoalan dengan
menggabungkan algoritma-algoritma yang pernah dibuat oleh orang Iain.
Sebagai contoh, di dalam mengurutkan sekumpulan data, pemrograman bisa
menggunakan algoritma seperti Quicksort ataupun Insertion sort.
Algoritmaalgoritma seperti itu banyak diulas dalam buku-buku yang membahas
17
masalah algoritma, struktur data, dan pemrograman. Oleh karena itu, selain
seorang pemrogram memiliki kemampuan dasar dalam membuat algoritma, ia
juga perlu mengetahui berbagai algoritma yang pernah dibuat orang supaya
penyelesaian masalah dapat dilakukan segera.
18
LATIHAN
1. Benar atau salah?
a. Algoritma itu sebenarnya program.
b. Suatu algoritma selalu mempunyai masukan.
c. Suatu algoritma dapat tidak memiliki keluaran.
d. Suatu instruksi yang baik tidak boleh ambigu.
e. Istilah definiteness pada algoritma sebenarnya berarti tidak ambigu.
f. Pseudokode itu memiliki bentuk yang lebih ringkas daripada algoritma.