MODUL PERKULIAHAN
Algoritma Pemrograman & Struktur Data Array
Fakultas
Program Studi
Fakultas Ilmu Komputer
Informatika
Tatap Muka
02
Kode MK
Disusun Oleh
87042
Rinto Priambodo, ST, MTI
Abstract
Kompetensi
Penjelasan mengenai array dan penggunaannya
Memahami definisi array dan penggunaannya dalam pemrograman
Pembahasan Array Array adalah sebuah tipe data yang digunakan untuk merepresentasikan sejumlah data yang homogen sebagai sebuah variabel. Data yang disimpan dalam array bisa bertipe char, di mana array tersebut kemudian bisa dianggap sebagai sebuah string. Data yang disimpan dalam array juga bisa bertipe int, float, atau bahkan berupa array lainnya. Jika variabel diilustrasikan sebagai sebuah bata, maka sederet atau sekumpulan bata yang dipasang di satu sisi tembok bisa dianggap sebagai sebuah array bata. Dengan demikian dalam sebuah rumah, kita bisa melihat ada variabel tembok yang merupakan array bata, ada variabel atap yang merupakan array genteng, variabel lantai yang merupakan array ubin, dan seterusnya. Sebuah bata, genteng atau ubin, jika tidak digunakan sebagai tembok, atap atau lantai dapat diperlakukan dan digunakan sebagai sebuah variabel. Demikan juga tembok, atap dan lantai juga bisa diperlakukan dan digunakan sebagai sebuah variabel.
Variabel
Array Gambar 1. Variabel dan array
Array menempati lokasi yang berurutan dalam memori komputer. Tiap bagian array disebut dengan elemen. Jumlah elemen dalam array disebut sebagai dimensi dari array tersebut. Contoh deklarasi array dalam bahasa C++ adalah sebagai berikut: int data_list[3]; Deklarasi tersebut menyatakan sebuah array yang memiliki tiga buah elemen, yaitu data_list[0], data_list[1] dan data_list[2] yang masing-masing adalah sebuah variabel. Untuk mereferensikan setiap elemen, digunakanlah indeks. Dalam C++ indeks dimulai dari angka 0, sehingga apabila terdapat tiga element, maka indeks tertinggi adalah 2. Namun demikian, dalam C++ apabila kita telah mendeklarasikan, misalnya, data_list[3] yang memiliki 3 elemen dan kemudian kita berusaha mengakses variabel data_list[3] maka tidak akan menyebabkan error. Namun demikian, isi dari data_list[3] tersebut sebenarnya tidak dialokasikan untuk array tersebut.
2014
2
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Berikut ini adalah contoh penggunaan array dalam C++: #include
float data[5]; // data to average and total float total; // the total of the data items float average; // average of the items main () {
data[0] = 34.0; data[1] = 27.0; data[2] = 46.5; data[3] = 82.0; data[4] = 22.0; total = data[0] + data[1] + data[2] + data[3] + data[4]; average = total / 5.0;
cout << "Total "<< total << " Average " << average << '\n'; return (0);
}
Program tersebut jika dijalankan akan menampilkan: Total 211.5 Average 42.3
String Seperti disampaikan di atas, string adalah array dari char. Untuk menandai akhir dari sebuah string maka elemen terakhir dari array tersebut diisi dengan karakter khusus, yaitu ‘\0’ (NUL). Berikut ini adalah contoh penggunaan string menggunakan array character: char name[4]; main () {
name[0] = 'S'; name[1] = 'a'; name[2] = 'm';
name[3] = '\0'; }
return (0);
Perhatikan bahwa kita harus mengalokasikan elemen terakhir untuk karakter penutup string.
2014
3
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Isi dari sebuah array tidak dapat langsung dipindahkan ke array lainnya. Karena string juga merupakan array, maka aturan tersebut juga berlaku untuk string. Contoh berikut ini tidak dapat dilakukan: name = “Sam”; Untuk memasukkan nilai string “Sam” kita harus melakukan cara berikut ini: #include <string.h> char name[4]; main() {
strcopy(name, “Sam”);
}
return(0);
Dalam C++ fungsi strcopy telah disediakan untuk mengkopi sebuah string dari sebuah konstanta ke dalam sebuah variabel. Perhatikan bahwa untuk dapat menggunakan fungsi strcopy dalam C++ kita harus menambahkan library string.h dan konstanta string selalui ditulis menggunakan tanda petik ganda. String dalam C++ dideklarasikan dengan mendefinisikan panjang variabel. Sebagai contoh: #include <string.h> char string[50]; main() { strcopy(string, “Sam”); } Program di atas mendeklarasikan variabel string yang dapat menampung 50 char meskipun hanya digunakan untuk menyimpan tiga karakter string. Namun demikian, variabel string tersebut hanya dapat menampung maksimal 49 karakter string karena karakter terakhir dialokasikan untuk diisi oleh karakter NULL sebagai penutup string. Dalam C++ telah tersedia beberapa fungsi untuk bekerja dengan string, seperti strcopy, strcat, strlen, dan strcmp.
2014
4
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Array Multidimensi Array dapat memiliki lebih dari satu dimensi. Contoh untuk mendeklarasikan sebuah array dua dimensi adalah sebagai berikut: int matrix[2][4]; Untuk mengakses elemen dari matrix digunakanlah notasi berikut: matrix[1][2] = 10; Dalam C++ kita dapat mendeklarasikan array dengan jumlah dimensi berapapun selama sisa memory masih mencukupi. Contoh: four_dimensions[10][12][9][5]; Untuk menginsialisasi array multidimensi dalam C++ caranya serupa dengan array satu dimensi seperti contoh berikut: int matrix[2][4] = {
}
{ 1, 2, 3, 4 },
{ 10, 20, 30, 40 }
Cara tersebut merupakan peringkasan dari cari berikut: matrix[0][0] = 1; matrix[0][1] = 2; matrix[0][2] = 3; matrix[0][3] = 4;
matrix[1][0] = 10; matrix[1][1] = 20; matrix[1][2] = 30; matrix[1][3] = 40;
2014
5
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Pointer & Array Array dapat digunakan menggunakan pointer. Lihatlah contoh berikut: char array[5];
char *arrayptr = &array[0];
Gambar 2 Pointer dan array Dalam
contoh
dan
*(array_ptr+1)
gambar
sama
di
dengan
atas,
*array_ptr
array[1]
dan
sama
dengan
seterusnya.
array[0],
Namun
demikian
(*array_ptr)+1 tidak sama dengan array[1]. Jika +1 berada di luar tanda kurung maka ia ditambahkan setelah dilakukan de-referensi. Sehingga (*array_ptr)+1 sama dengan array[0]+1; Pointer pada dasarnya adalah alamat dalam memory. Dalam sebuah array, tiap elemen dimasukkan ke dalam alamat yang berurutan. Misalnya, array[0] diletakkan di alamat 0x00ff0024. Maka array[1] akan diletakkan di alamat 0x00ff0025 dan seterusnya. Dalam contoh berikut kita umpamakan variabel p
menempati alamat 0x0123 dan q
menempati alamat 0x0124 int *p;
cout << p << endl; int q = 23;
cout << &q << endl; p = &q;
cout << *p << endl; Jika dijalankan maka program di atas akan menghasilkan output 0x0123 0x0124 23 2014
6
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Dalam contoh berikutnya kita umpamakan variabel nums menempati alamat 0x0123. int nums[3] = { 2, 4, 9 }; cout << nums[0] << endl; cout << nums << endl; int *p = nums;
cout << *p << endl; p++;
cout << *p << endl; p++;
cout << *p << endl; Jika dijalankan maka program di atas akan menghasilkan output: 2
0x0123 2 4 9 Di awal penjelasan telah disampaikan bahwa kita dapat mengakses array menggunakan indeks di luar yang dialokasikan. Misalnya, dari deklarasi nums[3] yang memiliki indeks maksimal 2, maka kita tetap bisa mengakses num[3]. Hanya saja kita tidak mengetahui dan tidak bisa menjamin isi dari elemen dengan indeks tersebut. Begitu pula dengan contoh program di atas, apabila kita terus menambahkan p++ maka kita akan tetap bisa menampilkan isi dari *p. Hanya saja kita tidak bisa menjamin apa isinya apabila sudah di luar batas maksimal array nums.
2014
7
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Record Suatu saat kita akan membutuhkan sebuah tipe data yang dapat menampung beberapa informasi sekaligus. Misalnya kita ingin menyimpan data kemahasiswaan, maka untuk menyimpan data seorang mahasiswa kita akan membutuhkan sebuah tipe data yang berisi informasi berikut: -
Nama mahasiswa yang bertipe string (char dengan panjang 50) Nomor ID mahasiswa (integer) Nilai IPK mahasiswa (float)
Jika sebelumnya untuk menyimpan sekumpulan data dengan tipe data yang sama kita menggunakan array, maka saat ini kita membutuhkan tipe data baru untuk bisa menyimpan sekumpulan data dengan tipe data berbeda yaitu menggunakan structure. Dalam structure, tiap elemen dapat memiliki tipe data yang berbeda-beda. Berikut ini adalah contoh structure dalam C++: struct mahasiswa { char name[50]; int id; float ipk; }
2014
8
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Latihan 1. Buatlah program dalam bahasa C++ untuk membuat sebuah array dinamis!
2014
9
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Daftar Pustaka Oualline, S. (1995), Practical C+ Programming,O’Reilly & Associates, Inc.
2014
10
Algoritma Pemrograman dan Struktur Data Rinto Priambodo, ST, MTI
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id