Langsung ke konten utama

Iklan





Array pada Bahasa C dan C++

Array adalah sekumpulan item yang disimpan secara berurutan dalam lokasi memori dan setiap elemennya dapat diakses secara bebas menggunakan penomoran array. Array digunakan untuk menyimpan tipe data yang sama sebagai tipe data dalam satu kesatuan. Array juga bisa digunakan untuk menyimpan tipe data primitif seperti int, float, double, char, dan lain sebagainya. Untuk melakukan penambahan data ke tipe data string, array pada bahasa C dan C++ dapat menyimpan tipe data derivasi sebagai sebuah struct, pointer, dan lain sebagainya. gambar 1 memperlihatkan representasi dari array string.


Alasan Penggunaan Array
Karena variabel normal hanya bisa digunakan untuk objek data yang berukuran kecil dan ingin menyimpan data dalam ukuran besar, maka akan sangat sulit sekali dilakukan jika menggunakan variabel normal.

Deklarasi Array dalam Bahasa C dan C++



Iklan

Terdapat banyak cara untuk melakukan deklarasi array. Salah satunya adalah dengan penentuan tipe dan ukuran data melalui inisialisasi ataupun keduanya seperti diperlihatkan pada gambar 2.

  • satu, Deklarasi Array oleh Ukuran Spesifik
// Deklarasi array dengan penentuan nilai
int arr1[10];

// Atau dengan versi terdahulu dari bahasa C,
// maka dapat dideklarasikan array dengan penentuan nilai
// sebagai berikut
int n = 10;
int arr2[n];


dua, Deklarasi Array oleh Inisialisasi Elemen
// Deklarasi array dengan inisialisasi elemen
int arr[] = { 10, 20, 30, 40 }
int arr[4] = {10, 20, 30, 40}

tiga, Deklarasi Array dengan Penentuan Ukuran dan Inisialisasi Elemen
// Deklarasi array dengan penentuan ukuran dan elemen
int arr[6] = { 10, 20, 30, 40 }
int arr[] = {10, 20, 30, 40, 0, 0}

Kelebihan Penggunaan Array:
  • satu, Akses bebas dari elemen menggunakan indeks array.
  • dua, Menggunakan sedikit kode program untuk membuat sebuah array tunggal dari berbagai macam elemen.
  • tiga, Kemudahan akses terhadap semua elemen.
  • empat, traversal melalui array menjadi lebih mudah dengan menggunakan satu kali looping.
  • lima, Proses pengelompokkan data menjadi lebih mudah karena bisa dilakukan dengan menggunakan baris kode yang lebih pendek.

Kekurangan Penggunaan Array:
  • satu, Tidak memungkinkan untuk input sejumlah elemen ketika ditentukan pada saat deklarasi. 
  • dua, Penyisipan dan penghapusan elemen dapat memakan alokasi memori berlebih karena elemen tersebut perlu dikelola sesuai dengan alokasi memori baru.

Fakta Tentang Array:
satu, Akses elemen arrayElemen array diakses dengan menggunakan indeks integer. Indeks array dimulai dengan angka 0 dan berlanjut hingga nilai array tertentu seperti diperlihatkan pada gambar 3 berikut ini.


Contoh pada Bahasa C

#include <stdio.h>

 

int main()

{

int arr[5];

arr[0] = 5;

arr[2] = -10;

 

arr[3 / 2] = 2

// sama seperti arr[1] = 2

 

arr[3] = arr[0];

 

printf("%d %d %d %d", arr[0], arr[1], arr[2], arr[3]);

return 0;

} 

Output:
5 2 -10 5

Contoh pada Bahasa C++

#include <iostream>

using namespace std;

 

int main()

{

int arr[5];

arr[0] = 5;

arr[2] = -10;

 

// sama seperti arr[1] = 2

arr[3 / 2] = 2;

 

arr[3] = arr[0];

 

cout << arr[0] << " " << arr[1]<< " " << arr[2] << " " << arr[3];

return 0;

} 

Output:
5 2 -10 5

  • dua, Tidak ada indeks yang keluar dari pemeriksaan terikat: Program berikut ini jika dikompilasi maka tidak akan mengeluarkan pesan error apapun ketika dikompilasi, namun ketika dijalankan maka akan mengeluarkan hasil output yang tidak dapat diprediksi.


Iklan
Bahasa C

// This C program compiles fine

// as index out of bound

// is not checked in C.

#include <stdio.h>

 

int main()

{

int arr[2];

printf("%d ", arr[3]);

printf("%d ", arr[-2]);

return 0;

} 

Output:
2008101287 4195777

Bahasa C++

// This C++ program compiles fine

// as index out of bound

// is not checked in C.

#include <iostream>

using namespace std;

 

int main()

{

int arr[2];

 

cout << arr[3] << " ";

cout << arr[-2] << " ";

return 0;

} 

Output:
2008101287 4195777

  • tiga, Pada bahasa C bukan kesalahan dari kompilator untuk menginisialisasi array dengan lebih banyak elemen daripada ukuran yang telah ditentukan.

#include <stdio.h>

 

int main()

{

// Deklarasi array dengan

// inisialisasilebih banyak

// elemen daripada

// spesifikasinya.

int arr[2] = { 

10, 20, 30, 40, 50 };

return 0;

}

 

Output:
Warning:
prog.c: In function 'main':
prog.c:7:25: warning: excess elements in array initializer
int arr[2] = { 10, 20, 30, 40, 50 };
^
prog.c:7:25: note: (near initialization for 'arr')
prog.c:7:29: warning: excess elements in array initializer
int arr[2] = { 10, 20, 30, 40, 50 };
^
prog.c:7:29: note: (near initialization for 'arr')
prog.c:7:33: warning: excess elements in array initializer
int arr[2] = { 10, 20, 30, 40, 50 };
^
prog.c:7:33: note: (near initialization for 'arr')


Catatan: Program tersebut tidak dapat dikompilasi pada bahasa C++. jika program tersebut disimpan sebagai .cpp, maka program akan menghasilkan pesan error "error. too many initializers for 'int".

  • empat, Elemen disimpan secara berkelanjutan pada memori lokasi.

Bahasa C:

// Program Bahasa C untuk

// mendemonstrasikan elemen

// array disimpan pada lokasi

// yang berkelanjutan.

#include <stdio.h>

 

int main()

{

// Array dari integer 10. Jika

// arr[0] disimpan pada alamat

// x, maka arr[1] akan

// disimpan pada alamat x +

// sizeof(int), dan arr[2]

// akan disimpan pada alamat x

// + sizeof(int), dan

// seterusnya.

int arr[5], i;

 

printf("Ukuran integer pada"

" kompilator ini adalah"

" %lu\n", sizeof(int));

 

for (i = 0; i < 5; i++)

// Kegunaan dari tanda '&'

// yang diletakkan sebelum

// nama variabel adalah

// mengindikasikan nilai dari

// alamat variabel yang berada

// setelahnya.

printf("Alamat arr[%d] adalah"

" %p\n", i, &arr[i]);

return 0;

}

Output:
Ukuran integer pada kompilator ini adalah 4
Alamat arr[0] adalah 0x7ffd636b4260
Alamat arr[1] adalah 0x7ffd636b4264
Alamat arr[2] adalah 0x7ffd636b4268
Alamat arr[3] adalah 0x7ffd636b426c
Alamat arr[4] adalah 0x7ffd636b4270

Bahasa C++:

// Program C++ untuk

// mendemonstrasikan bahwa

// elemen array disimpan pada

// lokasi yang berkelanjutan.

#include <iostream>

using namespace std;

 

int main()

{

// Array dari integer 10. Jika

// arr[0] disimpan pada alamat

// x, maka arr[1] akan

// disimpan pada alamat x +

// sizeof(int), dan arr[2]

// akan disimpan pada alamat x

// + sizeof(int), dan

// seterusnya.

int arr[5], i;

 

cout << "Ukuran integer pada"

" kompilator ini adalah" << sizeof(int) << "\n";

 

for (i = 0; i < 5; i++)

// Kegunaan dari tanda '&'

// yang diletakkan sebelum

// nama variabel adalah

// mengindikasikan nilai dari

// alamat variabel yang berada

// setelahnya.

cout << "Alamat arr[" << i << 

"] adalah " << &arr[i] << 

"\n";

return 0;

}

Output:
Ukuran integer pada kompilator ini adalah 4
Alamat arr[0] adalah 0x7ffd636b4260
Alamat arr[1] adalah 0x7ffd636b4264
Alamat arr[2] adalah 0x7ffd636b4268
Alamat arr[3] adalah 0x7ffd636b426c
Alamat arr[4] adalah 0x7ffd636b4270

Array vs Pointer
Array dan pointer adalah dua hal yang berbeda. Kebingungan ini terjadi karena nama array mengindikasikan alamat dari elemen pertama dan array selalu melewatkan pointer.

Pengertian Vector
Vector pada C++ adalah sebuah class pada STL yang merepresentasikan array. Keunggulan dari vector daripada array adalah:
  • satu, Tidak melewatkan ukuran parameter ekstra ketika mendeklarasikan sebuah vector atau vector support dynamic size. Ukuran vector juga dapat diubah-ubah.
  • dua, Vector memiliki banyak fungsi built-in seperti hapus, tambah, dan lain sebagainya.

Beberapa Karakter dari Penggunaan Array dalam Bahasa C
  • satu, Array bisa memiliki semua tipe data kecuali void dan fungsi.
  • dua, Array dan pointer adalah dua hal yang berbeda. Keduanya terlihat mirip karena array memberikan alamat dari elemen pertama dan elemen array dapat diakses menggunakan pointer aritmatika seperti yang telah dijelaskan sebelumnya.
  • tiga, Array selalu dilewatkan sebagai pointer ke fungsi.
  • empat, Sebuah karakter array dengan double qouted string memiliki elemen sebagai '\0'.
  • lima, Seperti variabel lainnya, array dapat mengalokasikan memori pada salah satu dari tiga segmentasi data, heap, dan stack.


Iklan

Komentar

  1. Apa yang dimaksud dengan array pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Array didefinisikan sebagai kumpulan jenis item data serupa yang disimpan pada lokasi memori yang saling berdekatan. Array adalah tipe data turunan dalam bahasa pemrograman C yang dapat menyimpan tipe data primitif seperti int, char, double, float, dan lain sebagainya. Dengan menggunakan array, pengguna dapat mengakses elemen dengan mudah pada program bahasa C.

      Hapus
    2. Array adalah grup atau kumpulan dari tipe data yang sama. Contoh, array int yang digunakan untuk menampung nilai dengan tipe data integer dan array float yang digunakan untuk menampung data dengan tipe data bilangan desimal.

      Hapus
    3. Array pada bahasa C adalah kumpulan variabel yang memiliki tipe data yang sama dapat dapat digunakan untuk menyimpan sekelompok data dengan tipe data yang sama dalam sebuah array atau variabel array. Array mungkin termasuk salah satu tipe data, dengan ukuran array harus berupa nilai konstan. Juga, lokasi memori yang saling berdekatan digunakan untuk menyimpan elemen array dalam memori pada program bahasa C.

      Hapus
  2. Bagaimana array diklasifikasi pada bahas pemrograman C?

    BalasHapus
    Balasan
    1. Array diklasifikasi sebagai struktur data homogen karena menyimpan elemen dengan tipe data yang sama. Array dapat menyimpan angka, string, nilai boolean, karakter, object, dan lain sebagainya.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D