Algoritma Pemrograman Dengan Menggunakan C++
Pengantar
Alhamdulillah Asta'inuhu wa Astaghfiruh wa Na'udzubillah min Syururi Anfusi......
Tulisan ini hanya kutipan dari Ilmu Komputer.com
Marilah kita membahas mengenai algoritma dalam pemrograman. Mudah –mudahan tulisan ini bisa memberi masukan bagi banyak orang khususnya bagi orang yang mempelajari pemrograman komputer untuk mempermudah mereka dalam membuat sebuah program yang baik.
Dalam membuat sebuah program, ada beberapa hal yang penting, paling tidak menurut saya, yaitu:
1. Tujuan pembuatan program,
2. Algoritma,
3. Bahasa pemrograman itu sendiri
Dalam kesempatan kali ini, saya ingin membahas mengenai algoritma dalam pemrograman. Hal – hal yang akan disajikan di sini merupakan contoh – contoh program yang ditulis dalam bahasa C++ yang kemudian akan dijelaskan lebih detail. Lebih tepatnya jika saya katakan bahwa tulisan ini merupakan kumpulan contoh algoritma yang pernah dibahas dan cukup “populer” sebagai contoh – contoh algoritma.
Pembahasan yang terdapat disini sebenarnya lebih ditujukan kepada orang – orang yang sudah sedikit mengenal bahasa pemrograman C++ sehingga akan mempermudah dalam memahami konsep algoritma yang dijelaskan di sini.
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”. Variabel c 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 beres J.
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?
Array
Ok, sekarang, masuk ke “permainan” array. Dalam “permainan” ini, kita akan meminta user untuk memasukkan nomor stambuk yangterdiri atas 7 angka. Masing - masing angka (dari nomor stambuk) tersebut akan disimpan dalam sebuah array yang terdapat variabel a. Nilai dari masing – masing array tersebut akan dikalikan jika nilai tersebut bukan 0 (nol) dan “disimpan dalam sebuah variabel sebut saja x. Kemudian dibuat variabel lain sebut saja b yang memiliki 7 array juga. “Isi” variabel b merupakan hasil dari masing – masing array variabel a ditambah x. Berikut ini kodenya:
#include <iostream>
using namespace std;
void main() {
int a[7], x = 1;
for (int i = 0; i < 7; ++i) {
cout << "nomor " << i + 1 << ": ";
cin >> a[i];
}
for (int j = 0; j < 7; ++j) {
if (a[j] == 0)
continue;
else {
x *= a[j];
}
}
int b[7];
for (int k = 0; k < 7; ++k) {
b[k] = a[k] + x;
cout << b[k] << "\n";
}
}
Logika:
Dari semua array (angka – angka) yang ada (sudah dimasukkan), kita melakukan “pencarian”. Jika array tersebut bernilai 0 (nol) maka, array tersebut kita lewati. Jika array tersebut bukan bernilai nol (karena itu tentu saja bernilai lebih dari nol, karena secara logika, tidak ada nomor stambuk yang minus, kan?), maka kita kalikan dengan array berikutnya yang juga tidak bernilai nol. Kemudian setelah itu, kita membuat array lain dari sebuah variabel yang lain (tentunya) untuk “ditempati” masing – masing oleh hasil dari masing – masing array variabel yang satunya ditambah dengan hasil perkalian seluruh nilai tadi.
Penjelasan kode:
Pertama – tama, kita buat sebuah variabel (variabel a) untuk menampung 7 buah array, lalu variabel x untuk menampung hasil perkalian seluruh array variabel a. Nilai awal x adalah 1, dengan asumsi bahwa tidak ada nomor stambuk yang seluruhnya 0 (nol) (karena klo gitu buat apa dibuatkan nomor stambuk, kan?) sehingga bisa dikalikan dengan seluruh array variabel a dengan memiliki kemungkinan nilai terkecil adalah 1. Lakukan perulangan untuk setiap array variabel a, dengan “menyisipkan” kondisi agar jika nilai array tersebut adalah 0 (nol) maka dilewati (continue), dan apabila nilainya bukan nol, maka dikalikan dengan variabel x. Setelah selesai, dibuat variabel baru dengan array yang sama, yaitu 7. Lalu perulangan dilakukan lagi untuk mengisi semua array tersebut dengan hasil dari x ditambah dengan masing – masing array variabel a.
bersambung..............
Teruskan gan..
BalasHapus