Docstoc

pointer & function

Document Sample
pointer & function Powered By Docstoc
					POINTER dan FUNCTION
PENGANTAR

  Week 9 & 10
Definisi Pointer
   Pointer adalah suatu variabel penunjuk, berisi
    nilai yang menunjuk alamat suatu lokasi
    memori tertentu.
   Jadi pointer tidak berisi nilai data, melainkan
    berisi suatu alamat memori.
   Lokasi memori tersebut bisa diwakili sebuah
    variabel atau juga berupa alamat memori
    secara langsung.
Ilustrasi:
   Kita memiliki variabel X yang berisi nilai karakter ‘a’
   Oleh kompiler C, nilai ‘a’ ini akan disimpan di suatu
    alamat tertentu di memori.
   Nilai alamat variabel X dapat diakses dengan
    menggunakan statemen &X.
   Jika kita ingin menyimpan alamat dari variabel X ini,
    kita dapat
   menggunakan suatu variabel, misalnya alamat_x =
    &X;
   alamat_x adalah suatu variabel yang berisi alamat
    dimana nilai X, yaitu ‘a’ disimpan. alamat_x disebut
    variabel pointer atau sering disebut pointer saja.
Contoh Algoritma:
#include <stdio.h>
void main(){
char *alamat_x; //menyiapkan variabel alamat_x bertipe
pointer to char
char X; //menyiapkan variabel X bertipe karakter
X = ‘a’; //mengisi variabel X dengan nilai ‘a’
alamat_x = &X; //mengisi variabel alamat_x dengan
   alamat X
printf(“Nilai variabel X, yaitu %c, disimpan pada alamat
%p”,X,alamat_x);
}
Hasil :
Pointer VS Variabel Biasa
Operator Pointer

Terdapat 2 buah operator pointer, yaitu:
Deklarasi Pointer
Pointer dideklarasikan dengan cara:
 Tipe_data *nama_variabel_pointer;

 Pemberian nilai awal pointer, contoh:

 Variabel pointer dapat dideklarasikan dengan tipe
  data apapun.
 Pendeklarasian variabel pointer dengan tipe data
  tertentu digunakan untuk menyimpan alamat
  memori tertentu, bukan untuk berisi nilai tertentu.
 Misalnya jika suatu variabel pointer dideklarasikan
  dengan tipe float, berarti variabel pointer tersebut
  hanya bisa digunakan untuk menunjuk alamat
  memori yang berisi nilai bertipe float.
Operasi pada pointer
Operasi yang bisa dilakukan oleh variabel
pointer adalah:
1.   Operasi pemberian nilai antar variabel pointer dapat
     dilakukan operasi pemberian nilai.
     Contoh 1:
2. Operasi aritmatika
   variabel pointer dapat dilakukan operasi
    aritmatika yang akan menunjuk suatu
    alamat memori baru.
Contoh:
  #include <stdio.h>
  void main(){
  char S[] = "anton";
  char *p;
  a
  p
  a
  25
  p
  //cara 1
  p=S; //menunjuk alamat dari karakter pertama.
  //cara 2
  //p=&S[0]; //sama, menunjuk alamat dari karakter pertama
  for(int i=0;i<5;i++){
  printf("%c",*p);
  p++;
  }
  }
Pointer pada Array 1 dan 2 dimensi
Pada array, pointer hanya perlu menunjuk pada
alamat elemen pertama saja karena letak alamat array
sudah berurutan pada memori.
 Contoh:
  #include <stdio.h>
  void main(){
  int a[5] = {1,2,3,4,5};
  int *p;
  p=a;
  printf("%d",*p);
  }
Hasil:
Output: 1
Penjelasan:
 Pernyataan p=a artinya pointer p menyimpan
  alamat array a, yang alamatnya diwakili
  alamat elemen pertama, yaitu a[0]
 Kita juga dapat menuliskan baris p=a diganti
  dengan p=&a[0]
FUNCTION
   Fungsi/function adalah bagian dari program yang memiliki nama
    tertentu,digunakan untuk mengerjakan suatu pekerjaan tertentu,
    serta letaknya dipisahkan dari bagian program yang
    menggunakan fungsi tersebut.
   Keuntungan menggunakan fungsi:
     Dapat melakukan pendekatan top-down dan divide-and-conquer:
       program besar dapat dipisah menjadi program-program kecil.
     Dapat dikerjakan oleh beberapa orang sehingga koordinasi
       mudah.
     Kemudahan dalam mencari kesalahan-kesalahan karena alur
       logika jelas dan kesalahan dapat dilokalisasi dalam suatu modul
       tertentu saja.
     Modifikasi program dapat dilakukan pada suatu modul tertentu
       saja tanpa mengganggu program keseluruhan.
     Mempermudah dokumentasi.

     Reusability: Suatu fungsi dapat digunakan kembali oleh program
       atau fungsi lain
Kategori Function
1.       Standard Library Function
          Yaitu fungsi-fungsi yang telah disediakan oleh
           C dalam file-file header atau
           librarynya.Misalnya: clrscr(), printf(), getch()
          Untuk function ini kita harus mendeklarasikan
           terlebih dahulu library yang akan digunakan,
           yaitu dengan menggunakan preprosesor direktif
2. Programmer-Defined Function
    Adalah function yang dibuat oleh programmer
     sendiri.
    Function ini memiliki nama tertentu yang unik
     dalam program, letaknya terpisah dari program
     utama, dan bisa dijadikan satu ke dalam suatu
     library buatan programmer itu sendiri yang
     kemudian juga di-include-kan untuk
     penggunaanya.
Function yang Void
   Fungsi yang void sering disebut juga prosedur
   Disebut void karena fungsi tersebut tidak mengembalikan suatu
    nilai keluaran yang didapat dari hasil proses fungsi tersebut.
   Ciri:
     tidak adanya keyword return.

     tidak adanya tipe data di dalam deklarasi fungsi.

     menggunakan keyword void.

     Tidak dapat langsung ditampilkan hasilnya

     Tidak memiliki nilai kembalian fungsi

     Contoh: clrscr(), printf()

   Contoh function void:
      void tampilkan_jml(int a,int b){
      int jml;
      jml = a + b;
      printf(“%d”,jml);
      }
Fungsi yang Non-Void
   Fungsi non-void disebut juga function
   Disebut non-void karena mengembalikan nilai kembalian yang berasal
    dari keluaran hasil proses function tersebut
   Ciri:
       ada keyword return
       ada tipe data yang mengawali deklarasi fungsi
       tidak ada keyword void
       Memiliki nilai kembalian
       Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
        sehingga dapat langsung ditampilkan hasilnya.
   Contoh: sin(), getch()
   Contoh function non-void
    int jumlah(int a,int b){
    int jml;
    jml = a + b;
    return jml;
    }
The main function
Sebuah program yang paling sederhana dalam C, AGAR DAPAT
DIEKSEKUSI harus terdiri dari minimal 1 buah fungsi, yaitu function main()
Pada saat program C dijalankan, maka compiler C akan mencari function
main() dan melaksanakan instruksi-instruksi yang ada di sana.

Di dalam function main, sering dideklarasikan dalam 2 bentuk:
   int main()
   void main()

   int main()
   int main() berarti di dalam function main tersebut harus terdapat keyword return
    di bagian akhir fungsi dan mengembalikan nilai bertipe data int,
   Mengapa hasil return harus bertipe int juga? karena tipe data yang mendahului
    fungsi main() diatas dideklarasikan int
   Jika sebuah program C dieksekusi, maka akan dikembalikan status eksekusi
    program, jika “terminated successfully” maka, akan dikembalikan status 0,
    sedangkan jika “terminated unsuccessfully” akan dikembalikan nilai status tidak
    0
   void main()
    void main() berarti function yang void dan tidak
    mengembalikan nilai status program sehingga
    nilai status program tidak bisa diketahui
ARGUMEN/PARAMETER FUNCTION

1.   Sebuah fungsi bisa memiliki argumen-argumen yang bersifat opsional.
2.   Argumen-argumen tersebut berfungsi sebagai parameter inputan yang berupa
     variabel-variabel bagi fungsi tersebut (bersifat lokal).
3.   Argumen harus bertipe data tertentu.
4.   Terdapat 2 jenis parameter:
5.   Parameter formal: parameter yang ditulis pada deklarasi fungsi.
6.   Parameter aktual: parameter yang diinputkan dalam program pemanggil fungsi
     tersebut. Dapat berupa variabel atau langsung berupa nilai tertentu sesuai
     dengan tipe data yang dideklarasikan untuk masing-masing parameter fungsi.
Contoh:
Hal-hal penting lainnya

   Nilai variabel di dalam fungsi tidak dapat
    mengubah nilai dalam function main
   Sebuah function dapat meng-call function lain
   Dua atau lebih function dapat saling call
Pengiriman Parameter ke suatu Function secara nilai (By
Value)

1.   Yang dikirimkan ke fungsi adalah nilainya, bukan alamat
     memori letak dari datanya
2.   Fungsi yang menerima kiriman nilai ini akan menyimpannya di
     alamat terpisah dari nilai aslinya yang digunakan oleh program
     yang memanggil fungsi tersebut
3.   Karena itulah pengubahan nilai di dalam fungsi tidak akan
     berpengaruh pada nilai asli di program yang memanggil fungsi
     walaupun keduanya menggunakan nama variabel yang sama
4.   Pengiriman by value adalah pengiriman searah, dari program
     pemanggil fungsi ke fungsi yang dipanggilnya
5.   Pengiriman by value dapat dilakukan untuk suatu statement,
     tidak hanya untuk suatu variabel, value, array atau konstanta
     saja.
6.   Secara default, C menggunakan parameter by value untuk pembuatan
     fungsi-fungsinya
Contoh:
Pengiriman Parameter secara Acuan (by Reference)


1.   Yang dikirimkan adalah alamat memori letak dari nilai datanya,
     bukan nilai datanya
2.   Fungsi yang menerima parameter ini akan menggunakan
     alamat yang sama dengan alamat nilai datanya
3.   Karena itulah pengubahan nilai di fungsi akan mengubah juga
     nilai asli di program pemanggil fungsi tersebut
4.   Pengiriman parameter by reference adalah pengiriman dua
     arah, yaitu dari program pemanggil fungsi ke fungsi dan
     sebaliknya dari fungsi ke program pemanggilnya
5.   Pengiriman parameter by reference tidak dapat digunakan
     untuk suatu ungkapan, hanya bisa untuk variabel, konstanta
     atau elemen array saja
Hasil di memori :
Hasil Didalam memori
Kesimpulan:

   Operator pada pengiriman parameter by reference adalah
    menggunakan operator ‘&’ yang berarti mengacu pada alamat
    memori dari variable tersebut.
   Parameter aktual yang dikirimkan adalah alamat memori, yaitu
    Secara_Acuan(&a,a/3,&c)
   Alamat nilai a pada main dan a pada fungsi Secara_Acuan
    sama, yaitu 23C7:2466
   Perubahan nilai a dalam fungsi Secara_Acuan menjadi 7 juga
    mengubah nilai a pada main yang semula 25 menjadi 7
   Pengirimannya dua arah
   Pengiriman parameter tidak dapat berupa ungkapan (statement),
    sehingga untuk statement a/3 harus berupa parameter by value
Thank you

				
DOCUMENT INFO
Shared By:
Tags: education
Stats:
views:41
posted:9/7/2012
language:Indonesian
pages:33
Description: a collection of data structures course lesson complete