Larik

Dalam ilmu komputer, **larik** () adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontigu) serta bertipe data sama pula.

Larik dapat diakses berdasarkan indeksnya. Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (*looping*).

## Larik Satu Dimensi
Larik satu dimensi merupakan jenis larik dasar dan jenis larik yang paling sering digunakan,
pemakaian larik satu dimensi terutama dipakai dalam tipe data string (terutama dalam bahasa Bahasa pemrograman C).

## Larik Dua Dimensi
Larik dua dimensi merupakan tipe larik yang lain. Larik dua dimensi sering dipakai untuk merepresentasikan tabel dan matriks dalam pemrograman.

## Larik dalam beberapa bahasa pemrograman

### Bahasa Pascal

Larik dalam bahasa Pascal dapat didefinisikan dengan indeks awal dan indeks akhirnya.

Contoh:
 program larik;
 var arr: array[1..10] of integer;  //larik dengan indeks awal 1 dan indeks akhir 10
 begin
   arr[1]:= 5; //memasukkan nilai ke indeks 1
   writeln(arr[i]); //mencetak angka 5
 end.

### Bahasa C

Larik dalam bahasa C selalu dimulai dari indeks 0. Larik dapat didefinisikan secara **statik** atau **dinamik**. Jika didefinisikan statik, ukuran larik akan tetap dari awal program hingga akhir program. Jika didefinisikan dinamik, ukuran larik dapat berubah selama program berjalan karena memesan tempat pada memori heap. Proses pemesanan tempat pada memori disebut dengan alokasi. Sedangkan proses pembebasan memori yang sudah dipesan disebut dengan dealokasi.

Contoh larik statik:
 #include 
 int main(){
   int arr[10]; //indeks awal 0 dan indeks akhir 9
   arr[0] = 5;
   printf("%d\n", arr[0]);
 }

Contoh larik dinamik:
 #include 
 int main(){
   int * arr;
   arr = (int *) malloc(10 * sizeof(int)); //memesan 10 tempat pada memori
   arr[0] = 5;
   free(arr);                              //menghancurkan larik. Memori pada heap dibebaskan
   arr = (int *) malloc(5 * sizeof(int));  //memesan 5 tempat baru pada memori
   free(arr);                              //di akhir program jangan lupa untuk menghancurkan larik dinamik
 }

### Bahasa Java

Dalam bahasa Java tipe data larik direpresentasikan sebagai sebuah objek khusus. Karena itu pada bahasa Java larik yang dibuat selalu bersifat dinamik. Namun walaupun bersifat dinamik, larik pada bahasa Java tidak perlu dihancurkan karena proes penghancuran dilakukan secara otomatis melalui suatu prosedur yang disebut dengan pengumpulan sampah (Inggris: Garbage Collecting).

Sama seperti bahasa C, indeks larik selalu dimulai dari 0.

Contoh:
 public class larik {
   public static void main(String args[]) {
     int[] arr = new arr[10];
     arr[0] = 5;
     System.out.println(arr[0]);
   }
 }

### PHP

Sama seperti di JAVA larik di PHP juga merupakan sebuah object lebih tepatnya lagi map terorder. Ada dua tipe larik di PHP, indexed array (simple array) dan associated array (key=>value array). Di PHP, element larik bisa berupa string, Bilangan, boolean, dan semua tipe data primitive lainnya, termasuk larik juga bisa menjadi element larik lainnya.

Cara medefinisikan larik:
 #mendefinisikan array kosong
 $larik = array();

Contoh indexed array (simple array):
 $jam = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
 $hari = array('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu');

Contoh associated array:
 $bulan = array('1'=>'January', '2'=>'February', '3'=>'Maret', '4'=>'April');

 $komponenKalender = array(
   'bulan'=> array(1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12),
   'hari' => array('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu')
 );

## Pranala luar
*  PHP: Array Manual
*  Conditional, Array & Perulangan di PHP