Sekilas Mengenai Algoritma
Algoritma seperti kata kebanyakan orang,
bukanlah sesuatu yang hanya berhubungan dengan dunia komputer
saja. Algoritma juga berlaku dalam kehidupan sehari-hari. Kali ini saya mau
membahas contoh yang mungkin kedengaran tidak “lazim” digunakan untuk memberi
gambaran mengenai algoritma :D.
Beberapa contoh sederhana mengenai algoritma
yang dapat ditemui dalam kehidupan sehari – hari misalnya:
1. Memasak mie instant.
Prosesnya sbb: memanaskan air, membuka pembungkus mie instant
(tentunya), memasukkan mie ke dalam air, taruh bumbu di piring, angkat mie jika
sudah masak, campurkan dengan bumbu yang sudah ada di piring dengan mie, makan…
:D (koq jadi laper? :D)
2. Menelepon
Prosesnya sbb: angkat telepon, tekan nomor teleponnya:
· jika diangkat maka mulai berbicara setelah
selesai tutup teleponnya
· jika tidak diangkat, maka tutup teleponnya
Dan masih banyak lagi contoh – contoh
sederhana mengenai algoritma yang dapat kita jumpai dalam kehidupan sehari –
hari.
Algoritma Pemrograman
Sekarang kita mulai membicarakan mengenai
algoritma pemrograman. Pertama – tama, akan saya kutip dulu ciri – ciri dari
algoritma seperti yang dipaparkan oleh Donald E. Knuth:
· Algoritma mempunyai awal dan akhir.
· Setiap langkah harus didefinisikan dengan
tepat sehingga tidak memiliki arti ganda (ambigu).
· Memiliki masukan (input) atau kondisi
awal.
· Memiliki keluaran (output) atau kondisi
akhir.
· Algoritma harus efektif; bila digunakan benar
– benar menyelesaikan persoalan.
Saya sendiri sebenarnya tidak terlalu setuju
dengan hal – hal seperti itu yang terkesan terlalu membatasi. Karena sebenarnya
ada banyak cara untuk menghasilkan sesuatu tanpa harus mengikuti aturan yang
“baku” / satu aturan saja yang terkesan mengikat, iya kan? Namun jika ada yang
mau “bertindak” seperti yang telah dipaparkan di atas, itu sah – sah saja.
Sekarang, kita akan melihat beberapa program,
mulai dari yang mudah sampai yang cukup sulit, beserta penjelasannya.
Nilai Terbesar Dari 3 Buah Bilangan
Untuk mencari nilai terbesar dari 3 buah
bilangan, dalam C++, kode yang saya gunakan adalah sbb:
#include
<iostream>
using namespace std;
void main() {
int
a, b, c, d;
cout
<< "nilai 1: ";
cin
>> a;
cout
<< "nilai 2: ";
cin
>> b;
cout
<< "nilai 3: ";
cin
>> d;
c
= (a > b ? a : b);
cout
<< "nilai terbesar adalah : " << (c > d ? c : d)
<< "\n";
}
Logika:
Bandingkan nilai pertama dengan nilai kedua. Kemudian yang lebih
besar di antara nilai tersebut di bandingkan dengan nilai berikutnya (nilai ke
tiga), sehingga di dapat nilai terbesar di antara ketiga variabel tersebut.
Penjelasan kode:
Seperti yang kita lihat di atas, pertama – tama, kita membuat
tiga variabel yaitu, variabel a, b, c, dan d. Kemudian, kita meminta user untuk
memasukkan nilai untuk variabel a, b, dan d. Setelah itu, kita membandingkan nilai
masing – masing variabel. Disini digunakan variabel c sebagai “alat
bantu”. Variabelc sendiri menyimpan nilai terbesar antara
variabel a dan b. Kemudian ditampilkan
nilai yang terbesar yang didapat setelah membandingkan variabel c dan d.
Jumlah Deret
Yang dimaksud dengan jumlah deret di sini
adalah misalnya saja yang diminta adalah 3 suku deret. Maka dikalkulasikan
menjadi:
1 – 1/3 + 1/5 – 1/ 7
Perhatikan bahwa dalam proses kalkulasi tersebut tanda + dan –
berubah setiap kali dilakukan proses perhitungan. Baiklah, sekarang kita
membahas kodenya:
#include
<iostream>
using namespace std;
void main () {
int
mp = -1;
double
satu = 1, ulang = 3;
int
masuk;
cout
<< "masukan nilai : ";
cin
>> masuk;
for
(int ulang2 = 1; ulang2 <= masuk; ++ulang2) {
satu
= satu + ((1 / ulang) * mp);
mp
*= -1;
ulang
+= 2;
}
cout
<< satu << "\n";
}
Logika:
Melakukan perhitungan dari suku pertama sampai suku ke – n
(jumlah suku yang diminta oleh user). Mungkin yang paling
“mengganggu” pemikiran Anda adalah bagaimana cara untuk membuat tanda + dan
minus berubah – ubah setiap kali, kan? Padahal itu bisa saja diatasi hanya dengan
mengalikan -1 dengan -1 sehingga hasilnya bisa menjadi positif , ya
kan? Jika sudah begitu, “urusan” berikutnya menjadi beresJ.
Penjelasan kode:
Kode di atas juga cukup jelas jika diamati dengan baik. Awalnya
kita membuat beberapa “buah” variabel:
· Yang akan menjadi input bagi
/ dari user, yaitu masuk
· Yang akan “menampung” hasil perhitungan, yaitu satu
· Yang akan menjadi pembagi dan terus dinaikkan
nilainya, yaitu ulang
· Yang akan “merubah” tanda dan jenis
perhitungan (dari penjumlahan menjadi pengurangan dan sebaliknya), yaitu mp
Kemudian kita melakukan perulangan dengan menjumlahkan variabel satu yang bernilai 1
(pada awalnya) dengan hasil dari 1 dibagi dengan variabel ulang dimana nilai
awalnya adalah 3, dan kemudian ditambah 2 untuk setiap perulangan yang
dilakukan kemudian dikalikan dengan variabel mp yang bernilai -1
pada awalnya sehingga menghasilkan perhitungan: 1 – (1/3).Variabel mp kemudian
dikalikan dengan -1 untuk menghasilkan nilai positif sehingga pada perhitungan
berikutnya menjadi seperti berikut:
1 – (1/3) + (1/5)
Begitu seterusnya hingga perhitungan mencapai suku ke – n, dan
proses perhitungan pun dilakukan sekali lagi dan berhenti. Hasilnya kemudian
ditunjukkan oleh variabel satu. Jelas sekali, bukan?
0 komentar:
Posting Komentar