Kamis, 06 Juni 2013

Fungsi



Sub Program



Fungsi

Sifat fungsi adalah memberi nilai (return value) dan tanpa memberi nilai.

Program utama (main program)

void main ()
{

}

Manajemen Proses adalah pembagian tugas

Deklarasi fungsi
Memberi nilai (return value)

Type data nama fungsi (daftar parameter)
{
Isi fungsi ;
Return nilai ;
}

Tanpa memberi nilai

void nama fungsi (daftar parameter)
{
 Isi fungsi ;
}



 Komponen fungsi :

-         1. Tipe data adalah nilai yanf diberikan oleh fungsi
-         2. Parameter adalah nilai yang diterima /dibutuhkan oleh fungsi
-          3. Isi fungsi adalah apa yang dilakukan oleh fungsi
-          4. Nama fungsi adalah untuk membedakan suatu fungsi dengan fungsi yang lain

Memanggil fungsi :
       1. Variabel adalah nama fungsi (daftar parameter) 
       2. Nama fungsi (daftar parameter)

Contoh Program :
Menghitung luas suatu persegi panjang
Luas  = panjang * lebar

Algoritma :
1.       Baca / input panjang
2.       Baca /input lebar
3.       Hitung kuas = panjang * lebar
4.       Tampilkan luas ke monitor

Tanpa fungsi :

#include <stdio.h>
#include <conio.h>

void main ()
  {
   Int p,l;
   Int luas ;
clrscr();

printf(“Panjang : “);
scanf(“%d”,&p);
printf(“Lebar : “);
scanf(“%d”&l);
luas = p*l;
printf(“Luas=%d\n”,luas);
getch();
}
-----------------------------------------------------------------------------------------------------------------------------
Program :
#include <stdio.h>
#include <conio.h>

Int hitim=ng (int p,int l)
{
 Int luas ;
luas= p *l;
return luas ;
}
void main ()
{
  Int p,l;
  Int luas ;
clrscr();
printf(“Panjang : “);
scanf(“%d”,&p);
printf(“Lebar : “);
scanf(“%d”,&l);
luas = hitung (p,l);
printf(“Luas : %d\n”,luas);
getch();
}

Cara kerja:
Panjang : 5 dan  tekan enter
P = 5
Lebar : 4 dan tekan enter
L = 4
Luas = 20
-----------------------------------------------------------------------------------------------------------------------------

Fungsi

F (x) = x+1
Y=y+1
F(1) = 1+1
        = 2
F(2)=3

1.       Return valve adalah tipe data = y
2.       Parameter adalah x
3.       Isi fungsi adalah x+1
4.       Nama fungsi adalah F

contoh progam :
#include <stdio.h>
#include <conio.h>

Int F (int x)
{
   Int z;
   z=x+1;
   return z;
}


void main ()
{
 int Fx;
Fx = F (1);
clrscr();
printf(“F(1) = %d\n”,Fx);
geth();
}
1.       int F (int x)
2.       float F (int x)
3.       int F (float x)
4.       void F (int x)
5.       void F ()

Pengertian :
1.       Fungsi F menerima satu nilai integer dan menghasilkan nilai integer.
2.       Fungsi F menerima suatu nilai integer dan menghasilkan nilai float
3.       Fungsi F menerima suatu nilai float dan menghasilkan nilai integer.\
4.       Fungsi F menerima suatu nilai integer dan tidak menghasilkan nilai .
5.       Fungsi F tidak menerima dan tidak menghasilkan nilai.


contoh program :
#include <stdio.h>
#include <conio.h>

Int F (int x,y )
{
  int a ;
  int b;
a= x*x+1;
b=x-y;

F(x,y)=

int F (intx, int y)
{
 int a;
a=(x*x+1)/(x-y)
return a
}


Fungsi Retusif 


Fungsi retusif adalah memanggil diri sendiri.

Manfaatnya untuk mempercepat proses perulangan .

contoh program :

Menampilkan turbo c sebanyak 5 kali.

#include <stdio.h>
#include <conio.h>

void tampil (int n)
{   
   if (n>=1) 
   {
     printf("Turbo c\n");
     tampil(n-1);
    } 

}
void main ()
   { 
     clrscr();
     tampil (5);
     getch();
   
   }

Cara kerja :

 n= 5
(5>=1) = ya
cetak "Turbo c"
n = 4 => (n-1)
(4>1) = ya
cetak "Turbo c"
n = 3
(3>=1) = ya
cetak "Turbo c"
n =2 
(2>=1) = ya 
cetak "Turbo c"
n = 1
(1>=1) = ya
cetak "Turbo c"


Contoh Program :

#include <stdio.h>
#include <conio.h>

void tampil ()
{
   printf("Turbo c\n");
}
void main ()
{
   int i;
   clrscr ()
   for (i=1;i<=5;i++)
         tampil ();
   getch );
}




Program Faktorial :

#include <stdio.h>
#include <conio.h>

int faktorial (int n)
{
    if (n<1)
        return 1;
    else
        return n*faktorial (n-1);
}
void main ()
{
   int x;
   clrscr ();
   x = faktorial (3);
   printf("Hasil = %d\n",x);
   getch();
}

Cara kerja :

n = 3
(3<1) = tidak
3* ?
n =2
(2<1) = tidak
2* ?

n =1
(1<1) = tidak
1* ?
n = 0
(0<1) = ya
1


Contoh Program :

#include <stdio.h>
#include <conio.h>

int jumlah (int n)
{
  if (n==1)
  return 1;
  else
     return n+ jumlah (n-1);
}
void main ()
{
   int x;
   clrscr ();
   x=jumlah (10);
   printf("Hasil = %d\n",x);
   getch ();
}




Deret Fibonanci
1 1 2 3 5 8 . . .

Fibo (n) = Fibo (n-1) + Fibo (n-2)

N = 5
1+1+2+3+5 = 12


Contoh Program Bilangan Fibonanci :

#include <stdio.h>
#include <conio.h>

int fibo(int n)
{
  if (n==1)
     return 1;
  else
  if (n==2)
     return 1;
  else
     return fibo(n-1)+fibo(n-2);
}
void main()
{
 int n,x;
 clrscr();
 printf("N : ");
 scanf("%d",&n);
 x=fibo(n);
 printf("Fibo(%d) = %d\n",n,x);
 getch();
}



Contoh Program Fibonanci Pilihan :

#include <stdio.h>
#include <conio.h>

int jumlah (int b,int a)
{
 if (b==a)
    return b;
 else
    return b+jumlah (b+1,a);
}
void main ()
{
  int bawah;
  int atas;
  int x;
  clrscr();
  printf("Batas bawah = ");
  scanf("%d",&bawah);
  printf("Batas atas = ");
  scanf("%d",&atas);
  x=jumlah (bawah,atas);
  printf("Penjumlahan %d sd %d = %d",bawah,atas,x);
  getch();
}

POINTER



#Alamat
#Data

Deklarasi
Type data   *nama

Contoh :

Int       *p;
Float    *q;
Char    *r;

#include <stdio.h>
#include <conio.h>

Void main ()
{
 Int      *p;
Clrscr ();
*p = 5;
Printf(“Alamat p: %u\n Data p = %d\n”,p,*p);
Getch();
}

Alamat p = _ Data p = 5
 ----------------------------------------------------------------------------------------------------------------------------
 
Contoh program :

#include <stdio.h>
#include <conio.h>
Void main ()
{
Int a;
Int *b;
Clrscr();
a=5;
b=&a;
*b=7;
Printf(“a = %d\n b= %d\n”,a,*b);
Getch();
}
a=7
b=7

Contoh program :
#include <stdio.h>
#include <conio.h>
Void main ()
{
Int a;
Int *b;
Clrscr();
a=5;
b=&a;
printf(“a= %d\n b= %d\n”,a,b);
getch();
}



Contoh program :

#include <stdio.h>
#include <conio.h>
Void main ()
{
Clrscr();
a= 5;
b= 7;
c= 8;
pa=&a;
pb=&b;
pc=&c;
pb=pc;
pc=pa;
*pa=3;
*pb=1;
*pc=2;
Printf(“a = %d, b= %d, c= %d\n”,a,b,c);
Getch();
}
----------------------------------------------------------------------------------------------------------------------------

 FILE 

File  -> Record -> Field -> Byte (ASCII) 8 bit : karakter -> Bit (Bilangan Digit , 0/1)

Penyimpanan Data terbagi 2, yaitu :
1. Internal 
    Sifatnya hanya sementara, ini terdapat di Memory (RAM)
2. External
    Sifatnya tetap dan terdapat pada segala bentuk Disk.

Nama file.ekstensi

Ekstensi adalah format jenis

contohnya :
a.jpg
a.doc
a.txt
a.exe

Operasi File

1. Membuka File 
    fopen( )

2. Memilih mode pembukaan 
    * ditulis      : w
    * dibaca      : r
    * ditambah : a

3. Mengakses ke File 
    * Baca : fgets ( )
    * Tulis : fputs ( )
 
4. Menutup File 
    fclose ( )   

w : write 
 r  : read
a : append 

cara membedakan field dan record adalah :
1. field : dibaca vertikal 
2. record : dibaca horizontal 

Contoh Program :

1. Membentuk FILE 
    
    #include <stdio.h>
    #incliude <conio.h>
    
    void main ( )
    { 
     FILE *Pf;
     Pf = fopen ("MHS.TXT","w");
     fclose(Pf);
     }
 
2. Menulis ke FILE 
    
    #include <stdio.h>
    #include <conio.h>
    
    void main ( )
    {
        FILE *Pf;
        Pf = fopen("MHS.TXT","w");
        fputs("Ali\n",Pf);
        fputs("Medan\n",Pf);
        fputs("081375689066",Pf);
        fclose(Pf);
    }
 
3. Membaca / mengambil data pada FILE 
    
    #include <stdio.h>
    #inclide <conio.h>
    
    void main ( )
  {
     FILE *Pf;
     char nama [25];
     char kota [20];
     char telpon [15];

     Pf = fopen ("MHS.TXT","r");
     clrscr();
     while (!feof (Pf))
   {
     fgets(nama,25,Pf);
     fgets(kota, 20,Pf);
     fgets(telpon,15,Pf);
     
     printf("Nama  : %s",nama);
     printf("Kota    : %s",kota);
     printf("Telpon : %s",telpon);
   }      
     fclose (Pf);
     getch ( );
   }