My First Blog

  • Home
Home » Uncategories » Fungsi Dan Rekursi

Selasa, 10 Januari 2012

Fungsi Dan Rekursi

FUNGSI

Fungsi (Function) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Kegunaan dari fungsi ini adalah untuk:
|  Mengurangi pengulangan penulisan program yang berulangan atau sama.
|  Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan.

Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.

Struktur Fungsi

nama_fungsi(argumen)
{
… pernyataan / perintah;
… pernyataan / perintah;
… pernyataan / perintah;
} 

Pernyataan return().

Digunakan untuk mengirimkan nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya. Pernyataan return() diikuti oleh argumen yang berupa nilai yang akan dikirimkan. Contoh pemakaian pernyataan return() dapat dilihat pada contoh berikut ;

Contoh pengiriman data konstanta
/* ------------------------ */
/* Pengriman data Konstanta */
/* ------------------------ */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
luas(float sisi);
main()
{
float luas_bs;
clrscr();
luas_bs = luas(4.25);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs;
getch();
}
luas(float sisi)
{
return(sisi*sisi);
}

Keterangan :

Dalam struktur program diatas dilihat bahwa, pernyataan luas_bs=luas(4.25), akan dikirimkan nilai kepada fungsi luas(), untuk diolah lebih lanjut, yang nilai tersebut akan ditampung pada variabel sisi. Selanjutnya didalam fungsi return terjadi perkalian sisi dengan sisi, setelah itu hasil perkalian tersebut dikirim balik ke variabel luas_bs yang memanggil fungsi.


Contoh Pengiriman data variable:

/* ------------------------ */
/* Pengriman data Variabel */
/* ------------------------ */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
luas(float sisi);
main()
{
float luas_bs, sisi_bs;
clrscr();
cout<<"\nMenghitung Luas Bujur Sangkar"<<endl;
cout<<"\nMasukan Nilai Sisi Bujur Sangkar : ";
cin>>sisi_bs;
luas_bs = luas(sisi_bs);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs<<" Cm";
getch();
}
luas(float sisi)
{ return(sisi*sisi); }

Latihan function

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
potong(float harga,float disk);
garis ()
{
printf("===============================");
}
main()
{
char nama[20],jwb;
long int harga,total,disk;
ulang:
clrscr();
garis();
cout<<"\n\tToko Mas Jayakarta "<<endl;
cout<<"Nama Barang                       :";cin>>nama;
cout<<"Harga Barang                      :";cin>>harga;
if(harga<1000000)
disk=0;
else if(harga>=1000000&&harga<=5000000)
disk=harga*0.2;
else
disk=harga*0.35;
cout<<"Besar diskont yang diberikan   :"<<disk<<endl;
total=potong(harga,disk);
cout<<"Besar harga yang harus dibayar :"<<total<<endl;
cout<<"\n\tAnda Ingin Input Lagi [Y/T]:";jwb=getche();
if(jwb=='Y'||jwb=='y')
goto ulang;
getch();
}
potong(float harga,float disk)
{  return(harga-disk);  }




REKURSI 

Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri.
Fungsi faktorial, yang menghitung nilai faktorial dari suatu bilangan bulat positif, merupakan pokok bahasan yang memudahkan pemahaman fungsi rekursif. Berikut adalah fungsi faktorial yang diselesaikan dengan cara biasa:
           
int faktorial (int n)
     {
     int counter, hasil = 1;
     for (counter = n ; counter >= 1 ; counter--)
          hasil *= counter;
     return hasil;
}

Fungsi tersebut menunjukkan bahwa nilai faktorial dihitung menggunakan looping sehingga melakukan proses sebagai berikut:
           
Hasil = 1;
            Hasil = hasil * n; artinya hasil = n;
            Hasil =hasil * (n-1) artinya hasil = n x (n-1);
Demikian seterusnya sampai n bernilai 1, atau jika dituliskan sekaligus menjadi:
           
Faktorial = n! = n x (n-1) x (n-2) .... x 1;
Fungsi ini dapat dituliskan dalam bentuk:
            Faktorial (n) = n! = n x (n-1) !;

Yang menunjukan sifat rekursif dari suatu fungsi, yaitu (n-1)!. Oleh karena itu, fungsi faktorial yang telah ditulis dalam program C++ sebelumnya, dapat ditulis kembali dalam bentuk rekursif sebagai berikut:
           

int faktorial (int n)
     {
     if (n == 0)
     return 1;
     else
     return (n * faktorial (n-1));
     }
           

contoh program rekursi :

/*program: fungsi3.cpp*/
#include

Int faktorial (int n)
{
If (n==1)
   Return (1);
Else
           Return (n*faktorial (n-1));
}
Main ()
{
Int x;
Printf (“mencari nilai faktorial\n”);
Printf (“masukkan nilai x:”) ; scanf (“%d”,&x) ;
Printf (“nilai faktorial dari %d=%d\n”,x,faktorial (x) );
}

Hasilnya:
Mencari nilai faktorial
Masukkan nilai x: 4
Nilai faktorial dari 4=24
Penjelasan:
Fungsi tersebut menunjukkan bahwa nilai faktorial dihitung menggunakan looping sehingga melakukan proses sebagai berikuit:

Faktorial (1) = 1;
Faktorial (2) = 1 * 2=2
Faktorial (3) = 3*faktorial (2)
                = 3x2=6
Faktorial (4) =  4*faktorial (3)
                   =4x6=2
f
Share
t
Tweet
g+
Share
?
surya-darma
06.17

Belum ada komentar untuk "Fungsi Dan Rekursi"

Posting Komentar

Posting Lebih Baru Posting Lama Beranda
Langganan: Posting Komentar (Atom)
Find Us :

Entri Populer

  • Rahasia Mendapatkan Uang Instan Ratusan Ribu Perhari Dari Internet Akhirnya Ditemukan...
    Tanpa Harus Membuat Website, Tanpa Harus Rekrut Member, Cocok Untuk Semua Kalangan Termasuk Pemula/Gaptek Sekalipun! Senin,...
  • Percabangan Borland C++
    Percabangan pada bahasa pemrograman khususnya bahasa C++, terdapat 2 metode. 1. If- else 2. Switch-case Percaba...
  • TRAFFIC MANAGEMENT
    Definisi IP Address IP address sama artinya dengan alamat dan nomor rumah, digunakan sebagai alamat dan nomor setiap komputer pada jaring...
  • Hari Raya Galungan dan Kuningan
    Kata "Galungan" berasal dari bahasa Jawa Kuna yang artinya menang atau bertarung. Galungan juga sama artinya dengan ...
  • Membuat Sendiri Antena Modem Menggunakan Kaleng Bekas
    Artikel kali ini sangat cocok bagi anda yang suka kreatif dan banyak akal. Suka memanfaatkan barang-barang yang sudah tidak terpakai untuk ...

Pengunjung Blog

Diberdayakan oleh Blogger.

Blog Archive

  • ►  2015 (9)
    • ►  Februari (6)
    • ►  Januari (3)
  • ►  2013 (2)
    • ►  Februari (2)
  • ▼  2012 (14)
    • ►  September (1)
    • ►  Juni (4)
    • ►  Mei (1)
    • ►  April (1)
    • ▼  Januari (7)
      • WAZZUB - The Power of "We"!
      • Percabangan Borland C++
      • Void Tukar & Void Nilai Maksimal
      • Perulangan / Looping
      • Array / Larik
      • Fungsi Dan Rekursi
      • Pengertian ALGORITMA
  • ►  2011 (1)
    • ►  Desember (1)

Tentang Saya

Foto saya
surya-darma
Lihat profil lengkapku

Arsip Blog

  • ►  2015 (9)
    • ►  Februari (6)
    • ►  Januari (3)
  • ►  2013 (2)
    • ►  Februari (2)
  • ▼  2012 (14)
    • ►  September (1)
    • ►  Juni (4)
    • ►  Mei (1)
    • ►  April (1)
    • ▼  Januari (7)
      • WAZZUB - The Power of "We"!
      • Percabangan Borland C++
      • Void Tukar & Void Nilai Maksimal
      • Perulangan / Looping
      • Array / Larik
      • Fungsi Dan Rekursi
      • Pengertian ALGORITMA
  • ►  2011 (1)
    • ►  Desember (1)
Copyright 2013 My First Blog - All Rights Reserved
Design by Me - Published by Evo Templates