Welcome to my blog, hope you enjoy reading :)
RSS

Jumat, 06 November 2009

Pointer C++

Pointer
1 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 sebuah variabel berisi alamat dari variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua
Operator Pointer ada dua, yaitu :
? Operator &
1. Operator & bersifat unary (hanya memerlukan satu operand saja).
2. Operator & menghasilkan alamat dari operandnya.
? Operator *
1. Operator * bersifat unary (hanya memerlukan satu operand saja).
2. Operator * menghasilkan nilai yang berada pada sebuah alamat.


2 Inisialisasi String(cont.)
 Contoh program array dimensi 2
/*Program :array.cpp*/
#include
Void printArray(int [] [3]);
Main() {
int matrik1[2] [3] ={ {1,2,2}, {4,5,6} },
matrik2[2] [3] ={ {1,2,3,4,5,} },
matrik3[2] [3] ={ {1,2}, {4} },
printArray(matrik1) ;
printArray(matrik2) ;
printArray(matrik3) ;
return 0;
}
Pointer : variabel yang berisi alamat memori
Bentuk Umum : Type *variable name;
 Type adalah tipe dasar pointer
 Variable name adalah nama variabel pointer
 * adalah operator memori untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand.

Contoh program pointer
//Program :pointer1. cpp
#include <'iostream.h'>
// cetak p dan *p
Void main(void)
{
int v = 7, *p;
p = &v;
cout << “Nilai v = “ << v << “ dan *p = “ << *p
<< “ \nAlamatnya = “ << p << ‘n’;
}

Hasil dari program adalah sebagai berikut :
Nilai v = 7 dan *p = 7
Alamatnya = efffb24
Operator Pointer
Ada beberapa operator yang digunakan dalam pointer yaitu operator alamat (&)
Contoh :
int y = 5;
int *yPtr;
Maka pernyataan
yPtr = &y;
Mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yPtr.

Contoh program operator pointer :
//Program :pointer2. cpp
#include <'iostream.h'>
Int main()
{
int *ptr, num; // 1
ptr = # // 2
*ptr = 100; // 3
cout << num << “ “;
(*ptr)++; // 4
cout << num << “ “;
(*ptr)*2; // 5
cout << num << “\n “;
return 0;
}

• Operasi Aritmatika
? Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori. Begitu juga operasi pengurangan.

Contoh Program :
#include <'stdio.h'>
#include <'conio.h>
void main()
{ int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
printf(�Nilai %i ada di alamat memori %p\n�, *penunjuk, penunjuk);
printf(�Nilai %i ada di alamat memori %p\n�, *(penunjuk+1), penunjuk+1);
printf(�Nilai %i ada di alamat memori %p\n�, *(penunjuk+2), penunjuk+2);
getch();
}

• Operasi Logika
? Suatu pointer juga dapat dikenai operasi logika.
Contoh Program :
#include <'stdio.h'>
#include <'conio.h'>
void main()
{ int a = 100, b = 200, *pa, *pb;
clrscr();
pa = &a;
pb = &b;
if(pa < pb)
printf(�pa menunjuk ke memori lebih rendah dari pb\n�);
if(pa == pb)
printf(�pa menunjuk ke memori yang sama dengan pb\n�);
if(pa > pb)
printf(�pa menunjuk ke memori lebih tinggi dari pb\n�);
getch();
}

4 POINTER DAN STRING
Contoh Program 1 :
#include <'stdio.h'>
#include <'conio.h'>
char *nama1 = �SPIDERMAN�;
char *nama2 = �GATOTKACA�;
void main()
{ char namax;
clrscr();
puts(�SEMULA :�);
printf(�Saya suka >> %s\n�, nama1);
printf(�Tapi saya juga suka >> %s\n�, nama2);
/* Penukaran string yang ditunjuk oleh pointer nama1 dan nama2 */
printf(�SEKARANG :�);
printf(�Saya suka >> %s\n�, nama1);
printf(�Dan saya juga masih suka >> %s\n�, nama2);
getch();
}
Contoh Program 2 :
#include
void misteri1(char *);
void main() {
char string[] = "characters";
printf("String sebelum proses adalah %s", string);
misteri1(string);
printf("String setelah proses adalah %s", string);
}
void misteri1(char *s) {
while ( *s != '\0' ) {
if ( *s >= 'a' && *s <= 'z' )
*s -= 32;
++s;
}
}









5 Array Pointer
Pointer dapat di-array seperti tipe data lain dalam C++ integer
contoh :
Int *pi[10];

Contoh Program array pointer
//Program :pointer6. cpp
#include
int main()
{
Int numbers[5];
Int *p;
p = numbers; *p = 10;
p++; *p =20;
p = &numbers[2]; *p = 30;
p = numbers + 3; *p = 40;
p = numbers; *(p+4) = 50;
for (int n=0; n<5; n++)
cout << numbers[n] << “, “;
return 0;
}

Output :
10, 20, 30, 40, 50,


from : http://arem756.blogspot.com/2009/06/artikel-dan-contoh-program-pointer-c.html

Kamis, 08 Oktober 2009

OpenCV & Borland C++ Builder

OpenCV & Borland C++ Builder

Untuk sementara, 1pekan sudah berlalu. Banyak hal yang sudah saya pelajari dari image processing dan semua simulasi dilakukan dengan MATLAB. Untuk aplikasi dan penerapan beberapa metode image processing, saya menggunakan sistem operasi Windows XP, Borland C++ Builder versi 6, Video OCX, dan OpenCV Library. Borland C++ Builder digunakan sebagai IDE untuk developing interface aplikasi yang menerapkan beberapa metode riset yang akan diteliti. Video OCX adalah sebuah pustaka ActiveX yang mendukung image processing dan real-time capturing dari webcam (video camera digital yang melalui USB port). OpenCV Library digunakan sebagai pustaka utama pemrosesan citra. OpenCV atau Open Source Computer Vision Library mengandung lebih dari 300 kelas dan ratusan fungsi di dalamnya, yang sangat powerful untuk riset image processing. OpenCV juga mendukung beberapa pustaka untuk object recognition dan object tracking.

Berikut ini langkah-langkah instalasi Borland C++ Builder, Video OCX dan OpenCV Library :

I. Bahan-bahan :
1. Source installer Borland C++ Builder versi 6.0
2. Video OCX Installer
3. OpenCV Library

II. Proses Instalasi :
1. Instal ketiga bahan tersebut dengan mengeksekusi file executable yang tersedia.

2. Setelah ketiganya terinstal, kita akan mengintegrasikan VideoOCX dengan Borland C++ Builder. Berikut ini langkah-langkahnya :
a. Buka Borland C++ Builder (BCB).
b. Pada BCB, cari tab Component >> Import ActiveX control.
c. Browse beberapa komponen, temukan komponen VideoOCX dan VideoOCX Tools
d. Klik install. Lakukan secara berurutan untuk dua komponen tersebut.

3. Preintegrasi OpenCV dan BCB :
a. Buka folder C:\\Program Files\OpenCV\bin
b. Kopikan semua file *.dll dalam folder tersebut ke C:\\Windows\system32
c. Buka folder C:\\Program Files\highgui2\bin dan kopi file *.dll dalam folder tersebut
d. Pastekan juga file tadi ke ke C:\\Windows\system32

4. Integrasi OpenCV dan BCB. Kita akan memasukkan path dari pustaka OpenCV pada konfigurasi BCB. Berikut ini langkah-langkahnya :
a. Buka BCB, cari tab Project >> Options >> Directories >> Include Path
b. Kemudian klik simbol “…” untuk browsing file
c. Masukkan semua path di bawah ini :

C:\\Program Files\OpenCV\cv\include
C:\\Program Files\OpenCV\cvaux\include
C:\\Program Files\OpenCV\cxcore\include
C:\\Program Files\OpenCV\highgui2
C:\\Program Files\OpenCV\otherlibs\cvcam\include
C:\\Program Files\OpenCV\otherlibs\highgui
C:\\Program Files\OpenCV\highgui2\otherlibs\highgui2

c. Klik OK, dua kali supaya path tersimpan

d. Masukkan juga path library : View >> Project Manager >> Pilih Project1.exe (atau sesuai dengan nama project Anda) >> klik kanan >> Add (tambahkan library dari folder OpenCV/highgui2/lib) :
cv.lib
cvaux.lib
cxcore.lib
cvcam.lib
highgui.lib
highgui2.lib


e. Cek integrasi dengan compile (tekan F9) program OpenCV sederhana, semisal
cvNamedWindow(”test”,1);



Referensi :

1. Situs Resmi Intel Corporation, OpenCV Technology
2. Sourceforge OpenCV
3. CVS Reference
4. Mailing List OpenCV Yahoo.Com
5. Download Installer untuk Windows dan Linux
6. Manual lama (tahun 2001) (PDF, 3.4 MB)
7. Instalasi OpenCV di Windows (Leeds University)