0% menganggap dokumen ini bermanfaat (0 suara)
33 tayangan39 halaman

Pert-2 - Array

Dokumen tersebut membahas tentang pointer dan array, termasuk definisi pointer, pointer ke pointer, karakteristik dan sintaks array satu, dua, dan tiga dimensi, serta contoh kode program untuk mendemonstrasikan penggunaan pointer dan array."

Diunggah oleh

Arjuna Dwi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
33 tayangan39 halaman

Pert-2 - Array

Dokumen tersebut membahas tentang pointer dan array, termasuk definisi pointer, pointer ke pointer, karakteristik dan sintaks array satu, dua, dan tiga dimensi, serta contoh kode program untuk mendemonstrasikan penggunaan pointer dan array."

Diunggah oleh

Arjuna Dwi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 39

Pointer dan Array

1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
Menerapkan konsep tipe data array untuk data majemuk homogen

2
Outline Materi
1. Pointer
2. Definisi dan karakteristik array
3. Array dimensi satu
4. Inisialisasi array
5. Array sebagai parameter
6. Array berdimensi dua dan tiga
7. String

3
Pointer
Pointer adalah variabel yang menyimpan alamat dari variabel
yang lainnya.
Deklarasi pointer : <type_data> *ptr_name;
Dua operator yang sering digunakan pada pointer :
* (content of) dan & (address of).
Contoh
Inisialisasi sebuah integer pointer ke data variable:
int i, *ptr;
ptr = &i;
Untuk merubah isi/nilai yg ditunjuk oleh pointer:
*ptr = 5; /* sama artinya dgn i=5 */

4
Pointer

5
Pointer to Pointer
Pointer to pointer adalah variabel yang menyimpan alamat dari pointer yang
lainnya.
Deklarasi pointer : <type> **ptr_ptr ;
Contoh
int i, *ptr, **ptr_ptr ;
ptr = &i;
ptr_ptr = &ptr;

Untuk merubah isi/nilai variabel i bisa melalui sbb:


*ptr = 5; // sama artinya dgn i=5 ;
**ptr_ptr = 9; //sama artinya dgn i=9; atau *ptr=9;

6
Pointer to Pointer

7
Array
Data disimpan dalam suatu struktur, sedemikian rupa
sehingga elemen-elemen di dalam struktur tadi dapat
diolah secara kelompok ataupun secara individu.

Sifat - sifat Array


◦ Homogen
Seluruh elemen di dalam struktur array mempunyai tipe data yang sama.
◦ Random Access
Setiap elemen di dalam struktur array dapat dicapai secara individual, langsung ke lokasi elemen yang
diinginkan, tidak harus melalui elemen pertama.

8
Array Dimensi Satu
Sintaks deklarasi array dimensi satu

type nama_arrray[Nilai_dim];

Contoh : int A[10]; string Nama_mhsw_TI2B[29];


string No_telp_TI2B[29];
float IPK_TI2B[29];

Definisi dari sebuah array terdiri dari 4 komponen yaitu :


◦ Type specifier
◦ Identifier (nama array)
◦ Operator index ([ ])
◦ Nilai dimensi dalam operator [ ]

9
Visualisasi Array
Dengan menggunakan contoh deklarasi
sebelumnya dapat digambarkan alokasi untuk
variabel A
Elemen-elemen suatu Array diindeks (subscript)
mulai dari 0.

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]

10
Cara Akses Array
Dua cara yang ekuivalen untuk mengakses unsur ke-
i dari suatu array. Misal untuk i=2;
*(A+2) atau A[2]
A ekuivalen dengan &A[0] atau pointer constant ke
elemen-pertama dari array tersebut.
Bila elemen A[2] hendak ditampilkan di layar
monitor, gunakan statemen sbb:
Cout << A[2] << endl; atau
Cout << *(A+2) << endl;

11
Mengisi Data Array
Mengisi data ke elemen array dilakukan dengan menggunakan assignment
operator.
Contoh : A[6] = 15; A[3] = 27;

27 15

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]

Statement A[2] = A[3] - A[6], menghasilkan :

12 27 15

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]

12
Int x = 10;
X == 20; Boolean : F
123 === ‘123’ Boolean

13
Inisialisasi Array
Array dapat diinisialisasi secara eksplisit pada saat
didefinisikan dan bisa tidak diberikan nilai dimensinya.
◦ Contoh: int B[ ]={1, 2, -4, 8};
◦ Pada contoh diatas Array B memiliki 4 element

◦ Contoh; int B[8]={1, 2, -4, 8};

14
Inisialisasi Array

◦ Contoh: int B[4] = { 1, 2, -4, 8, 9 }; //error


◦ Contoh diatas error karena nilai dimensi lebih kecil dari jumlah
element.
Contoh inisialisasi array setelah didefinisikan :
int A[5];
(for i=0; i<5;i++) A[i]=0;

int B[5] = {0,0,0,0,0};


B[5]={0,0,0,0,0}; Error, mengapa ?
B[5] = 0;
15
Pointer Constant vs Pointer Variable

Pointer variabel : adalah pointer yang isinya bisa dirubah-rubah


pada saat run time
Pointer constant : adalah pointer yang isinya tdk bisa dirubah pada
saat run time
Array tipenya adalah Pointer Constant ke element pertama dari
array tersebut, oleh karena itu Array bisa mengisi pointer variabel.
Contoh:
◦ int x=10, y=20;
◦ int *ptr; //ptr adalah pointer variable
◦ ptr = &x;
Isi ptr bisa dirubah-rubah
◦ ptr = &y;
saat run time

16
Pointer Constant vs Pointer Variable
Contoh:
◦ int x=10, y=20;
◦ int B[4]; //B adalah Array => pointer constant
◦ int *ptr; //ptr adalah pointer variable
◦ ptr = &x; //ok
◦ ptr = B; //ok
◦ ptr++; //ok
◦ B = ptr; //error
◦ B++; //error
◦ B = &y; //error
ptr = B; sama artinya dengan ptr = &B[0]; karena B tipenya
pointer konstan ke elemen pertama dari array

17
Pointer Constant vs Pointer Variable

Pointer konstan hanya bisa di-inisialisasi pada saat didefinisikan.


Contoh:
int Arr1[10]; //deklarasi
Arr1[10] = {1, 2, 3, 4, 5}; //error -> assign value ke variable Arr1[10]
Arr1 = {1, 2, 3, 4, 5}; //error
Arr1[10] = 12; //error krn max dimensi adl 9
Arr1[0] = 23; //ok

int Arr2[10] = {1, 2, 3, 4, 5}; //ok

18
Akses Array
• Akses array dengan pointer
int arr[10];
int *ptr_arr;
ptr_arr = arr; // sama artinya dengan
// ptr_arr = &arr[0];

• Untuk mengakses elemen ke-i dapat dilakukan


dengan cara berikut:
ptr_arr[i]; int A[10]; A => &A[0]
arr[i]; A[2] => *(A+2)
*(ptr_arr + i);
*(arr + i);
ptr_arr = ptr_arr + i;
*ptr_arr;

19
Array
#include
Contoh<iostream>
:
using namespace std;

int main()
{
int i;
int list_int[10];
for (i=0; i<10; i++){
list_int[i] = i + 1;
cout <<"list_int["<< i << "] diinisialisasi dengan " <<
list_int[i];
cout << endl;
}
}

20
Array Dimensi Satu
Contoh Array dimensi 1:

int A[3] = {117, 283, 78883};


cout <<"indeks A ke-3 : " << A[2];
cout << endl;

int B[3] = {1,2,3};


cout <<"indeks B ke-1 : " << B[0];
cout << endl;

int C[3] = { 0};


cout <<"indeks C ke-3 : " << C[2];
cout << endl;

21
Akses Array
#include<iostream>
using namespace std;

int main(){
int x[10]={50, 35, 10, 15, 23, 11, 25, 34, 23, 32};
int i;
int maks = -1000; //asumsi paling minimum
int min = 1000; //asumsi paling maksimum
for (i=0; i<10; i++){
if(x[i]>maks){
maks= x[i];
}

if(x[i]<min){
min= x[i];
}
}

cout<<"Nilai maksimum : "<<maks<<endl;


cout<<"Nilai minimum : "<<min<<endl;
} 22
Array Dimensi Dua
Sintaks deklarasi array dimensi dua
type nama_arrray[baris][kolom];

Contoh
int a[3][4]
Column 0 Column 1 Column 2 Column 3
Row 0 a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ]
Row 1 a[ 1 ][ 0 ] a[ 1 ][ 1 ] a[ 1 ][ 2 ] a[ 1 ][ 3 ]
Row 2 a[ 2 ][ 0 ] a[ 2 ][ 1 ] a[ 2 ][ 2 ] a[ 2 ][ 3 ]

Column subscript
Array
name Row subscript

23
Array Dimensi Dua
Inisialisasi: menggunakan aturan rmo (row major order).
Contoh:
◦ int b[2][2] = {1, 2, 3, 4 }; 1 2
◦ int b[2][2] = { { 1, 2 }, { 3, 4 } }; 3 4

◦ int b[2][2] = { { 1 }, { 3, 4 } }; 1 0
3 4

◦ int x[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};


◦ int x[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};

24
Program :
Array Dimensi Dua
/* Mencetak array 2-D */
#include <iostream>
using namespace std;

int main() {
int two_dim[3][5] = { {1, 2, 3, 4, 5},
{10, 20, 30, 40, 50},
{ 100, 200, 300, 400, 500}
};
int i, j;
for (i=0; i<3; i++){
for (j=0; j<5; j++) {
cout<< "two_dim [" << i << "][" << j << "] = " << two_dim[i][j];
cout<< endl;
}
} 1 2 3 4 5 10 20 30 40 50
} 100 200 300 400 500

25
Array Dimensi Tiga
Sintaks deklarasi array dimensi tiga :
type nama_arrray[baris][kolom][depth];

Contoh:
int x[3][2][4] = {
{{1,2,3,4}, {5,6,7,8}},
{{11,12,13,14}, {15,16,17,18}},
{{21,22,23,24}, {25,26,27,28}}
};
int main() {
int x[4][3][5] = {
{{1, 2, 3}, {0, 4, 3, 4}, {1, 2}},
{{9, 7, 5}, {5, 7, 2}, {9}},
{{3, 3, 5}, {2, 8, 9, 9}, {1, 2, 1}},
{{0}, {1}, {0, 1, 9}}
};
cout << "nilai dari x[1][1][2] = "<< x[1][1][2];
cout << endl;
}

26
Array Of Pointer
Sebuah array yang isinya adalah pointer
Sintak :
type *nama_array [nilai_dim];

Contoh:
int i;
int *ptr[4];
int x=1, y=2, z=3, w=5;
ptr[0]=&x, ptr[1]=&y;
ptr[2]=&z; ptr[3]=&w;
for(i=0;i<4;i++) {
Cout << ptr[i] << endl;
cout << &ptr[i] <<endl;
}

Output : 1 2 3 5
27
Array of character
Array yang isinya character
Sintak:
char nama_array[nilai_dim];

Contoh:
char nama[40];
char ss[20]={‘T’,’I’,’K’}; //20 elemen
char ss[ ]= {‘T’,’I’,’K’}; //3 elemen

28
String
String adalah Array of character yang diakhiri dengan null
character ( ‘\0’ atau ASCII nya = 0)

String constant atau string literal adalah beberapa character


yang diapit oleh tanda petik dua.
◦ Contoh: ”Selamat datang”

Tipe dari string constant adalah pointer constant, sehingga


bisa di-assigned ke array of character sbb :
◦ Contoh :
char nama[40] = ”Amir”; //ok
nama = ”Amir”; //error krn nama adalah pointer konstan
Nama[40]= “Amir”; //error
29
String
String constant dapat digabung pada saat dikompilasi:
”Hello,” ” world”
Sama artinya dengan :
”Hello, world”

Contoh inisialisasi string:


char s[ ] = ”TIK”;
Sama artinya dgn :
char s[ ] = {’T’,’I’,’K’,’\0’};

30
Karakter vs String
Karakter dalam bahasa C++ diapit oleh single quote. Tiap karakter
menempati satu byte memori.
Contoh:
char ch=’A’;
char ch=65; //Ascii
Sama
char ch=0x41; //Ascii

String diapit oeh double quote.

31
Manipulasi string

Pada Standard Library Function ( header file iostring.h ) disediakan fungsi-fungsi untuk
memanipulasi string antara lain :
◦ strlen()
Menghasilkan panjang string, tidak menghitung karakter null.
◦ strcpy(s1,s2)
Copy s2 ke s1.
◦ strncpy(s1,s2,n)
Copy n karakter pertama s2 ke s1.
◦ strcat(s1,s2)
Menambahkan string s2 ke akhir dari string s1.
◦ strncat(s1,s2,n)
Menambahkan n karakter string s2 ke akhir dari string s1.
◦ strcmp(s1,s2)
Membandingkan isi string s1 dan s2, jika isinya sama maka nilainya 0.
◦ dll masih banyak lagi

32
Contoh :
char s1[ ] = “abcdef”;
Manipulasi string
char s2[ ] = “xyz”;

strlen(“nana”); // 4
strcmp(“nana”, “nana”)// bernilai 0
strcpy(s1,s2); // s1 = “xyz”, s2 = “xyz”
strncpy(s1,s2,2); // s1 = “xyabcdef”, s2 = “xyz”
strncpy(s1,s2,4); // jika n>=strlen(s2) efek sama
// dengan strcpy() s1 = “xyz”
strcat(s1,s2); // s1=“abcdefxyz”, s2=“xyz”
strncat(s1,s2,2); // s1=“abcdefxy”, s2=“xyz”

s1 = “Happy”
s2 = “New Year”

strcat( s1, s2 ) // s1= “Happy New Year”


strncat( s3, s1, 6 ) // s1= “Happy”
strcat( s3, s1 ) // s1= “Happy Happy New Year”

33
ASCII CODE

34
Latihan
Buatlah program untuk mengambil 10 bilangan integer dari keyboard dan
disimpan dalam array, kemudian
◦ Cari bilangan terbesar dalam array tersebut
◦ Cari bilangan terkecil dalam array tersebut
◦ Hitung nilai rata-rata dari isi Array tersebut
◦ Tampilkan hasilnya di layar monitor

Buat program untuk:


◦ mengambil string dari keyboard
◦ membalik susunan karakter dalam string tsb
◦ menampilkan string yg sudah dibalik ke layar monitor

Contoh: string yg di-input : KASUR


dibalik : RUSAK

35
Latihan
Buat program untuk menjumlahkan 2 matrik dibawah ini.
Gunakan Array dimensi 2

• Buat program untuk mengalikan 2 matrik dibawah ini.


Gunakan Array dimensi 2

36
Latihan
Perhatikan definisi Array dibawah ini sbb:
int A[3][4]={1, 3, 2, 4, 5, 7, 6, 8, 9,11, 12 };
int B[3][3]={{1, 2}, {3, 4, 5} ,{ 7 }};

Berapa isi data dari :


1. A[1][1] = ?
2. B[2][2] = ?
3. A[2][3] = ?
4. B[0][1] = ?
5. A[0][2] = ?

37
Latihan
1. Perhatikan dua statement dibawah:
char str[] = ”Selamat Datang di PNJ”;
char *str = ”Selamat Datang di PNJ”;
Jelaskan perbedaan kedua identifier str tersebut diatas !

2. Perhatikan dua statement dibawah:


char *name[] = {”Ali”,”Ani”,”Tono”};
char name[][10] = {”Ali”,”Ani”,”Tono”};
Jelaskan perbedaan kedua identifier name tersebut diatas !

38
Latihan
Jelaskan dengan memberikan contoh program sederhana, fungsi / cara
kerja dari library function yang ada di <string.h> sbb:
◦ strchr(char *s, int c);
◦ strrchr(char *s, int c);
◦ strstr(char *s, char *src);

39

Anda mungkin juga menyukai