Skip to content Skip to sidebar Skip to footer

Widget Atas Posting

Penjelasan dan Contoh Penambahan Dan Penghapusan Data Pada Array

Penjelasan dan Contoh Penambahan Dan Penghapusan Data Pada Array

Penjelasan dan Contoh Penambahan Dan Penghapusan Data Pada Array

Penjelasan dan Contoh Penambahan Dan Penghapusan Data Pada Array - Pengelolah data pada array atau larik difungsikan untuk menambah atau menghapus data baru atau lama dan sering kali digunakan pada program-program yang menyimpan data berkelompok seperti data mahasiswa yang didalamnya ada nama, jenis kelamin, usia, hobi dan lain-lain. 

Dan biasanya terjadi kesalahan seperti mahasiswa yang biodatanya belum diinputkan atau yang sudah diinputkan tapi salah tidak sesuai dengan data mahasiswa, jika terjadi seperti itu maka kita harus memanfaatkan fungsi pengelolahan data pada array yaitu menambah dan mengapus data.

1. Menambah Data

Penambahan data dibagi menjadi 3 jenis yaitu Penambahan data depan, tengah dan belakang

a. Penambahan Data Depan

Penambahan data depan dilakukan dengan menciptakan ruang kosong pada larik paling atas atau larik ke-0 dan memasukkan data baru pada ruang kosong tersebut.
 
Pada proses ini harus didahului dengan penggeseran data secara berturut-turut mulai dari data ke-9/terakhir sampai dengan data ke-0 sebanyak satu langkah kebawah sehingga akan menciptakan ruang kosong pada larik bagian ke-0, sementara data yang bergeser akan menempati larik ke-1 hingga larik ke-10. Setelah proses penggeseran data selesai nilai N atau banyaknya data harus tambah dengan 1.

Script tambah data depan
public static void tambahDataDiDepan(formatBiodata biodataMahasiswa[]){
//bagian membuat record sementara untuk menampung data baru-------------
formatBiodata biodataMahasiswaBaru = new formatBiodata();
//bagian entri data baru ke penyimpan sementara-----------------------
Scanner masukan = new Scanner(System.in);
int bacaTombol=0;
System.out.println("\nTambah Data Di Depan\n");
System.out.print("Silakan masukkan nama anda : ");
biodataMahasiswaBaru.nama = masukan.next();
System.out.print("Silakan masukkan alamat anda : ");
biodataMahasiswaBaru.alamat = masukan.next();
System.out.print("Silakan masukkan umur anda : ");
biodataMahasiswaBaru.umur = masukan.nextInt();
System.out.print("Silakan masukkan Jenis Kelamin anda : ");
try{
bacaTombol = System.in.read();}
catch(java.io.IOException e){
}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.println("Silakan masukkan hobi (maks 3) : ");
System.out.print("hobi ke-0 : ");
biodataMahasiswaBaru.hobi[0] = masukan.next();
System.out.print("hobi ke-1 : ");
biodataMahasiswaBaru.hobi[1] = masukan.next();
System.out.print("hobi ke-2 : ");
biodataMahasiswaBaru.hobi[2] = masukan.next();
System.out.print("Silakan masukkan IPK anda : ");
biodataMahasiswaBaru.ipk = masukan.nextFloat();
//bagian menggeser isi larik mulai dari Belakang s/d 0 selangkah ke bawah
for (int i=N-1; i>= 0; i--){
biodataMahasiswa[i+1] = biodataMahasiswa[i];}
//bagian memindahkan data baru ke larik ke-0-----------------------
biodataMahasiswa[0] = biodataMahasiswaBaru;
//memperbaharui banyaknya data (N), banyaknya data bertambah satu------
N++;
System.out.println("");}

b. Penambahan Data Tengah

Penambahan data di bagian tengah dilakukan dengan cara menciptakan ruang kosong pada larik ke-T dimana T merupakan posisi target kemudian memasukkan data baru pada ruang kosong tersebut. 
 
Proses ini harus didahului dengan proses penggeseran data secara berturut-turut mulai dari data ke-9/terakhir sampai pada data ke-T sebanyak satu langkah kebawah sehingga akan menciptakan ruang kosong pada larik ke-T sementara data yang bergeser akan menempati larik ke-T+1 hingga larik ke-10, setelah proses penggeseran data selesai nilai N (banyaknya data) harus tambah dengan 1.

Script tambah data tengah
public static void tambahDataDiTengah(formatBiodata biodataMahasiswa[]){
  //bagian membuat record sementara untuk menampung data baru-----------
  formatBiodata biodataMahasiswaBaru = new formatBiodata();
  //bagian entri data baru ke penyimpan sementara-----------------------
  Scanner masukan = new Scanner(System.in);
  int bacaTombol=0;
  System.out.println("\nTambah Data Di Tengah\n");
  System.out.print("Silakan masukkan nama anda : ");
  biodataMahasiswaBaru.nama = masukan.next();
  System.out.print("Silakan masukkan alamat anda : ");
  biodataMahasiswaBaru.alamat = masukan.next();
  System.out.print("Silakan masukkan umur anda : ");
  biodataMahasiswaBaru.umur = masukan.nextInt();
  System.out.print("Silakan masukkan Jenis Kelamin anda : ");
   try{
   bacaTombol = System.in.read();}
   catch(java.io.IOException e){
   }
     biodataMahasiswaBaru.jekel = (char)bacaTombol;
     System.out.println("Silakan masukkan hobi (maks 3) : ");
     System.out.print("hobi ke-0 : ");
     biodataMahasiswaBaru.hobi[0] = masukan.next();
     System.out.print("hobi ke-1 : ");
     biodataMahasiswaBaru.hobi[1] = masukan.next();
     System.out.print("hobi ke-2 : ");
     biodataMahasiswaBaru.hobi[2] = masukan.next();
     System.out.print("Silakan masukkan IPK anda : ");
     biodataMahasiswaBaru.ipk = masukan.nextFloat();
     //bagian menentukan posisi target T ----------------------------------
     int T;
     System.out.print("Pada posisi ke berapa data akan dimasukkan ? : ");
     T = masukan.nextInt();
     //bagian menggeser isi larik mulai dari Belakang s/d T selangkah ke belakang
     for (int i=N-1;   i>= T;  i--){
 biodataMahasiswa[i+1] = biodataMahasiswa[i];}
     //bagian memindahkan data baru ke larik ke-T----------------------
     biodataMahasiswa[T] = biodataMahasiswaBaru;
     //memperbaharui banyaknya data (N), banyaknya data bertambah satu-------
     N++;}

c. Penambahan Data Belakang

Penambahan data dibelakang dilakukan dengan cara memasukkan data yang baru pada larik ke-N di mana N merupakan posisi paling akhir, pada proses menambah data dibelakang, kita tidak perlu melakukan penggeseran data yang telah ada dalam larik melainkan cukup dengan menaikkan nilai N nya saja atau banyaknya data dengan 1.

Script tambah data belakang
 public static void tambahDataDiBelakang(formatBiodata biodataMahasiswa[]){
   //bagian membuat record sementara untuk menampung data baru-------------
   formatBiodata biodataMahasiswaBaru = new formatBiodata();
   //bagian entri data baru ke penyimpan sementara-----------------------
   Scanner masukan = new Scanner(System.in);
   int bacaTombol=0;
   System.out.println("\nTambah Data Di Belakang\n");
   System.out.print("Silakan masukkan nama anda : ");
   biodataMahasiswaBaru.nama = masukan.next();
   System.out.print("Silakan masukkan alamat anda : ");
   biodataMahasiswaBaru.alamat = masukan.next();
   System.out.print("Silakan masukkan umur anda : ");
   biodataMahasiswaBaru.umur = masukan.nextInt();
   System.out.print("Silakan masukkan Jenis Kelamin anda : ");
    try{
bacaTombol = System.in.read();}
    catch(java.io.IOException e){
    }
   biodataMahasiswaBaru.jekel = (char)bacaTombol;
   System.out.println("Silakan masukkan hobi (maks 3) : ");
   System.out.print("hobi ke-0 : ");
   biodataMahasiswaBaru.hobi[0] = masukan.next();
   System.out.print("hobi ke-1 : ");
   biodataMahasiswaBaru.hobi[1] = masukan.next();
   System.out.print("hobi ke-2 : ");
     biodataMahasiswaBaru.hobi[2] = masukan.next();
     System.out.print("Silakan masukkan IPK anda : ");
     biodataMahasiswaBaru.ipk = masukan.nextFloat();
     //bagian memindahkan data baru ke larik ke-N-----------------------
     biodataMahasiswa[N] = biodataMahasiswaBaru;
     //memperbaharui banyaknya data (N), banyaknya data bertambah satu----
     N++;}


2. Menghapus Data

Mengapus data juga terbgai menjadi 3 jenis hapus data depan, tengah dan belakang

a. Menghapus Data Depan

Menghapus data dibagian depan dapat dilakukan dengan cara menimpa larik paling depan atau larik ke-0 dengan larik ke-1, dilanjutkan dengan menimpa larik ke-1 dengan larik ke-2, ke-2 dengan ke-3 dan seterusnya. Proses ini seperti melakukan penggeseran secara berturut-turut data dimulai ke-0 sampai dengan data terakhir sebanyak satu langkah ke depan, setelah proses penggeseran selesai nilai N atau banyaknya data akan dikurangi 1.

Script hapus data depan
public static void hapusDataDiDepan(formatBiodata biodataMahasiswa[]){
//bagian menggeser isi larik mulai dari 0 - Belakang selangkah ke depan
for (int i=0;   i<= N-2;  i++){
biodataMahasiswa[i] = biodataMahasiswa[i+1];}
System.out.println("Proses menghapus data ke-0 selesai.");
//memperbaharui banyaknya data (N), banyaknya data berkurang satu-------
N--;}

b. Menghapus Data Tengah

Menghapus data di bagian tengah dilakukan dengan cara menentukan posisi target data yang ingin dihapus T, lalu data yang ingin dihapus pada larik ke-T ditimpa dengan larik ke-T+1, dilanjutkan dengan menimpa larik ke-T+1 dengan larik ke-T+2, larik ke-T+2 dengan ke-T+3 dan seterusnya. Proses ini seperti menggeser data mulai dari data ke-T+1 sampai dengan data terakhir sebanyak satu langkah ke atas.  

Script hapus data tengah
public static void hapusDataDiTengah(formatBiodata biodataMahasiswa[]){
//bagian menentukan posisi target T --------------------------------------
Scanner masukan = new Scanner(System.in);
int T;
System.out.print("Tuliskan posisi data yang akan dibapus : ");
T = masukan.nextInt();
//bagian menggeser isi larik mulai dari T - Belakang selangkah ke depan
for (int i=T;   i<= N-2;  i++){
   biodataMahasiswa[i] = biodataMahasiswa[i+1];}
System.out.println("Proses menghapus data ke-" + T + " selesai.");
//memperbaharui banyaknya data (N), banyaknya data berkurang satu-------
N--;}

c. Menghapus Data Belakang

Untuk penghapusan data dibagian belakang tidak perlu ada penggeseran data karena proses menghapus data di bagian belakang hanya dilakukan dengan memotong data terakhir dengan cara mengurangkan N dengan 1 N--.

Script hapus data belakang
public static void hapusDataDiBelakang(formatBiodata biodataMahasiswa[]){
System.out.println("Proses menghapus data paling akhir selesai.");
//memperbaharui banyaknya data (N), banyaknya data berkurang satu-------
N--;}



Jika ingin menggunakan fungsi penambahan dan penghapusan data, pakailah potongan program dibawah ini kemudian tambahkan fungsi yang ingin dicoba. Fungsi yang ingin dicoba langsung saja copy dan pastekan pada bagian yang sudah dibold dan jangan lupa baca keterangannya pada tanda " // " agar bisa dipahami posisi pasti yang sesuai.

Ptongan Program
import java.util.Scanner;
class formatBiodata{
String nama;
String alamat;
int umur;
char jekel;
String hobi[] = new String[3];
float ipk;}
class menambahData{
public static int N;
//--------------------------------------------------
//--- Fungsi untuk mengentri data ke dalam Larik ---
public static void ngentriData(formatBiodata biodataMahasiswa[]){
Scanner masukan = new Scanner(System.in);
System.out.print("Masukkan Banyak Data : ");
        N = masukan.nextInt();
int bacaTombol=0;
for (int i=0; i<=N-1; i++){
System.out.print("Silakan masukkan nama anda : ");
biodataMahasiswa[i].nama = masukan.next();
System.out.print("Silakan masukkan alamat anda : ");
biodataMahasiswa[i].alamat = masukan.next();
System.out.print("Silakan masukkan umur anda : ");
biodataMahasiswa[i].umur = masukan.nextInt();
System.out.print("Silakan masukkan Jenis Kelamin anda : ");
try{
bacaTombol = System.in.read();}
catch(java.io.IOException e){
}
biodataMahasiswa[i].jekel = (char)bacaTombol;
System.out.println("Silakan masukkan hobi (maks 3) : ");
System.out.print("hobi ke-0 : ");
biodataMahasiswa[i].hobi[0] = masukan.next();
System.out.print("hobi ke-1 : ");
biodataMahasiswa[i].hobi[1] = masukan.next();
System.out.print("hobi ke-2 : ");
biodataMahasiswa[i].hobi[2] = masukan.next();
System.out.print("Silakan masukkan IPK anda : ");
biodataMahasiswa[i].ipk = masukan.nextFloat();
System.out.println("");}
}
//--------------------------------------------------
//--- Fungsi untuk...                            ---
//--------------------------------------------------
public static void ......() //fungsi tambah/hapus data didepan/tengah/belakang
{ ....;
 ....;
}

//--------------------------------------------------
//---------- Fungsi untuk Menampilkan Data ---------
public static void tampilkanData(formatBiodata biodataMahasiswa[]){
//bagian menampilkan isi struktur Larik -------
System.out.println("-------------------------------------------------------");
System.out.println("NAMA ALAMAT UMUR JEKEL HOBI[0] HOBI[1] HOBI[2] IPK");
System.out.println("-------------------------------------------------------");
for (int i=0; i<=N-1; i++){
System.out.print (i +".");
System.out.print (biodataMahasiswa[i].nama + "\t");
System.out.print (biodataMahasiswa[i].alamat + "\t");
System.out.print (biodataMahasiswa[i].umur + "\t");
System.out.print (biodataMahasiswa[i].jekel + "\t");
System.out.print (biodataMahasiswa[i].hobi[0] + "\t");
System.out.print (biodataMahasiswa[i].hobi[1] + "\t");
System.out.print (biodataMahasiswa[i].hobi[2] + "\t");
System.out.println(biodataMahasiswa[i].ipk);}
System.out.println("-------------------------------------------------------");}
//--------------------------------------------------
//----------------- Program Utama ------------------
public static void main(String[] args){
//bagian deklarasi record berbasis LARIK -----------------------
formatBiodata biodataMahasiswa[] = new formatBiodata[10];
biodataMahasiswa[0] = new formatBiodata();
biodataMahasiswa[1] = new formatBiodata();
biodataMahasiswa[2] = new formatBiodata();
....;
....;
biodataMahasiswa[5] = new formatBiodata();
biodataMahasiswa[6] = new formatBiodata();
....;
....;
ngentriData(biodataMahasiswa);
tambahDataDiDepan(biodataMahasiswa);
....; // lakukan pemanggilan fungsi tambah dan hapus (depan/tengah/belakang)
tampilkanData(biodataMahasiswa);}
}
Baca juga :

Post a Comment for "Penjelasan dan Contoh Penambahan Dan Penghapusan Data Pada Array"