Dokumen tersebut membahas tentang penggunaan array untuk menyimpan data di memori. Array adalah variabel yang dapat menyimpan kumpulan data dengan tipe yang sama menggunakan indeks. Dokumen menjelaskan tentang deklarasi, akses, dan alokasi memori untuk array baik secara statis maupun dinamis.
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
ARRAY-OPTIMIZED
1. PEMROGRAMAN DASAR
KD. MENGANALISIS PENGGUNAAN
ARRAY UNTUK PENYIMPANAN DATA DI
MEMORI
Disusun Oleh : Zainul Arifin, S. Kom
SMK NEGERI 1 PUNGGING MOJOKERTO
A. PENGERTIAN ARRAY.
Array (larik) ialah sekumpulan variabel-variabel yang memiliki nama dan
tipe data yang sama satu dengan lainnya. Juga bisa diartikan sebagai
sekelompok data sejenis yang tersimpan di dalam variabel dengan nama sama.
maka dari itu Untuk dapat membedakan antara array satu dengan lainnya
dapat dengan memberikan indeks pada masing-masing variable tersebut.
Dalam menyusun fungsi array terdapat 3 struktur yang paling mendasar, antara
lain :
1) Kumpulan data dengan tipe sama yang jumlahnya tertentu
2) Akses setiap elemen menggunakan indeks
3) Disimpan pada tempat yang saling bersambungan (contiguous)
Array menggunakan indeks integer untuk menentukan urutan elemen-
elemennya, dimana elemen pertamanya dimulai dari indeks 0,elemen kedua
memiliki indeks 1, dan seterusnya.
2. Contoh :
Angka untuk menyimpan sederetan bilangan.
Buku untuk menyimpan sekumpulan data buku.
Mahasiswa untuk menyimpan beberapa data mahasiswa.
Sebagai contoh jika A merupakan sebuah array dengan tipe integer, maka
notasi dari array A adalah: A[n], dengan n merupakan angka index dari array
tersebut misal:
A[0]=100
A[1]=200
A[2]=300
A[3]=400
B. DEKLARASI VARIABEL ARRAY.
Mendeklarasikan variabel array dengan tipe data yang diinginkan dengan
cara yang hampir sama dengan variabel biasa. Misalnya untuk mendeklarasikan
variabel bertipe integer, dapat dilakukan dengan cara :
int [ ] bilangan; atau int bilangan [ ];
Jadi perbedaan utama pendeklarasian variabel array dengan variabel
biasa adalah adanya tanda kurung [ ] di akhir tipe data atau di akhir nama
variabel array. Pada tahap pendeklarasian variabel array ini belum ada alokasi
memory untuk menyimpan data.
Variabel array dideklarasikan dengan mencantumkan tipe dan nama
variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat.
1) Deklarasi Array Dimensi Satu.
Bentuk umum :
Tipe_array nama_array [ukuran];
Contoh :
3. Int nilai [3] = {80, 85, 90};
Artinya : mendefinisikan 3 variabel bertipe integer
Atau juga bisa dengan bentuk lain :
Nilai [0] = 80;
Nilai [1] = 85;
Nilai [2] = 90;
2) Array Dimensi Dua.
Array dua dimensi merupakan array yang terdiri dari m buah baris
dan n buah buah kolom bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array [baris][kolom]
Contoh :
float nilai_uts [2][3];
Atau kita bisa menginialisasinya langsung seperti :
float nilai_uts [2][3] = {{75,80,85}, {87,90,98}};
yang akan menempati elemen memori dengan susunan
0 1 2
0 75 80 85
1 87 90 98
3) Array Dimensi Banyak
Array multidimensi merupakan array yang mempunyai ukuran lebih
dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan
deklarasi array dimensi satu maupun dimensi dua.
Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
4. Indeks adalah sebuah angka yang menyatakan urutan sebuah elemen
pada suatu variabel array
Nomor indeks variabel array selalu dimulai dari 0 (nol), sehingga
nomor indeks bagi elemen terakhir sebesar (N-1), dimana N adalah
jumlah total elemen.
Untuk mengakses dapat dilakkan setiap elemen dalam variabel array
dengan mengacu pada nomor indeksnya.
C. TIPE DATA ARRAY.
Tipe data array adalah tipe data bentukan yang terdiri dari kumpulan
tipe data lain. Daripada membuat 10 variabel yang terdiri dari nama1, nama2,
nama3, dst, akan lebih efisien jika variabel nama ini disimpan ke dalam array.
5. Sebagai contoh, perhatikan kode program (Menggunakan Bahasa Pascal)
berikut ini:
program tipe_array;
uses crt;
var
nilai1, nilai2, nilai3, nilai4: integer;
begin
clrscr;
nilai1:= 23;
nilai2:= 13;
nilai3:= 98;
nilai4:= 106;
writeln('nilai1: ',nilai1);
writeln('nilai2: ',nilai2);
writeln('nilai3: ',nilai3);
writeln('nilai4: ',nilai4);
readln;
end.
Dalam contoh tersebut saya membuat 4 variabel: nilai1, nilai2, nilai3 dan
nilai4. Keempat variabel ini bertipe integer.
Tidak ada yang salah dari kode program diatas. Tapi bayangkan apabila kita
ingin menyimpan lebih dari 4 nilai, bagaimana jika 10 atau 100 nilai? Tentu
tidak efisien jika kita harus membuat variabel nilai1, nilai2, nilai3… sampai
dengan nilai100. Untuk hal inilah tipe data array lebih cocok digunakan.
D. CARA MENGGUNAKAN TIPE DATA ARRAY DALAM BAHASA PASCAL.
Untuk membuat tipe data array di pascal, kita harus menentukan
seberapa banyak element array yang ingin dibuat. Element adalah sebutan
untuk ‘anggota’ atau isi dari array. Sebagai contoh, untuk membuat 10 element
array bertipe integer saya bisa menggunakan kode berikut:
var
nilai: array[0..9] of integer;
6. Sekarang, variabel ‘nilai’ berisi array dengan 10 element bertipe integer.
Perhatikan angka 0..9, ini berarti saya membuat element array dari element 0,
element 1, element 2, element 3,.. hingga element 9 (total terdapat 10 element).
Bagaimana cara mengakses element ini? kita bisa mengaksesnya melalui nomor
index. Index adalah urutan element di dalam sebuah array. Sebagai contoh,
untuk mengakses element ke – 2, kita bisa menulis: nilai[2]. Untuk mengakses
element ke-6, bisa menggunakan: nilai[6].
Berikut contoh kode program pascal cara penggunaan tipe data array:
program tipe_array;
uses crt;
var
nilai: array[0..9] of integer;
begin
clrscr;
nilai[0]:= 23;
nilai[1]:= 13;
nilai[2]:= 98;
nilai[3]:= 106;
writeln('nilai0: ',nilai[0]);
writeln('nilai1: ',nilai[1]);
writeln('nilai2: ',nilai[2]);
writeln('nilai3: ',nilai[3]);
readln;
end.
OUTPUT
7. Pada contoh diatas, saya membuat variabel ‘nilai’ sebagai array yang
berisi 10 element integer. Di dalam variabel ‘nilai’ ini, index array dimulai dari
0 hingga 9, karena saya menulisnya dengan array[0..9] of integer. Jika anda
ingin membuat 100 element array, bisa menulisnya sebagai array[0..99] of
integer.
Walaupun saya membuat 10 element, tapi kita tidak harus mengisi semua
element ini. Pada contoh tersebut, saya hanya mengisi 4 element. Bagaimana
dengan element lainnya? ini akan menggunakan nilai default (bawaan) pascal,
biasanya berisi angka 0 untuk tipe data integer.
Selain itu, kita juga tidak harus mengisinya secara berurutan. Kita bisa
mengisi element-element array ini secara acak, selama masih dalam batas yang
ditetapkan. Berikut contohnya:
program tipe_array;
uses crt;
var
nilai: array[0..9] of integer;
begin
clrscr;
nilai[3]:= 23;
nilai[9]:= 13;
nilai[2]:= 98;
nilai[0]:= 106;
writeln('nilai3: ',nilai[3]);
writeln('nilai9: ',nilai[9]);
writeln('nilai2: ',nilai[2]);
writeln('nilai0: ',nilai[0]);
writeln('nilai1: ',nilai[1]);
writeln('nilai7: ',nilai[7]);
readln;
end.
OUTPUT
8. Berikutnya melakukan pengisian element secara acak, dan juga saya
menampilkan element nilai[1] dan nilai[7] yang memang tidak diisi dengan
nilai. Hasilnya? pascal akan menggunakan nilai default: 0.
Bagaimana jika kita melewati batas element array? Misalnya saya
mengakses element ke 10? Pascal akan meneluarkan error: Range check
error while evaluating constants.
Kita tidak hanya bisa membuat array bertipe integer saja, tapi juga bisa
menggunakan tipe lain seperti real, char atau string. Berikut contohnya:
program tipe_array;
uses crt;
var
kata: array[20..25] of string[20];
begin
clrscr;
kata[24]:= 'Sedang ';
kata[25]:= 'belajar pascal ';
write(kata[24]);
9. write(kata[25]);
readln;
end.
Cara membuat variabel kata dengan array berjumlah 10 element yang masing-
masing isinya adalah string[20].
Bisa kita lihat bahwa saya menggunakan penomoran array mulai dari 20
hingga 25. Ini tidak menjadi masalah, selama kita juga mengaksesnya dengan
index yang sesuai. Berikut hasil yang didapat:
E. ALOKASI MEMORI
Dalam pemrograman, perlu untuk menyimpan data komputasi. Data-data
ini disimpan dalam memori. Lokasi memori untuk menyimpan data dalam
pemrograman komputer dikenal sebagai variabel. Variabel memiliki tipe data
tertentu. Oleh karena itu, memori dialokasikan untuk menjalankan program.
Memori dapat dialokasikan dengan dua cara.
Mereka adalah alokasi memori statis dan alokasi memori dinamis. Dalam
alokasi memori statis, sekali memori dialokasikan itu tidak dapat diubah.
Memori tidak dapat digunakan kembali. Tetapi dalam alokasi memori dinamis,
setelah memori dialokasikan itu dapat diubah. Itu perbedaan utama antara
alokasi memori statis dan dinamis adalah itu dalam alokasi memori statis
setelah memori dialokasikan, ukuran memori diperbaiki sedangkan dalam
alokasi memori dinamis, setelah memori dialokasikan, ukuran memori dapat
diubah.
10. 1) ALOKASI MEMORI STATIS
Dalam alokasi memori statis, memori yang dialokasikan diperbaiki.
Setelah memori dialokasikan, itu tidak dapat diubah. Memori tidak dapat
ditingkatkan atau diturunkan. Misalnya, dalam bahasa C jika programmer
menulis int x, yang berarti bahwa variabel dapat menyimpan nilai integer.
Jumlah byte tergantung pada komputer.
Mungkin juga ada array. Misalnya. int x [5]; X ini adalah larik yang
dapat menyimpan urutan data dengan tipe yang sama. Itu dapat menyimpan
lima elemen integer. Itu tidak dapat menyimpan lebih dari lima elemen. Di
Java, array dapat dibuat sebagai, int arr [] = new int [5]; Array 'arr' dapat
menyimpan 5 nilai integer dan tidak dapat menyimpan lebih dari itu.
Dalam alokasi memori statis, setelah variabel dialokasikan, mereka
tetap permanen. Setelah alokasi awal, pemrogram tidak dapat mengubah
ukuran memori. Jika pemrogram mengalokasikan array yang dapat
menyimpan 10 elemen, tidak mungkin untuk menyimpan nilai lebih dari
jumlah yang ditentukan.
11. Jika programmer awalnya mengalokasikan array yang dapat
menampung 10 elemen, tetapi hanya membutuhkan 5 elemen, maka ada
pemborosan memori. Memori itu tidak lagi diperlukan, tetapi juga tidak
mungkin untuk menggunakan kembali memori. Alokasi memori statis
diperbaiki tetapi implementasinya sederhana dan mudah, dan juga cepat.
2) ALOKASI MEMORI DINAMIS
Terkadang perlu untuk mengubah ukuran memori. Jadi memori dapat
dialokasikan secara dinamis. Bergantung pada penyisipan dan penghapusan
elemen data, memori dapat tumbuh atau menyusut. Ini dikenal sebagai
alokasi memori dinamis.
Dalam bahasa C, file header stdlib.h, ada empat fungsi untuk alokasi
memori dinamis. Mereka adalah calloc, malloc, realloc dan gratis. Fungsi
malloc () mengalokasikan ukuran byte yang diperlukan dan mengembalikan
pointer kosong, menunjuk byte pertama dari memori yang dialokasikan.
Fungsi calloc () mengalokasikan ukuran byte yang diperlukan dan
menginisialisasi mereka ke nol.
Kemudian mengembalikan pointer kosong ke memori. Fungsi bebas ()
digunakan untuk merealokasi memori yang dialokasikan. Dan fungsi
realokasi dapat memodifikasi memori yang dialokasikan sebelumnya.
Setelah mengalokasikan memori menggunakan calloc atau malloc, ukuran
memori diperbaiki, tetapi mereka dapat ditingkatkan atau dikurangi
menggunakan fungsi realloc. Di Jawa, koleksi dapat digunakan untuk alokasi
memori dinamis.
Keuntungan utama alokasi memori dinamis adalah menghemat
memori. Programmer dapat mengalokasikan memori atau melepaskan
memori sesuai kebutuhan. Memori dapat dialokasikan kembali selama
eksekusi dan dapat membebaskan memori saat tidak diperlukan. Alokasi
memori dinamis juga lebih efisien daripada alokasi memori statis. Salah satu
12. kelemahannya adalah mengimplementasikan alokasi memori dinamis itu
kompleks.
F. PERSAMAAN DAN PERBEDAAN ALOKASI MEMORI STATIS DAN DINAMIS
Persamaan
Keduanya adalah mekanisme alokasi memori.
Keduanya harus diimplementasikan oleh programmer secara manual.
Perbedaan
Alokasi Static vs Dynamic Memory
Alokasi memori statis adalah metode
mengalokasikan memori, dan setelah
memori dialokasikan, itu diperbaiki.
Alokasi memori dinamis adalah metode
mengalokasikan memori, dan begitu
memori dialokasikan, itu dapat diubah.
Modifikasi
Dalam alokasi memori statis, tidak
mungkin untuk mengubah ukuran
setelah alokasi awal.
Dalam alokasi memori dinamis, memori
dapat diminimalkan atau
memaksimalkan sesuai.
Penerapan
Alokasi memori statis mudah
diimplementasikan.
Alokasi memori dinamis rumit untuk
diterapkan.
Kecepatan
Dalam memori statis, eksekusi alokasi
lebih cepat daripada alokasi memori
dinamis.
Dalam memori dinamis, eksekusi alokasi
lebih lambat daripada alokasi memori
statis.
Pemanfaatan Memori
Dalam alokasi memori statis, tidak dapat
menggunakan kembali memori yang
tidak digunakan.
Alokasi memori dinamis memungkinkan
penggunaan kembali memori.
Programmer dapat mengalokasikan lebih
banyak memori bila diperlukan. Dia
dapat melepaskan memori bila perlu.