1. Algoritma Penentuan ke-n Secara Acak untuk
Formula Pembagi
SNMP Simamora, ST., MT.1
1. Program studi: Teknik Komputer
Politeknik TELKOM Bandung
Jl. Telekomunikasi, Ters.Buah Batu, Bandung 40257
Email : snmpsimamora@telkom.net
ABSTRAK
Mekanisme pemecahan sebuah persoalan diperoleh dari pembangunan
suatu algoritma. Algoritma disusun dari sejumlah tahapan instruksi
yang dilakukan agar hasil akhir penyelesaian persoalan didapatkan
secara sistematis dan terstruktur. Dari sebuah algoritma dapat
selanjutnya dibangun aplikasi pemrograman.
Kasus yang menarik adalah saat formula yang dihadapi merupakan
fungsi pembalik dari fungsi awal. Misalkan ini ditemukan pada formula
Cparalel pada rumus mencari Kapasitor penggati pada rangkaian
serial kapasitor pada rangkaian listrik. Hal yang tersulit bagi user
adalah menentukan terminasi proses perulangan jika setiap masukan
pada blok proses dilakukan secara acak
Dalam struktur pohon logika, proses perulangan dilakukan
menggunakan for..i; dalam kasus ini, akan digunakan Bahasa
Pemrograman C++ untuk membangun program dari algoritma yang
telah disusun. Dengan alasan, bahasa ini lebih representatif
dibandingkan bahasa pemrograman yang lain
Kata kunci: algoritma, fungsi pembagi, fungsi pembalik, looping-
process.
Jurnal Politeknik TELKOM Bandung 1
Volume 1 Nomor 1 Tahun 2009
2. 1. PENDAHULUAN
1.1 Latar Belakang
Pendekatan yang dilakukan dalam penyelesaian sebuah persoalan
lebih mudah jika dilakukan terlebih dahulu penyusunan algoritma
penyelesaian persoalannya agar solusi yang ingin dicapai lebih
mudah didapatkan. Terlebih khususnya dalam kasus-kasus yang
berkaitan dengan persoalan pemrograman.
Hal mayoritas yang umum dijumpai adalah bagaimana menurunkan
sebuah formula matematis ke dalam blok pemrograman. Hal
menarik berikutnya adalah jika sebuah proses perulangan pada blok
struktur logika pemrograman tahapan terminasi bergantung dari
banyaknya input-value yang ditetapkan oleh user.
Hal ini bisa dipecahkan dengan solusi pendekatan menggunakan
kaidah matematika dasar. Kasus yang paling umum dijumpai adalah
menentukan nilai Kapasitor pengganti pada C kapasitor yang
dirangkai secara seri, dimana jumlah C kapasitor ditetapkan oleh
user secara acak.
1.2 Batasan Masalah
Persoalan dilakukan pembatasan pada beberapa aspek berikut ini:
a. Uji penurunan formula hanya dilakukan pada rumus nilai
pengganti kapasitansi untuk rangkaian Kapasitor yang dirangkai
secara serial.
b. Penelusuran hanya dalam batasan perhitungan matematis bukan
mencari nilai fisis (secara fisika)
c. Uji menggunakan bahasa pemrograman dilakukan sebagai
implementasi algoritma yang dibuat.
d. Tidak berorientasi kepada basis data.
1.3 Tujuan Penelitian
a. Membangun sebuah algoritma untuk menentukan nilai
pengganti untuk n secara acak pada formula pembagi
Jurnal Politeknik TELKOM Bandung 2
Volume 1 Nomor 1 Tahun 2009
3. b. Membangun blok pemrograman dari algoritma yang telah
dibuat.
1.4 Manfaat Penelitian
a. Memudahkan user jika berhadapan dengan formula pembagi
untuk variabel-n secara acak
b. Memudahkan user jika ingin mencari deret ke-n untuk
sejumlah n-masukan secara acak.
2. TEORI DASAR, MODEL DESAIN, DAN
IDENTIFIKASI
Penelitian dilaksanakan menggunakan pendekatan Top-Down, dimana
sebuah hipotesis ditetapkan terlebih dahulu, lalu dilakukan penyelesaian
secara terstruktur ke bawah yang lebih khusus.
Alat Bantu yang digunakan adalah:
a. Perangkat Lunakan Bahasa Pemrograman C++ menggunakan
Turbo C++ v3.0
b. Komputer Desktop dengan clock-rate 200MHz
2.1. Definisi Algoritma
Definisi algoritma adalah suatu urutan langkah-langkah yang disusun
secara logika dan sistematis untuk menyelesaikan suatu persoalan yang
dapat dieksekusi. Yang dimaksud dengan dapat dieksekusi di sini adalah
dapat diimplementasikan untuk dijalankan atau dilaksanakan.
Pada dasarnya algoritma tidak selalu identik dengan komputer, karena
dapat juga dijumpai pada bidang lain; namun lebih umum ditemukan
pada persoalan-persoalan matematika.
2.2. Identifikasi Persoalan
Jika ditetapkan rumus C kapasitor pengganti yang dihubungkan secara
Jurnal Politeknik TELKOM Bandung 3
Volume 1 Nomor 1 Tahun 2009
4. serial adalah sebagai berikut:
Untuk C kapasitor sebanyak 3 adalah:
1 1 1 1
= + + ........................................................(Persamaan-1)
Cp c1 c 2 c3
maka untuk n kapasitor adalah:
1 1 1 1 1
= + + + ... + ....................................(Persamaan-2)
Cp n c1 c 2 c3 cn
jika diturunkan untuk mendapatkan nilai C pengganti, maka:
c1 + c 2 + c3 + ...c n
Cp n = ............................................(Persamaan-3)
c1 .c 2 .c3 ....c n
2.3. Klasifikasi struktur kontrol berdasarkan pohon
pencabangan
2.3.1. Struktur for repetition
Perulangan for merupakan umum yang digunakan bila
menyangkut proses looping, seperti pemanggilan kembali
sejumlah indeks dalam suatu array.
Sintaks untuk struktur logika for dituliskan sebagai
berikut:
for (expr1; expr2; expr3) statement
Pertama-tama ekspresi ke-1 (expr1) dievaluasi
(dieksekusi) sekali langsung saat perulangan mulai
dilakukan. Selanjutnya di permulaan di iterasi selanjutnya,
expr2 dievaluasi. Bila evaluasi memberi nilai TRUE,
looping berlanjut dan statement bercabang dieksekusi. Jika
evaluasi memberi nilai FALSE, eksekusi looping selesai.
Di akhir iterasi, expr3 dievaluasi (dieksekusi).
Misalkan:
//Looping.cpp
#include<iostream.h>
void main()
{
Jurnal Politeknik TELKOM Bandung 4
Volume 1 Nomor 1 Tahun 2009
5. for(int i=0;i<7;i++) {
cout << "No-" << i+1 << endl;
}
cout << "Proses perulangan selesai..";
}
Gambar 1. Skema Struktur for repetition
3. HASIL DAN DISKUSI
3.1. Penyelesaian Persoalan
Dari Persamaan-1 disebutkan:
1 1 1 1
= + + .
Cp c1 c 2 c3
maka:
1 cc cc cc
= 2 3 + 1 3 + 1 2
Cp c1c 2 c3 c1c 2 c3 c1c 2 c3
(c 2 c3 + c1c3 + c1c 2 )
= .............................Persamaan-4
(c1c 2 c3 )
Jurnal Politeknik TELKOM Bandung 5
Volume 1 Nomor 1 Tahun 2009
6. jika C1=c2*c3, dan
C2=c1*c3, dan
C3=c1*c2, maka
1 (C1 + C 2 + C 3 )
= .......................................Persamaan-5
Cp c1c 2 c3
Selanjutnya, dapat diturunkan kembali untuk 3 kapasitor
adalah sebagai berikut:
1
C1 = c1 ∗ c 2 ∗ c3 ∗
c1
1
C 2 = c1 ∗ c 2 ∗ c3 ∗
c2
1
C 3 = c1 ∗ c 2 ∗ c3 ∗
c3
Sedangkan untuk 4 kapasitor, didapatkan:
1
C1 = c1 ∗ c 2 ∗ c3 ∗ c 4 ∗
c1
1
C 2 = c1 ∗ c 2 ∗ c3 ∗ c 4 ∗
c2
1
C 3 = c1 ∗ c 2 ∗ c3 ∗ c 4 ∗
c3
1
C 4 = c1 ∗ c 2 ∗ c3 ∗ c 4 ∗
c4
Berdasarkan turunan rumus ini, maka dapat dicari n kapasitor;
untuk setiap kapasitor ke-i, maka:
1
C i = c1 ∗ c 2 ∗ c3 ∗ ... ∗ c n ∗ .......................Persamaan-6
ci
Jurnal Politeknik TELKOM Bandung 6
Volume 1 Nomor 1 Tahun 2009
7. 3.2. Implementasi dalam Algoritma Penentuan ke-n
Secara Acak untuk Formula Pembagi
Untuk c sebagai nilai kapasitor, cTot sebagai nilai kapasitor
pengganti, dan tanya sebagai n kapasitor sebarang, maka:
set cTot←1
set temp←0
for(set jinisialisasi s.d jtetapan) {
set awal←1
cTot*=c[j]
for(set iinisialisasi s.d itetapan) {
awal*=c[i]
}
awal/=c[j];
A[j]=a;
temp +=A[j];
}
cTot/=temp
3.3. Blok Pemrograman dalam Bahasa Pemrograman
C++
//cserial.cpp
#include <iostream.h>
void main()
{
int j,i,tanya;
float a,h,A[100],cTot,c[100];
cout << "Berapa kapasitor?: ";
cin >> tanya;
cout << "nSatuan kapasitor dalam micro-Farad.";
cout << endl;
for(i=0;i<tanya;i++) {
cout << "Masukkan nilai C-" << i+1 << ": ";
cin >> c[i];
}
cTot=1;
h=0;
Jurnal Politeknik TELKOM Bandung 7
Volume 1 Nomor 1 Tahun 2009
8. for(j=0;j<tanya;j++) {
a=1;
cTot*=c[j];
for(i=0;i<tanya;i++) {
a*=c[i];
}
a/=c[j];
A[j]=a;
h+=A[j];
}
cTot/=h;
cout << "nCpengganti = " << cTot << " micro-
Farad.";
}
Tabel 1. Hasil simulasi
Σ kapasitor 1µF 4µF 12µF
5 0.2 0.8 2.4
8 0.125 0.5 1.5
25 0.04 0.16 0.48
4. KESIMPULAN
Dari hasil penelitian dapat ditarik kesimpulan sebagai berikut:
a. Untuk mendapatkan nilai pengganti n pada formula pembagi tak
berhingga, dapat diselesaikan dengan cara setiap variabel ke-i
dikalikan dengan pembagi ke-i dari variabel bersangkutan.
b. Proses perulangan diterminasi pada blok algoritma:
awal*=c[i]
c. Larik digunakan sebagai penampung dari sejumlah kapasitor yang
ditetapkan oleh user.
d. Agar tidak memboroskan memori, isi larik cukup di-set sebanyak
DEC100.
Jurnal Politeknik TELKOM Bandung 8
Volume 1 Nomor 1 Tahun 2009
9. 5. DAFTAR PUSTAKA
[1]. Goodrich, Michael T., Tamassia, R., Mount, D.M., 2000, “Data
Structures and Algorithms in C++”, tersedia pada
http://cpp.datastructures.net/textbook/index.html.physicsclassroom.
com/Class/ light/lighttoc.html, diakses pada tanggal 10 Juli 2006.
[2]. Simamora, S.N.M.P, 2006, “Diktat Kuliah KOM366 Algoritma
dan Pemrograman (4 sks)”, Jurusan Ilmu Komputer, Fak.MIPA,
Univ. Advent Indonesia, Bandung.
[3]. Simamora, S.N.M.P, 2002, “Diktat Kuliah SK303 Dasar Komputer
dan Pemrograman (2 sks)”, Departemen Sistem Komputer,
Fak.Teknik, ITHB, Bandung.
Jurnal Politeknik TELKOM Bandung 9
Volume 1 Nomor 1 Tahun 2009