• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM 7 Pointer dalam Bahasa C++

N/A
N/A
nuchaila ainiyah

Academic year: 2023

Membagikan "LAPORAN PRAKTIKUM 7 Pointer dalam Bahasa C++"

Copied!
53
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM 7

Pointer dalam Bahasa C++

Disusun untuk Memenuhi Matakuliah Dasar Pemrograman Komputer Dibimbing oleh Bapak Dr. Wahyu Sakti Gunawan Irianto, M.Kom.

Oleh :

ACHMAD MUZAMMI FAHMI NIM 230533609604

S1 PTI ’23 OFF A

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK

DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA

NOVEMBER 2023

(2)

Pointer dalam Bahasa C++

I. TUJUAN

Setelah mempelajari bab ini diharapkan mahasiswa akan mampu : 1. Mengetahui arti dan fungsi pointer dalam pemrograman 2. Mamahmai penggunaan pointer dalam listing program 3. Mengetahui keunggulan pointer dalam suatu program

4. Membuat program sederhana dengan menerapkan konsep pointer

II. DASAR TEORI 1. Pengertian

Pointer adalah sebuah variabel yang menyimpan alamat memori dari variabel lainnya, kita dimungkinkan untuk mengubah nilai dari variabel yang ditunjuk oleh pointer dan menyalin. Selama program berjalan kita bebas mengubah tujuan dari pointer, mengubah untuk menunjuk ke alamat memori variabel lain atau menunjuk ke alamat memori yang bukan merupakan variabel.

2. Mengisi Variabel dan Mengakses Nilai Variabel Pointer

Suatu variabel pointer dapat menunjuk ke variabel lain. Contohnya adalah:

Hasil dari program di atas adalah :

Dari hasil tersebut membuktikan bahwa suatu variabel pointer dapat menunjuk alamat dari suatu variabel. Selain itu, variabel pointer juga dapat untuk mengakses isi dari suatu variabel. Berikut contohnya:

(3)

Dari kedua contoh tersebut terdapat kesimpulan bahwa operator pointer ada dua, yaitu :

a. Operator Deference (&)

Operator ini biasanya disebut dengan address of atau operator alamat.

Dengan menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat memori.

b. Operator reference (*)

Operator ini biasanya disebut value pointed by. Dengan menggunakan operator ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat memori.

3. Pointer Void

Pointer void adalah pointer yang dapat menunjuk ke sembarang tipe data. Jadi satu pointer dapat menunjuk ke tipe data integer, tipe data float, dan lain sebagainya.

Berikut ini contoh dari pointer void:

(4)

4. Pointer dan Array

Pointer dan array merupakan hal yang hampir sama, karena sama-sama menunjuk pada suatu alamat. Karena hal tersebut pada pointer yang menunjuk ke array tidak menggunakan tambahan operator & di depan nama variabel array

5. Pointer dan String

Pointer juga dapat menunjuk ke sebuah String. Contoh hubungan antara pointer dengan string, adalah:

6. Pointer menunjuk Pointer

Pointer dapat menunjuk ke pointer lain. Hal tersebut ditandai dengan adanya dua tanda asterisk (*) sebelum nama variabel pointer. Berikut contohnya:

(5)

7. Pointer dan Fungsi

Pointer juga dapat digunakan sebagai argumen maupun keluaran bagi fungsi.

Pointer sebagai argumen maka nilai argumen dapat diubah di dalam fungsi. Suatu fungsi dapat dibuat agar keluarannya berupa pointer. Dalam hal tersebut terkadang difungsikan juga array di dalam fungsi tersebut.

8. Keuntungan menggunakan pointer

a. Untuk menciptakan data struktur yang kompleks.

b. Memungkinkan suatu fungsi untuk menghasilkan lebih dari satu nilai.

c. Memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke fungsi yang lain.

d. Penanganan terhadap array dan string akan lebih singkat dan efisien.

e. Memungkinkan untuk berhubungan langsung ke hardware.

f. Memungkinkan untuk berhubungan langsung dengan parameter command line.

g. Kemampuan bekerja dengan memori yang telah dialokasikan secara dinamik.

(6)

Latihan I Pemrograman C++

Nama Program : Pointer Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi variabel pointer *pBil dengan tipe data int, variabel bilX=77

3. pBil menunjuk nilai pada bilX dengan:

Proses pBil=&bilX 4. Output bilX , *pBil

5. *pBil menunjuk *pBil+3 dengan:

Proses *pBil=*pBil+3 6. Output bilX, *pBil 7. Selesai

(7)

Flowchart :

(8)

Source Code :

//header file yang melibatkan cout

#include <iostream.h>

//deklarasi fungsi utama int main()

{

//deklarasi pointer *pBil int *pBil;

//deklarasi variabel bilX=77 int bilX=77;

//pBil menunjuk pada bilX pBil=&bilX;

//output nilai awal

cout <<"isi bilX = "<<bilX<<endl;

cout <<"nilai yang ditunjuk pBil =

"<<*pBil<<endl;

//pointer *pBil menunjuk *pBil + 3 *pBil = *pBil + 3;

//output nilai sekarang

cout <<"isi bilX sekarang = "<<bilX<<endl;

cout <<"nilai yang ditunjuk pBil =

"<<*pBil<<endl;

return 0;

}

Output Program :

(9)

Penjelasan Program :

Program ini adalah contoh sederhana dalam bahasa pemrograman C++ yang menggunakan pointer untuk memanipulasi nilai variabel. Mari kita bahas langkah-langkahnya. Pertama, program memasukkan header file yang diperlukan untuk menggunakan fungsi output C++

seperti cout. Setelah itu, fungsi utama main dideklarasikan sebagai titik awal eksekusi program. Dalam program ini, sebuah pointer dengan nama pBil dan sebuah variabel bernama bilX dideklarasikan. Variabel bilX diinisialisasi dengan nilai 77, dan kemudian pointer pBil diarahkan ke alamat memori variabel bilX. Setelah itu, program mencetak nilai awal variabel bilX dan nilai yang ditunjuk oleh pointer pBil ke layar menggunakan fungsi cout. Ini memberikan pemahaman awal tentang nilai variabel dan nilai yang disimpan di lokasi memori yang ditunjuk oleh pointer. Selanjutnya, nilai yang ditunjuk oleh pointer pBil diubah dengan menambahkannya 3. Hal ini berarti nilai variabel bilX juga ikut berubah karena pointer pBil menunjuk ke alamat memori yang sama dengan bilX. Program kemudian mencetak nilai terkini dari variabel bilX dan nilai yang ditunjuk oleh pointer pBil setelah perubahan nilai. Ini memberikan gambaran tentang bagaimana manipulasi nilai melalui pointer dapat mempengaruhi nilai variabel asli. Akhirnya, program mengembalikan nilai 0, menandakan bahwa program selesai dengan normal. Keseluruhan program menunjukkan konsep dasar penggunaan pointer dalam bahasa pemrograman C++.

(10)

Latihan 2 Pemrograman C++

Nama Program : Pointer Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi variabel pointer *p,variabel x dengan tipe data long

3. Proses p=&x, x=40 4. Output nilai X, *p,p,&X 5. Proses *p= 25

6. Output nilai X,*p,p,&X 7. Selesai

(11)

Flowchart :

Source Code :

#include <iostream.h>

int main() {

long *p, x;

p = &x;

x = 40;

cout <<"nilai X = "<<x<<endl;

cout <<"nilai *p = "<<*p<<endl;

cout <<"nilai p = "<<p<<endl;

cout <<"nilai X* = "<<&x<<endl<<endl;

(12)

*p = 25;

cout <<"nilai X = "<<x<<endl;

cout <<"nilai *p = "<<*p<<endl;

cout <<"nilai p = "<<p<<endl;

cout <<"nilai *X = "<<&x<<endl<<endl;

return 0;

}

Output Program :

Penjelasan Program :

Program ini adalah contoh implementasi pointer dalam bahasa pemrograman C++. Mari kita jabarkan langkah-langkahnya. Pertama, program memasukkan header file iostream yang diperlukan untuk menggunakan fungsi output C++, seperti cout. Setelah itu, fungsi utama main dideklarasikan sebagai titik awal eksekusi program. Dalam program ini, terdapat deklarasi sebuah pointer p dan sebuah variabel x dengan tipe data long. Pointer p berfungsi untuk merujuk ke alamat memori dari variabel x. Variabel x diinisialisasi dengan nilai 40.

Selanjutnya, program mencetak nilai variabel x, nilai yang ditunjuk oleh pointer p, alamat

(13)

memori yang diarahkan oleh pointer p, dan alamat memori variabel x ke layar. Ini memberikan pemahaman awal tentang nilai variabel dan alamat memori yang terlibat.

Kemudian, nilai yang ditunjuk oleh pointer p diubah menjadi 25. Karena pointer p menunjuk ke alamat memori variabel x, nilai variabel x juga ikut berubah. Program kembali mencetak nilai variabel x, nilai yang ditunjuk oleh pointer p, alamat memori yang diarahkan oleh pointer p, dan alamat memori variabel x setelah perubahan nilai. Ini memberikan gambaran tentang bagaimana manipulasi nilai melalui pointer dapat mempengaruhi nilai variabel asli.

Terakhir, program mengembalikan nilai 0, menandakan bahwa program selesai dengan normal. Keseluruhan program menunjukkan konsep dasar penggunaan pointer dalam bahasa pemrograman C++, yang digunakan untuk merujuk dan memanipulasi nilai variabel serta menunjukkan alamat memori yang terlibat dalam proses tersebut.

(14)

Latihan 3 Pemrograman C++

Nama Program : Pointer Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

Fungsi ubah 1. Mulai

2. Deklarasi ufungbah (int *b) 3. Proses *b=*b+22

4. Selesai Fungsi main 1. Mulai

2. Deklarasi variabel a=12 menggunakan tipe data int 3. Output “Isi nilai semula”

4. Pemanggilan fungsi ubah(&a) 5. Output “Isi nilai sekarang”

6. Selesai

(15)

Flowchart :

Source Code :

#include <iostream.h>

void ubah(int *b) {

*b=*b+22;

}

int main() {

int a = 12;

cout <<"isi nilai semula = "<<a<<endl;

ubah(&a);

cout <<"isi nilai sekarang = "<<a<<endl;

}

(16)

Output Program :

Penjelasan Program :

Program ini merupakan contoh implementasi fungsi yang menggunakan pointer untuk memodifikasi nilai variabel. Mari kita bahas langkah-langkahnya. Pertama, program memasukkan header file iostream, yang diperlukan untuk menggunakan fungsi output C++, seperti cout. Kemudian, didefinisikan sebuah fungsi bernama ubah yang menerima parameter berupa pointer b. Dalam fungsi ubah, nilai yang ditunjuk oleh pointer b diubah dengan menambahkan 22 ke nilai semula. Ini berarti, fungsi ini akan memodifikasi nilai yang ada di lokasi memori yang ditunjuk oleh pointer. Selanjutnya, dalam fungsi utama (main), sebuah variabel a dengan nilai awal 12 dideklarasikan. Nilai variabel ini dicetak ke layar menggunakan cout untuk memberikan pemahaman awal tentang nilai semula variabel.

Kemudian, fungsi ubah dipanggil dengan melewatkan alamat memori variabel a sebagai argumen. Fungsi ini akan memodifikasi nilai variabel a melalui pointer. Setelah pemanggilan fungsi ubah, nilai variabel a dicetak kembali ke layar untuk menunjukkan perubahan nilai yang telah dilakukan oleh fungsi ubah. Dengan demikian, program ini mengilustrasikan konsep penggunaan fungsi dengan parameter pointer untuk memodifikasi nilai variabel yang diberikan. Pada kasus ini, nilai variabel a diubah melalui fungsi ubah, yang bertujuan untuk menambahkan nilai 22 ke nilai semula.

(17)

Latihan 4 Pemrograman C++

Nama Program : Pointer Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi *tunjuk dengan tipe data void, n_double=25.5 dengan tipe data double, n_char= ‘D’ dengan tipe data char

3. Proses tunjuk=&n_double 4. Output *(double *) tunjuk 5. Proses tunjuk= &n_char 6. Output *(char *) tunjuk 7. Selesai

(18)

Flowchart :

Source Code :

#include <iostream.h>

#include <conio.h>

int main() {

void *tunjuk;

double n_double = 25.5;

char n_char[99] = "D";

tunjuk = &n_double;

(19)

cout <<"nilai yang ditunjuk adalah : "<<*(double

*)tunjuk<<endl;

tunjuk = n_char;

cout <<"nilai yang ditunjuk adalah : "<<*(char

*)tunjuk<<endl;

}

Output Program :

Penjelasan Program :

Program ini adalah contoh implementasi penggunaan pointer dalam bahasa pemrograman C++. Tujuan dari program ini adalah untuk menunjukkan kemampuan pointer dalam menangani berbagai jenis data, dalam hal ini double dan array karakter.

Langkah-langkah programnya sebagai berikut:

Pertama, program memasukkan dua header file, yaitu iostream.h untuk fungsi output C++

dan conio.h untuk fungsi input/output pada console.

Kemudian, dideklarasikan sebuah pointer dengan tipe data void (void *). Tipe data void memungkinkan pointer untuk menunjuk ke alamat memori dari berbagai jenis data.

Selanjutnya, diinisialisasi dua variabel, yaitu n_double dengan tipe data double dan nilai 25.5, serta n_char dengan tipe data array karakter dan string awal "D".

Pointer tunjuk kemudian diarahkan ke alamat memori dari variabel n_double. Program mencetak nilai yang ditunjuk oleh pointer tunjuk ke layar dengan melakukan casting pointer

(20)

ke tipe data double. Ini berarti program akan mengambil nilai yang berada di alamat memori yang ditunjuk oleh pointer dan memperlakukannya sebagai nilai double.

Selanjutnya, pointer tunjuk diarahkan ke alamat memori dari array karakter n_char.

Program mencetak nilai yang ditunjuk oleh pointer tunjuk ke layar dengan melakukan casting pointer ke tipe data char. Ini akan mencetak karakter pertama dari array karakter, karena pointer hanya menunjuk pada alamat memori awal array.

Terakhir, program menggunakan fungsi getch() untuk menahan layar agar tidak langsung tertutup setelah menampilkan output.

Dengan demikian, program ini memberikan contoh penggunaan pointer untuk menunjuk ke berbagai jenis data dan melakukan casting pointer untuk membaca nilai yang benar sesuai dengan tipe data yang diinginkan.

(21)

Latihan 5 Pemrograman C++

Nama Program : Pointer Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi *p_void dengan tipe data void, var_f=3.9 dengan tipe data float

3. Proses p_void=&var_f 4. Output var_f

5. *(float *)p_void=7.8 6. Output var_f

7. Selesai

(22)

Flowchart :

(23)

Source Code :

#include <iostream.h>

#include <conio.h>

int main() {

void *p_void;

float var_f = 3.9;

p_void = &var_f;

cout <<"nilai variabel ="<<var_f<<endl;

*(float *)p_void = 7.8;

cout <<"nilai ubah variabel ="<<var_f;

}

Output Program :

Penjelasan Program :

Program ini bertujuan untuk menunjukkan penggunaan pointer dalam bahasa pemrograman C++. Berikut adalah penjelasan langkah-langkahnya:

Pertama, program memasukkan dua header file, yaitu iostream.h untuk fungsi output C++

dan conio.h untuk fungsi input/output pada console.

Selanjutnya, dideklarasikan sebuah pointer dengan tipe data void (void *). Tipe data void memungkinkan pointer untuk menunjuk ke alamat memori dari berbagai jenis data. Sebuah variabel float var_f diinisialisasi dengan nilai 3.9. Pointer p_void diarahkan ke alamat

(24)

memori dari variabel var_f. Program mencetak nilai variabel var_f ke layar. Nilai yang ditunjuk oleh pointer p_void diubah menjadi 7.8. Dengan melakukan casting pointer ke tipe data float, program dapat mengubah nilai variabel var_f melalui pointer. Program mencetak nilai variabel var_f setelah perubahan melalui pointer ke layar. Terakhir, program menggunakan fungsi getch() untuk menahan layar agar tidak langsung tertutup setelah menampilkan output. Dengan demikian, program ini memberikan contoh bagaimana pointer dengan tipe data void dapat digunakan untuk menangani berbagai jenis data dan melakukan casting pointer untuk memodifikasi nilai variabel melalui pointer.

(25)

Latihan Pratikum I Pemrograman C++

Nama Program : Pratikum 1 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

Fungsi reserveString 1. Mulai

2. Deklarasi variabel int length = strlen(str) 3. for (int i = 0; i < length / 2; ++i) { swap(str[i],

str[length - 1 - i]);

4. selesai Fungsi main 1. Mulai

2. Deklarasi variabel const int maxSize = 100, char input[maxSize];

3. Input nilai

4. Simpan nilai pada cin.getline(input, maxSize) 5. Proses pembalikan kata pada reverseString(input) 6. Output nilai

7. Selesai

(26)

Flowchart :

Source Code :

#include <iostream>

#include <cstring>

using namespace std;

void reverseString(char* str) { int length = strlen(str);

for (int i = 0; i < length / 2; ++i) { swap(str[i], str[length - 1 - i]);

} }

int main() {

const int maxSize = 100;

char input[maxSize];

(27)

cout << "Masukkan kata : ";

cin.getline(input, maxSize);

cout <<"***---***---***"<<endl;

reverseString(input);

cout << "pembalikan kata: " << input << endl;

cout <<"***---***---***"<<endl;

return 0;

}

Output Program :

Penjelasan Program :

Program ini bertujuan untuk membalikkan kata yang dimasukkan oleh pengguna. Berikut adalah penjelasan langkah-langkahnya: Pertama, program memasukkan dua header file, yaitu <iostream> untuk menggunakan fungsi input/output C++ dan <cstring> untuk fungsi- fungsi yang berhubungan dengan manipulasi string. Selanjutnya, dideklarasikan fungsi reverseString yang menerima parameter berupa pointer ke karakter (char*) yang merepresentasikan string. Fungsi ini menggunakan perulangan untuk membalikkan karakter-karakter dalam string yang diterima. Dalam fungsi utama (main), sebuah array karakter input dideklarasikan untuk menyimpan kata yang dimasukkan oleh pengguna.

Pengguna diminta untuk memasukkan kata menggunakan cin.getline(). Setelah itu, fungsi reverseString dipanggil untuk membalikkan kata yang dimasukkan. Hasil pembalikan kata kemudian dicetak ke layar, dan program mengembalikan nilai 0, menandakan bahwa

(28)

program selesai dengan normal. Program ini memberikan pengguna kemampuan untuk memasukkan sebuah kata, dan kemudian program secara otomatis membalikkan kata tersebut dan menampilkan hasilnya ke layar.

(29)

Latihan Pratikum 2 Pemrograman C++

Nama Program : Pratikum 2 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi string nama_hari[] = {"senin", "selasa", "rabu",

"kamis", "jumat", "sabtu", "minggu", "kode hari SALAH!"}

3. Input nilai 4. Proses nilai 5. Output nilai 6. Selesai

Flowchart :

(30)

Source Code :

#include <iostream>

using namespace std;

int main() {

string nama_hari[] = {"senin", "selasa", "rabu",

"kamis", "jumat", "sabtu", "minggu", "kode hari SALAH!"};

string *pilih;

int hari, x;

cout << "hari (1-7) : ";

cin >> hari;

if (hari >= 1 && hari <= 7) {

x = hari - 1;

pilih = nama_hari;

cout << "hari ke-" << hari << " adalah hari

" << *(pilih + x) << endl;

} else {

x = 7;

pilih = nama_hari;

cout << "hari ke-" << hari << " adalah hari

" << *(pilih + x) << endl;

}

return 0;

}

(31)

Output Program :

Penjelasan Program :

Program ini adalah contoh implementasi penggunaan pointer untuk menangani array string yang merepresentasikan nama-nama hari. Berikut adalah penjelasan langkah-langkahnya:

Pertama, program memasukkan header file iostream untuk menggunakan fungsi input/output C++. Selain itu, menggunakan namespace std untuk mempermudah penggunaan fungsi dari namespace tersebut. Selanjutnya, dideklarasikan sebuah array string nama_hari yang berisi nama-nama hari dan satu string tambahan untuk kasus jika input hari tidak valid. Kemudian, sebuah pointer pilih dengan tipe data string dideklarasikan, bersama dengan variabel hari untuk menyimpan input pengguna dan variabel x untuk mengakses array nama hari. Program kemudian meminta pengguna untuk memasukkan angka yang mewakili hari. Setelah itu, dilakukan pengecekan apakah input pengguna berada dalam rentang 1 hingga 7. Jika iya, pointer pilih diarahkan ke array nama_hari, dan nama hari yang sesuai dengan input pengguna dicetak. Jika tidak, pointer tetap diarahkan ke array nama_hari, tetapi variabel x diatur ke 7 untuk mengambil string tambahan sebagai "kode hari SALAH!". Terakhir, program mengembalikan nilai 0, menandakan bahwa program

(32)

selesai dengan normal. Dengan demikian, program ini memberikan contoh penggunaan pointer untuk memanipulasi array string, dan juga menunjukkan cara mengatasi situasi di mana input pengguna tidak sesuai dengan ekspektasi (di luar rentang 1-7).

(33)

Latihan Pratikum 3 Pemrograman C++

Nama Program : Pratikum 3 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi int aziz=70, *defa, **dewi 3. Output nilai defa dan dewi

4. selesai

Flowchart :

(34)

Source Code :

#include <iostream>

#include <conio.h>

using namespace std;

int main() {

int aziz=70, *defa, **dewi;

defa=&aziz; dewi=&defa;

cout<<" aziz = 70\n defa = aziz\n dewi = aziz + 3\n\n";

cout<<" a. Berapakah Nilai Defa ??\n"; cout<<"

Nilai Defa = "<<*defa<<endl; cout<<" b.

Berapakah Nilai Dewi ??\n";

cout<<" Nilai Dewi = "<<**dewi+3<<endl<<endl;

defa=&aziz; dewi=&defa;

cout<<" aziz = 70\n defa = &aziz\n dewi = *aziz + 3\n\n";

cout<<" a. Berapakah Nilai Defa ??\n"; cout<<"

Nilai Defa = "<<*defa<<endl; cout<<" b.

Berapakah Nilai Dewi ??\n";

cout<<" Nilai Dewi = "<<**dewi+3<<endl<<endl;

}

(35)

Output Program :

Penjelasan Program :

Program ini memiliki tujuan untuk menunjukkan penggunaan pointer dan pointer ganda (double pointer) dalam bahasa pemrograman C++. Berikut adalah penjelasan langkah- langkahnya:

Pertama, program memasukkan dua header file, yaitu <iostream> untuk fungsi input/output C++ dan <conio.h> untuk fungsi input/output pada console.

Selanjutnya, dideklarasikan variabel aziz yang diinisialisasi dengan nilai 70. Selain itu, terdapat deklarasi pointer defa dan pointer ganda dewi.

Kemudian, dilakukan penugasan pointer defa untuk menunjuk ke alamat memori dari variabel aziz, dan pointer ganda dewi untuk menunjuk ke alamat memori dari pointer defa.

Program mencetak informasi mengenai nilai variabel dan pointer.

Selanjutnya, terdapat pertanyaan dan output nilai yang ditunjuk oleh pointer defa.

Kemudian, program menampilkan pertanyaan dan output nilai yang ditunjuk oleh pointer ganda dewi ditambah 3.

Dilakukan pengulangan untuk percobaan kedua dengan melakukan penugasan ulang pointer dan pointer ganda.

Program kembali mencetak informasi, dan melakukan pertanyaan serta output nilai Defa dan Dewi untuk percobaan kedua.

(36)

Dengan demikian, program ini memberikan contoh penggunaan pointer dan pointer ganda untuk merujuk ke variabel dan melakukan manipulasi nilai melalui pointer. Program juga memberikan pemahaman tentang konsep dereferencing pada pointer ganda.

(37)

Tugas Rumah 1 Pemrograman C++

Nama Program : Tugas Rumah 1 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Void *besar, char kata[100], char ubahkap, int hitungchar

3. Input kata

4. Proses nilai pada fungsi ubahkap 5. Output ubahkap

6. selesai

(38)

Flowchart :

Source Code :

#include <iostream.h>

#include <string.h>

using namespace std; void garis () {

}

int main () {

void *besar;

char kata[100];

char ubahkap;

int hitungchar;

garis();

cout << "Masukkan kata: \n";

cin.getline (kata, sizeof(kata));

(39)

besar=&kata[0];

ubahkap=toupper(*(char *) besar);

garis();

cout << "Hasil: \n"<<ubahkap;

hitungchar=strlen(kata)-1;

for (int a=1; a<=hitungchar; a++) {

besar=&kata[a];

ubahkap=*(char *)besar;

if (kata[a-1]==' ') {

ubahkap=toupper(*(char *)besar);

}

cout << ubahkap;

}

cout << "\n";

garis ();

return 0;

}

Output Program :

Penjelasan Program :

Program ini dirancang untuk mengonversi huruf pertama dari setiap kata dalam sebuah kalimat menjadi huruf kapital. Berikut adalah penjelasan langkah-langkahnya:

Pertama, program memasukkan dua header file, yaitu <iostream.h> untuk fungsi output C++

dan <string.h> untuk fungsi-fungsi yang berkaitan dengan manipulasi string.

(40)

Dideklarasikan fungsi garis yang tidak memiliki isi. Mungkin tujuannya adalah memberikan pemisah visual dalam output program.

Fungsi utama (main) dimulai, dan dalamnya terdapat deklarasi variabel dan pointer:

void *besar: Pointer dengan tipe data void.

char kata[100]: Array karakter dengan ukuran 100 untuk menyimpan input dari pengguna.

char ubahkap: Sebuah karakter untuk menyimpan hasil konversi huruf pertama.

int hitungchar: Sebuah integer untuk menyimpan jumlah karakter dalam kata.

Program memanggil fungsi garis untuk memberikan pemisah visual.

Pengguna diminta untuk memasukkan sebuah kata menggunakan cin.getline(), dan kata tersebut disimpan dalam array kata.

Pointer besar diarahkan ke alamat memori dari karakter pertama dalam array kata, dan nilai yang ditunjuk diubah menjadi huruf kapital menggunakan fungsi toupper.

Program kembali memanggil fungsi garis() untuk memberikan pemisah visual.

Hasil konversi huruf pertama dicetak ke layar.

Hitung jumlah karakter dalam kata dan simpan dalam variabel hitungchar.

Dilakukan loop untuk setiap karakter dalam kata, dimulai dari indeks 1. Pointer besar diarahkan ke alamat memori dari karakter saat ini, dan nilai yang ditunjuk disimpan dalam ubahkap.

Jika karakter sebelumnya adalah spasi, maka karakter saat ini diubah menjadi huruf kapital menggunakan toupper.

Hasil konversi setiap huruf pertama dicetak ke layar.

Program mencetak baris baru dan memanggil fungsi garis().

Program mengembalikan nilai 0, menandakan bahwa program telah selesai dengan normal.

Dengan demikian, program ini memberikan interaksi kepada pengguna untuk memasukkan sebuah kata, dan setelahnya, program mengonversi huruf pertama dari setiap kata menjadi huruf kapital sebelum menampilkan hasilnya ke layar. Program juga menggunakan fungsi garis untuk memberikan efek visual.

(41)

Tugas Rumah 2 Pemrograman C++

Nama Program : Tugas Rumah 2 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

Fungsi void 1. Mulai

2. Int *e, int *f, int *g, int *h, int I, j, k, l 3. Input I, j, k, l

4. Fungsi (%i, %j, %k, %l) 5. Memanggil fungsi 6. Selesai

Fungsi main 1. Mulai

2. Int *e, int *f, int *g, int *h, int a, b, c, d 3. Proses a=*j*3; b=*k*3; c=*l*3; d=*m*3 4. Output a, b, c, d

5. Selesai

Flowchart :

(42)

Source Code :

#include<iostream>

#include<conio.h>

using namespace std;

void fungsi(int *w,int *x,int *y,int *z) {

int a,b,c,d; a=*w*3; b=*x*3; c=*y*3; d=*z*3;

cout<<" OUTPUT NILAI \n\n";

cout<<"\tOutput Nilai W = "<<a<<endl<<endl;

cout<<"\tOutput Nilai X = "<<b<<endl<<endl;

cout<<"\tOutput Nilai Y = "<<c<<endl<<endl;

cout<<"\tOutput Nilai Z = "<<d<<endl<<endl;

cout<<" \n\n";

}

int main(int *e,int *f,int *g,int *h) {

int i,j,k,l;

cout<<" INPUT NILAI \n\n";

cout<<"\tMasukkan Nilai W = ";

cin>>i;

cout<<endl;

cout<<"\tMasukkan Nilai X = ";

cin>>j;

cout<<endl;

cout<<"\tMasukkan Nilai Y = ";

cin>>k;cout<<endl;

cout<<"\tMasukkan Nilai Z = ";

cin>>l;

cout<<endl;

fungsi(&i,&j,&k,&l);

getch();

}

(43)

Output Program :

Penjelasan Program :

Program ini memiliki tujuan untuk mengalikan setiap nilai yang dimasukkan oleh pengguna dengan angka 3 dan menampilkannya ke layar. Berikut adalah penjelasan langkah- langkahnya:

Program memasukkan dua header file, yaitu <iostream> untuk fungsi input/output C++ dan

<conio.h> untuk fungsi input/output pada console.

Didefinisikan fungsi fungsi yang menerima empat parameter berupa pointer (int *w, int *x, int *y, int *z). Fungsi ini akan mengalikan setiap nilai yang ditunjuk oleh pointer dengan angka 3 dan menampilkan hasilnya ke layar.

Dalam fungsi fungsi:

Variabel a, b, c, dan d dideklarasikan dan diinisialisasi dengan hasil perkalian nilai yang ditunjuk oleh masing-masing pointer dengan angka 3.

Nilai-nilai yang dihasilkan dicetak ke layar menggunakan cout.

Fungsi utama (main) dimulai dengan menerima nilai i, j, k, dan l dari pengguna.

(44)

Nilai-nilai tersebut kemudian disampaikan ke fungsi fungsi dengan cara mengirimkan alamat memori (pointer) dari masing-masing variabel.

Program menggunakan getch() untuk menahan layar agar tidak langsung tertutup setelah menampilkan output.

Dengan demikian, program ini memberikan interaksi kepada pengguna untuk memasukkan nilai W, X, Y, dan Z, kemudian mengalikan masing-masing nilai dengan angka 3 melalui fungsi fungsi, dan menampilkan hasilnya ke layar sebelum menahan layar agar tidak langsung tertutup.

(45)

Tugas Rumah 3 Pemrograman C++

Nama Program : Tugas Rumah 3 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. Deklarasi variabel 3. Input nilai

4. Proses hitung 5. Output hasil 6. selesai

Flowchart :

(46)

Source Code :

#include <iostream>

#include <cstring>

using namespace std;

int main() {

void *p;

char kata[100];

int hitung, hasil;

cout << "masukkan kata: ";

cin.getline(kata, sizeof(kata));

hitung = strlen(kata);

hasil = 1;

p = &hasil;

for (int a = 1; a <= hitung; a++) {

if (kata[a - 1] == ' ') {

hasil++;

} }

cout << "jumlah kata adalah: " << *(int *)p <<

endl;

return 0;

}

(47)

Output Program :

Penjelasan Program :

Program ini memiliki tujuan untuk menghitung jumlah kata dalam sebuah kalimat yang dimasukkan oleh pengguna. Berikut adalah penjelasan langkah-langkahnya:

Program memasukkan dua header file, yaitu <iostream> untuk fungsi input/output C++ dan

<cstring> untuk fungsi-fungsi yang berkaitan dengan manipulasi string.

Dalam fungsi utama (main):

Dideklarasikan sebuah pointer void p.

Dideklarasikan sebuah array karakter kata dengan ukuran 100 untuk menyimpan input dari pengguna.

Dideklarasikan dua variabel integer hitung dan hasil.

Pengguna diminta untuk memasukkan sebuah kata menggunakan cin.getline(), dan kata tersebut disimpan dalam array kata.

Variabel hitung diinisialisasi dengan panjang (jumlah karakter) dari kata yang dimasukkan oleh pengguna menggunakan fungsi strlen.

Variabel hasil diinisialisasi dengan nilai 1, karena setiap kalimat setidaknya memiliki satu kata.

Pointer p diarahkan ke alamat memori dari variabel hasil.

Dilakukan loop untuk setiap karakter dalam kata:

Jika karakter sebelumnya adalah spasi, maka nilai hasil (jumlah kata) akan ditambah satu.

Hasil jumlah kata kemudian dicetak ke layar menggunakan cout.

Program mengembalikan nilai 0, menandakan bahwa program telah selesai dengan normal.

(48)

Dengan demikian, program ini memberikan interaksi kepada pengguna untuk memasukkan sebuah kalimat, kemudian menghitung jumlah kata dalam kalimat tersebut dan menampilkannya ke layar. Program menggunakan pointer untuk menyimpan hasil perhitungan jumlah kata.

(49)

Tugas Rumah 4 Pemrograman C++

Nama Program : Tugas Rumah 4 Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Algoritma :

1. Mulai

2. char *bulan[]={" ","Januari", "Februari", "Maret",

"April", "Mei", "Juni", "Juli", "Agustus", "September",

"Oktober", "November", "Desember"};

3. char bulan ke-

4. for(int x=1; x<13; x++) 5. output nilai

6. selesai

(50)

Flowchart :

Source Code :

#include <iostream>

#include <conio.h>

using namespace std;

char *bulan(int a) {

char *bulan[]={" ","Januari", "Februari",

"Maret", "April", "Mei", "Juni", "Juli", "Agustus",

"September", "Oktober", "November", "Desember"};

return ((a<=1||a>=13)?bulan[1]:bulan[a]);

}

int main () {

for(int x=1; x<13; x++) {

cout <<"bulan ke- "<<x;

cout <<"adalah bulan "<<bulan(x)<<endl;

}

getch();

(51)

}

Output Program :

Penjelasan Program :

Program ini memiliki tujuan untuk menampilkan nama bulan berdasarkan nomor bulan yang dimasukkan. Berikut adalah penjelasan langkah-langkahnya:

Program memasukkan dua header file, yaitu <iostream> untuk fungsi input/output C++ dan

<conio.h> untuk fungsi input/output pada console.

Dalam fungsi bulan:

Dideklarasikan sebuah array pointer karakter bulan yang berisi nama-nama bulan.

Fungsi ini menerima parameter berupa nomor bulan (a).

Fungsi akan mengembalikan nama bulan sesuai dengan nomor bulan yang diberikan.

(52)

Jika nomor bulan kurang dari atau sama dengan 1, atau lebih dari atau sama dengan 13, fungsi akan mengembalikan nama bulan pertama (Januari).

Dalam fungsi utama (main):

Dilakukan loop untuk nomor bulan mulai dari 1 hingga 12.

Setiap iterasi, program mencetak nomor bulan dan nama bulan yang diperoleh dari pemanggilan fungsi bulan(x).

Program menggunakan getch() untuk menahan layar agar tidak langsung tertutup setelah menampilkan output.

Dengan demikian, program ini memberikan interaksi kepada pengguna untuk menampilkan nama bulan berdasarkan nomor bulan yang dimasukkan. Fungsi bulan digunakan untuk mengembalikan nama bulan berdasarkan nomor bulan yang diberikan sebagai argumen.

Program kemudian menampilkan nama bulan tersebut ke layar untuk setiap nomor bulan dalam rentang 1 hingga 12.

(53)

III. KESIMPULAN

1. Pointer merupakan indikator yang mampu menunjuk pada nilai atau lokasi memori suatu variabel.

2. Dengan memanfaatkan pointer, kita dapat mengembangkan program yang rumit;

namun, kesalahan kecil saja dapat memiliki konsekuensi fatal.

3. Pointer terdiri dari dua simbol, yaitu (*) yang digunakan untuk merujuk nilai, dan (&) yang digunakan untuk merujuk alamat.

4. Pointer void memiliki kemampuan untuk menunjuk ke tipe data apa pun, meskipun untuk menunjukkan nilai dari suatu void, perlu deklarasi tipe data yang akan diolah.

5. Pointer mampu merujuk pada pointer lainnya dengan menggunakan tanda (*) ganda.

6. Pointer juga dapat berfungsi sebagai parameter masukan dan keluaran dalam suatu fungsi. Sebagai parameter masukan, nilai argumen dapat diubah di dalam fungsi.

IV. DAFTAR RUJUKAN

1. Tim Asisten Dosen. 2016. Modul 7 Pointer Malang : Universitas Negeri Malang.

2. https://www.belajarcpp.com/tutorial/cpp/pointer/

3. https://bundet.com/d/995-pengertian-pointer-dalam-c

Referensi

Dokumen terkait

Vegetasi menggambarkan perpaduan berbagai jenis tumbuhan di suatu wilayah atau daerah.Suatu tipe vegetasi menggambarkan sesuatu daerah dari segi penyebaran tumbuhan

Jika akan menggunakan tipe data yang sama untuk beberapa identifier maka dapata dituliskan dengan menggunakan tanda koma, contoh :.. int a,

Jika akan menggunakan tipe data yang sama untuk beberapa identifier maka dapata dituliskan dengan menggunakan tanda koma, contoh :.. int a,

Buatlah program sederhana menggunakan variable pointer untuk menunjuk pada tipe data char, dengan nilai dari variable tersebut adalah input dari nama anda.

Tipe data Obyek mulai digunakan pada pemrograman prosedural pascal ataupun C dengan penggunaan tipe data abstrak dan pointer, yaitu record, struct untuk tipe data

Perlakuan khusus terhadap void pada Java sepertinya tidak fair, karena sudah terdapat pembedaan kelas dengan tipe data, ditambah satu lagi “tipe data” void hanya untuk

Ciri non-void atau unvoid adalah ada keyword return, ada tipe data yang mengawali fungsi tidak ada keyword void, dan memiliki nilai kembalian dapat dianalogikan sebagai suatu variabel

Output Penjelasan Pada program di atas, method HitungLuas yang mulanya mengembalikan nilai dengan tipe data int dan double diubah menjadi void sehingga langsung mencetak hasil