0% menganggap dokumen ini bermanfaat (0 suara)
41 tayangan

Modul Algoritma Dan Pemrograman

Modul ini membahas tentang pointer, yaitu variabel yang menyimpan alamat memori variabel lain. Pointer memungkinkan akses dan manipulasi variabel secara dinamis. Operator yang digunakan pada pointer antara lain operator & untuk mengambil alamat dan * untuk mengakses nilai. Pointer banyak digunakan pada array, string, dan manajemen memori secara dinamis.

Diunggah oleh

Jess
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
41 tayangan

Modul Algoritma Dan Pemrograman

Modul ini membahas tentang pointer, yaitu variabel yang menyimpan alamat memori variabel lain. Pointer memungkinkan akses dan manipulasi variabel secara dinamis. Operator yang digunakan pada pointer antara lain operator & untuk mengambil alamat dan * untuk mengakses nilai. Pointer banyak digunakan pada array, string, dan manajemen memori secara dinamis.

Diunggah oleh

Jess
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

Modul 5 Pointer

MODUL 5

POINTER

A. Tujuan
1. Mahasiswa dapat memahami definisi dan kegunaan pointer.
2. Mahasiswa dapat mengetahui bagaimana mengimplementasikan pointer dalam
program.

B. Dasar Teori
1. Pengertian Pointer

Pointer adalah suatu variabel yang berisi alamat memory sebagai nilainya
dan berbeda dengan variabel biasa yang berisi nilai tertentu. Dengan kata lain,
pointer berisi alamat dari variabel yang mempunyai nilai tertentu.

2. Perbedaan Variabel biasa dan Pointer.

Variabel Biasa Pointer

Berisi data/nilai Berisi alamat memory dari suatu


variabelltertentu.

Operasi yang bisa dilakukan seperti Membutuhkan operator khusus: “&”


yang menunjuk alamat dari suatu
layaknya operasi biasa: +, -, *, /
variabel tertentu.

Operator “&” hanya dapat dilakukan


kepada variabel dan akan
mengahasilkan alamat dari variabel
itu.

Contoh: p = &n

Yang kedua : Operator “*”.


Operator ini bersifat menggunakan
nilai dari alamat variabelyang
ditunjuk oleh pointer tersebut.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 1


Modul 5 Pointer

Contoh: int *p;

Bersifat statis Bersifat dinamis

Deklarasi :int a; Deklarasi :int *a

3. Bentuk umum pointer dalam bahasa C++

Dalam bahasa C / C++ terdapat format dalam deklarasi variabel. Format


deklarasi variabel dalam bahasa C / C++ adalah sebagai berikut:

tipe_data nama_variabel ;

Seperti hal-nya variabel lain, variabel pointer juga harus dideklarasikan


terlebih dahulu sebelum digunakan. Bentuk umum deklarasi pointer adalah :

tipe_data *nama_pointer;

Setiap variabel yang dideklarasikan disimpan di dalam slot - slotmemory


yang memiliki nomor sendiri – sendiri. Dengan pointer kita dapat mengetahui
nomor – nomor memory ini dan sekaligus memanipulasi isi dari variabel yang
“ditunjuk” oleh pointer ini.
Agar suatu variabel pointer dapat menunjuk ke variabel lain, variabel
pointer ini harus diisi dengan alamat dari variabel yang hendak ditunjuk. Sintaks
proses penunjukan pointer ke variabel lain adalah:

tipe_data1 nama_variabel_biasa;
tipe_data2 *nama_variabel_pointer;
nama_variabel_pointer=&nama_variabel_biasa;

Pernyataan pertama merupakan deklarasi variabel biasa (yang hendak ditunjuk


oleh pointer) bernama nama_variabel_biasa dengan tipe data
tipe_data1. Pernyataan kedua merupakan deklarasi variabel pointer bernama
nama_variabel_pointer dengan tipe data tipe_data2. Sedangkan
pernyataan ketiga adalah pengisian variabel pointer nama_variabel_pointer
dengan alamat variabel nama_variabel_biasa (yang hendak ditunjuknya).
Untuk deklarasi array sekalian pengalokasian memorinya untuk matriks disini ada
script untuk deklarasinya,,
double **a;//pointernya
a=new double *[xsize];

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 2


Modul 5 Pointer

for(int i=0;i<xsize;i++)
{
a[i]=new double [ysize];
}

Untuk memesan sejumlah blok memori RAM :

a = (int *) malloc(brsA * klmA * 4);

Dimana script diatas berguna untuk memesan jumlah blok pada Random
Access Memory (RAM) sebanyak jumlah elemen matriks A (baris A x kolom A)
dikali dengan 4 byte (ukuran sebuah data integer). Angka 4 juga dapat diganti
dengan “ sizeof(int)”, sehingga pernyataan tersebut menjadi:
a = (int *) malloc(brsA * klmA * sizeof(int));

4. Operator yang digunakan pada pointer

Pada pointer terdapat beberapa operator yang dapat digunakan yakni :

 Operator Derefrence yang dilambangkan dengan symbol“&” adalah


merupakan operator unary yang mengembalikan alamat dari operand-nya. Di
mana operator ini menunjukan alamat dari suatu variabel.
x = 7;
y = &x; // operator alamat
y = 0x6a2F242c // alamat variable x

 Operator Reference yang dilambangkan dengan “*“adalah operator yang


menunjukan isi / nilai dari variabel yang ditunjuk pointer.
x = 7;
y = &x;
*y = 7 // *y = isi dari alamat x

5. Pemanfaatan pointer
Kegunaan pointer yang utama adalah untuk menyimpan alamat memori dari
sebuah variabel (data type atau object dari class).Selain menyimpan alamat dari
variabel, pointer juga dapat digunakan untuk menyimpan alamat dari sebuah
fungsi (functionpointer).
a. Operasi pointer untuk array

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 3


Modul 5 Pointer

Pemanfaatan pointer dalam array dapat digunakan untuk menciptakan array


yang dinamis, untuk menunjukkan alamat elemen-elemen pada array, serta
sebagai input-an untuk array tersebut.

 Memberi nilai array dengan pointer


#include <iostream.h>
#include <conio.h>

void main()
{
int x[5], *p, k;

p = x;
x[0] = 5;
x[1] = x[0];
x[2] = *p + 2;
x[3] = *(p+1) - 3;
x[4] = *(x + 2);
for(k=0; k<5; k++){
cout<<"x["<<k<<"] = "<< x[k]<<"\n";}
getch();
}

 Pointer menunjuk suatu array


#include <iostream.h>
#include <conio.h>

void main()
{
static int tgl_lahir[] = { 13,9,1982 };
int *ptgl;
ptgl = tgl_lahir; /* ptgl berisi alamat array
*/
cout<<"Diakses dengan pointer\n";
cout<<"Tanggal = "<< *ptgl<<"\n";

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 4


Modul 5 Pointer

cout<<"Bulan = "<< *(ptgl + 1) <<"\n";


cout<<"Tahun = "<<*(ptgl + 2) <<"\n";
cout<<"\nDiakses dengan array biasa\n";
cout<<"Tanggal = "<< tgl_lahir[0] <<"\n";
cout<<"Bulan = "<< tgl_lahir[1] <<"\n";
cout<<"Tahun = "<< tgl_lahir[2] <<"\n";
getch();
}

b. Pointer 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. Contohnya;

#include <iostream.h>
#include <conio.h>

void main()
{
int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
cout<<"Nilai "<<*(penunjuk)<<" ada di alamat
memori " <<(penunjuk)<<"\n";
cout<<"Nilai "<<*(penunjuk+1)<<" ada di alamat
memori " <<(penunjuk+1)<<"\n";
cout<<"Nilai "<<*(penunjuk+2)<<" ada di alamat
memori " <<(penunjuk+2)<<"\n";
getch();
}

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 5


Modul 5 Pointer

c. Pointer dan String


String merupakan bentuk khusus dari array. Oleh karena itu operasi
pointer-array tidak jauh berbeda dengan operasi pointer-string.

#include <iostream>
#include <conio>
void main()
{
char nama[5] = "Andi";
cout<<"Nama awal : "<<nama<<endl;
char *ptr;
ptr = nama;
*(ptr+3) = 'y';
cout<<"Nama menjadi : "<<nama<<endl;
getch();
}

Jadi, string adalah array (susunan) dari karakter-karakter. String dapat


diakses dan dimanipulasi lewat pointer. Alamat awal dari string dapat
diperoleh dari namanya.

d. Penghapusan pointer
Operator delete yaitu operator untuk membuat anda dapat
mengembalikan atau membebaskan memori tersebut. Ini adalah langkah yang
sangat penting menuju manajemen memori yang efektif. Memori yang
dibebaskan dapat digunakan kembali.
e. Pointervoid
Untuk membuat pointer yang bertipe data bebas yakni dengan meletakkan
kata kunci pada void pada bagian penentu tipe pointer, contoh:

void *ptr; //merupakan pernyataan untuk mendefinisikan


ptr sebagai sebagai variabel pointer
void

Suatu pointervoid adalah pointer yang dapat menunjuk ke sembarang tipe data.

Contoh:

#include <iostream.h>

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 6


Modul 5 Pointer

#include <conio.h>

void main()
{
clrscr();
void *ptr; // Pointer tak bertipeint
int vint = 45;
float vfl = 17.5;
ptr = &vint; // menunjuk ke int
cout << "Nilai yang ditunjuk oleh ptr = "<< *(int
*)ptr << endl;
ptr = &vfl; // menunjuk ke float
cout << "Nilai yang ditunjuk oleh ptr = "<< *(float
*) ptr << endl;
getch();
}

6. Keunggulan dan kelemahan pointer sebagai berikut :

- Keunggulan Pointer

1. Dapat menyimpan banyak alamat tanpa menghabiskan banyak memori.


2. Lebih efisien dalam proses penyisipan (insertion) dan penghapusan.
3. Pengalokasian penyimpan secara dinamis, dimana penyimpan dialokasikan
pada saat waktu berjalan.

- Kelemahan Pointer

1. Pendeklarasiannya tergolong rumit.


2. Panjang pembuatan listing programnya.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 7


Modul 5 Pointer

C. Permasalahan
Membuat Operasi Matematika Matriks ordo 2 x 2 menggunakan pointer.

dengan catatan:

1. Dilarang menggunakan library math.h dan fungsi lainnya yang berisi fungsi
matematika, yang berisi fungsi pow(), sqrt() dll.

D. Hasil
D.1 Flowchart

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 8


Modul 5 Pointer

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 9


Modul 5 Pointer

D.2 Script Program

#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;

void input(float *p){


for(int i=0; i<4; i++)
{
cout<<" Masukkan nilai ke - "<<(i+1)<<" = ";
cin>>*(p+i);
}
}
void output(float *p){
cout<<"\t+- -+\n";
cout<<"\t| "<<setiosflags(ios::left)<<setw(2)<<*(p+0);
cout<<setiosflags(ios::right)<<setw(5)<<*(p+1)<<" |\n";
cout<<"\t| |\n";
cout<<"\t| "<<setiosflags(ios::left)<<setw(2)<<*(p+2);
cout<<setiosflags(ios::right)<<setw(5)<<*(p+3)<<" |\n";
cout<<"\t+- -+\n";
cout<<"\n =================================\n\n";
}
void tambah(float *x, float *y, float *z){
for(int i=0; i<4; i++)
*(z+i) = *(x+i) + *(y+i);
}
void kurang(float *x, float *y, float *z){
for(int i=0; i<4; i++)
*(z+i) = *(x+i) - *(y+i);
}
void kali(float *x, float *y, float *z){
*(z+0) = (*(x+0)**(y+0)) + (*(x+1)**(y+2));
*(z+1) = (*(x+0)**(y+1)) + (*(x+1)**(y+3));

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 10


Modul 5 Pointer

*(z+2) = (*(x+2)**(y+0)) + (*(x+3)**(y+2));


*(z+3) = (*(x+2)**(y+1)) + (*(x+3)**(y+3));
}
main(){
char kembali;
int pilih;
float MA[4];
float MB[4];
float MC[4];
float *a = MA;
float *b = MB;
float *c = MC;
do
{
system("cls");
cout<<"\n\t Operasi Matematika Matrik Ordo 2 x
2\n\n";
cout<<" Pilih Operasi\n\n";
cout<<" [1] Penjumlahan\n [2] Pengurangan\n [3]
Perkalian\n\n";
cout<<" Pilihan : ";cin>>pilih;
switch(pilih)
{
case 1:
system("cls");
cout<<"\n Penjumlahan Matrik A + Matrik B\n\n";
cout<<" Matriks A:\n";
input(a);
cout<<"\n\tMatriks A:\n";
output(a);
cout<<" Matriks B:\n";
input(b);
cout<<"\n\tMatriks B:\n";
output(b);
tambah(a,b,c);
cout<<"\t Hasil Penjumlahan\n\n";

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 11


Modul 5 Pointer

output(c);
getch();
break;
case 2:
system("cls");
cout<<"\n Pengurangan Matrik A - Matrik B\n\n";
cout<<" Matriks A:\n";
input(a);
cout<<"\n\tMatriks A:\n";
output(a);
cout<<" Matriks B:\n";
input(b);
cout<<"\n\tMatriks B:\n";
output(b);
kurang(a,b,c);
cout<<"\t Hasil Pengurangan\n\n";
output(c);
getch();
break;
case 3:
system("cls");
cout<<"\n Perkalian Matrik A x Matrik B\n\n";
cout<<" Matriks A:\n";
input(a);
cout<<"\n\tMatriks A\n";
output(a);
cout<<" Matriks B:\n";
input(b);
cout<<"\n\tMatriks B\n";
output(b);
kali(a,b,c);
cout<<"\t Hasil Perkalian\n\n";
output(c);
getch();
break;

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 12


Modul 5 Pointer

}
cout<<" Apakah Anda ingin kembali [Y/N] ";
cin>>kembali;
}while(kembali=='Y' || kembali=='y');
}

D.3 Output Program


1. Awal program dijalankan:

2. Penjumlahan Matriks (pilihan 1):

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 13


Modul 5 Pointer

E. Analisa Program
#include <iostream.h>

Script di atas merupakan sebuah file header atau preprocessor directive yang
berfungsi untuk mengaktifkan penggunaan suatu perintah yang hendak digunakan
daam sebuah program. iostream.h berfungsi untuk memanggil perintah cin dan
cout pada program sebagai input dan output. Tanpa kehadiran file header ini akan
terjadi kesalahan setelah program di compile.

#include <conio.h>

conio.h digunakan untuk mengaktifkan fungsi getch() digunakan untuk


mengambil input-an dari keyboard dan langsung mengeksekusinya tanpa menekan
tombol enter terlebih dahulu.

#include <iomanip.h>

iomanip.h merupakan file header yang berfungsi untuk memanggil perintah


pada program untuk mengatur lebar dari tampilan suatu data. Adapun perintah yang
digunakan antara lain setiosflags dan setw.

void input(float *p)


{
for(int i=0; i<4; i++)
{
cout<<" Masukkan nilai ke - "<<(i+1)<<" = ";
cin>>*(p+i);
}
}

Program yang dibuat menggunakan masukan bernilai dinamis, maka perlu


dibuatkan nilai masukan pointer dengan melakukan perulangan untuk bagian baris
yang ditandai dengan tanda bintang ( * ). Script di atas merupakan fungsi bernama
input untuk memasukkan nilai ke dalam matriks. Fungsi ini memiliki satu argument
yaitu pointer p bertipe float. Dengan menggunakan perulangan for, fungsi ini akan
membaca masukkan dari keyboard dan memasukkannya ke dalam alamat memori
yang ditunjuk oleh pointer p+i yang di mana i akan memindahkan blok memori
sebanyak i. Matriks yang ingin dibuat adalah matriks 2 x 2, maka nilai i berkisar

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 14


Modul 5 Pointer

dari i=0 sampai i<4 yang berarti ada 4 kolom array yang digunakan untuk memuat
setiap nilai dari matriks.

void output(float *p)


{
cout<<"\t+- -+\n";
cout<<"\t| "<<setiosflags(ios::left)<<setw(2)<<*(p+0);
cout<<setiosflags(ios::right)<<setw(5)<<*(p+1)<<" |\n";
cout<<"\t| |\n";
cout<<"\t| "<<setiosflags(ios::left)<<setw(2)<<*(p+2);
cout<<setiosflags(ios::right)<<setw(5)<<*(p+3)<<" |\n";
cout<<"\t+- -+\n";
cout<<"\n =================================\n\n";
}

Nilai matriks yang sudah di-input-kan, dapat ditampilkan dengan fungsi output
dengan menggunakan fungsi perulangan untuk menampilkan data yang telah
dimasukkan sebelumnya. Script di atas merupakan fungsi bernama output untuk
mengeluarkan nilai dari matriks. Fungsi ini memiliki satu parameter yaitu pointer p
bertipe float. Dengan menggunakan perintah cout fungsi akan menampilkan isi
dari pointer p secara berurutan dari blok memori yang ditunjuk oleh *(p+0) sampai
blok memori *(p+3). Terdapat perintah untuk mengatur lebar suatu data yang
ditunjukkan oleh perintah “setiosflags(ios::left)<<setw(2)”dimana
lebar data akan dibaca dari kiri dengan lebar 2 spasi.

void tambah(float *x, float *y, float *z)


{
for(int i=0; i<4; i++)
*(z+i) = *(x+i) + *(y+i);
}

Fungsi penjumlahan ini menggunakan dua buah matriks yang berbeda dimana
matriks yang digunakan yaitu matriks A dan matriks B. Fungsi penjumlahan ini
menggunakan prinsip array ditambah dengan fungsi penjumlahan pada umumnya.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 15


Modul 5 Pointer

Script di atas adalah fungsi bernama tambah untuk melakukan operasi penjumlahan.
Fungsi ini memiliki tiga argument yaitu pointer x, pointer y, dan pointer z, yang
ketiga-tiganya bertipe float. Pointer x dan y merupakan pointer yang akan
dilakukan operasi penjumlahan, dan pointer z adalah pointer tempat menyimpan nilai
hasil dari operasi penjumlahan pointer x dengan y. Nilai dari setiap z+i dimasukkan
dengan hasil penjumlahan dari nilai “*(x+i)” dengan “*(y+i)”.

void kurang(float *x, float *y, float *z)


{
for(int i=0; i<4; i++)
*(z+i) = *(x+i) - *(y+i);
}

Fungsi pengurangan ini menggunakan dua buah matriks yang berbeda dimana
matriks yang digunakan yaitu matriks A dan matriks B. Fungsi pengurangan ini
menggunakan prinsip array dengan fungsi pengurangan pada umumnya. Script di atas
adalah fungsi bernama kurang untuk melakukan operasi pengurangan. Fungsi ini
memiliki tiga argument yaitu pointer x, pointer y, dan pointer z, yang ketiga-tiganya
bertipe float. Pointer x dan y merupakan pointer yang akan dilakukan operasi
pengurangan, dan pointer z adalah pointer tempat menyimpan nilai hasil dari operasi
pengurangan pointer x dengan y. Nilai dari setiap z+i dimasukkan dengan hasil
pengurangan dari nilai “*(x+i)” dengan “*(y+i)”.

void kali(float *x, float *y, float *z)


{
*(z+0) = (*(x+0)**(y+0)) + (*(x+1)**(y+2));
*(z+1) = (*(x+0)**(y+1)) + (*(x+1)**(y+3));
*(z+2) = (*(x+2)**(y+0)) + (*(x+3)**(y+2));
*(z+3) = (*(x+2)**(y+1)) + (*(x+3)**(y+3));
}

Fungsi perkalian ini menggunakan dua buah matriks yang berbeda dimana matriks
yang digunakan yaitu matriks A dan matriks B. Fungsi perkalian ini menggunakan
prinsip array ditambah dengan fungsi perkalian pada umumnya. Script di atas
merupakan fungsi bernama kali untuk melakukan operasi perkalian. Fungsi ini
memiliki tiga argument yaitu pointer x, pointer y, dan pointer z, yang ketiga-tiganya

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 16


Modul 5 Pointer

bertipe float. Pointer x dan y merupakan pointer yang akan dilakukan operasi
perkalian, dan pointer z adalah pointer tempat menyimpan nilai hasil dari operasi
perkalian pointer x dengan y kemudian nilai dari setiap z+0 sampai z+3 dimasukkan
dengan hasil dari rumus perkalian matriks.

main()
{
char kembali;
int pilih;
float MA[4];
float MB[4];
float MC[4];
float *a = MA;
float *b = MB;
float *c = MC;
do
{
system("cls");
cout<<"\n\t Operasi Matematika Matrik Ordo 2 x
2\n\n";
cout<<" Pilih Operasi\n\n";
cout<<" [1] Penjumlahan\n [2] Pengurangan\n [3]
Perkalian\n\n";
cout<<" Pilihan : ";cin>>pilih;
switch(pilih)
{

Fungsi ini merupakan fungsi utama yang digunakan untuk menampilkan hasil dari
setiap operasi yang telah dilakukan. Terdapat variabel array untuk matrik A, B, dan C
bertipe data float dimana nilanya akan sama dengan nilai pointer a, b, dan c.
program menggunakan statement looping do-while yang berfungsi untuk menampilkan
perintah terlebih dahulu kemudian melakukan pengkondisian. Program juga
menggunakan statement control switch case yang berfungsi untuk mengarahkan suatu
program berdasarkan nilai yang diberikan untuk variabel pilih. Pada setiap case berisi
statement dan pemanggilan fungsi yang sesuai dengan operasi yang dipilih pada menu.
Tanda “{“ digunakan sebagai tanda awal untuk perintah switch case.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 17


Modul 5 Pointer

case 1:
system("cls");
cout<<"\n Penjumlahan Matrik A + Matrik B\n\n";
cout<<" Matriks A:\n";
input(a);
cout<<"\n\tMatriks A:\n";
output(a);
cout<<" Matriks B:\n";
input(b);
cout<<"\n\tMatriks B:\n";
output(b);
tambah(a,b,c);
cout<<"\t Hasil Penjumlahan\n\n";
output(c);
getch();
break;

Pada case 1 yang berarti kondisi jika variabel pilih bernilai 1. Fungsi ini
menggunakan argument karena fungsi ini akan memanggil fungsi-fungsi lain yang
sudah dideklarasikan sebelumnya sehingga fungsi ini memerlukan variabel untuk
dilewatkan (argument). Terdapat perintah system("cls")yang digunakan untuk
membersihkan layar. Kondisi ini akan memanggil fungsi input() yang akan
melakukan proses memasukkan data, output() yang akan melakukan proses
menampilkan data, dan tambah() untuk melakukan penjumlahan matriks. Script
getch() digunakan untuk mengambil input-an dari keyboard dan langsung
mengeksekusinya tanpa menekan tombol enter terlebih dahulu. Script break;
digunakan untuk mengakhiri perintah pada case 1.

case 2:
system("cls");
cout<<"\n Pengurangan Matrik A - Matrik B\n\n";
cout<<" Matriks A:\n";
input(a);
cout<<"\n\tMatriks A:\n";

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 18


Modul 5 Pointer

output(a);
cout<<" Matriks B:\n";
input(b);
cout<<"\n\tMatriks B:\n";
output(b);
kurang(a,b,c);
cout<<"\t Hasil Pengurangan\n\n";
output(c);
getch();
break;

Pada case 2 yang berarti kondisi jika variabel pilih bernilai 2. Terdapat perintah
system("cls") yang digunakan untuk membersihkan layar. Kondisi ini akan
memanggil fungsi input() yang akan melakukan proses memasukkan data,
output() yang akan melakukan proses menampilkan data, dan kurang() untuk
melakukan pengurangan matriks. Script break; digunakan untuk mengakhiri
perintah pada case 2.

case 3:
system("cls");
cout<<"\n Perkalian Matrik A x Matrik B\n\n";
cout<<" Matriks A:\n";
input(a);
cout<<"\n\tMatriks A\n";
output(a);
cout<<" Matriks B:\n";
input(b);
cout<<"\n\tMatriks B\n";
output(b);
kali(a,b,c);
cout<<"\t Hasil Perkalian\n\n";
output(c);
getch();
break;

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 19


Modul 5 Pointer

Pada case 3 yang berarti kondisi jika variabel pilih bernilai 3. Terdapat perintah
system("cls") yang digunakan untuk membersihkan layar. Kondisi ini akan
memanggil fungsi input() yang akan melakukan proses memasukkan data,
output() yang akan melakukan proses menampilkan data, dan kali() untuk
melakukan perkalian matriks. Script break; digunakan untuk mengakhiri perintah
pada case 3. Tanda “}” merupakan tanda akhir perintah switch case.

cout<<" Apakah Anda ingin kembali [Y/N] ?";cin>>kembali;


}while(kembali=='Y' || kembali=='y');
}

Script di atas akan meminta untuk mengisikan nilai pada variabel kembali dimana
nilainya akan digunakan sebagai pengkondisian pada perintah do while. Jika
variabel kembali bernilai “Y” atau “y” maka akan dilakukan perulangan program
dimulai dari perintah setelah statement do.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 20


Modul 5 Pointer

F. Kesimpulan
1. Pointer merupakan penunjuk suatu variabel. Untuk menunjuk suatu variabel, maka
pointer pasti memiliki alamat dari variabel yang ditunjuknya. Mekanisme pointer,
dimana dalam suatu fungsi dapat diakses oleh fungsi lain lebih sedikit memakai
memori dibandingkan dengan mekanisme copy dan paste nilai variabel satu ke
dalam variabel lain.Oleh karena itu, Pointer sangat berguna ketika dalam membuat
program yang besar, karena dapat menghemat memori yang digunakan program
2. Dalam mendeklarasikan suatu pointer, kita perlu menggunakan operator khusus
pointer. Terdapat dua operator yang digunakan pada pointer yaitu : operator
deference yang dilambangkan dengan symbol “&” yang berguna untuk
menunjukkan alamat dari suatu variabeldan operator reference yangdilambangkan
dengan symbol “*” yang berguna untuk menunjukkan nilai dari suatu variabel.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 21


Modul 5 Pointer

DAFTAR PUSTAKA
Anonim. 2022. “Modul Praktikum Algoritma dam Pemograman”. Laboratorium
Jaringan dan Komputer. Fakultas Teknik. Universitas Mataram.

Al Faata, Hanif. 2006. Dasar pemerograman C++. Yoyakarta : CV Andi offset.

Halterman, Richard L. 2013. Fundamentals of C++ Programming. School of


Computing Southern Adventist University

Suryantoro Sigit. 2010. Mudah menjadi programmer C++ .Jakarta : YESCOM.

Yuana, Rosihan Ari. 2005. Pemrograman C++ . Solo: Unversitas Negeri Solo.

Praktikum Algoritma dan Pemograman (2022) Modul 5 - 22

Anda mungkin juga menyukai