Senin, 12 Desember 2011

Catalog Oriflame 08 Des 2011 - 31 Des 2011

0 komentar
Continue reading →

Pointer pada C++

0 komentar

Alamat  (dereference) Operator(&):

Ampersand sign (&) : berarti alamat dari /"address of" dari sebuah data pada memori, hal ini merupakan implementasi dari pointer pada C++.
Contoh:
ted = &andy;
contoh penggunaan:
andy = 25;
fred = andy;
ted = &andy;

Reference operator (*):

"value pointed by" nilai yang ditunjukkan oleh suatu variable pointer. Contohnya:
beth = *ted;
Artinya: "beth sama dengan nilai yang ditunjukkan oleh ted"). beth =25, ted =1776, dan the value pointed by 1776 = 25.
Strukturnya dalam memori:
Contoh lainnya:
beth = ted;   // beth equal to ted ( 1776 )
beth = *ted;  // beth equal to value pointed by ted ( 25 )
 
            Contoh di atas sama dengan;
andy = 25;
ted = &andy;

Sehingga argument-argumen berikut ini adalah benar:
andy == 25
&andy == 1776
ted == 1776
*ted == 25
*ted == andy

 

Deklarasi variable dengan tipe pointer:

type * pointer_name;

Dimana: type adalah tipe dari data yang ditunjuk oleh pointer, bukan tipe data pointer itu sendiri. Contoh :
int * number;
char * character;
float * greatnumber;

// program pointer I
#include <iostream.h>
 
int main ()
{
  int value1 = 5, value2 = 15;
  int * mypointer;
 
  mypointer = &value1;
  *mypointer = 10;
  mypointer = &value2;
  *mypointer = 20;
  cout << "value1==" << value1 << "/ value2==" << value2;
  return 0;
}
value1==10 / value2==20
Prog101.cpp

// program pointer II
#include <iostream.h>
 
int main ()
{
  int value1 = 5, value2 = 15;
  int *p1, *p2;
 
  p1 = &value1;     // p1 = address of value1
  p2 = &value2;     // p2 = address of value2
  *p1 = 10;         // value pointed by p1 = 10
  *p2 = *p1;        // value pointed by p2 = value pointed by p1
  p1 = p2;          // p1 = p2 (value of pointer copied)
  *p1 = 20;         // value pointed by p1 = 20
  
  cout << "value1==" << value1 << "/ value2==" << value2;
  return 0;
}
value1==10 / value2==20
Prog102.cpp

Cara lain untuk mendeklarasikan tipe data pointer:
int *p1, *p2;

 

Pointers and array:

int numbers [20];
int * p;
Maka cara pengisian nilai ke dalam variable p berikut adalah benar:
p = numbers;
Tetapi statemen berikut adalah salah:
numbers = p;

// program pointer III
#include <iostream.h>
 
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;
}
10, 20, 30, 40, 50,
Prog103.cpp

Cara lain untuk mengisi nilai menggunakan pointer pada array:
a[5] = 0;       // a [offset of 5] = 0
*(a+5) = 0;     // pointed by (a+5) = 0

 

Inisialisasi Pointer :

int number;
int *tommy = &number;

Cara di atas dapat pula ditulis dengan cara sebagai berikut:
int number;
int *tommy;
tommy = &number;

Cara di atas juga tidak sama dengan cara berikut ini:
int number;
int *tommy;
*tommy = &number;

Contoh lain inisialisasi pointer:
char * terry = "hello";
Grafik:
keterangan:
variable terry berisi nilai 1702 dan bukan ‘h’ ataupun “hello”

Untuk merubah karakter ‘o’ pada string “hello” di atas dapat digunakan dua cara berikut ini:
terry[4] = '!';
*(terry+4) = '!';
grafik:

Arithmetic of pointers


Alamat Variabel Pointer pada Memori:
            Contoh:
char *mychar;     // char = 1 byte dilokasi memori 1000
short *myshort;   // short = 2 byte dilokasi memori 2000
long *mylong;     // long = 4 byte dilokasi memori 3000

Maka, bila kita menulis statement berikut ini :
mychar++;
myshort++;
mylong++;

Grafik:

 

Pointer to pointer:

Contoh:
char a;
char * b;
char ** c;
a = 'z';
b = &a;
c = &b;

grafik di bawah ini menunjukan bila alamat variable a, b, dan c di atas berada pada alamat memori 7230, 8092 and 10502:
Maka :
c is a variable of type (char **) with a value of 8092
*c is a variable of type (char*) with a value of 7230
**c is a variable of type (char) with a value of'z'

 

 

void pointer:

void pointer dapat menunjuk ke semua tipe data , dari integer atau float atau string dan karakter.

Salah satu kegunaan dari void pointer adalah untuk mengisi parameter ke suatu fungsi, seperti contoh di bawah ini:

// penambahan integer
#include <iostream.h>
 
void Tambah(void* data, int type)
{
  switch (type)
  {
    case sizeof(char) : (*((char*)data))++; break;
    case sizeof(short): (*((short*)data))++; break;
    case sizeof(long) : (*((long*)data))++; break;
  }
}
 
int main ()
{
  char a = 5;
  short b = 9;
  long c = 12;
  Tambah (&a,sizeof(a));
  Tambah (&b,sizeof(b));
  Tambah (&c,sizeof(c));
  cout << (int) a << ", " << b << ", " << c;
  return 0;
}
6, 10, 13
Prog104.cpp

Continue reading →
Minggu, 11 Desember 2011

Input dan Output pada C++

0 komentar
A. Cin
Dalam C++, perintah cin digunakan untuk menginput suatu nilai dari suatu
piranti masukan (keyboard) untuk selanjutnya diproses oleh program.
Sintaknya adalah:
cin >> variabel;
contohnya:
cout << “Masukkan suatu bilangan : ”;
cin >> bil;
cout << “Anda memasukkan bilangan “ << bil “\n”;

B. getch()
Perintah getch() berfungsi sama seperti cin (perintah input), akan tetapi getch()
khusus untuk input berupa karakter. Disamping itu getch() dapat membaca input
berupa spasi atau tab, sedangkan cin tidak bisa.
Sintaksnya:
Variabel = getch();
Fungsi ini juga dapat digunakan apabila tidak diinginkan penekanan ENTER ketika
input data karakter.

C. getche()
Perintah getche() kegunaannya sama dengan getch(), bedanya adalah:
- getch() tidak menampilkan karakter yang diiinput
- getche() menampilkan karakter yang diinput
fungsi getch() dan getche() sama-sama membutuhkan file header conio.h
Berikut ini contoh penggunaan getch() dan getche()
char karakter;
cout << “masukkan sebuah karakter : “;
karakter = getch();
cout << “Anda mengetik karakter : ” << karakter;
cout << “masukkan sebuah karakter : “;
karakter = getche();
cout << “Anda mengetik karakter : ” << karakter;
NB:
Untuk input berupa string, akan dibahas di bab yang lain.

D. cout
Dalam c++, perintah cout digunakan untuk menampilkan suatu informasi ke
piranti output (layar). Contoh-contoh penggunaannya telah banyak diberikan di
bab-bab sebelumnya. Berikut ini perintah-perintah tambahan untuk mengatur
tampilan output.
- endl
Perintah ini berfungsi sama dengan \n (ganti baris)
Contoh:
cout << “Hallo” << endl;
- setw()
Perintah ini digunakan untuk mengatur lebar tampilan data (rata kanan).
Contoh:
A = 123;
B = 98;
C = 1;
cout << “Nilai A = “ << setw(6) << A << endl;
cout << “Nilai B = “ << setw(6) << B << endl;
cout << “Nilai C = “ << setw(6) << C << endl;
Bandingkan bila tanpa menggunakan setw().
- setfill()
Perintah setfill digunakan untuk menambahkan suatu karakter tertentu pada
field yang kosong pada suatu data. Perhatikan contoh berikut ini
A = 123;
B = 98;
cout<< “Nilai A = “<< setw(6) << setfill(‘*’) << A << endl;
cout<< “Nilai B = “<< setw(6) << setfill(‘.’) << B << endl;
Perintah setfill() biasanya digunakan setelah penggunaan setw().
- setprecision()
Telah dijelaskan di bab sebelumnya.
NB:
Perintah-perintah tambahan pada cout di atas memerlukan file header iomanip.h
supaya dapat digunakan.
Continue reading →

OPERATOR DAN STATEMENT PADA C++

0 komentar

A. Pengantar Operator
Operator merupakan simbol yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi, misalnya untuk:
- menjumlahkan dua nilai
- memberikan nilai ke suatu variabel (assignment)
- membandingkan kesamaan dua nilai.
B. Operator Aritmatika
Operator ini digunakan untuk perhitungan dasar aritmatika. Operator ini antara
lain
Operator Keterangan Contoh
* Perkalian 2*3
/ Pembagian 7/2
% Modulo 7%2
+ Penjumlahan 5+4
- pengurangan 5-4
C. Tingkat Presedensi Operator Aritmatika
Operator yang mempunyai prioritas tinggi akan diutamakan dalam hal
pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.
Berikut ini tingkat presedensi operator aritmatika (semakin ke bawah prioritas
makin rendah):
- (operator unary negatif)
* / %
+ -

D. Assignment Lanjut
Assignment merupakan proses pemberian nilai pada suatu variabel. Berikut ini
contoh-contohnya:
a = 1;
a = 2 + b;
a = 2 + (b = 1);
Contoh no. 3 di atas prosesnya adalah mula-mula b diberi nilai 1, kemudian
variabel a diisi dengan nilai penjumlahan 2 dan 1.
a = b = c = d = e = 1;
Contoh tersebut identik dengan:
e = 1;
d = e;
c = d;
b = c;
a = b;
E. Operator Increment dan Decrement
Bahasa C++ menyediakan operator yang disebut increment dan decrement.
Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel
sebesar 1.
Operator Keterangan
++ Operator increment
-- Operator decrement
Penempatan operator tersebut dapat di awal variabel atau di belakangnya.
Contoh:
x = x + 1;
y = y – 1;
dapat ditulis
++x;
--y;
atau
x++;
y--;
Secara sekilas tak ada perbedaan antara ++x dan x++ atau --y dan y—
Perhatikan contoh berikut ini:
r = 10;
s = 10 + r++;
cout << “Nilai r = ”<< r << “\n”;
cout << “Nilai s = ”<< s << “\n”;
bandingkan dengan
r = 10;
s = 10 + ++r;
cout << “Nilai r = ”<< r << “\n”;
cout << “Nilai s = ”<< s << “\n”;

F. Operator Majemuk
C++ menyediakan operator yang dimaksudkan untuk memendekkan penulisan
operasi assignment, misalnya:
x = x + 2;
y = y * 4;
z = z / 5;
w = w – 8;
dapat ditulis
x += 2;
y *= 4;
z /= 5;
w -= 8;
G. Operator Relasional
Operator ini digunakan untuk membandingkan dua buah nilai. Berikut ini macammacam
operator yang termasuk jenis ini.
Operator Keterangan
== Sama dengan (bukan assignment)
!= Tidak sama dengan
> Lebih besar
< Lebih kecil
>= Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan
Hasil operasi relasi ini dihasilkan nilai benar atau salah.
Contoh:
nilai1 = 3 > 2;
nilai2 = 15 == 16;
cout << “Nilai1 = ”<< nilai1 << “\n”;
cout << “Nilai2 = ”<< nilai2 << “\n”;
Hasil program di atas akan menampilkan nilai1 adalah 1 (benar) dan nilai2
adalah 0 (salah).
H. Operator Logika
Operator ini digunakan untuk menghubungkan 2 atau lebih statement. Biasanya
statement yang dihubungkan merupakan operasi relasional. Operator logika juga
menghasilkan nilai logika benar atau salah. Macam-macamnya adalah:
Operator Keterangan
&& AND
|| OR
! NOT (negasi)
Contoh:
nilai1 = (3 > 2) && (4 < 10);
nilai2 = !(15 == 15);
cout << “Nilai1 = ”<< nilai1 << “\n”;
cout << “Nilai2 = ”<< nilai2 << “\n”;

Setelah di run, dihasilkan nilai1 adalah 1 (benar) dan nilai2 adalah 0 (salah)
I. Fungsi-fungsi Matematika
C++ menyediakan beberapa fungsi khusus untuk perhitungan matematika.
Fungsi-fungsi ini memerlukan file header math.h
Fungsi Keterangan
abs(x) Mencari nilai mutlak
cos(x), sin(x), tan(x) Mencari nilai cos, sin, tan (x dalam radian)
exp(x) Mencari nilai ex
log(x) Mencari nilai log
pow(x,y) Mencari nilai xy
sqrt(x) Mencari nilai akar kuadrat dari x
Continue reading →