Ringkasan Algoritma Matematika & Pointer Bab17 dan Bab 18
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-10 Beginilah 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.
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.[]
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 :
cout<<"\n";
}
getch();
}
Hasil Program :
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;
}
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).
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.
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;
}
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.
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.
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.[]
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 :
cout<<"\n";
}
getch();
}
Hasil Program :
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;
}
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).
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.
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;
}
Contoh
Program Pointer pada C++, Lengkap dengan Pembahasan
|
Ilustrasi
Pointer pada C++, Pada Contoh Program Pointer pada C++
|
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.
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.
Algoritma
Segitiga Pascal
1. Mulai
2. Deklarasikan variabel i,j,n dan array p.
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>
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.
OperatorReference(*)
Contoh
Program Pointer pada C++, Lengkap Pembahasan
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.
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,
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
Balptr=&balance; // step 2
Value=*balptr; // step 3
Contoh
diagram :
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
|
||
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,
Comments
Post a Comment