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

Array

Dokumen tersebut membahas tentang array dan pointer dalam bahasa pemrograman. Terdapat penjelasan mengenai konsep array satu, dua, dan multidimensi beserta contoh kode programnya. Juga dibahas mengenai pointer dan cara mengakses elemen pada array satu dan multidimensi menggunakan indeks.

Diunggah oleh

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

Array

Dokumen tersebut membahas tentang array dan pointer dalam bahasa pemrograman. Terdapat penjelasan mengenai konsep array satu, dua, dan multidimensi beserta contoh kode programnya. Juga dibahas mengenai pointer dan cara mengakses elemen pada array satu dan multidimensi menggunakan indeks.

Diunggah oleh

Zull Dezee
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

Teknik Informatika S-1

Pertemuan

ARRAY DAN POINTER

A. TUJUAN PEMBELAJARAN

Pada pertemuan ini menjelaskan implementasi Array 1, 2 dan banyak dimensi dan
tipe data pointer yang digunakan dalam Bahasa pemrograman:
1. Mampu menerapkan Array 1, 2 dan banyak dimensi
2. Mampu menerapkan tipe data pointer yang digunakan dalam Bahasa
pemrograman

B. URAIAN MATERI

Array adalah kumpulan item yang disimpan di lokasi memori yang berdekatan.
Awalnya array digunakan untuk menyimpan beberapa item dengan jenis yang sama. Ini
mempermudah penghitungan posisi setiap elemen dengan hanya menambahkan offset ke nilai
dasar, yaitu lokasi memori elemen pertama dari array (biasanya dilambangkan dengan nama
array).
Untuk kesederhanaan, kita dapat membayangkan sebuah deret armada tangga di
mana pada setiap anak tangga diberi nilai (misalkan salah satu teman Anda). Di sini, Anda
dapat mengidentifikasi lokasi teman Anda hanya dengan mengetahui hitungan langkah
mereka. Ingat: “Lokasi indeks berikutnya tergantung pada tipe data yang kita gunakan”.

Gambar 2.1 Lokasi Memori

Gambar di atas dapat dilihat sebagai tampilan tingkat atas dari tangga tempat Anda
berada di dasar tangga. Setiap elemen dapat diidentifikasi secara unik dengan indeksnya
dalam larik (dengan cara yang sama seperti Anda dapat mengidentifikasi teman-teman Anda
melalui langkah mereka pada contoh di atas).

Struktur Data 1
Jenis pengindeksan dalam array:
1. 0 (pengindeksan berbasis nol): Elemen pertama dari array diindeks oleh subskrip 0
2. 1 (pengindeksan berbasis satu): Elemen kedua dari array diindeks oleh subskrip 1
3. n (pengindeksan berbasis n): Indeks dasar array dapat dipilih secara bebas. Biasanya
bahasa pemrograman yang memungkinkan pengindeksan berbasis n juga
memungkinkan nilai indeks negatif dan tipe data skalar lainnya seperti enumerasi,
atau karakter dapat digunakan sebagai indeks array.

Gambar 2.2 Array di C

Keuntungan menggunakan array:


1. Array memungkinkan akses elemen secara acak. Ini membuat pengaksesan elemen
berdasarkan posisi lebih cepat.
2. Array memiliki lokalitas cache yang lebih baik yang dapat membuat perbedaan
kinerja yang cukup besar.
// Array karakter di C / C ++ char
arr1 [] = {'u', 'n', 'p', 'a', 'm'};

// Array Integer di C / C ++ int


arr2 [] = {1, 2, 3, 4, 5};

// Item pada indeks ke-i dalam array biasanya diakses


// sebagai "arr [i]". Misalnya arr1 [0] memberi kita 'u'
// dan arr2 [3] memberi kita 4

Biasanya, array karakter disebut 'string', sedangkan array int atau float disebut
dengan array.
Array Dalam C / C ++
Array di C atau C ++ merupakan sekumpulan item yang dapat disimpan pada
lokasi memori . Yang mana yang berdekatan dan elemen dapat diakses secara acak
menggunakan indeks array. Mereka digunakan untuk menyimpan jenis elemen yang
sama karena dalam tipe data harus sama untuk semua elemen. Mereka dapat
digunakan untuk menyimpan kumpulan tipe data dasar seperti int, float, double,
char, dll dari tipe tertentu. Untuk menambahkannya, sebuah array dalam C atau C ++
dapat menyimpan tipe data turunan seperti struktur, pointer, dll. Diberikan di bawah
ini adalah representasi indah dari sebuah array.

Gambar 2.3 Representasi Array

Mengapa kita membutuhkan array?


Kita dapat menggunakan variabel normal (v1, v2, v3, ..) ketika kita memiliki
sejumlah kecil objek, tetapi jika kita ingin menyimpan instance dalam jumlah besar,
akan sulit untuk mengelolanya dengan variabel normal. Ide dari sebuah array adalah
untuk merepresentasikan banyak contoh dalam satu variabel.
Deklarasi array di C / C ++:

Gambar 2.4 Deklarasi array di C / C ++

Ada berbagai cara untuk mendeklarasikan sebuah array. Ini dapat dilakukan
dengan menentukan jenis dan ukurannya, dengan menginisialisasi atau keduanya.
1) Deklarasi array dengan menentukan ukuran

// Deklarasi array dengan menentukan ukuran int


arr1 [10];

// Dengan versi C / C ++ mendeklarasikan array dengan ukuran yang


ditentukan pengguna
int n = 10;
int arr2 [n];

2) Deklarasi array dengan menginisialisasi elemen

// Deklarasi array dengan menginisialisasi elemen int


arr [ ] = {20, 30, 40, 50}

// Compiler membuat array berukuran 4.


// di atas sama dengan "int arr [4] = {20, 30, 40, 50}"
3) Deklarasi array dengan menentukan ukuran dan menginisialisasi
elemen

// Deklarasi array dengan menentukan ukuran dan menginisialisasi


elemen
int arr [6] = {20, 30, 40, 50}

// Compiler membuat array berukuran 6, menginisialisasi terlebih dahulu 4


elemen seperti yang ditentukan oleh pengguna dan dua elemen lainnya
adalah 0.
// di atas sama dengan "int arr [] = {20, 30, 40, 50, 0, 0}"

Keuntungan dari Array di C / C ++:


1. Akses acak elemen menggunakan indeks array.
2. Gunakan lebih sedikit baris kode karena ini membuat satu array dari
banyak elemen.
3. Akses mudah ke semua elemen.
4. Traversal melalui array menjadi mudah menggunakan satu loop.
5. Penyortiran menjadi mudah karena dapat dilakukan dengan menulis lebih
sedikit baris kode.

Kekurangan Array di C / C ++:


1. Memungkinkan sejumlah elemen untuk dimasukkan yang ditentukan pada
saat deklarasi. Tidak seperti linked list, array di C tidak dinamis.
2. Penyisipan dan penghapusan elemen dapat memakan biaya karena elemen
tersebut perlu dikelola sesuai dengan alokasi memori baru.

Array Multidimensi Dalam C / C ++


Dalam C / C ++, kita dapat mendefinisikan array multidimensi dengan kata
sederhana sebagai array dari array. Data dalam array multidimensi disimpan dalam
bentuk tabel (dalam urutan mayor baris).
Bentuk umum untuk mendeklarasikan array berdimensi-N:
Tipe_data nama_array [size1] [size2].....[sizeN];
Tipe_data : Jenis data yang akan disimpan dalam array.
Di sini tipe_data adalah tipe data C / C ++ yang valid
nama_array : Nama array
size1, size2,. . ., sizeN : Ukuran dimensi

Contoh :
Array dua dimensi:
int 2_D [20] [30];

Array tiga dimensi:


int 3_D [20] [30] [50];

Ukuran array multidimensi


Jumlah total elemen yang dapat disimpan dalam array multidimensi dapat dihitung
dengan mengalikan ukuran semua dimensi.

Sebagai contoh:
Array int x [20] [30] dapat menyimpan total (20 * 30) = 600 elemen.

Maka untuk Array int x [10] [20] [30] mampu menyimpan total (10 * 20 * 30) =
6000 elemen.

Array Dua Dimensi

Array dua dimensi merupakan bentuk paling sederhana dari array


multidimensi. Array dua dimensi bisa kita lihat sebagai array satu dimensi agar lebih
mudah dipahami.
Bentuk dasar mendeklarasikan array dua dimensi dengan ukuran x, y:
Sintak:
tipe_data nama_array [x] [y];
tipe_data : Jenis data yang akan disimpan. Tipe data C / C ++ yang valid.

Kita dapat mendeklarasikan array integer dua dimensi mengatakan 'x' dengan ukuran
20,30 sebagai:
int x [20] [30];

Elemen dalam array dua dimensi biasanya disebut x [i] [j] di mana i yaitu
nomor baris dan 'j' yaitu nomor kolom.
Array dua dimensi dapat dilihat sebagai tabel dengan baris 'x' dan 'y' di mana
nomor baris berkisar dari 0 sampai (x-1) dan nomor kolom berkisar dari 0 sampai (y-
1). Array dua dimensi 'x' dengan 3 baris dan 3 kolom ditampilkan di bawah ini:

Gambar 2.5 Deklarasi Array 2 dimensi

Menginisialisasi Array Dua Dimensi : Ada dua cara untuk menginisialisasi array
Dua Dimensi.

Metode Pertama :
int x [4] [5] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}

Array di atas memiliki 4 baris dan kolom. Elemen-elemen dalam kurung


kurawal dari kiri ke kanan juga disimpan dalam tabel dari kiri ke kanan. Elemen akan
diisi dalam array secara berurutan, 4 elemen pertama dari kiri pada baris pertama, 4
elemen berikutnya pada baris kedua, dan seterusnya.
Metode yang Lebih Baik :
int x [4] [5] = {{0,1,2,3,4}, {5,6,7,8,9}, {10,11,12,13,14},{15,16,17,18,19}};
Jenis inisialisasi ini menggunakan tanda kurung bersarang. Setiap set kawat
gigi bagian dalam mewakili satu baris. Dalam contoh di atas, total ada tiga baris jadi
ada tiga set kawat gigi bagian dalam.

Mengakses Elemen Array Dua Dimensi: Elemen dalam array Dua Dimensi
diakses menggunakan indeks baris dan indeks kolom. Contoh:
int x [2] [1];

Contoh di atas mewakili elemen yang ada di baris ketiga dan kolom
kedua.

Catatan : Dalam array jika ukuran array adalah N. Indeksnya akan dari 0 hingga N-
1. Oleh karena itu, untuk indeks baris 2 nomor baris adalah 2 + 1 = 3.
Untuk mengeluarkan semua elemen dari array Dua Dimensi kita dapat menggunakan
nested for loops. Kami akan membutuhkan dua untuk loop. Satu untuk melintasi
baris dan satu lagi untuk melintasi kolom.

Listing Program C++ untuk mencetak Elemen a


// Program C++ untuk mencetak elemen a
// Array dua dimensi
#include<iostream>
using namespace std; int
main()
{
// array dengan 4 baris dan 3 kolom.
int x[4][3] = {{0,1,2}, {3,4,5}, {6,7,8},{9,10,11}};
// // keluarkan nilai setiap elemen array for
( int i = 0; i < 4; i++)
{
for ( int j = 0; j < 3; j++)
{
cout << "Elemen di x[" << i
<< "][" << j << "]: " ;
cout << x[i][j]<<endl;
}
}
return 0;
}

Output dari program diatas:


Elemen di x[0][0]: 0
Elemen di x[0][1]: 1
Elemen di x[0][2]: 2
Elemen di x[1][0]: 3
Elemen di x[1][1]: 4
Elemen di x[1][2]: 5
Elemen di x[2][0]: 6
Elemen di x[2][1]: 7
Elemen di x[2][2]: 8
Elemen di x[3][0]: 9
Elemen di x[3][1]: 10
Elemen di x[3][2]: 11

Array Tiga Dimensi

Gambar 2.6 Deklarasi Array 3 Dimensi


Inisialisasi Array Tiga Dimensi : Inisialisasi dalam array Tiga Dimensi sama
dengan array Dua dimensi. Perbedaannya adalah dengan bertambahnya jumlah
dimensi maka jumlah kurung kurawal juga akan bertambah.
Metode 1 :
int x [2] [3] [5] =
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29};

Metode yang Lebih Baik :


int x [2] [3] [5] =
{{{0,1,2,3,4}, {5,6,7,8,9}, {10,11,12,13,14}},
{{15,16,17,18,19}, {20,21,22,23,24},
{25,26,27,28,29}}};

Mengakses elemen dalam Array Tiga Dimensi : Mengakses elemen dalam


Array Tiga Dimensi juga mirip dengan yang ada di Array Dua Dimensi.
Perbedaannya adalah kita harus menggunakan tiga loop, bukan dua loop untuk satu
dimensi tambahan dalam Array Tiga Dimensi.
Dengan cara serupa, kita dapat membuat array dengan sejumlah dimensi.
Namun kompleksitas juga meningkat dengan bertambahnya jumlah dimensi. Array
multidimensi yang paling banyak digunakan adalah Array Dua Dimensi
Listing Program C ++ untuk mencetak elemen pada Array Tiga Dimensi
// Program C ++ untuk mencetak elemen pada Array Tiga Dimensi
#include<iostream>
using namespace std; int
main()
{
// menginisialisasi array 3 dimensi
int x[3][2][3] =
{
{ {0,1,2}, {3,4,5} },
{ {6,7,8}, {9,10,11} },
{ {12,13,14},{15,16,17}}
};
// keluarkan nilai setiap elemen
for ( int i = 0; i < 3; ++i)
{
for ( int j = 0; j < 2; ++j)
{
for ( int k = 0; k < 3; ++k)
{
cout << "Elemen di x[" << i << "][" << j
<< "][" << k << "] = " << x[i][j][k]
<< endl;
}
}
}
return 0;
}

Output dari program diatas:


Elemen di x[0][0][0] = 0
Elemen di x[0][0][1] = 1
Elemen di x[0][0][2] = 2
Elemen di x[0][1][0] = 3
Elemen di x[0][1][1] = 4
Elemen di x[0][1][2] = 5
Elemen di x[1][0][0] = 6
Elemen di x[1][0][1] = 7
Elemen di x[1][0][2] = 8
Elemen di x[1][1][0] = 9
Elemen di x[1][1][1] = 10
Elemen di x[1][1][2] = 11
Elemen di x[2][0][0] = 12
Elemen di x[2][0][1] = 13
Elemen di x[2][0][2] = 14
Elemen di x[2][1][0] = 15
Elemen di x[2][1][1] = 16
Elemen di x[2][1][2] = 17

Array vs Pointer
Array dan pointer adalah dua hal yang berbeda (kita dapat memeriksa dengan
menerapkan sizeof). Kebingungan terjadi karena nama array menunjukkan alamat
elemen pertama dan array selalu dilewatkan sebagai pointer (bahkan jika kita
menggunakan tanda kurung siku).
Apa itu vektor di C ++?
Vektor di C ++ adalah kelas di STL yang merepresentasikan sebuah array.
Keuntungan vektor dibandingkan array normal adalah,
a. Kita tidak membutuhkan pass size sebagai parameter tambahan ketika kita
mendeklarasikan vektor, misalnya, Vektor mendukung ukuran dinamis (kita tidak
harus menentukan ukuran vektor pada awalnya). Kami juga dapat mengubah
ukuran vektor.
b. Vektor memiliki banyak fungsi bawaan seperti, menghilangkan elemen, dll.

C. SOAL LATIHAN/TUGAS

1. Dideklarasikan Array 1 Dimensi yang dibuat dengan char x[12]. Jika diketahui &x[0]
= 1000 Hexadecimal. Ditanya alamat elemen x[8] atau &x[8] = …..?
2. Dideklarasikan Array 1 Dimensi yang dibuat dengan int x[15]. Jika diketahui
&x[3] = 1000 H, Ditanya &x[9] =…?
3. Dideklarasikan Array 2 Dimensi yang dibuat dengan float x[5][8]. Jika diketahui
&x[0] [0]= 1000 H, Ditanya &x[2] [4]=…?
4. Dideklarasikan Array 2 Dimensi yang dibuat dengan long x[12][14]. Jika diketahui
&x[0] [0]= 1000 H, Ditanya &x[2] [4]=…?
5. Dideklarasikan Array 3 Dimensi yang dibuat dengan int x [2][3] [5]. Jika diketahui &x
[1][1] [4]= 12EF H, Ditanya &x [0][0] [3]= ….?
D. REFERENSI

Drozdek, A. (2012). Data Structures and Algorithms in C++, Fourth Edition. United
States: Changeage Learning.
Goodrich, M. T., Tamassia, R., & Mount, D. M. (2011). Data Structures and
Algorithms in C++, Second Edition. United States: John Wiley & Sons, Inc.
Jain, H. (2016). Problem Solving in Data Structures & Algorithms Using C++ First
Edition. CreateSpace Independent Publishing Platform.
Karumanchi, N. (2017). Data Structures And Algorithms Made Easy. Bombay: CareerMonk
Publications.
Sjukani, M. (2012). Struktur Data (Algoritma dan Struktur Data 2), Edisi 5. Jakarta:
Mitra Wacana Media.
Weiss, M. A. (2014). Data structures and algorithm analysis in C++, Fourth Edition.
Florida: Addison Wesley.

Anda mungkin juga menyukai