Operasi Insert Pada Array Bahasa C Secara Dinamis
Konsep Array ini merupakan salah satu bagian dalam pemrograman yang paling sering kita gunakan. Array yang merupakan variabel untuk menampung banyak nilai, namun dengan syarat harus nilai yang sama tipe datanya. Sedangkan nilai-nilai tersebut dibedakan dengan lokasi yang berbeda,yaitu :index.
Dengan demikian, array terdiri dari :
- Elemen
Elemen adalah nilai yang mengisi sebuah array.
- Index
Index merupakan bagian lokasi yang menandakan sebuah elemen dalam array. Sehingga untuk mengakses sebuah elemen digunakan index.
Representasi Array
Dari gambar diatas:
- Index sebuah array selalu dimulai dari 0
- Panjang array menyatakan banyaknya elemen yang dikandung. Dari gambar diatas memiliki tiga(3) elemen, sehingga dikatakan panjangnya 3.
- Tiap-tiap elemen dapat diakses melalui indexnya. Contoh untuk mengakses elemen "Didi Mansur", maka indexnya adalah 1.
Operasi-Operasi Dasar Terhadap Array
Berikut ini adalah operasi-operasi dasar yang dapat dilakukan pada array:- Insertion.
Operasi insertion akan melakukan penambahan sebuah elemen pada index tertentu.
- Delete.
Operasi ini akan mengakibatkan terhapusnya sebuah elemen pada index tertentu.
- Search.
Mencari suatu elemen array dengan menggunakan index atau nilai yang diberikan. - Update.
Operasi ini akan menggantikan nilai dari elemen sebelumnya.
Contoh Operasi Insert pada Array
#include<stdio.h>
#include<conio.h>
int main()
{
int panjang=0;
int Nilai[panjang];
int i;
int sisip,posisi, change_panjang;
printf("Masukkan Panjang Array :");
scanf("%d",&panjang);
for(i=0;i<panjang;i++)
{
printf("Masukkan Elemen Array Index[%d]:",i);
scanf("%d",&Nilai[i]);
}
printf("\nElemen array awal :\n");
for(i=0;i<panjang;i++)
{
printf("Nilai[%d] = %d \n",i,Nilai[i]);
}
printf("\nMasukkan Nilai Elemen Yang Akan di Insert :");
scanf("%d",&sisip);
printf("Pada Index Keberapa Elemen tersebut di Insert:");
scanf("%d",&posisi);
change_panjang = panjang+1;
while(panjang>=posisi)
{
Nilai[panjang+1] = Nilai[panjang];
panjang = panjang-1;
}
Nilai[posisi] = sisip;
printf("\nElemen array setelah diinsert :\n");
for(i=0;i<change_panjang;i++)
{
printf("Nilai[%d] = %d \n",i,Nilai[i]);
}
getch();
}
Outputnya adalah :
Masukkan Panjang Array :5
Masukkan Elemen Array Index[0]:1
Masukkan Elemen Array Index[1]:3
Masukkan Elemen Array Index[2]:5
Masukkan Elemen Array Index[3]:7
Masukkan Elemen Array Index[4]:8
Elemen array awal :
Nilai[0] = 1
Nilai[1] = 3
Nilai[2] = 5
Nilai[3] = 7
Nilai[4] = 8
Masukkan Nilai Elemen Yang Akan di Insert :10
Pada Index Keberapa Elemen tersebut di Insert:3
Elemen array setelah diinsert :
Nilai[0] = 1
Nilai[1] = 3
Nilai[2] = 5
Nilai[3] = 10
Nilai[4] = 7
Nilai[5] = 8
Jika kita lihat contoh program insert diatas, maka:
- User menginputkan berapa panjang array yang akan dibuat. Panjang array ini disimpan dalam variabel
panjang
. Jadi begitu dimasukkan panjang array 5, maka akan terbuat array untuk menampung 5 elemen pada bagianNilai[5]
- Pada looping pertama, kita memasukkan nilai elemen sedangkan pada looping kedua akan mencetak elemen-elemen yang telah kita inputkan.
- Variabel
sisip
merupakan nilai elemen yang akan kita insert pada array yang telah tercreate sebelumnya. Sedangkan variabelposisi
menyatakan pada index keberapa elemen tersebut akan diinsert. - Pada proses looping ketiga pada bagian kode
while(panjang>=posisi){.....}
akan melakukan pemindahan nilai elemen pada index berikutnya. Karena index awalnya akan diisi dengan elemen yang akan diinsert. - Variabel
change_panjang = panjang+1
akan menambah panjang array setelah diinsert - Bagian
Nilai[posisi] = sisip
adalah proses menjadikan elemen yang dimasukkan pada array dengan index yang telah diinputkan juga sebelumnya. - Looping bagian terakhir adalah proses mencetak nilai elemen array setelah ada penambahan atau operasi insert sebuah nilai array pada index tertentu.