Logika dan Algoritma
PENGERTIAN
DASAR LOGIKA DAN ALGORITMA
Pengertian
Dasar
LOGIKA
Di
perkenalkan pertama kali oleh aristoteles (384-322 SM).
Definisi Logika
Definisi Logika itu sendiri adalah :
- Penalaran atau bentuk pemikiran.
- Ilmu yang memberikan prinsip-prinsip yang harus di ikuti agar dapat berfikir valid menurut aturan yang berlaku.
ALGORITMA
Diperkenalkan olehahli matematika :Abu ja’far Muhammad Ibnu Musa Al Khawarizmi.
Seorang ilmuan
Persia yang menulis kitab Al jabr w’al muqabala (rules of restoration and
reduction) sekitar tahun 825 M.
Definisi
Algoritma.
Definisi Algoritma itu sendiri adalah :
- Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
- Suatu prosedur yang merupakan urutan langka – langkah yang berintegrasi.
- Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata (Webster Dictionary).
Kriteria
Pemilihan Algoritma.
- Ada Output,
- Efektifitas dan Efesiensi,
- Jumlah langkahnya berhingga,
- Berakhir (SEMI ALGORITMA),
- Terstruktur,
Suatu algoritma yang terbaik (the best) : “suatu Algoritma harus menghasilkan
output yang tepat guna (efektif) dalam waktu yang relatif singkat dan
penggunaan memori yang relatifsedikit (efesien) dengan langkah yang berhingga
dan prosedurnya berakhir baik dalam keadaan diperoleh suatu solusi ataupun
tidak ada solusinya. “
TAHAPAN ANALISA
ALGORITMA
- Bagaimana merencanakan suatu algorima.
- Bagaimana menyatakan suatu algoritma :
1.
Dengan bahasa semu (pseudocode).
2. Dengan diagram alur atau flowchart,
3. Dengan statement program / penggalan program
- Bagaiman validitas suatu algoritma.
- Bagaimana menganalisa suatu algoritma.
- gaimana menguji programdari suatu algoritma.
Tahap
Proses Uji Algoritma :
- Fase Debugging
Yaitu fase dari
proses program eksekusi yang akan melakukan koreksi terhadap kesalahan.
- Fase Profilling
Yaitu fase yang
akan bekerja jika program tersebut sudah benar (telah melewati fase debugging).
Analisis suatu
algoritma
(untuk melihat
faktor efesiensi dan efektifitas dari algoritma tersebut), Dapat dilakukan
terhadap suatu algoritma dengan melihat pada :
- Waktu tempuh (Running time) dari suatu Algoritma.
Hal – hal yang
dapat mempengaruhi dari pada waktu tempuh adalah :
1.
Banyaknya
langkah.
2. Besar dan jenis input data.
3. Jenis operasi.
4. Komputer dan kompilator.
- Jumlah memori yang di gunakan.
Sifat – sifat
Algoritma
- Banyaknya langkah instruksi harus berhingga,
- Langkah atau instruksi harus jelas,
- Proses harus jelas dan mempunyai batasan,
- Input dan output harus mempunyai batasan,
- Efektifitas,
- Adanya batasan ruang lingkup,
Konsep
Algoritma
Konsep Algoritma itu sendiri terbagi menjadi 2 bagian, yaitu :
- Algoritma pe-ubah
Algoritma
pe-ubah adalah Variabel yang nilainya BUKAN konstanta (selalu berubah – ubah
sesuai dengan pariabel terKINI)
Sintaks
: P = Q
Algoritma
: P < Q
Arti
: Bahwa nilai P diberi
harga nilai Q
Nilai P akan
sama dengan nilai Q, dan ilai Q tetap
- Algoritma Pertukaran
Algoritma
pertukaran berfungsi mempertukarkan masing – masing isi Variabel sedemikian
sehingga nilai dari tiap Variabel akan berubah / bertukar.
Definisi
Definisi
algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun
secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam
algoritma. Langkah-langkah dalam algoritma harus dapat ditentukan bernilai
benar atau salah.
Algoritma Dalam Kehidupan
Algoritma
adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang
diacu dalam terminologi algoritma. Namun algoritma juga digunakan dalam
kehidupan sehari-hari, contohnya resep makanan. Di dalam resep makanan terdapat
langkah-langkah yang merupakan algoritma. Selain itu masih banyak contoh
algoritma yang lain.
Bahasa Pemrograman
Untuk
melaksanakan suatu algoritma diperlukan suatu bahasa pemrograman, contoh bahasa
pemrograman adalah : Pascal, C++, Basic, dll. Notasi algoritma dapat
diterjemahkan kedalam bahasa pemrograman apapun, dengan kata lain notasi
algoritma bersifat independen.
Flowchart
Bagan alir (flowchart) adalah bagan (chart) yg
menunjukkan alir (flow) di dalam program atau prosedur sistem secara logika.
Digunakan terutama untuk alat Bantu komunikasi dan untuk dokumentasi. Pedoman
untuk menggambarkannya:
- Sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri suatu halaman.
- Kegiatannya harus ditunjukkan dengan jelas
- Ditunjukkan dengan jelas dimulai dan berakhirnya suatu kegiatan
- Masing-masing kegiatan sebaiknya digunakan suatu kata yg mewakili suatu pekerjaan
- Kegiatannya sudah dalam urutan yang benar.
- Kegiatan yg terpotong dan akan disambung ditunjukkan dengan jelas oleh simbol penghubung
- Digunakan simbol-simbol yang standar
Suatu flowchart
adalah suatu representasi secara diagram yang mengilustrasikan urutan dari
operasi yang dilakukan untuk mendapatkan suatu hasil. Dengan kata lain,
flowchart membantu kita untuk mengerti dan melihat bentuk algoritma dengan
menampilkan algoritma dalam simbol-simbol gambar.
Dalam
menggambar flowchart, digunakan simbol tertentu seperti diatas. Contoh berikut
bisa digunakan untuk lebih mengerti perbedaan kegunaan simbol-simbol tersebut.
Misal kita ingin mencari jumlah dari 2 buah bilangan, maka flowchart-nya adalah
sebagai berikut :
Contoh lain,
misalkan kita ingin mengetahui apakah sebuah bilangan ganjil atau genap. Untuk
itu kita harus membuat flowchart seperti ini :
Pseudo Code
Pseudo Code
adalah urutan baris algoritma seperti kode pemrograman dan tidak memiliki
sintak yang baku. Pseudo Code lebih umum digunakan oleh programmer yang
berpengalaman. Akan tetapi, flowchart lebih mudah dimengerti oleh programmer
pemula, pseudo code sangat mudah diimplementasikan ke dalam kode program
dibandingkan dengan flowchart. Kita bisa bebas menulis pseudo code selama itu
mudah dimengerti bagi orang lain. Tetapi disarankan untuk menggunakan keyword
yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan
lainnya. Dan ikuti gaya penulisan pemrograman seperti Pascal, C++, dll.
Perhatikan kode dibawah ini :
- Mulai
- Masukkan sebuah angka
- Masukkan sebuah angka dan tampilkan
- Ambil angka yang sebelumnya dan tampilkan
- Selesai
Walaupun pseudo
code diatas masih bisa dimengerti tetapi ada beberapa statemen yang ambigu.
Dari baris kedua, kita tidak tahu kemana angka tersebut disimpan dan kita juga
tidak tahu angka yang mana yang dimaksud untuk “angka yang sebelumnya”.
Apakah angka yang pertama atau yang kedua. Pseudo Code diatas dapat
dimodifikasi menjadi seperti berikut :
- Start
- Masukkan A
- Masukkan B, Tampilkan B
- Tampilkan A
- End
Pseudo Code
diatas lebih baik dibandingkan sebelumnya. Kita bisa dengan jelas melihat
dimana angka disimpan dan angka yang mana yang ditampilkan. Sekarang kita akan
mengubah flowchart pada gambar 1.2
- Start
- Masukkan A dan B
- C = A + B
- Tampilkan C
- End
Looping
Looping adalah
pengulangan sesuatu atau serangkaian "kerja" dari program. Dalam C++,
paling tidak dikenal ada 3 looping.
While
Perintah while
adalah pengulangan yang dilakukan oleh program selama (while) dalam keadaan
tertentu. Misalnya saja, ada sebuah kondisi yang mengharuskan program agar
melakukan "pekerjaan" tertentu selama keadaan itu terpenuhi (true).
Contoh:
Mencetak angka
1 sampai 1000
#include
<iostream>
using namespace
std;
void main() {
int
i = 1;
//kondisi
ditetapkan (bahwa selama i lebih kecil atau sama dengan
//1000
ada perintah yang diberikan pada program...)
while
(i <= 1000) {
//perintah
untuk mencetak nilai dari i dan kemudian membuat
//baris
baru
cout
<< i << "\n";
//iterasi
++i;
//i
= i + 1;
//i
+= 1;
}
}
Nah, dari kode
di atas kita lihat bahwa selama i lebih kecil atau sama dengan 1000, nilai dari
i akan di cetak ke layar. Jadi, hasilnya adalah:
1
2
…
1000
Akan tercetak
angka dari 1 sampai 1000 di layar. Perhatikan baik – baik ada sepenggal kode
yang diberi komentar "iterasi". Apakah iterasi itu? Iterasi dalam
looping adalah proses yang berpengaruh dalam nilai dari variabel yang
ditetapkan sebagai acuan looping. Atau dapat pula dikatakan bahwa, iterasi
adalah bagaimana penambahan nilai atau pengurangan dalam perulangan. Contohnya
seperti nilai dari i di atas. Penulisan yang diberikan pada variabel i adalah:
++i;
Itu sama saja
dengan perintah yang berada di dalam komentar:
// i = i + 1;
Dan
//i += i;
Perintah ini
berarti bahwa i menambahkan dirinya sendiri dengan 1. Tanda "++" pada
i pada bagian depan dari i (prefix), berarti kita langsung menambahkan variabel
i dengan 1, tanpa menggunaan terlebih dahulu nilai dari i. Jika kita
menggunakan tanda "++" pada bagian akhir dari variabel i (postfix),
berarti nilai dari i digunakan terlebih dahulu lalu kemudian ditambahkan dengan
1. Contoh lain dari hal ini adalah dengan menggunakan pengurangan sebagai
pengulangan. Contoh:
#include
<iostream>
using namespace
std;
void main () {
int
i = 1000;
while
(i >= 1) {
cout
<< i << "\n";
//yang
digunakan adalah "—-"
--i;
}
}
Hasil yang
didapat mungkin saja berbeda, tapi persamaan dari keduanya adalah bahwa terjadi
perulangan sebanyak 1000 kali, yaitu:
1000
999
…
1
Perlu diketahui
bahwa yang terjadi pada perulangan jika sudah mencapai false (dimana kondisinya
tidak lagi true melainkan false) adalah perulangan akan segera keluar dan
melanjutkan program. Misalnya saja dari program di atas, jika i tidak lagi
lebih kecil atau sama dengan 1000 (misalnya 1001), perulangan akan menghasilkan
nilai false (kondisi tidak lagi i <= 1000).
do...while
Biasanya in
adalah perintah untuk tetap melakukan sesuatu dalam program sampai kondisinya
terpenuhi (aku memanggilnya "kepala batu" atau "si keras
kepala" :DDD). Misalnya perintah untuk tetap menampilan sebuah pesan
sampai adanya input yang valid dari user. Contoh:
#include
<iostream>
using
namecspace std;
void main () {
char
yes_no;
//lalu
beberapa variabel diletakkan di sini...
//...
(di sini misalnya terdapat kerja dari program)
//
disini diletakkan do...while untuk "menunggu" inputan yang
//valid
dari user.
do
{
cout
<< "masih mau lanjut? (y / n): ";
cin
>> yes_no;
}
while (yes_no != 'y' || yes_no != 'n');
if
(yes_no == 'y')
//lakukan
terserah apa aja yang anda mau lakukan di sini
else
//di
sini juga anda bisa lakukan apa saja yang anda mau
//lakukan
}
Jika kita
perhatikan mungkin ada tanda yang di pergunakan dalam kode tersebut. Akan saya
coba jelaskan mengenai beberapa operator logika yang terdapat dalam C++.
Operator logika
biasanya dipakai dalam perbandingan (kondisi). Mengenai fungsi perbandingan ini
akan dibahas dalam bab-bab berikutnya. Operator logika yang biasanya dipakai
ada beberapa macam, yaitu:
- Tanda "&&" (and), operator ini berfungsi jika kedua nilai pembandingnya bernilai true. Contoh: i >= 0 && i <= 1000. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar atau sama dengan 0 dan lebih kecil atau sama dengan 1.000 (0 – 1.000).
- Tanda "||" (or), operator ini berfungsi jika salah satu dari kedua nilai pembandingnya bernilai true. Contoh: i >= 1000 || i <= 0. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar atau sama dengan 1.000 atau leih kecil atau sama dengan 0 (-1 ke bawah atau 1.001 ke atas).
- Tanda "!" (not), seperti yang kita lihat terdapat di bagian dari kode di atas adalah merupakan tanda negasi, yang berarti semacam pembalik dari sesuatu. Misalnya seperti yang kita lihat pada potongan kode di atas:
while (yes_no
!= 'y' || yes_no != 'n');
Ini kurang
lebih dapat dibaca: "ketika yes_no tidak sama dengan 'y' n atau
yes_no tidak
tidak sama dengan 'n'.
Kembali ke
masalah kode di atas, pada bagian "pembuka" kita membuat beberap
variabel, salah satunya adalah yes_no yang berfungsi untuk
"menampung" nilai atau karakter yang dipilih dari user. Jadi, kita
membuat sebuah program yang entah kerjanya baagimana lalu pada bagian akhir
dari program tersebut, kita memberikan sebuah pilihan apakah user masih mau
lanjut atau tidak. Jika user memasukkan input yang tidak valid misalnya menekan
angka 0 atau menekan huruf "t"), maka perintah yang berada dalam blok
do…while akan di eksekusi, dan begitu seterusnya jika user masih tidak
memasukan input yang valid.
for
Ini adalah
(mungkin) perulangan yang paling sering dipakai dalam C++. Sintaknya adalah
sebagai berikut:
for
(inisialisasi; kondisi; iterasi) {
//yang
ingin dilakukan...
}
Dalam for, anda
bisa melakukan inisialisasi, yaitu mendeklarasikan variabel baru dan langsung
memasukan nilai di dalamnya, kemudian memberi kondisi dimana perulangan itu
akan terus dilakukan, dan pada akhirnya menentukan iterasi. Contoh dari for
adalah sebagai berikut:
#include
<iostream>
using namespace
std;
void main () {
int
num_masuk;
cout
<< "berapa banyak anda mau melakukan perulangan?: ";
cin
>> num_masuk;
for
(int i = 1; i <= num_masuk; ++i) {
cout
<< "ini adalah baris ke-" << i << "\n" ;
}
}
Pada kode di
atas, yang akan menjadi input dari user untuk menentukan berapa banyak
perulangan akan dilakukan adalah num_masuk, dan variabel yang akan dijadikan
patokan dalam perulangan adalah i, di mana i di buat di dalam perintah for dan
kemudian langsung di assign (inisialisasi). Kondisi yang digunakan adalah
kondisi dimana i <= num_masuk yang berarti, jika / selama i lebih kecil atau
sama dengan num_masuk maka perulangan akan terus dilakukan. Iteasi yang
ditentukan di sini adalah nilai dari i akan ditambah 1 (satu) dalam setiap
perulangan (++i). Contoh program yang sudah di compile dari kode ini adalah:
Namun
for
juga bisa digunakan sebagai berikut:
juga bisa digunakan sebagai berikut:
for (int i = 1;
i <= 10; ++i) {
for
(int j = 1; j <= 10; ++j) {
cout
<< i * j << "\n";
}
}
Program seperti
ini dapat digunakan dalam perhitungan perkalian, misalnya saja hasilnya dapat
menjadi sebagai berikut:
Koding untuk
program ini adalah:
#include
<iostream>
using namespace
std;
void main () {
//untuk
berapa banyak baris yang diinginkan...
for
(int i = 1; i <= 10; ++i) {
//jumlah
kolom, mengingat bagian ini yang akan
//dieksekusi
lebih lanjut dan sampe selesai daul baru
//dilanjutkan
dengan bagian yang selanjutnya (bagian baris)
for
(int j = 1; j <= 3; ++j) {
cout
<< i << " X " << j << " = "
<< j * i << "\t";
}
//baris
baru, setelah ketiga kolom selesai "dibuat"
cout
<< "\n";
}
}
Break dan continue
Ketika
melakukan perulangan, ketika sampai batas tertentu kita ingin memberhentikan
perulangan tersebut. Untuk itulah, dibuat statement break dan continue.
break
Adalah perintah
untuk langsung keluar dari looping (perulangan). Contoh penggunaan statement
break adalah:
while (i >
0) {
cout
<< i << "\n";
if
(i == 2)
break;
--i;
}
Sudah bisa
tebak apa kira – kira yang akan dihasilkan oleh program ini? Kalau belum,
silahkan baca lebih lanjut.
Program
tersebut akan dieksekusi sampai nilai i sama dengan 2. Seharusnya, progrma
tersebut akan bejalan sampai dengan nilai i sama dengan 1. Tapi statement break
yang diberikan pada kondisi dimana jika nilai i sama dengan 2 maka looping
dihentikan, maka ketika nilai i sama dengan 2, nilai i tidak dikurangi lagi (--i;)
dan looping keluar. Hasilnya kurang lebih bisa dilihat sama dengan contoh
program berikut:
Kodenya adalah
sebagai berikut:
#include
<iostream>
using namespace
std;
void main () {
int
baris;
cout
<< "berapa banyak anda ingin mencetak baris?: ";
cin
>> baris;
for
(int i = 1; i <= baris; ++i) {
cout
<< "ok, ini adalah baris yang ke-" << i <<
"\n";
if
(i == (baris - 1))
break;
}
cout
<< "sorry, hanya bisa sampe di situ doang... :D\n";
}
Continue
Nah, ini juga mirip
dengan break tadi hanya saja ini kebalikannya. Langsung saja ke contohnya:
for
(int i = 1; i <= 20; ++i) {
if
(i % 7 == 0)
cout
<< i << "\n";
else
continue;
}
Yang di atas
itu adalah (kurang lebih) contoh yang saya pelajari ketika saya belajar C++
juga :D. Itu adlaah kode untuk mencari bilangan kelipatan 7 dari 1 – 20. Fungs
continue diatas adalah, jika bilangan itu tidak habis di bagi 7 (if (i % 7 ==
0)), maka lopingnya dilanjutkan terus, tanpa adanya apa – apa yang akan
dieksekusi. Contoh tampilannya adalah sebagai berikut (kali ini kita akan
mencoba mencari dari 1 sampai 100):
Kodenya adalah
sebagai berikut:
#include
<iostream>
using namespace
std;
void main () {
for
(int i = 1; i <= 100; ++i) {
if
(i % 7 == 0)
cout
<< i << " adalah kelipatan 7!\n";
else
continue;
}
}
PEMBAGIAN TIPE
DATA :
- TIPE SEDERHANA
a.int,bool,char.
b.tipe float.
b.tipe float.
- TIPE STRING
- TIPE TERSTRUKTUR
a.array dan
struct.
VARIABEL DAN KONSTANTA
VARIABEL
VARIABEL DAN KONSTANTA
VARIABEL
- Untuk menyimpan suatu nilai ,dan nilai yg ada padanya dpt diubah selama eksekusi berlangsung .
- penaman variabel bersifat case sensitive.
- Harus dideklarasikan dahulu sebelum digunakan
contoh :int
alas ,tinggi;
KONSTANTA
Sebuah variabel dgn tipe data tertentu dan memiliki nilai data yg akan selalu tetap didalam program .
contoh: const phi=3,14;
I.TIPE SEDEHANA PADA C++
1.Tipe int:tipe data yg nilainya tidak memiliki titik desimal ( 16 -32 bit).
2.Tipe float :tipe data yg merupakan pecahan (32-64bit).
3.Tipe char :digunakan untuk menampung sebuah karakter .
contoh :'A'--> karakter huruf A
'1'-->karakter huruf angka 1
'*'--->karakter simbol *
4.Tipe bool :nilai penagambilan suatu keputusan pd program ,tipe ini mempunyai 2 nilai yaitu benar (T)/salah (F) .operator AND,OR /NOT
KONSTANTA
Sebuah variabel dgn tipe data tertentu dan memiliki nilai data yg akan selalu tetap didalam program .
contoh: const phi=3,14;
I.TIPE SEDEHANA PADA C++
1.Tipe int:tipe data yg nilainya tidak memiliki titik desimal ( 16 -32 bit).
2.Tipe float :tipe data yg merupakan pecahan (32-64bit).
3.Tipe char :digunakan untuk menampung sebuah karakter .
contoh :'A'--> karakter huruf A
'1'-->karakter huruf angka 1
'*'--->karakter simbol *
4.Tipe bool :nilai penagambilan suatu keputusan pd program ,tipe ini mempunyai 2 nilai yaitu benar (T)/salah (F) .operator AND,OR /NOT
- AND--->0 (SALAH) dan 1(benar)
- NOT---->0(BENAR)dan 1(salah)
- OR----->Satu salah lain bnr ( benar )
II .Tipe
string(1-255 karakter) nilai string (")
bentuk umum:
tipe _data pengenal [panjang];
pengenal =nama variabel
panjang =bilangan bulat yg menunjukan jmlh karakter
contoh:char nama [15];
III.Tipe terstruktur
Untuk mengelompokan data dgn tipe yg berlainan.
contoh:
struct data_pegawai
{
int nip;
char nama[25];
char alamat[40];
}
CONTOH PROGRAM SEDERHANA
#include
#include
#include
main()
{
int x,y,z;
clrscr();
cout<<"\n input nilai x=";cin>>x;
cout<<"\n input nilai y=";cin>>y;
z=x+y;
cout<<"\n hasil penjumlahan='<
getch();
}
bentuk umum:
tipe _data pengenal [panjang];
pengenal =nama variabel
panjang =bilangan bulat yg menunjukan jmlh karakter
contoh:char nama [15];
III.Tipe terstruktur
Untuk mengelompokan data dgn tipe yg berlainan.
contoh:
struct data_pegawai
{
int nip;
char nama[25];
char alamat[40];
}
CONTOH PROGRAM SEDERHANA
#include
#include
#include
main()
{
int x,y,z;
clrscr();
cout<<"\n input nilai x=";cin>>x;
cout<<"\n input nilai y=";cin>>y;
z=x+y;
cout<<"\n hasil penjumlahan='<
getch();
}
REKURSIF
• Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi
atau procedure yang
memanggil dirinya sendiri.
• Definisi
menurut Niclaus Wirth :
“ An object is
said be recursive if it partially consist or is defines in terms of itself”
•
perhitungan matematika ( contoh fungsi factorial dan bilangan Fibonacci)
Faktorial
•
Fungsi factorial dari bilangan bulat positif n didefinisikan sebagai berikut:
n!= n.(n-1)! , jika n>1
n!= 1 , jika n=0, 1
• contoh :
3!= 3. 2!
3!= 3. 2. 1!
3!= 3. 2. 1
3!= 6
Kita dapat menuliskan fungsi penghitung factorial seperti
dibawah ini
- int Faktorial(int n)
- {
- if ((n == 0) || (n == 1 ))
- return (1);
- else
- return (n * Faktorial(n-1));
- }
•
Pada baris 3 dari fungsi diatas,
nilai n
dicek sama dengan 0 atau 1,
jika ya,
maka fungsi mengembalikan nilai 1 {baris 4},
jika
tidak, fungsi mengembalikan nilai n * Faktorial (n -1)
{baris
6}
• disinilah letak
proses rekursif itu, perhatikan fungsi factorial ini memanggil dirinya sendiri
tetapi dengan parameter (n-1)
Bilangan
Fibonacci
• Fungsi lain yang dapat diubah ke bentuk rekursif adalah perhitungan
Fibonacci. Bilangan
Fibonacci dapat didefinisikan sebagai berikut:
fn = fn-1 + fn-2 untuk n > 2
f1 = 1
f2 = 1
Berikut
ini adalah barisan bilangan Fibonacci mulai dari n=1
1
1 2 3 5
8 13 21 34
Algoritma
Fibonacci yang dipakai
Function Fibonacci(input n:integer)
integer
Deklarasi Lokal
{tidak ada}
Deskripsi
If (n ==1 || n==2) Then
return (l)
Else
return (Fibonacci(n-1)+Fibonacci(n-2))
Endif
Contoh
•
Untuk ukuran n= 4, proses perhitungan Fibonacci dapat dilakukan sebagai
berikut:
f4 = f3+f2
f4 = (f2+f1) + f2
f4 = (1+1) +1
f4 = 3
Kombinasi
Function Kombinasi (input
n, r : integer) real
Deklarasi
If (n < r) Then
return (0)
Else
return (Faktorial(n)/Faktorial(r)*Faktorial(n-r))
Endif
Permutasi
Function Permutasi (input n, r : integer) real
Deklarasi
{tidak ada}
Deskripsi
If (n< r) Then
return (0)
Else
return (Faktorial(n) / Faktorial(n-r))
Endif
program untuk menghitung deret S = 1+2+3+4+5+...+n
menggunakan function rekursi
Function S(input
n:integer) integer
Deklarasi Lokal
{tidak ada}
Deskripsi
If
(n==1) Then
return (l)
Else
return (n +
S(n-1))
Endif
program untuk menghitung deret S = 2+4+6+8+10+...+2n menggunakan function rekursi
Function S(input
n:integer) integer
Deklarasi Lokal
{tidak ada}
Deskripsi
If
(n==1) Then
return (2)
Else
return (2*n +
S(n-1))
Endif
program untuk menghitung deret S = 1+2+3+4+5+...+n menggunakan function rekursi
#include<iostream.h>
int S(int n);
main()
{
int n;
cout << “Masukkan n = “; cin >> n;
cout << “Deret S=1+2+3+4+5+...+n \n”;
cout << “Jumlah deret S = “ <<
S(n);
}
int S(int n)
{
if (n == 1)
return (1);
else
return (n + S(n-1));
}
Tidak ada komentar:
Posting Komentar
Monggo dikoment.. :)