Nama : Satrio Nugroho
Nim : 1611502145
Kelompok : AM
Mata kuliah : Algoritma dan struktur data 1
Dosen : Nahot Frastian, M.Kom
Fakultas : Fakultas Teknologi Informasi
BAB 17 DAN 18
ALGORITMA
MATEMATIKA& POINTER
membuat program menentukan bilangan ganjil atau genap
Logika:Bilangan bulat yang sempurna habis dibagi 2 disebut
bilangan genap . Misalnya nomor seperti 2,4,6,8.Sementara, bilangan bulat yang
tidak sempurna dibagi dengan 2 disebut bilangan ganjil seperti 1,3,5,7.
Untuk memeriksa nomor genap atau ganjil, kami akan membagi
nomor dengan 2 dan memeriksa apakah sisa pembagian adalah nol atau tidak.
Untuk menjadi bilangan genap, sisanya harus sama dengan
nol.Jika sisa jumlah tidak sama dengan nol maka akan ganjil.Dalam bahasa C ++,
operator modulus (%) digunakan untuk menghitung sisa pembagian. Operator ini
mengembalikan sisanya sebagai akibat dari pembagian dua angka.
Code C++
#include <iostream>
using namespace std;
int main()
{
int num;
cout<<"Masukkan bilangan: ";
cin>>num;
if (num%2==0){
cout<<num<< " adalah bilangan genap.";
}
else{
cout<<num<< " adalah bilangan
ganjil.";
}
return 0;
}
Kemudian compile program dengan
menekan Ctrl+9 , save dengan ekstension .cppJalankan program dengan
menekan Ctrl-10Beginilah jalannya program

Bagaimana code diatas bekerja :
Di bawah ini adalah struktur dasar program C ++. Tidak
peduli, seberapa rumit atau sederhana program C++, setiap C ++ Program memiliki
baris-baris ini.
#include <iostream>
using namespace std;
int main()
{
return 0;
}
Saya telah menjelaskan baris-baris diatas sepenuhnya di
postingan saya sebelumnya: Pengenalan
Bahasa C ++ & Program Hello World. Saya akan menjelaskan
sisa baris secara rinci di sini:
Baris 4
int num;Dalam baris ini, kita mendeklarasikan sebuah
variabel bernama ‘num’.Variabel ini digunakan untuk menyimpan jumlah yang kita
dimasukkan. Keyword ‘int’ menunjukkan bahwa variabel ini memiliki tipe data integer.Kami
menggunakan jenis ini karena kita ingin menyimpan data numerik dalam variabel
ini. Pada akhir baris, ada semi-colon (;) yang mengakhiri pernyataan ini.
Baris 5
cout<<"Masukkan bilangan: ";
Dalam baris ini, kita diminta untuk memasukkan nomor.Pernyataan
cout digunakan untuk mencetak sesuatu di layar.
Baris 6
cin>>num;Tujuan dasar dari pernyataan cin adalah untuk
mengumpulkan apa yang kita masukan .Pernyataan ini membuat catatan tombol yang
kita tekan dan disimpan dalam variabel setelah operator ekstraksi
(>>).Dalam hal ini, akan menghemat jumlah yang kita masukkan
di variabel “num‘.Mari kita asumsikan bahwa nomor yang kita masukkan
adalah 8.
Baris 7
if (num%2==0){
Pernyataan If … Else dimulai disini
Pernyataan ini membantu kita untuk membuat keputusan.Menggunakan
pernyataan ini kita dapat membuat keputusan apakah suatu bilangan genap atau
ganjil. Ada ungkapan ‘num% 2 == 0’ di baris ini.
Jika ungkapan ini menjadi benar pernyataan Baris 8 akan
dieksekusi dan jika ungkapan ini menjadi salah maka pernyataan Baris 10 akan
dieksekusi.Seperti kita mengasumsikan jumlah yang kita masukkan adalah 8, jika
kita mengganti ‘num’ oleh 8 dalam ungkapan ini maka ekspresi akan menjadi
benar. Karena (8% 2 == 0) mengevaluasi ke (0 == 0) yang benar, sehingga pernyataan
Line 8 akan dieksekusi.
Baris 8
cout<<num<< " adalah bilangan genap.";
Baris ini digunakan untuk memberitahu kita bahwa nomor yang
dimasukkan adalah bilangan genap.Penyisipan operator (<<) digunakan
dua kali di baris ini, sekali untuk variabel output dan sekali untuk output
kalimat.Perlu dicatat bahwa kata kunci ‘num’ harus TIDAK dimasukkan dalam
kutipan ganda. Ketika program akan menampilkan output yang kemudian ‘num’ akan
digantikan oleh nomor yang tersimpan dalam variabel Seperti 8.
Baris 9
}Dalam baris ini, kita hanya memiliki penutup kurung
kurawal.Disini penutup kurung kurawal menunjukkan bahwa pernyataan blok if (
benar ) berakhir.
Baris 10
else{Else lebih mudah dikita pahami sebagai .. jika
tidakJika ekspresi menjadi tidak benar maka pernyataan else akan
dieksekusi.Jika ekspresi benar maka else ini dihiraukan.
Baris 11
cout<<num<< " adalah bilangan
ganjil.";Baris ini hanya dijalankan setelah ekspresi adalah tidak
benar.Oleh karena itu pernyataan ini digunakan untuk menginformasikan pengguna
bahwa jumlah adalah angka ganjil. Jika pernyataan benar (bilangan genap) maka
baris ini tidak akan dieksekusi.
Baris 12
}Kurung kurawal diatas menunjukkan bahwa pernyataan blok
ekse berakhir di sini Di bawah ini beberapa versi penulisan sintak / kode
program C++ menentukan bilangan ganjil atau genap.
Menggunakan header conio.h
#include <iostream>
#include <conio.h>
int main()
{
using namespace std;
int a,b;
cout<<"Masukkan sebuah bilangan : ";
cin>>a;
b=a%2;
if (b==0)
{
cout<<"Bilangan yang sobat masukan adalah :
genap";
}else if (b==1)
cout<<"Bilangan yang sobat masukan adalah :
ganjil";
getch();
}
Menggunakan operator ternary
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "Masukkan bilangan: ";
cin >> n;
(n % 2 == 0) ? cout << n << " adalah
genap." : cout << n << " adalah ganjil.";
return 0;
}
Saya kira artikel diatas sudah cukup untuk program C ++
menentukan apakah suatu bilangan genap atau ganjil .
Pengertian Bilangan Prima & Contoh Bilangan Prima 1-100
Pengertian
Bilangan Prima Dan Contoh Bilangan Prima 1-100 - Definisi bilangan
prima adalah bilangan asli yang lebih besar dari 1 dan hanya bisa dibagi oleh 2
bilangan yaitu satu dan bilangan itu sendiri.
2 serta 3 merupakan bilangan prima sedangkan 4 bukanlah bilangan prima karena 4 dapat dibagi dengan angka 2. Dalam matematika sepuluh bilangan prima yang pertama yaitu 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29.
Jika sebuah bilangan yang besarnya lebih dari satu dan tidak termasuk bilangan prima, maka bilangan tersebut disebut dengan bilangan komposit. ( wikipedia )
Faktor Prima suatu bilangan adalah bilangan prima yang terkandung dalam faktor bilangan itu. Sedangkan cara untuk mencari faktor prima suatu bilangan dapat dengan menggunakan pohon faktor.
Sebagai contoh temukan faktor prima dari bilangan 14 dan 40. Cara mengerjakannya, pertama bilangan yang akan di cari faktornya dibagi dengan bilangan prima, kedua jika hasilnya masih dapat dibagi maka dibagi lagi dengan bilangan prima yang lain. Jangan baca pembahasan sebelumnya mengenai rumus luas dan keliling bangun datar.
2 serta 3 merupakan bilangan prima sedangkan 4 bukanlah bilangan prima karena 4 dapat dibagi dengan angka 2. Dalam matematika sepuluh bilangan prima yang pertama yaitu 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29.
Jika sebuah bilangan yang besarnya lebih dari satu dan tidak termasuk bilangan prima, maka bilangan tersebut disebut dengan bilangan komposit. ( wikipedia )
Faktor Prima suatu bilangan adalah bilangan prima yang terkandung dalam faktor bilangan itu. Sedangkan cara untuk mencari faktor prima suatu bilangan dapat dengan menggunakan pohon faktor.
Sebagai contoh temukan faktor prima dari bilangan 14 dan 40. Cara mengerjakannya, pertama bilangan yang akan di cari faktornya dibagi dengan bilangan prima, kedua jika hasilnya masih dapat dibagi maka dibagi lagi dengan bilangan prima yang lain. Jangan baca pembahasan sebelumnya mengenai rumus luas dan keliling bangun datar.
Dari gambar di atas dapat kita ketahui jika faktor prima
dari 14 = 2 x 7 dan faktor prima dari 40 = 2 x 2 x2 x 5.
Contoh Bilangan Prima
Bilangan Prima yang Kurang dari 100
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
Bilangan Prima Tiga Digit Pertama
101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263
Bilangan Prima Empat Digit Pertama
1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181
Bilangan Prima Terbesar
Tidak ada bilangan prima terbesar karena jumlah bilangan yang tak tehingga. Tahun 2007 ditemukan bil prima 2^23.582.657-1. Bilangan ini terdiri dari 9.808.358 digit.
Contoh Soal
1. Tentukan bilangan prima antara 1 sampai dengan 10
jawab :
Bilangan prima 1 sampai 10 adalah 2, 3, 5, 7
Demikian pembahasan mengenai definisi bilangan prima dan contohnya lengkap semoga bermanfaat bagi pembaca semua.[]
Contoh Bilangan Prima
Bilangan Prima yang Kurang dari 100
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
Bilangan Prima Tiga Digit Pertama
101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263
Bilangan Prima Empat Digit Pertama
1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181
Bilangan Prima Terbesar
Tidak ada bilangan prima terbesar karena jumlah bilangan yang tak tehingga. Tahun 2007 ditemukan bil prima 2^23.582.657-1. Bilangan ini terdiri dari 9.808.358 digit.
Contoh Soal
1. Tentukan bilangan prima antara 1 sampai dengan 10
jawab :
Bilangan prima 1 sampai 10 adalah 2, 3, 5, 7
Demikian pembahasan mengenai definisi bilangan prima dan contohnya lengkap semoga bermanfaat bagi pembaca semua.[]
Algoritma Segitiga Pascal
1. Mulai
2. Deklarasikan variabel i,j,n dan array p.
3. Tentukan banyaknya baris data n
4. Buat perulangan baris dari i=0 s/d n.
a. Ketik spasi untuk menentukan posisi awal cetak output
b. Jika i lebih kecil dari n, lanjutkan ke langkah 5
c. Jika n lebih besar dari atau sama dengan i, lanjutkan ke langkah 10.
5. Buat perulangan kolom dari j=0 s/d i
a. Jika j lebih kecil dari n i, lanjut ke langkah 6
b. Jika j lebih besar dari atau sama dengan i , ulangi langkah 5a.
6. Jika j=1 atau j=i, maka a=1
7. Jika tidak, maka a=a*(i+1-j)/j;
8. Cetak a
9. Ulangi langkah 5
10. Pindah baris
11. Ulangi langkah 4
12. Selesai
Catatan :
Pada langkah ke 4a, gunakan contoh program bentuk perulangan for dengan cara mencetak spasi. artinya ganti cetak nilai k dengan cetak spasi.
Flowchart
Program
#include iostream.h
#include conio.h
void main()
{
int n,a;
clrscr();
cout<<"Masukkan batas : ";
cin>>n; // batas banyak piramid segitiga pascal
for (int i=0; i<=n; i++)
{
for (int k=0; k<=((2*n)-(2*i)); k++) // looping untuk mencetak spasi
{ cout<<" "; }
for (int j=0; j<=i; j++) // looping untuk mencetak angka segitiga pascal
{
if (j==0||i==j)
{
a=1;
}
else
{
a=a*(i+1-j)/j;
}
cout<<" "< }
cout<<"\n";
}
getch();
}
Hasil Program :
2. Deklarasikan variabel i,j,n dan array p.
3. Tentukan banyaknya baris data n
4. Buat perulangan baris dari i=0 s/d n.
a. Ketik spasi untuk menentukan posisi awal cetak output
b. Jika i lebih kecil dari n, lanjutkan ke langkah 5
c. Jika n lebih besar dari atau sama dengan i, lanjutkan ke langkah 10.
5. Buat perulangan kolom dari j=0 s/d i
a. Jika j lebih kecil dari n i, lanjut ke langkah 6
b. Jika j lebih besar dari atau sama dengan i , ulangi langkah 5a.
6. Jika j=1 atau j=i, maka a=1
7. Jika tidak, maka a=a*(i+1-j)/j;
8. Cetak a
9. Ulangi langkah 5
10. Pindah baris
11. Ulangi langkah 4
12. Selesai
Catatan :
Pada langkah ke 4a, gunakan contoh program bentuk perulangan for dengan cara mencetak spasi. artinya ganti cetak nilai k dengan cetak spasi.
Flowchart
Program
#include iostream.h
#include conio.h
void main()
{
int n,a;
clrscr();
cout<<"Masukkan batas : ";
cin>>n; // batas banyak piramid segitiga pascal
for (int i=0; i<=n; i++)
{
for (int k=0; k<=((2*n)-(2*i)); k++) // looping untuk mencetak spasi
{ cout<<" "; }
for (int j=0; j<=i; j++) // looping untuk mencetak angka segitiga pascal
{
if (j==0||i==j)
{
a=1;
}
else
{
a=a*(i+1-j)/j;
}
cout<<" "< }
cout<<"\n";
}
getch();
}
Hasil Program :
Pointer pada C++
2 Macam Operator Pointer
Operator Dereference (&)
Operator Dereference (&) yaitu operator yang berfungsi
mendeklarasikan sebuah variabel didalam penggantian memori. operator ini biasa
disebut dengan "address of". Jadi seandainya sobat ingin mengetahui
dimana variabel akan disimpan (untuk mengetahui letak / alamat penyimpanan
variabel di memori), sobat dapat memberikan tanda "&" (ampersand
sign) didepan variabel, yang berarti "address of". Karena dengan
menggunakan operator dereference (&) ini, sebuah variabel akan menghasilkan
alamat lokasi penyimpanannya di memori. Sebagai contoh "int angka"
ditempatkan pada memori dengan alamat 0x6ffe34 untuk mengetahuinya sobat dapat
menuliskan code seperti ini cout<<"\nAlamat variabel angka
(&angka) : "<<&angka; berikut code lengkapnya:
#include <iostream>
using namespace std;
int main(){
//deklarasi variabel angka dengan tipe data int
int angka = 90;
//deklarasi pointer angkax dengan tipe data int
int *angkax;
//angkax sama dengan Address Of angka (0x6ffe34)
//sekarang pointer angkax menunjuk ke alamat memori variabel angka
//atau pointer angkax berisi (menunjuk) alamat memori variabel angka
angkax = &angka;
cout<<"Nilai (isi) dari variabel angka : "<<angka;
cout<<"\nAlamat variabel angka (&angka) : "<<&angka;
cout<<"\nNilai yang ditunjuk pointer *angkax : "<<*angkax;
return 0;
}
using namespace std;
int main(){
//deklarasi variabel angka dengan tipe data int
int angka = 90;
//deklarasi pointer angkax dengan tipe data int
int *angkax;
//angkax sama dengan Address Of angka (0x6ffe34)
//sekarang pointer angkax menunjuk ke alamat memori variabel angka
//atau pointer angkax berisi (menunjuk) alamat memori variabel angka
angkax = &angka;
cout<<"Nilai (isi) dari variabel angka : "<<angka;
cout<<"\nAlamat variabel angka (&angka) : "<<&angka;
cout<<"\nNilai yang ditunjuk pointer *angkax : "<<*angkax;
return 0;
}
Dari program (code) contoh penggunaan Operator
Dereference (&) diatas, kami mencoba membuat ilustrasinya pada gambar
dibawah ini sehingga sobat dapat lebih memahami code yang kami buat, perlu
diketahui alamat memori dari sebuah variabel / pointer pada setiap komputer
kemungkinan besar berbeda.
Ilustrasi Pointer pada C++, pada program Contoh Penggunaan
Operator Dereference (&)
|

Pada program diatas awalnya
kita membuat variabel dengan tipe data int dengan nama "angka",
disaat yang bersamaan kita juga melakukan inisialisasi "int angka"
dengan nilai awal "90", kemudian kita melakukan deklarasi sebuah
pointer dengan tipe data int dan dengan nama "angkax", Setelah itu
kita menuliskan code "angkax = &angka;" yang artinya
memerintahkan pointer angkax menunjuk ke alamat memori variabel angka,
sehingga nilai yang ditunjuk pointer angkax sama dengan nilai dari variabel
angka (90) karena pointer angkax telah menunjuk ke alamat memori variabel
angka (lihat kembali code diatas).
OperatorReference(*)
Seandainya pada operator Dereference (&) sobat dapat mengeluarkan alamat memory dari sebuah variabel, sedangkan pada Operator Reference (*) sobat dapat mengeluarkan (menampilkan) nilai dari alamat memori yang di tunjuk. untuk penggunaan nya sendiri sobat dapat menambahkan identifier asterisk (*) didepan variabel. biasanya Operator reference disebut dengan "value pointed by"
Baca Juga : Gratis, Tutorial Lengkap Belajar Bahasa Pemrograman C++
Dari contoh program diatas, nilai *angkax adalah "90", hal tersebut karena pointer angkax menjunjuk ke variabel angka sehingga apabila kita menuliskan code cout<<"\nNilai yang ditunjuk pointer *angkax : "<<*angkax; maka akan keluar angka 90 karena kita mengeluarkan nilai dari alamat memori yang ditunjuk oleh pointer angkax (nilai / value yang berada di alamat memori 0x6ffe34).
untuk lebih memahami materi Pointer pada C++ ini, khususnya dalam penggunaan Operator Dereference (&) dan Operator Reference (*), kita akan membahas satu lagi contoh program pointer lengkap dengan penjelasannya.
Seandainya pada operator Dereference (&) sobat dapat mengeluarkan alamat memory dari sebuah variabel, sedangkan pada Operator Reference (*) sobat dapat mengeluarkan (menampilkan) nilai dari alamat memori yang di tunjuk. untuk penggunaan nya sendiri sobat dapat menambahkan identifier asterisk (*) didepan variabel. biasanya Operator reference disebut dengan "value pointed by"
Baca Juga : Gratis, Tutorial Lengkap Belajar Bahasa Pemrograman C++
Dari contoh program diatas, nilai *angkax adalah "90", hal tersebut karena pointer angkax menjunjuk ke variabel angka sehingga apabila kita menuliskan code cout<<"\nNilai yang ditunjuk pointer *angkax : "<<*angkax; maka akan keluar angka 90 karena kita mengeluarkan nilai dari alamat memori yang ditunjuk oleh pointer angkax (nilai / value yang berada di alamat memori 0x6ffe34).
untuk lebih memahami materi Pointer pada C++ ini, khususnya dalam penggunaan Operator Dereference (&) dan Operator Reference (*), kita akan membahas satu lagi contoh program pointer lengkap dengan penjelasannya.
Contoh Program Pointer pada C++, Lengkap Pembahasan
#include <iostream>
using namespace std;
int main(){
//deklarasi variabel x dengan tipe data int
int x;
//deklarasi pointer p dengan tipe data int
int *p;
x = 20;
p = &x;
cout<<"\t\t===== Program Contoh Pointer =====\n\n";
cout<<"Nilai X \t\t: "<<x<<endl;
cout<<"Alamat X (&X) \t\t: "<<&x<<endl<<endl;
cout<<"Nilai yang ditunjuk *P\t: "<<*p<<endl;
cout<<"Alamat yang ditunjuk *P\t: "<<p<<endl;
cout<<"Alamat *P (&P) \t\t: "<<&p<<endl;
// mengisi nilai 30 kedalam *p / alaman yang ditunjuk pointer p
// untuk megisikan nilai melalui alamat pointer gunakan *
// karena alamat memori yang ditunjuk pointer p merupakan alamat memori variabel x
// maka nilai dari variabel x juga ikut berubah
*p = 30;
cout<<"\n\n\nNilai X \t\t: "<<x<<endl;
cout<<"Alamat X (&X) \t\t: "<<&x<<endl<<endl;
cout<<"Nilai yang ditunjuk *P\t: "<<*p<<endl;
cout<<"Alamat yang ditunjuk *P\t: "<<p<<endl;
cout<<"Alamat *P (&P) \t\t: "<<&p<<endl;
return 0;
}
using namespace std;
int main(){
//deklarasi variabel x dengan tipe data int
int x;
//deklarasi pointer p dengan tipe data int
int *p;
x = 20;
p = &x;
cout<<"\t\t===== Program Contoh Pointer =====\n\n";
cout<<"Nilai X \t\t: "<<x<<endl;
cout<<"Alamat X (&X) \t\t: "<<&x<<endl<<endl;
cout<<"Nilai yang ditunjuk *P\t: "<<*p<<endl;
cout<<"Alamat yang ditunjuk *P\t: "<<p<<endl;
cout<<"Alamat *P (&P) \t\t: "<<&p<<endl;
// mengisi nilai 30 kedalam *p / alaman yang ditunjuk pointer p
// untuk megisikan nilai melalui alamat pointer gunakan *
// karena alamat memori yang ditunjuk pointer p merupakan alamat memori variabel x
// maka nilai dari variabel x juga ikut berubah
*p = 30;
cout<<"\n\n\nNilai X \t\t: "<<x<<endl;
cout<<"Alamat X (&X) \t\t: "<<&x<<endl<<endl;
cout<<"Nilai yang ditunjuk *P\t: "<<*p<<endl;
cout<<"Alamat yang ditunjuk *P\t: "<<p<<endl;
cout<<"Alamat *P (&P) \t\t: "<<&p<<endl;
return 0;
}
Dari program (code) Contoh Pointer dalam C++ diatas, kami
mencoba membuat ilustrasinya pada gambar dibawah ini sehingga sobat dapat lebih
memahami code yang kami buat, perlu diketahui alamat memori dari sebuah
variabel / pointer pada setiap komputer kemungkinan besar berbeda.
Ilustrasi Pointer pada C++, Pada Contoh Program Pointer
pada C++
|
Pada program diatas awalnya kita membuat variabel dengan
tipe data int dengan nama "x", kemudian sebuah pointer dengan tipe
data int dengan nama "p". setelah itu memberikan nilai x dengan nilai
"20" kemudian mengarahkan / mengisi / menunjukkan pointer p ke alamat
memori variabel x. setelah itu menampilkan data dari variabel x dan pointer p,
Kemudian code *p = 30; memiliki arti bahwa kita akan mengisi nilai 30 kedalam pointer p / alaman yang ditunjuk pointer p, karena alamat memori yang ditunjuk ponter p merupakan alamat memori variabel x maka nilai dari variabel x juga ikut berubah, Untuk membuktikan nilai variabel x juga ikut berubah (menjadi 30) maka pada code dibawah nya kita akan menampilkan data dari variabel x dan pointer p. Bagaimana sudah paham kan ?
Pointer adalah variable yang berisi alamat memory sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variable yang mempunyai nilai tertentu.Dengan demikian, ada variabel yang secara langsung menunjuk ke suatu nilai tertentu, dan variabel yang secara tidak langsung menunjuk ke nilai.
Kemudian code *p = 30; memiliki arti bahwa kita akan mengisi nilai 30 kedalam pointer p / alaman yang ditunjuk pointer p, karena alamat memori yang ditunjuk ponter p merupakan alamat memori variabel x maka nilai dari variabel x juga ikut berubah, Untuk membuktikan nilai variabel x juga ikut berubah (menjadi 30) maka pada code dibawah nya kita akan menampilkan data dari variabel x dan pointer p. Bagaimana sudah paham kan ?
Pointer adalah variable yang berisi alamat memory sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variable yang mempunyai nilai tertentu.Dengan demikian, ada variabel yang secara langsung menunjuk ke suatu nilai tertentu, dan variabel yang secara tidak langsung menunjuk ke nilai.
Adapun bentuk umum dari pernyataan variabel pointer dalam
C++ adalah :
Type *variabel-name
Dengan :
Type adalah tipe dasar pointer
Variabel name adalah nama variabel pointer
* adalah variabel pada alamatnya yang ditentukan oleh
operand.
Contoh :
Int
*int_pointer; // pointer to
integer
Float
*float_pointer; // pointer to float
Contoh :
//Program :
pointer.cpp
#include <stdio.h>
main()
{
int a, *b;
a=20;
b=&a;
printf (" Pointer b menunjukkan alamat =%p\n",b);
printf (" Alamat tersebut berisi nilai :%d\n",*b);
}
//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';
}
Bila program diatas dijalankan, maka hasilnya adalah sebagai
berikut :
Nilai
v = 7 dan *p = 7
Alamatnya = efffb24
//Program:pointer2.cpp
#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;
}
Bila program diatas dijalankan, maka hasilnya adalah sebagai
berikut :
“value1==” 10 << “/ value2==20
OPERATOR POINTER
Ada beberapa operator yang bisa digunakan dalam pointer.
Operator tersebut adalah operator alamat (yang dilambangkan dengan simbol &)
dan operator unary yang mengembalikan alamat dari operandnya.
Sebagai contoh, diasumsikan deklarasi sebagai berikut :
Int y
= 5;
Int
*yPtr;
Maka pernyataan :
YPtr
= &y;
Pernyataan ini mengandung arti bahwa alamat dari variabel y
ditujukan kepada variabel pointer yPtr.
Contoh lain :
Int
balance, value;
Int
*balptr;
Balance = 3200; // step 1
Step
1
|
Step
2
|
Step
3
|
||||||
12
|
Balptr
|
12
|
100
|
Balptr
|
12
|
100
|
Balptr
|
|
100
|
3200
|
Balance
|
100
|
3200
|
Balance
|
100
|
3200
|
Balance
|
130
|
value
|
130
|
value
|
130
|
3200
|
value
|
||
Balptr=&balance; // step 2
Value=*balptr; // step 3
Contoh diagram :
Contoh :
//Program:pointer3.cpp
#include <iostream.h>
int main()
{
int *ptr, num;
//
Step 1
ptr = #
// Step 2
*ptr = 100;
// Step 3
cout << num << " ";
(*ptr)++;
// Step 4
cout << num << " ";
(*ptr)*=2;
// Step 5
cout << num << "\n";
return 0;
}
Bila program dijalankan :
100 101 202
Contoh diagram :
Step 1
|
Step 2
|
Step 3
|
Step 4
|
Step 5
|
||||||||||
12
|
*int
|
Ptr
|
12
|
50
|
Ptr
|
12
|
50
|
Ptr
|
12
|
50
|
Ptr
|
12
|
50
|
Ptr
|
50
|
int
|
num
|
50
|
int
|
num
|
50
|
100
|
num
|
50
|
101
|
num
|
50
|
202
|
num
|
...
|
...
|
...
|
...
|
...
|
||||||||||
EKSPRESI POINTER
Pointer Aritmatika
Hanya 4 operator aritmatik dapat digunakan pada pointer ++,
= =, +, dan -. Asumsi integer 32 bit.
Contoh :
Int
*p1;
p1++;
p1--;
Contoh :
//Program:pointer4.cpp
#include <iostream.h>
int main()
{
int i[10], *i_ptr;
double f[10], *f_ptr;
int x;
i_ptr = i; // i_ptr points to first element of i
f_ptr = f; // f_ptr points to first element of f
for(x=0; x<10; x++)
cout << i_ptr+x << " " <<
f_ptr+x << "\n";
return 0;
}
Bila program dijalankan :
0xeffffd9c 0xeffffd48
0xeffffda0 0xeffffd50
0xeffffda4 0xeffffd58
0xeffffda8 0xeffffd60
Pointer Perbandingan
Pointer dapat dibandingkan dengan menggunakan operator
hubungan, seperti !=, ==, <, dan >.
Contoh :
//Program:pointer5.cpp
#include <iostream.h>
int main()
{
int num[10];
int *start, *end;
start = num;
end = &num[9];
while(start != end) {
cout << "Masukkan bilangan sebanyak 9 data :
";
cin >> *start;
start++;
}
return 0;
}
Data yang akan dimasukkan sebanyak 9 buah data dan program
tidak akan berhenti apabila belum sampai 9 buah data.
POINTER VERSUS ARRAY
Array dan pointer adalah dua struktur data yang saling
berkaitan satu dengan yang lain dalam C, dan dapat saling dipertukarkan
penggunaannya. Karena array dapat didefinisikan sebagai pointer.
Contoh :
int
*bPtr, b[5];
Dapat dibuat menjadi :
bPtr
= b;
bPtr
= &b[0];
Berarti bPtr ditugaskan untuk menunjukkan ke alamat elemen
pertama dari array b atau b[0].
Elemen array b[3] dapat ditulis :
*
(bPtr + 3)
Alamat &b[3] dapat ditulis :
bPtr
+3
Deklarasi suatu variabel array x[] yang berisi nilai int
dapat ditulis :
int
*x;
Variabel array ganda dapat ditulis :
int y
[ ] [ ];
int
*y [ ];
int
*( *y);
Penggunaan pointer dan array untuk deklarasi variabel array
ganda untuk menyimpan empat buah elemen yang masing-masing bertipe string
(array dari karakter).
char
*suit [4] = { “Hearts”, “Diamonds”, “Clubs”, “Spades” };
Contoh :
//Program:pointer6.cpp
#include <iostream.h>
#include <stdio.h>
int main()
{
char str[80];
char token[80];
char *str_ptr, *tk_ptr;
cout << "Masukkan sebuah kalimat : ";
gets(str);
str_ptr = str;
while(*str_ptr) {
tk_ptr = token;
while( *str_ptr != ' ' && *str_ptr ) {
*tk_ptr = *str_ptr;
tk_ptr++;
str_ptr++;
}
if(*str_ptr) str_ptr++;
*tk_ptr = '\0';
cout << token << endl;
}
return 0; }
//Program:pointer7.cpp
#include <iostream.h>
#include <stdio.h>
int main()
{
char str[80];
char token[80];
int i, j;
cout << "Masukkan sebuah kalimat: ";
gets(str);
for(i=0; ; i++) {
for(j=0; str[i] != ' ' && str[i]; j++, i++)
token[j] = str[i];
token[j] = '\0';
cout << token << '\n';
if(!str[i]) break;
}
return 0;
}
Pada contoh program pointer 6 adalah program dengan pointer,
sedangkan contoh program pointer 7 dengan menggunakan array. Hasil dari kedua
program tersebut sama.
POINTER INDEX
Pointer tidak hanya dapat digunakan untuk mengakses elemen
array, tetapi pointer juga dapat diindex seperti pada array.
Contoh :
//Program:pointer8.cpp
#include <iostream.h>
#include <ctype.h>
int main()
{
char str[20] = "hello tom";
char *p;
int i;
p = str;
for(i=0; p[i]; i++)
p[i] = toupper(p[i]);
cout << p;
return 0;
}
Bila program diatas dijalankan, maka hasilnya adalah sebagai
berikut :
HELLO TOM
Proses pengindexan pointer dapat dilihat pada variabel p
yang menunjuk pada variabel str yang berisi data nama dengan panjang 20. Fungsi
toupper memperjelas proses pengindexan.
KONSTANTA STRING DAN POINTER
Konstanta string terlihat dalam program teks dan disimpan
dalam tabel string serta setiap entry dalam tabel string, pointer string
dibangkitkan.
Contoh :
//Program:pointer9.cpp
#include <iostream.h>
int main()
{
char *s;
s = "Pointers are fun to use.\n";
cout << s;
return 0;
}
Bila program diatas dijalankan, maka hasilnya adalah sebagai
berikut :
Pointers are fun to use.
ARRAY POINTER
Pointer dapat diarraykan seperti tipe data yang lain dalam
C++. Untuk menyatakan sebuah array pi dari pointer sebanyak 10 buah data yang
bertipe 10 integer, dapat ditulis :
int
*pi [10];Untuk menentukan alamat dari variabel integer disebut var ke elemen
ketiga dari pointer array, dapat ditulis :
int
var;
pi
[2] = &var
Contoh :
//Program:point10.cpp
#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;
}
Bila program diatas dijalankan, maka hasilnya adalah sebagai
berikut :
10,
20, 30, 40, 50,






Komentar
Posting Komentar