Minggu, 22 Mei 2016

POINTER dalam C++



POINTER
Pengertian pointer
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori.
Contoh: jika variabel A berisi alamat dari variabel B, maka variabel A dikatakan menunjuk ke variabel B.
Operator pointer ada 2 :
1.      Operator &
Operator & menghasilkan alamat dari operandnya atau alamat memori yg ditempati oleh variabel
2.      Operator *
Operator * menghasilkan nilai yang berada pada sebuah alamat.
Perbedaan pointer dengan variable biasa

Pointer
Variabel biasa
Deklarasi
int *a;
int b;
Alamat memori
Tidak otomatis
Otomatis
Mengetahui alamat memori
A
&b
Mengetahui datanya
*a
b

Deklarasi pointer:
Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan. Bentuk Umum :
       Tipe_data *nama_pointer;
       Contoh : int *nilai;
                        char *huruf;
Ada dua cara yang dapat dilakukan untuk alokasi space di memori bagi pointer, yaitu:
  1. Menempati space variable lain yang sudah punya space.
Variabel lain tersebut dapat berupa variabel biasa (bukan pointer) atau pointer yang tentunya sudah punya alokasi space di memori.
            Syntaxnya :
var_pointer = &var_biasa;
            contoh :


Keterangan :
Karena *y menempati alokasi memori yang sama dengan x, akibatnya data yang tersimpan di dalamnyapun akan sama. Jika ada instruksi yang menginisialisasi x, otomatis juga akan menginisialisasi *y.
2.       Dialokasikan tersendiri di memori (Memori dinamis).
Pointer tidak menempati space variabel lain, tetapi dialokasikan space tersendiri di memori dengan instruksi new.

Syntaxnya:
            var_pointer = new tipe_data-pointernya;
contoh:

Keterangan :
x dan y mempunyai alokasi memori yang berbeda, sehingga data yang tersimpan di dalamnyapun akan berbeda pula.
Membebaskan memori dari variabel dinamis
Dengan alokasi memori dinamis ini kita dapat menghemat alokasi memori dengan cara membebaskan memori dari variabel dinamis, jika memang variabel tersebut tidak
digunakan lagi.

Syntaxnya:
delete var_pointer;
            contoh:
           

Keterangan :
Setelah dikenai instruksi delete y; maka nilai yang tersimpan dalam *y akan hilang. Itulah sebabnya *y dikatakan sebagai variable dinamis, sedangkan x merupakan variable statis, sehingga tidak bisa dibebaskan dari memori.
Fungsi dengan parameter pointer
Parameter keluaran yaitu parameter yang berfungsi untuk menampung nilai yang dihasilkan dari proses di dalam fungsi. Parameter keluaran ini digunakan dalam fungsi tipe void (tanpa return value),dengan kata lain parameter tersebut digunakan sebagai nilai keluaran dari sebuah fungsi. Dengan demikian parameter keluaran ini harus  dilewatkan berdasarkar alamat atau referensinya, yaitu menggunakan pointer atau reference.
Contoh 1 :


Contoh 2:

Kamis, 19 Mei 2016

MODULAR (FUNGSI) dalam C++





MODULAR (FUNGSI)
  1. MODULAR
Pemrograman Modular adalah suatu teknik pemrograman di mana program yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian program yang lebih kecil sehingga akan mudah dipahami dan dapat digunakan kembali, baik untuk program itu sendiri maupun program lain yang memiliki proses yang sama.
Kelebihan modular :
       Program lebih pendek
       Mudah dibaca dan dimengerti
       Mudah didokumentasi
       Mengurangi kesalahan dan mudah mencari kesalahan
       Kesalahan yang terjadi bersifat “lokal”
Modular programming pada C++
Bahasa C sangat mendukung modular programming . Sejak awal bahasa C sudah membagi program-programnya menjadi modul-modul (bagian-bagian). Modul pada bahasa C dikenal dengan nama fungsi (function). Bahasa C terdiri dari fungsi-fungsi, baik yang langsung dideklarasikan dalam program ataupun dipisah di dalam header file. Fungsi yang selalu ada pada program C adalah fungsi main
2.       FUNCTION
Fungsi/function adalah suatu kumpulan instruksi/perintah/program yang dikelompokkan menjadi satu, letaknya terpisah dari program yang menggunakan fungsi tersebut, memiliki nama tertentu yang unik, dan digunakan untuk mengerjakan suatu tujuan tertentu. Dalam bahasa pemrograman lain fungsi dapat disebut sebagai subrutin (basic, VB) atau procedure (pascal, Delphi)
Keuntungan Fungsi
1)      Dapat melakukan pendekatan top-down dan divide-and-conquer:
2)      Top-down: penelusuran program mudah
3)      Divide-and-conquer: program besar dapat dipisah menjadi program-program kecil.
4)      Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami
5)      Program dapat dikerjakan oleh beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
6)      Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas dan sederhana Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
7)      Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
8)      Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.
9)      Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi – fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.
10)   Fungsi -fungsi digunakan untuk menghindari penulisan program yang sama yang ditulis secara berulang – ulang. Langkah – langkah tersebut dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan langkah – langkah ini tidak perlu selalu menuliskannya, tidak cukup memanggil fungsi tersebut.
11)    Mempermudah dokumentasi.
12)   Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain.
Sifat-sifat fungsi
1)      Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil oleh pengguna semakin tinggi nilai fan-in
2)      Nilai Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah nilai fan-out
3)      Memiliki Self-contained tinggi, artinya kemampuan untuk memenuhi kebutuhannnya sendiri
Kategori fungsi dalam C++
·         Standard Library Function  adalah  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. Misalnya: #include
·         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 jika ingin menggunakannya.
Perancangan Fungsi
Dalam membuat fungsi, perlu diperhatikan:
1. Data yang diperlukan sebagai inputan
2. Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya
3. Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Struktur Fungsi
Deklarasi function (function prototype/ declaration)Terdiri dari:
1. Judul fungsi
2. Tipe data yang akan dikembalikan/void
3. Tidak ada kode implementasi function tersebut Bentuk umum: tipe_data|void nama_fungsi([arguman 1, argument 2,….]);
Deklarasi fungsi
Deklarasi fungsi diakhiri dengan titik koma . Tipe_data dapat berupa segala tipe data yang dikenal C ataupun tipe data buatan, namun tipe data dapat juga tidak ada dan digantikan dengan void yang berarti fungsi tersebut tidak mengembalikan nilai apapun. Nama fungsi adalah nama yang unik. Argumen dapat ada atau tidak (opsional) yang digunakan untuk menerima argumen/parameter. Antar argumen-argumen dipisahkan dengan menggunakan tanda koma. Suatu fungsi perlu dideklarasikan sebelum digunakan. Untuk alasan dokumentasi program yang baik, sebaiknya semua fungsi yang digunakan dideklarasikan terlebih dahulu Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan
Struktur Fungsi
1. Tubuh Function/Definisi Function (FunctionDefinition)Terdiri dari:
2. function prototype yang disertai dengan kode implementasi dari function yang berisikan statemen/instruksi yang akan melakukan tugas sesuai dengan tujuan dibuatnya fungsi tersebut.
Bentuk Umum Definisi Fungsi
Tubuh fungsi dapat berisi segala perintah yang dikenal oleh C, pada dasarnya tubuh fungsi sama dengan membuat program seperti biasa. Return bersifat opsional, adalah keyword pengembalian nilai dari fungsi ke luar fungsi, return wajib jika fungsi tersebut mengembalikan nilai berupa tipe data tertentu, sedangkan return tidak wajib jika fungsi tersebut bersifat void.
contoh deklarasi dan definisi fungsi :
Jenis fungsi dalam C++

  •    Fungsi 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:
1. Tidak adanya keyword return.
2. tidak adanya tipe data di dalam deklarasi fungsi.
3. menggunakan keyword void.
4. Tidak dapat langsung ditampilkan hasilnya
5. Tidak memiliki nilai kembalian fungsi
contoh fungsi void :

  •  Fungsi non-void
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri:
1. ada keyword return
2. ada tipe data yang mengawali fungsi
3. tidak ada keyword void
4. Memiliki nilai kembalian . Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu sehingga dapat langsung ditampilkan hasilnya.

contoh fungsi non void : 

Keyword void
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun. Contoh fungsi Faktorial