Array List

ArrayList


public class ArrayList{
int x [] = new int [10]; //memiliki 10 element kosong dengan nama variabel x
int p;

public ArrayList(){  //construktor
    p = 0;
    }

void InsertLast(int x_i){  //untuk mengisi data kosong dari index terakhir p = 0 dan p+1; 
x[p]=x_i;
p++;
}

void GeserKananDari(int idxAwal){  // menggeser nilai pada data index awal hingga untuk memenuhi nilai p.
for (int i=p; i>idxAwal; i--){
    x[i] = x[i-1];
        }
    }

public void InsertFirst(int x_i){  //menggeser semua data dari indeks 0 untuk index 0 diisi data baru.
     if (p>0)
         GeserKananDari(0);
     x[0]=x_i;
     p++;
 }
 
 public int cariIdx (int cariX){  // untuk mencari data pada index,
     int idx = -1;                // jika ketemu maka yang akan ditampilkan adalah indexnya.
     int i = 0;
     while (i<p){
         if (x[i]== cariX){
             idx = i;
             i = p;}
         else
             i++;}
     return (idx);}
 
 public void GeserKiriDari(int idx){  //membandingkan index untuk digeser data nya ke kiri
     if (idx<=0){
         idx=0;
     }
     else    
     for(int i=idx-1;i<p-1;i++){      // NB : yang dibandingkan adalah indexnya, bukan nilai pada data index!!
     x[i] = x[i+1];       
    }}
 
 public void RemoveFirst(){   //rata-rata digunakan untuk menghapus data pada index pertama,
 GeserKiriDari(1);     //atau juga bisa menghapus data pada deretan sebelum data idx.
 p--; }
 
 public void RemoveLast(){   //menghapus data pada index terakhir, lalu p berpindah ke index lebih kecil
 p--;
 }
 
 public void Remove(int xdel){  // untung menghapus data yang ingin dihapus pada index.
 GeserKiriDari(xdel+1);
 p--;
 }
 
 public void InsertAfter(int a, int b){
     int i = cariIdx(a);
     if (i==-1)
         System.out.println("-1");
     else if (i != -1){         
             GeserKananDari(i+1);
             x[i+1]=b;
         p++;}}
 
 public void Cetak(){    //mencetak data-data yang telah diproses dalam class ArrayList.
       for(int i=0;i<p;i++){
         System.out.print(x[i]+" ");  
       } 
       System.out.println("");
    }
}

public class MethodAL {
public static void main(String[] args) {
    ArrayList a = new ArrayList();
    a.InsertLast(55);
    a.InsertLast(50);
    a.InsertLast(60);
    a.InsertLast(70);
    a.InsertLast(90);
    a.InsertFirst(80);
    a.GeserKiriDari(2);
    a.Cetak();
    a.InsertAfter(100, 20);
    //System.out.println("data 60 terletak pada index = "+a.cariIdx(60));
    }
}

Tidak ada komentar:

Posting Komentar