STRUKTUR DATA
Pertemuan Ke - 3
Disusun Oleh :
STMIK AKAKOM
YOGYAKARTA
2019
1. TUJUAN
a. Mahasiswa dapat membuat, menambah, dan menghapus data kedalam larik tertentu
2. TEORI SINGKAT
a. Penambahan data di bagian depan dilakukan dengan menciptakan ruang kosong pada
larik paling atas (larik ke-0) dan 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 dengan data ke-0 sebanyak satu langkah ke bawah
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 (banyaknya data) harus tambah dengan 1.
3. PRAKTIK
a. PRAKTIK 3.1 Menambah data di depan
Pembahasan :
Pada praktik 3.1 menggunakan 2 file java dengan class yang berbeda yaitu
formatBiodata dan file untuk menambah data didepan , praktik ini menggunakan file
format biodata sebagai tempat untuk mendeklarasikan value value yang akan di gunakan
pada file menambah data , dan untuk file menambah data di depan , file ini dijalankan
sebagai Main program atau utama untuk mengentri data data
Program ini jika dijalankan akan mengisi data mulai dari atas dulu dan seterusnya sampai
kebawah
Jika dijalankan maka program akan tampak seperti dibawah ini.
C. Latihan Latihan
import java.util.Scanner; class
menambahData { public static
int N = 1;
public static void ngentriData(formatBiodata biodataMahasiswa[]) {
Scanner masukan = new Scanner(System.in); int
bacaTombol = 0;
}
biodataMahasiswa[i].jekel = (char)bacaTombol;
System.out.println("Silahkan masukan hobi (maks 3) : "); System.out.print("Hobi ke-1
: ");
biodataMahasiswa[i].hobi[0] = masukan.next(); System.out.print("Hobi ke-2 : ");
biodataMahasiswa[i].hobi[1] = masukan.next(); System.out.print("Hobi ke-3 : ");
biodataMahasiswa[i].hobi[2] = masukan.next();
System.out.print("Silahkan masukan ipk anda : "); biodataMahasiswa[i].ipk =
masukan.nextFloat();
System.out.println("");
}
}
public static void tambahDataDiDepan(formatBiodata biodataMahasiswa[]) {
formatBiodata biodataMahasiswaBaru = new formatBiodata();
Scanner masukan = new Scanner(System.in); int
bacaTombol = 0;
System.out.print("Silahkan masukan nama anda : "); biodataMahasiswaBaru.nama =
masukan.next();
}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.println("Silahkan masukan hobi (maks 3) : "); System.out.print("Hobi ke-1 :
");biodataMahasiswaBaru.hobi[0] = masukan.next();
System.out.print("Hobi ke-2 : ");biodataMahasiswaBaru.hobi[1] = masukan.next();
biodataMahasiswa[0] = biodataMahasiswaBaru;
N++;
System.out.println(" ");
bacaTombol = System.in.read();
}
catch(java.io.IOException e) {
int T;
T = masukan.nextInt();
biodataMahasiswa[T] = biodataMahasiswaBaru;
N++;
System.out.println(" ");
bacaTombol = System.in.read();
catch(java.io.IOException e) {
biodataMahasiswa[N] = biodataMahasiswaBaru;
N++;
System.out.println(" ");
}
public static void hapusDataDiDepan(formatBiodata biodataMahasiswa[]) { for (int i = 0;
i <= (N - 2); i++) {
N--;
T = masukan.nextInt();
N--;
N--;
-------------------------");
System.out.println("
NAMA\t\tALAMAT\t\tUMUR\tJEKEL\tHOBI[0]\tHOBI[1]\tHOBI[2]\tIPK");
System.out.println("-----------------------------------------------------
if (nl < 5) {
System.out.print(biodataMahasiswa[i].nama + "\t\t");
} else {
System.out.print(biodataMahasiswa[i].nama + "\t");
if (al < 8) {
System.out.print(biodataMahasiswa[i].alamat + "\t\t");
} else {
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("-----------------------------------------------------
-------------------------");
tambahDataDiDepan(biodataMahasiswa);
tambahDataDiTengah(biodataMahasiswa);
tambahDataDiBelakang(biodataMahasiswa);
tampilkanData(biodataMahasiswa); tukarData(biodataMahasiswa);
tampilkanData(biodataMahasiswa); hapusDataDiDepan(biodataMahasiswa);
tampilkanData(biodataMahasiswa); hapusDataDiTengah(biodataMahasiswa);
tampilkanData(biodataMahasiswa);
hapusDibelakang(biodataMahasiswa);
tampilkanData(biodataMahasiswa);
}
}
Output
Pembahasan
Program yang digunakan untuk latihan adalah program yang sama dengan program praktik 4. Pada
latihan ini dibuat sebuah method baru untuk menukar data dari record satu ke record lain. Pada
method tersebut dibuat objek baru untuk penyimpanan sementara data yang akan ditukar. Pertama
user akan diminta data keberapa yang akan ditukar dan kemana data tersebut akan diletakan. Maka
pada method dideklarasikan dua buah variabel baru yaitu a dan b untuk menampung pilihan dari
user tersebut yang kemudian variabel tersebut akan menjadi index untuk array. Algoritmanya
adalah data dari array dengan index a dimasukan kedalam objek baru. Kemudian data pada array
index b dimasukan kedalam data index a, dan yang terakhir data dari objek baru tadi dimasukan
kedalam array index b.
D. Tugas
Tugas
import java.util.Scanner; class
menambahData { public static
int N = 1;
public static void ngentriData(formatBiodata biodataMahasiswa[]) {
Scanner masukan = new Scanner(System.in); int
bacaTombol = 0;
}
biodataMahasiswa[i].jekel = (char)bacaTombol;
System.out.println("Silahkan masukan hobi (maks 3) : "); System.out.print("Hobi
ke-1 : ");
biodataMahasiswa[i].hobi[0] = masukan.next(); System.out.print("Hobi ke-2 : ");
biodataMahasiswa[i].hobi[1] = masukan.next(); System.out.print("Hobi ke-3 : ");
biodataMahasiswa[i].hobi[2] = masukan.next();
System.out.print("Silahkan masukan ipk anda : "); biodataMahasiswa[i].ipk =
masukan.nextFloat();
System.out.println("");
}
}
public static void tambahDataDiDepan(formatBiodata biodataMahasiswa[]) {
formatBiodata biodataMahasiswaBaru = new formatBiodata();
Scanner masukan = new Scanner(System.in); int
bacaTombol = 0;
System.out.print("Silahkan masukan nama anda : "); biodataMahasiswaBaru.nama =
masukan.next();
biodataMahasiswa[0] = biodataMahasiswaBaru;
N++;
System.out.println(" ");
}
public static void tambahDataDiTengah(formatBiodata biodataMahasiswa[]) {
formatBiodata biodataMahasiswaBaru = new formatBiodata();
Scanner masukan = new Scanner(System.in); int
bacaTombol = 0;
System.out.print("Silahkan masukan nama anda : "); biodataMahasiswaBaru.nama =
masukan.next();
}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.println("Silahkan masukan hobi (maks 3) : ");
System.out.print("Hobi ke-1 : ");biodataMahasiswaBaru.hobi[0] = masukan.next();
System.out.print("Hobi ke-2 : ");biodataMahasiswaBaru.hobi[1] = masukan.next();
System.out.print("Hobi ke-3 : ");biodataMahasiswaBaru.hobi[2] = masukan.next();
int T;
System.out.print("Pada posisi keberapa data akan dimasukan ? : ");
T = masukan.nextInt();
for (int i = (N - 1); i >= T; i--) {
biodataMahasiswa[(i + 1)] = biodataMahasiswa[i];
}
biodataMahasiswa[T] = biodataMahasiswaBaru;
N++;
System.out.println(" ");
}
public static void tambahDataDiBelakang(formatBiodata biodataMahasiswa[]) {
formatBiodata biodataMahasiswaBaru = new formatBiodata();
Scanner masukan = new Scanner(System.in); int
bacaTombol = 0;
System.out.print("Silahkan masukan nama anda : "); biodataMahasiswaBaru.nama =
masukan.next();
}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.println("Silahkan masukan hobi (maks 3) : ");
System.out.print("Hobi ke-1 : ");biodataMahasiswaBaru.hobi[0] =
masukan.next();
System.out.print("Hobi ke-2 : ");biodataMahasiswaBaru.hobi[1] =
masukan.next();
System.out.print("Hobi ke-3 : ");biodataMahasiswaBaru.hobi[2] =
masukan.next();
System.out.print("Silahkan masukan ipk anda : "); biodataMahasiswaBaru.ipk =
masukan.nextFloat();
biodataMahasiswa[N] = biodataMahasiswaBaru;
N++;
System.out.println(" ");
}
public static void hapusDataDiDepan(formatBiodata biodataMahasiswa[]) { for (int i = 0;
i <= (N - 2); i++) {
biodataMahasiswa[i] = biodataMahasiswa[(i + 1)];
}
System.out.println("Proses menghapus data ke-0 selesai.");
N--;
}
public static void hapusDataDiTengah(formatBiodata biodataMahasiswa[]) {
Scanner masukan = new Scanner(System.in); int T;
System.out.print("Tuliskan posisi data yang akan dihapus : ");
T = masukan.nextInt();
N--;
}
public static void hapusDibelakang(formatBiodata biodataMahasiswa[]) {
System.out.println("Proses menghapus data paling akhir selesai.");
N--;
}
public static void tukarData(formatBiodata biodataMahasiswa[]) { Scanner
tD = new Scanner(System.in); formatBiodata tmp = new formatBiodata();
System.out.println("Masukan data yang akan ditukar");
System.out.print("Data ke : "); int a =
tD.nextInt();
System.out.print("Tukar ke : "); int b =
tD.nextInt(); tmp = biodataMahasiswa[a];
biodataMahasiswa[a] = biodataMahasiswa[b]; biodataMahasiswa[b] = tmp;
}
public static void tampilkanData(formatBiodata biodataMahasiswa[]) {
System.out.println("---------------------------------------------------
---------------------------"); System.out.println("
NAMA\t\tALAMAT\t\tUMUR\tJEKEL\tHOBI[0]\tHOBI[1]\tHOBI[2]\tIPK");
System.out.println("---------------------------------------------------
---------------------------"); int nl, al;
for (int i = 0; i <= (N - 1); i++) { nl =
biodataMahasiswa[i].nama.length(); al =
biodataMahasiswa[i].alamat.length();
System.out.print(i + ". ");
if (nl < 5) {
System.out.print(biodataMahasiswa[i].nama + "\t\t");
} else {
System.out.print(biodataMahasiswa[i].nama + "\t");
}
if (al < 8) {
System.out.print(biodataMahasiswa[i].alamat + "\t\t");
} else {
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("---------------------------------------------------
---------------------------");
}
public static void editData(formatBiodata biodataMahasiswa[]) { formatBiodata
biodataMahasiswaBaru = new formatBiodata();
Scanner masukan = new Scanner(System.in);
int T;
System.out.print("Data keberapa yang akan diedit ? : ");
T = masukan.nextInt();
int bacaTombol = 0;
}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.println("Silahkan masukan hobi (maks 3) : ");
System.out.print("Hobi ke-1 : ");biodataMahasiswaBaru.hobi[0] =
masukan.next();
System.out.print("Hobi ke-2 : ");biodataMahasiswaBaru.hobi[1] =
masukan.next();
System.out.print("Hobi ke-3 : ");biodataMahasiswaBaru.hobi[2] =
masukan.next();
biodataMahasiswa[T] = biodataMahasiswaBaru;
System.out.println(" ");
}
public static void main(String[] args) {
formatBiodata biodataMahasiswa[] = new formatBiodata[10];
biodataMahasiswa[0] = new formatBiodata(); biodataMahasiswa[1] = new
formatBiodata(); biodataMahasiswa[2] = new formatBiodata();
biodataMahasiswa[3] = new formatBiodata(); biodataMahasiswa[4] = new
formatBiodata(); biodataMahasiswa[5] = new formatBiodata();
biodataMahasiswa[6] = new formatBiodata(); biodataMahasiswa[7] = new
formatBiodata(); biodataMahasiswa[8] = new formatBiodata();
biodataMahasiswa[9] = new formatBiodata();
ngentriData(biodataMahasiswa);
tambahDataDiDepan(biodataMahasiswa);
tambahDataDiTengah(biodataMahasiswa);
tambahDataDiBelakang(biodataMahasiswa);
tampilkanData(biodataMahasiswa); tukarData(biodataMahasiswa);
tampilkanData(biodataMahasiswa); editData(biodataMahasiswa);
tampilkanData(biodataMahasiswa); hapusDataDiDepan(biodataMahasiswa);
tampilkanData(biodataMahasiswa); hapusDataDiTengah(biodataMahasiswa);
tampilkanData(biodataMahasiswa); hapusDibelakang(biodataMahasiswa);
tampilkanData(biodataMahasiswa);
}
}
Output
Pembahasan
Pada program tugas juga memodifikasi program latihan. Disini akan dibuat sebuah method baru
yang akan melakukan proses pengeditan. Jadi method ini akan mengedit data yang telah
ditentukan oleh user. pada method dibuat objek baru untuk menyimpan data yang baru, setelah
itu program akan meminta user untuk memilih data keberapa yang akan diedit, kemudian user
akan memasukan data seperti biasa, setelah memasukan data maka program akan meneruskan
data baru kedalam array of record dengan index yang telah ditentukan oleh user tadi.
E. Kesimpula
n
Penambahan dan pengurangan data pada array of record dapat memudahkan dalam pengelolaan
data. Sehingga dapat membuat program yang dibuat menjadi lebih dinamis jika ada
penambahan dan pengurangan data tanpa mengulangi dari awal.