0% menganggap dokumen ini bermanfaat (0 suara)
116 tayangan

OOP BAB 4 Tipe Data String

BAB 4 membahas tipe data string pada Java. String digunakan untuk menyimpan karakter dan bersifat dinamis sehingga panjangnya tidak perlu ditentukan terlebih dahulu. String bersifat immutable artinya isinya tidak dapat diubah setelah dibuat. Java menyediakan berbagai metode untuk memanipulasi string seperti menghitung panjang, menggabungkan, membandingkan, dan mengubah huruf besar kecil.

Diunggah oleh

Dwi Susilo Wibowo
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
116 tayangan

OOP BAB 4 Tipe Data String

BAB 4 membahas tipe data string pada Java. String digunakan untuk menyimpan karakter dan bersifat dinamis sehingga panjangnya tidak perlu ditentukan terlebih dahulu. String bersifat immutable artinya isinya tidak dapat diubah setelah dibuat. Java menyediakan berbagai metode untuk memanipulasi string seperti menghitung panjang, menggabungkan, membandingkan, dan mengubah huruf besar kecil.

Diunggah oleh

Dwi Susilo Wibowo
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 31

BAB 4 Tipe Data String

Tipe data string digunakan untuk menyimpan sekumpulan karakter. Berbeda dengan
character yang hanya dapat menyimpan satu karakter, string juga dapat menyiman
kata/kalimat.
Bahasa java telah menyediakan tipe data string. Tipe data ini bersifat dinamis. Artinya,
kita tidak perlu menentukan terlebih dahulu berapa panjang maksimal dari isi string
tersebut.
Tipe data string bersifat non-primitif
Contoh penulisan data string:

String message = welcome to java;

variabel Isi dari variabel


message
Gambar 1. Membuat data dengan tipe string

String bersifat immutable, artinya data tidak dapat berubah. Perhatikan contoh berikut:
String s =Java;
s = HTML;
Statement pertama membuat String object dengan isi Java dan ditandai dengan s.
Statement kedua membuat String object dengan isi HTML dan sitandai dengan s/
string object yang pertama tetap ada setelah dibuat, tapi itu tidak akan bisa diakses,
karena variable s sekarang menunjuk objek baru yaitu HTML

Gambar2. String bersifat immutable. Sekali dibuat, maka isinya tidak akan berubah

String bersifat immutable dan ada dimana-mana dalam sebuah pemograman. Oleh sebab itu
JVM menggunakan contoh unik utnuk menerjemahkan string dengan urutan karakter yang
sama. Hal ini berguna untuk meningkatkan efesiensi dan menghemat memori. Contoh seperti
itu dinamakan interned string . coba lihat contoh di bawah ini:
String s1 = Welcome to Java;
String s2 = new String (Welcome to Java);
String s3 = Welcome to Java;
System.out.println(s1==s2 is + (s1==s2));
System.out.println(s1==s3 is + (s1==s3));
Maka akan keluar seperti ini:
S1==s2 is false
S1==s3 is true

Pada statement di atas, s1 dan s3 merujuk pada interned string yang samaWelcome to Java.
S1 tidak sama dengan s2 karena s1 dan s2 adalah string object yang berbeda walaupun memiliki
isi yang sama.
Contoh lain:
String s1 = Yow!;
String s2 = s1;

Visualisasi:
Yow
S1 S2

String s1= Yow!;


String s2 = new String (s1);

Visualisasi:

S1 Yow

S2 akan membuat String object baru dengan isi


S2 yang sama seperti s1
Yow

Manipulasi String pada bahasa Java


Berikut adalah beberapa fungsi yang dapat digunakan untuk memanipulasi data String dalam
bahasa Java:
1. Fungsi length(): untuk memeriksa panjang dari sebuah String
Contoh:
String message: Dwi Susilo Wibowo;
System.out.println(jumlah karakter pada + message + adalah +
message.length());

2. Fungsi concat(): untuk menggabungkan dua buah String


Contoh:
String s1= Dwi;
String s2=Susilo;
String s3= s1.concat(s2);
System.out.println (s3);
Namun sekarang Java sudah mempermudahnya dengan hanya menambahkan +
Contoh:
String s1= Dwi;
String s2= Susilo;
String s3= s1 + s2;
System.out.println (s3);

3. Fungsi equals(): untuk membandingkan dua String


Contoh:

String s1 = "Dwi Susilo W";


String s2 = "Dwi Susilo W";
String s3 = "Susilo Bambang Y";
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));

Hasil dari program itu adalah statement pertama


(System.out.println(s1.equals(s2));) bernilai true karena kedua string
berisi konten yang sama. Statement kedua bernilai false karena konten berbeda.

4. Fungsi toLowerCase() dan toUpperCase(): untuk membuat kalimat pada


string menjadi semua kecil dan semua besar
Contoh:
String satu: Java programming.toLowerCase();
System.out.println(satu);

String Operation
String adalah kelas yang menangani deretan karakter. Kelas ini mendukung sejumlah
metode yang sangat berguna untuk memanipulasi string, misalnya untuk mengknversi
huruf kecil menjadi capital, memperoleh jumlah karakter dan sebagainya.
1. Metode substring (int indeks)
Fungsi : menghasilkan objek string yang berisi substring dimulai dari posisi indeks
suatu teks.
2. Metode substring (int indeksAwal, int indeksAkhir)
Fungsi : menghasilkan objek string yang berisi substring dimulai posisi
indeksAwal hingga posisi indeks Akhir suatu teks.
3. Metode charAt(int indeks)
Fungsi : menghasilkan karakter yang terletak pada posisi indeks
4. Metode length()
Fungsi : menghasilkan jumlah karakter dari suatu teks.
5. Metode concat(String kata)
Fungsi : menghasilkan objek string yang merupakan gabungan dari string kata.
6. Metode replace(char lama, char baru)
Fungsi : menghasilkan objek string yang berisi string dengan semua karakter
dengan huruf lama digantikan dengan karakter huruf baru.
7. Metode toLowerCase()
Fungsi : menghasilkan objek string dengan seluruh huruf kecil.

8. Metode toUpperCase()
Fungsi : menghasilkan objek string dengan seluruh huruf kapital.
9. Metode trim()
Fungsi : menghasilkan objek string yang menghilangkan spasi di awal dan di akhir
string.
10. Metode equals()
Fungsi : membandingkan suatu teks sesuai format.
11. Metode equalsIgnoreCase()
Fungsi : membandingkan suatu teks dengan mengabaikan format.
Java I/O Stream
Dalam java terdapat 3 cara untuk membaca data dari keyboard yaitu :
1. Scanner
Untuk membaca input dengan scanner perlu menginputkan jdk scanner di awal
program dengan instruksi import java.util.Scanner;Untuk mengambil data dari
keyboard menggunakan instruksi Scanner input = new Scanner(System.Int); dan
untuk memasukan data yang diinputkan ke variabel(misalnya variabel a yang telah
dideklarasikan) dengan cara berikut a=input.nextInt(); contoh program dengan
scanner.
2. BufferredReader
Untuk mengconstruct bufferredreader (chars into entire lines of text) digunakan
inputStreamReader (compose into characters, typically 2 bytes) dan untuk
menconstruct inputstreamreader dibutuhkan inputstream(read raw data from
keyboard) dan untuk mengkonstruct inputstream digunakan system in isone (figure
this out from online java library)
Stream dapat didefinisikan sebagai sequence data baik dari sumber data atau tujuan
data. Pada Java I/O stream terdapat dua buah stream yang digunakan yaitu stream
karakter dan stream byte. Sesuai dengan namanya, strem byte digunakan untuk
menyimpan informasi data dalam bentuk byte. Sedangkan stream karakter
digunakan untuk proses I/O yang melibatkan data- data dalam bentuk karakter.
Stream karakter menggunakan karakter Unicode. Dalam Java, stream didefinisikan
dengan menggunakan empat kelas abstrak yaitu: InputStream, OutputStream,
Reader, Writer.
InputStream dan OutputStream merupakan kelas abstrak yang dirancang sebagai
kelas induk untuk kelas kelas yang termasuk dalam kategori stream byte.
Sedangkan Reader dan Writer merupakan kelas abstrak yang akan diturunkan
menjadi kelas baru dalam kategori stream karakter. Melalui proses pewarisan
(inheritance), semua kelas yang diturunkan dari kelas InputStream dan Reader
memiliki method read() untuk melakukan pembacaan data. Sedangkan kelas yang
diturunkan dari kelas OutputStream dan Writer memiliki method write() yang
digunakan untuk melakukan penulisan data.
Menggunakan kelas Byte stream atau Character stream? Dari referensi yang saya
baca, jika kita bekerja dengan data bukan binary, maka sebaiknya kita menggunakan
kelas-kelas yang diturunkan dari kelas Reader dan Writer (Character stream).

3. JoptionPane
JOptionPane merupakan class yang digunakan sebagai standar dialog box untuk
antarmuka pengguna grafis (GUI) untuk Memfasilitasi entri data dan output data,
memberikan informasi kepada pengguna aplikasi. Sebenarnya JOptionPane
memiliki banyak method, dan kebayakan method tersebut static method. Berikut
ini 4 method dari JOptionPane yang sering digunakan.
showConfirmDialog
showInputDialog
showMessageDialog
showOptionDialog

JoptionPane Konstruktor
JOptionPane ()
Menciptakan JOptionPane dengan pesan text.

JOptionPane (pesan Object)


Membuat contoh JOptionPane untuk menampilkan pesan menggunakan jenis
pesan polos-pesan dan pilihan default disampaikan oleh UI.

JOptionPane (Object pesan, int messageType)


Menciptakan sebuah instance dari JOptionPane untuk menampilkan pesan dengan
jenis pesan tertentu dan pilihan default,

JOptionPane (Object pesan, int messageType, int optionType)


Menciptakan sebuah instance dari JOptionPane untuk menampilkan pesan dengan
jenis pesan tertentu dan pilihan.

JOptionPane (Object pesan, int messageType, int optionType, Icon icon)


Menciptakan sebuah instance dari JOptionPane untuk menampilkan pesan dengan
jenis tertentu pesan, pilihan, dan ikon.
JOptionPane (Object pesan, int messageType, int optionType, Icon ikon,
Object [] opsi)
Menciptakan sebuah instance dari JOptionPane untuk menampilkan pesan dengan
jenis tertentu pesan, ikon, dan pilihan.

JOptionPane (Object pesan, int messageType, int optionType, Icon ikon,


Object [] pilihan, Obyek InitialValue)
Menciptakan sebuah instance dari JOptionPane untuk menampilkan pesan dengan
jenis tertentu pesan, ikon, dan pilihan, dengan pilihan awalnya yang dipilih
ditentukan.
CONTOH SOAL:
1. Buatlah program untuk menentukan data bertipe byte melalui keyboard, merupakan
besaran radius (jari-jari) dalam lingkaran. Hitunglah:
a. Keliling Lingkaran
b. Luas Lingkaran
c. Luas Permukaan Bola
d. Volume Bola
Saat memasukkan data tersebut pergunakan scanner. Masing-masing menggunakan
metode sendiri.
Program dan Analisa
Hasil outputnya:
2. Buatlah program untuk menentukan data bertipe byte melalui keyboard, merupakan
besaran radius (jari-jari) dalam lingkaran. Hitunglah:
e. Keliling Lingkaran
f. Luas Lingkaran
g. Luas Permukaan Bola
h. Volume Bola
Saat memasukkan data tersebut pergunakan Buffer Reader. Masing-masing
menggunakan metode sendiri.
Program dan Analisa
Hasil Outputnya:
3. Buat Program untuk menambahkan 2 matrix bertipe integer yang berukuran 3 baris 4
kolom. Misal [A]+[B]=[C].
Program

//Program Penjumlahan 2 Matriks

import javax.swing.JOptionPane;
public class L5_PenjumlahanMatriks {

public static int[][]inputmatriks(int b, int k){


int[][]r = new int[b][k];
for(int i=0;i<b;i++) {
for(int j=0;j<k;j++) {
r[i][j] = Integer.parseInt
(JOptionPane.showInputDialog("Masukkan elemen ["+i+"]["+j+"]:"));
}
}
return r;
}

//metode untuk mencetak matriks 2D


public static void cetakmatriks(int[][]r) {
for(int i=0;i<r.length;i++) {
for(int j=0;j<r[i].length;j++){
System.out.printf("%-8d",r[i][j]);
}
System.out.println();
}
}

//main method
public static void main(String[]args) {
//meminta input matriks 2D
int[][]A = inputmatriks(3,4);
int[][]B = inputmatriks(3,4);
int[][]C = jumlahmatriks(A,B);
//mencetak matriks dat
System.out.println("\nMatriks A: ");
cetakmatriks(A);
System.out.println("\nMatriks B: ");
cetakmatriks(B);

System.out.println("\nMatriks C = Matriks A + Matriks B : ");


cetakmatriks(C);
}

//metode penjumlahan matriks


public static int [][] jumlahmatriks(int[][]A, int[][]B) {
int [][] hasil = new int [A.length][A[0].length];
for(int i=0;i<A.length;i++) {
for(int j=0;j<A[i].length;j++) {
hasil[i][j] = A[i][j] + B[i][j];
}
}
return hasil;
}
}

Output
4. Buat Program untuk mengalikan suatu matrix integer berukuran 3 baris 2 kolom dengan
suatu konstanta -7. Misal [M]*(-7)=[N].
Program
//Perogram Perkalian Matriks dengan Konstanta

import javax.swing.JOptionPane;
public class L5_KaliKonstanta {

public static int[][]inputmatriks(int b, int k){


int[][]r = new int[b][k];
for(int i=0;i<b;i++) {
for(int j=0;j<k;j++) {
r[i][j] = Integer.parseInt
(JOptionPane.showInputDialog("Masukkan elemen ["+i+"]["+j+"]:"));
}
}
return r;
}

//metode untuk mencetak matriks 2D


public static void cetakmatriks(int[][]r) {
for(int i=0;i<r.length;i++) {
for(int j=0;j<r[i].length;j++){
System.out.printf("%-8d",r[i][j]);
}
System.out.println();
}
}

//main method
public static void main(String[]args) {
//meminta input matriks 2D
int[][]M = inputmatriks(3,2);
int B = -7;
int[][]N = kalimatriks (M, B);
//mencetak matriks dat
System.out.println("\nMatriks M: ");
cetakmatriks(M);

System.out.println("\nMatriks N = Matriks M * (-7) : ");


cetakmatriks(N);
}

//metode perkalian matriks dengan konstanta


public static int [][] kalimatriks(int[][]M, int B) {
int [][] hasil = new int [M.length][M[0].length];
for(int i=0;i<M.length;i++) {
for(int j=0;j<M[i].length;j++) {
hasil[i][j] = M[i][j] * B;
}
}
return hasil;
}
}
Output
5. Buat Program untuk mengalikan 2 matrix integer [P] dan [Q]. Matrix P berukuran 3
baris 3 kolom, matrix Q berukuran 3 baris 2 kolom. Simpan hasil perkalian pada matrix
R yang berukuran 3 baris 2 kolom.
Program
//Program Perkalian 2 Matriks
import javax.swing.JOptionPane;
public class L5_Kali2Matriks {

public static int[][]inputmatriks(int b, int k){


int[][]r = new int[b][k];
for(int i=0;i<b;i++) {
for(int j=0;j<k;j++) {
r[i][j] = Integer.parseInt
(JOptionPane.showInputDialog("Masukkan elemen ["+i+"]["+j+"]:"));
}
}
return r;
}
//metode untuk mencetak matriks 2D
public static void cetakmatriks(int[][]r) {
for(int i=0;i<r.length;i++) {
for(int j=0;j<r[i].length;j++){
System.out.printf("%-8d",r[i][j]);
}
System.out.println();
}
}
//main method
public static void main(String[]args) {
//meminta input matriks 2D
int[][]P = inputmatriks(3,3);
int[][]Q = inputmatriks(3,2);
int[][]R = kalimatriks2(P,Q);
//mencetak matriks dat
System.out.println("\nMatriks P: ");
cetakmatriks(P);
System.out.println("\nMatriks Q: ");
cetakmatriks(Q);
System.out.println("\nMatriks R = Matriks P * Matriks Q : ");
cetakmatriks(R);
}

//metode perkalian matriks dengan matriks


public static int[][]kalimatriks2(int[][]P, int[][]Q) {
int [][] hasil = new int [P.length][Q[0].length];
for(int i=0;i<hasil.length;i++) {
for(int j=0;j<hasil[i].length;j++) {
hasil[i][j] = 0;
for(int c=0;c<Q.length;c++){
hasil [i][j] += P[i][c] * Q[c][j];
//sama saja dengan :hasil[i][j] = hasil[i][j]+(P[i][j]*Q[i][]);
}
}
}
return hasil;
}
}
Output
6. Buat Program untuk menghitung nilai determinan dari matrix A yang berukuran 3 baris
3 kolom. Yang menghasilkan suatu bilangan.
Program
//Mencari Determinan
import java.util.Scanner;
import javax.swing.JOptionPane;
public class L5_Determinan {
public static int [][] inputMatriks(int b,int k){
int [] [] r = new int [b][k];
for(int i=0; i<b; i++){ //untuk mengontrol baris//
for(int j=0; j<k; j++ ){ //untuk mengontrol kolom//
r[i][j] =
Integer.parseInt(JOptionPane.showInputDialog("Masukan elemen
["+i+"["+j+"]:"));}
}
return r;
}

public static void cetakMatriks(int [] [] r){


for(int i=0; i<r.length ;i++)//untuk mencetak baris//
{
for (int j = 0; j<r[i].length;j++)//untuk mencetak kolom//
{
System.out.printf("%-8d",r[i][j]);
}
System.out.println("");
}
}

public int det_matriks(int[][] A){


int hasil;
hasil =
(A[0][0]*A[1][1]*A[2][2]+A[0][1]*A[1][2]*A[2][0]+A[0][2]*A[1][0]*A[2][1])-
(A[0][2]*A[1][1]*A[2][0]+A[0][0]*A[1][2]*A[2][1]+A[0][1]*A[1][0]*A[2][2]);
return hasil;}

public static void main(String[] args) {

System.out.println("Matriks A=");
int [][] dat = inputMatriks(3,3);
cetakMatriks(dat);

L5_Determinan kelasku = new L5_Determinan();


int hasil = kelasku.det_matriks(dat);
System.out.println("|A|= "+hasil);

}
}
Output
7. Buat Program untuk memasukkan 6 nama kota di Jawa Barat yang dimasukkan melalui
keyboard, urutkan berdasarkan abjad secara ascending order.
Program

import java.io.*;
public class L5_1 {
public static void main(String args[]){
String[] kota_jabar = new String[6];
String[] asc = new String[6];
String d1 = "";
String d2 = "";
String tmp = "";
BufferedReader keybd = new BufferedReader(new
InputStreamReader(System.in));
// proses input data kota_jabar
// dimasukkan oleh user secara acak
try{
System.out.println("Masukkan nama kota di Jawa Barat: ");
for(int i=0;i < kota_jabar.length; i++){
System.out.print((i+1 + ". "));
kota_jabar[i] = keybd.readLine();

}
}catch(IOException IOerr){
System.out.print("Teradi kesalahan: " + IOerr);
}
/* === ASCENDING ORDER ===*/
for(int i = 0;i < kota_jabar.length;i++){
//int j = i + 1;
//d1 = kota_jabar[i];
for(int j = (i + 1);j < kota_jabar.length; j++){
d1 = kota_jabar[i];
d2 = kota_jabar[j];
if(d2.compareTo(d1) < d1.compareTo(d2)){
// d2 < d1
tmp = d1;
//d1 = d2;
//kota_jabar[i] = d1;
kota_jabar[i] = d2;
kota_jabar[j] = tmp;

}
}
// salin data ke asc
asc[i] = kota_jabar[i];
}
// tampilkan data hasil sorting
System.out.println("\nBerikut adalah daftar nama kota
(diurutkan secara ascending): ");
for(int i = 0; i < kota_jabar.length; i++){
System.out.printf("%d . %s\n", (i+1), asc[i]);
}
System.out.println();
// tampilkan data hasil sorting
}
}
Output
8. Buat Program untuk menyimpan 10 nama Negara beserta nama ibukotanya, untuk
programnya ketika di-run maka ketika diinputkan Negaranya maka hasilnya adalah
Ibukota dari Negara Malaysia (pemisalan) adalah Kuala Lumpur.
Program

import java.io.*;
public class L5_2 {
public static void main(String args[]){
// inisialisasi data-data nama negara satu index dengan ibu kotanya
String[] negara = {"Indonesia", "Malaysia", "Singapura", "Japan",
"China", "Filipina", "Vietnam", "India", "Brunai Darusalam", "Thailand"};
String[] ibuKota = {"Jakarta", "Kuala Lumpur", "Singapura", "Tokyo",
"Beijing", "Manila", "Hanoi", "New Delhi", "Bandar Sri Begawan", "Bangkok"};
String input = "";
// tampilkan daftar data negara
System.out.println("Daftar Nama Negara:");
for(int i=0;i < negara.length; i++)
System.out.printf("%d. %s\n",(i+1),negara[i]);
BufferedReader keybd = new BufferedReader(new
InputStreamReader(System.in));
try{
System.out.print("Masukkan nama negara: ");
// baca input nama negara dari user
input = keybd.readLine();
for(int j=0;j < negara.length; j++){
// jika data match maka tampilkan ibu kota dan stop pencarian
if(negara[j].equalsIgnoreCase(input)){
System.out.printf("Ibukota negara %s adalah
%s.\n",negara[j],ibuKota[j]);
j = negara.length;
}
// jika sudah sampai pada elemen terakhir dan data tidak match maka
cetak ini
if(j == negara.length - 1 &&
!negara[j].equalsIgnoreCase(input)){
System.out.println("Negara tidak ada dalam daftar.");
}
}
}catch(IOException IOerr){
// jika pada proses pembacaan terjadi error, tampilkan:
System.out.println("Terjadi kesalahan: " + IOerr);
}
return ;
}
}
Output

9. Buat program untuk memasukan 10 nama karyawan di suatu perusahaan beserta dengan
usianya masing-masing. Sediakan menu untuk memilih proses sorting secara ascending
(apakah berdasarkan nama atau berdasarkan usia karyawan).
Nama Usia
ANI 27
ALI 24
DENI 20
MULYADI 21
AHMAD 28
SITI 30
DADANG 24
EMI 23
ELIA 27
ANANG 25
10. Sama sprt soal no 9. Ditambah honor
Honor Nama Usia
4 ANI 27
4,5 ALI 24
3 DENI 20
3,2 MULYADI 21
6 AHMAD 28
2 SITI 30
1,6 DADANG 24
7 EMI 23
5 ELIA 27
1,1 ANANG 25
Jawab untuk no. 9&10)

package P06.Karyawan;

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ListKaryawan {
private Karyawan[] listKaryawan;

public int jumlahKaryawan;

public ListKaryawan(int jumlahKaryawan) {


this.jumlahKaryawan = jumlahKaryawan;
this.listKaryawan = new Karyawan[jumlahKaryawan];
}

public void inputList(int el, Karyawan karyawan) {


this.listKaryawan[el] = new Karyawan(
karyawan.getNama(),
karyawan.getUmur(),
karyawan.getGaji());
}

public void sortAscending(byte sortBy) {


Karyawan temp;
boolean compareStatus = false;

for (int i = 0; i < jumlahKaryawan - 1; i++) {


this.inputList(i, this.listKaryawan[i]);
for (int j = i+1; j < jumlahKaryawan; j++) {
if (sortBy == 0) {
compareStatus =
this.getListElemen(i).getNama().compareTo(

this.getListElemen(j).getNama()) > 0;
} else if (sortBy == 1) {
compareStatus =
this.getListElemen(i).getUmur() >
this.getListElemen(j).getUmur();
} else if (sortBy == 2) {
compareStatus =
this.getListElemen(i).getGaji() >
this.getListElemen(j).getGaji();
} else {
// Error
}

if (compareStatus) {
temp = this.getListElemen(i);
this.listKaryawan[i] =
this.getListElemen(j);
this.listKaryawan[j] = temp;
}
}
}
}

public Karyawan getListElemen(int el) {


return listKaryawan[el];
}

public void printListInTable() {


System.out.format("%3s | %15s | %4s | %7s
public Karyawan getListElemen(int el) {
return listKaryawan[el];
}

public void printListInTable() {


System.out.format("%3s | %15s | %4s | %7s |\n",
"No", "Nama", "Umur", "Gaji(jt)");
System.out.println("------------------------------------
----------");

int i = 0;
while (i < jumlahKaryawan) {
System.out.format("%3d | %15s | %3d | %2g |\n",
i+1,
listKaryawan[i].getNama(),
listKaryawan[i].getUmur(),
listKaryawan[i].getGaji() / 1000000);
i++;
}
}

public static void main(String[] args) {


BufferedReader input = new BufferedReader(
new InputStreamReader(System.in));

ListKaryawan krywn = new ListKaryawan(10);

String namaKrywn;
int umurKrywn;
double gajiKrywn;

int i = 0;
while (i < krywn.jumlahKaryawan) {
try {
System.out.println("[" + (i + 1) + "]
=============================");
System.out.print("Nama: ");
namaKrywn = input.readLine();
System.out.print("Umur: ");
umurKrywn = Integer.parseInt(input.readLine());
System.out.print("Gaji (jt): ");
gajiKrywn = Double.parseDouble(input.readLine())
* 1000000.0;

krywn.inputList(i, new Karyawan(namaKrywn,


umurKrywn, gajiKrywn));
} catch (Exception e) {
System.out.println("Error " + e);
break;
}
i++;
}

System.out.println("\nHasil input:");
// Output hasil dari input
krywn.printListInTable();

System.out.println("\nSort Dengan nama:");


// Output dari listkaryawan yang disort berdasarkan nama
krywn.sortAscending((byte) 0);
krywn.printListInTable();
System.out.println("\nSort Dengan nama:");
// Output dari listkaryawan yang disort berdasarkan nama
krywn.sortAscending((byte) 0);
krywn.printListInTable();

System.out.println("\nSort Dengan umur:");


// Output dari listkaryawan yang disort berdasarkan umur
krywn.sortAscending((byte) 1);
krywn.printListInTable();

System.out.println("\nSort Dengan gaji:");


// Output dari listkaryawan yang disort berdasarkan gaji
krywn.sortAscending((byte) 2);
krywn.printListInTable();

Input data:
Hasil input:

Hasil sorting berdasarkan nama:

Hasil sorting berdasarkan umur:

Hasil sorting berdasarkan gaji:


11. Buat program untuk memasukan 10 nama karyawan di suatu perusahaan beserta dengan
usianya masing-masing. Sediakan menu untuk memilih proses sorting secara ascending
(apakah berdasarkan nama depan/belakang, alamat usia, atau upah karyawan).
Public class (main program):
import java.util.Scanner;
public class T7_2 {
public static void main(String[] args){
T7_1[] id = new T7_1[10];
int i;
for (i=0;i<id.length;i++)
id[i]=inputData(i);
id = sortDataNamad(id);
System.out.println("\nHasil sorting berdasarkan Nama
Depan:");
cetak(id);
id = sortDataNamab(id);
System.out.println("\nHasil sorting berdasarkan Nama
Belakang:");
cetak(id);
id = sortDataAlamat(id);
System.out.println("\nHasil sorting berdasarkan Alamat:");
cetak(id);
id = sortDataUmur(id);
System.out.println("\nHasil sorting berdasarkan Umur:");
cetak(id);
id = sortDataUpah(id);
System.out.println("\nHasil sorting berdasarkan Upah:");
cetak(id);
}
public static T7_1 inputData (int i){
T7_1 inp = new T7_1();
String s1;String s2;String s3;int um;int up;
Scanner in = new Scanner(System.in);
System.out.print("Nama Depan["+(i+1)+"]=");s1=in.nextLine();
System.out.print("Nama Belakang["+(i+1)+"]=");s2=in.nextLine();
System.out.print("Alamat["+(i+1)+"]=");s3=in.nextLine();
System.out.print("Umur["+(i+1)+"]=");um=in.nextInt();
System.out.print("Upah["+(i+1)+"]=");up=in.nextInt();
inp.namad=s1;
inp.namab=s2;
inp.alamat=s3;
inp.umur=um;
inp.upah=up;
return inp;
}
public static T7_1[] sortDataNamad(T7_1[]dat){
T7_1 temp=new T7_1();
int i,j;
for(i=0;i<dat.length-1;i++)
{ for(j=i+1;j<dat.length;j++)
{ if((dat[i].namad).compareTo(dat[j].namad)>0){
temp=dat[i];
dat[i]=dat[j];
dat[j]=temp;
}
}
}return dat;
}

public static T7_1[] sortDataNamab(T7_1[]dat){


T7_1 temp=new T7_1();
int i,j;
for(i=0;i<dat.length-1;i++)
{ for(j=i+1;j<dat.length;j++)
{ if((dat[i].namab).compareTo(dat[j].namab)>0){
public static T7_1[] sortDataNamab(T7_1[]dat){
T7_1 temp=new T7_1();
int i,j;
for(i=0;i<dat.length-1;i++)
{ for(j=i+1;j<dat.length;j++)
{ if((dat[i].namab).compareTo(dat[j].namab)>0){
temp=dat[i];
dat[i]=dat[j];
dat[j]=temp;
}
}
}return dat;
}

public static T7_1[] sortDataAlamat(T7_1[]dat){


T7_1 temp=new T7_1();
int i,j;
for(i=0;i<dat.length-1;i++)
{ for(j=i+1;j<dat.length;j++)
{ if((dat[i].alamat).compareTo(dat[j].alamat)>0){
temp=dat[i];
dat[i]=dat[j];
dat[j]=temp;
}
}
}return dat;
}

public static T7_1[] sortDataUmur(T7_1[]dat){


T7_1 temp=new T7_1();
int i,j;
for(i=0;i<dat.length-1;i++)
{ for(j=i+1;j<dat.length;j++)
{ if((dat[i].umur)>(dat[j].umur)){
temp=dat[i];
dat[i]=dat[j];
dat[j]=temp;
}
}
}return dat;
}

public static T7_1[] sortDataUpah(T7_1[]dat){


T7_1 temp=new T7_1();
int i,j;
for(i=0;i<dat.length-1;i++)
{ for(j=i+1;j<dat.length;j++)
{ if((dat[i].upah)>(dat[j].upah)){
temp=dat[i];
dat[i]=dat[j];
dat[j]=temp;
}
}
}return dat;
}
public static void cetak(T7_1[] inp){
for (int i=0;i<inp.length;i++)
System.out.printf("%-9s%-9s%-9s%3dTahun
Rp%9d,00\n",inp[i].namad,inp[i].namab,inp[i].alamat,inp[i].umur,inp[i].upah);
}
}
Public class untuk menginisialisasi setiap array yang akan dibuat:

public class T7_1 {


public String namad;
public String namab;
public String alamat;
public int umur;
public int upah;
}
General Outputnya:
Input yang dimasukkan
Hasil Sortingnya:

Anda mungkin juga menyukai