Program Insert Array Secara Dinamis pada Bahasa C

Tutorial pemrograman bahasa C kali ini akan membahas topik tentang salah satu operasi array, yaitu cara insert sebuah elemen array pada suatu index yang kita inginkan.

Array merupakan suatu variabel yang dapat menampung banyak nilai (dengan catatan, nilainya harus memiliki tipe data yang sama). Konsep array dalam berbagai jenis bahasa pemrograman selalu memiliki elemen dan index. Elemen menyatakan nilai dari suatu tipe data, sedangkan index mengacu kepada lokasi tempat nilai tersebut ditampung.

 

Dalam contoh yang disajikan dalam tutorial ini, terdapat dua contoh operasi insert pada array:

  • Contoh1
    Dalam contoh ini, proses insert sudah langsung ditentukan nilai sebuah elemen serta index keberapa akan disisipkan elemen tersebut.
  • Contoh2
    Pada contoh2, proses insert atau memasukkan sebuah elemen dilakukan ketika program sedang berada dalam posisi runtime. Maksudnya, userlah yang menentukan elemen serta index keberapa akan disisipkan elemen tersebut.

Contoh.1

#include<stdio.h>
#include<conio.h>
int main()
{
    int Nilai[] = {1,3,5,7,8};
    int item = 10;
    int k    = 3;
    int n    = 5;
    int i    = 0;
    int j    = n;
    
    printf("Elemen array awal :\n");
    
    for(i=0;i<n;i++)
    {
		printf("Nilai[%d] = %d \n",i,Nilai[i]);
	                    
    }
	n = n+1;
	while(j>=k)
	{
		Nilai[j+1] = Nilai[j];
		j		= j-1;
	}
	
	Nilai[k] = item;
	printf("\nElemen array setelah operasi insertion :\n");
	for(i=0;i<n;i++)
	{
		printf("Nilai[%d] = %d \n",i,Nilai[i]);
	}
    
 getch();
}

 

Outputnya :

Elemen array awal :
Nilai[0] = 1
Nilai[1] = 3
Nilai[2] = 5
Nilai[3] = 7
Nilai[4] = 8

Elemen array setelah operasi insertion :
Nilai[0] = 1
Nilai[1] = 3
Nilai[2] = 5
Nilai[3] = 10
Nilai[4] = 7
Nilai[5] = 8

Seperti yang terlihat pada contoh diatas, elemen 10 disisipkan ke index-3. Dengan demikian posisi index ke-3 yang awalnya 7 akan digantikan oleh nilai 10 dan nilai 7 bergeser ke index-4. Namun semua proses ini telah ditentukan pada kode program. Nah sekarang bagaimana seandainya userlah yang menentukan ketika program sedang berjalan. Silahkan perhatikan contoh.2.

Contoh.2

#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:

  • Ketika program dijalankan, user menentukan berapa panjang yang diinginkan. Panjang array ini disimpan dalam variabel panjang. Jadi begitu dimasukkan panjang array 5, maka akan terbuat array untuk menampung 5 elemen pada bagian Nilai[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 terbuat sebelumnya. Sedangkan variabel posisi 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.

Leave a Reply

Your email address will not be published. Required fields are marked *