Bagaimana cara
membuat java larik yang dinamis ? larik atau juga bisa di sebut
array , karateristik array ada tiga macam yaitu:
# Type data sama.
# Jenis posisi sifatnya sama.
# Bisa di akses secara acak tetap sama.
Untuk array yang akan saya buat nanti menggunakan satu
dimensi dimana untuk menentukan jumlah elemen array satu dimensi cukup melihat
pada index yang tertera, di contoh program nanti saya akan membuat DATA MAHASISWA (nama , nilai OOP)
dimana nama dan nilai akan mengurutkan dari yang terbesar > terkecil atau juga sebaliknya yang sering disebut
juga acsending/descending.
PROGRAM JAVA LARIK YANG LENGKAP TANPA PENJELASAN ADA DI
BAGIAN PALING BAWAH!
Bisa juga di DOWNLOAD
m-naufal-fahmi-UAS-OOP-141105150720.docx
^ langkah awal buka java eclipse / netbeans.
^ buat project dan class baru dengan nama UAS (mengacu pada soal UAS mata kuliah Pemrograman
Berbasis Objek di kampus UIKA bogor semester 3)
^ import java
BufferReader , IOException , InputSreamReader.
(disini berguna untuk menginput data dari USER nantinya yang berupa
value maupun String, sebenarnya ada satu cara lagi yang lebih mudah yaitu
menggunakan Scanner tetapi karena
saya mengikuti acuan dari dari dosen matkul jadi saya tidak menggunakan Scanner)
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public
class UAS {
^
selanjutnya
buat static int dan static String.
(Larik adalah INPUT nilai mahasiswa , jm adalah jumlah mahasiswa yang
di INPUT , nm
adalah nama mahasiswa yang di INPUT , asc adalah nilai mahasiswa yang akan
diurutkan , tempstr adalah nama mahasiswa
yang akan diurutkan)
public
class UAS {
static int[] Larik;
static int jm;
static String[] nm;
static int asc;
static
String tempstr;
^
selanjutnya ketik codingan berikut.
(disini saya
akan membuat void
urut dan void urut_nama sebelum membuat void
tersebut saya membuat terlebih dahulu Nilai
dan Nama yang akan mengarahkan INPUT ke program , untuk memasukan nilai dan
nama mahasiswa saya gunakan fungsi for yang mana jika j=0; j kurang dari jm; maksudnya adalah apabila jm lebih dari 0 maka akan di eksekusi dan apabila kurang dari 0
maka akan error / tidak tereksekusi)
public static void main(String[] args){
System.out.print("**********************\n");
System.out.print("Masukan
jumlah mahasiswa :");
System.out.print(" ");
jm = jumlah();
Larik = new int[jm];
nm = new String[jm];
for (int j = 0; j < jm; j++) {
System.out.print("\n" + (1 + j) + ".
Masukan nama mahasiswa :");
System.out.print(" ");
nm[j] = nama();
System.out.print((1 + j) + ".
Masukan nilai OOP :");
System.out.print(" ");
Larik[j] = nilai();
}
urut();
urut_nama();
}
^ next ketik coding
berikut.
(di dalam void
urut ada
perintah for empat kali <4x> diantaranya adalah <1> kurang lebih
sama seperti penjelasan di atas. <2> d=0; kurang (jm-1) maka (jumlah
mahasiswa – 1) <3> a=0; a kurang
dari jm – c – 1 artinya adalah jika a kurang c karena c mempunyai turunan d
maka yang akan di pakai adalah d yang mana turunannya. *misal jm=3 c<3 ...
d<(3-1) ... a<3-2-1 =0; true atau sudah terurut <4> yaitu untuk
mengidentifikasi atau menyatakan larik nama yang sudah terurut. Dan untuk void
urut_nama kurang
lebih sama hanya mengubah fungsi if pada prinsipnya sama.)
private static void urut() {
for (int c = 0; c < jm; c++) // ubah
< > jumlah asli jm
{
for (int d = 0; d < (jm - 1); d++) // ubah
< >
for (int a = 0; a < jm - c - 1; a++) // ubah
< > operasi
{
if (Larik[a] < Larik[a + 1])
{
asc = Larik[a];
Larik[a] = Larik[a + 1];
Larik[a + 1] = asc;
tempstr = nm[a];
nm[a] = nm[a + 1];
nm[a + 1] = tempstr;
}
}
}
System.out.println("");
System.out.println("Jumlah
mahasiswa yang di masukan " + jm);
System.out.println("Hasil
Pengurutan dari nilai yang terbesar adalah: \n");
for (int i = 0; i < jm; i++) {
System.out.print("\n\t
Nama : " + nm[i] + "\n\t
Nilai : " + Larik[i] + "\n\n");
}
}
private static void urut_nama() {
for (int x1 = 0; x1 < jm; x1++) {
for (int y = 0; y < (jm - 1); y++) {
for (int f = 0; f < jm - x1 - 1; f++)
if (nm[f].compareTo(nm[f + 1]) > 0) {
tempstr = nm[f];
nm[f] = nm[f + 1];
nm[f + 1] = tempstr;
asc = Larik[f];
Larik[f] = Larik[f + 1];
Larik[f + 1] = asc;
}
}
}
System.out.println("");
System.out.println("Hasil Pengurutan
nama menurut alfabet dari " + jm + " data
mahasiswa adalah: \n");
for (int i = 0; i < jm; i++) {
System.out.println("\t
Nama :
" + nm[i] +"\n\tNilai : " +Larik[i] +"\n\t--------------");
}
}
^ next yang terakhir
tambahkan coding berikut.
(membuat static
int jumlah , static
String nama , static
int nilai berfungsi untuk membuat INPUT yang nantinya akan di
gunakan USER.)
private static int jumlah() {
BufferedReader
bfr = new BufferedReader(new
InputStreamReader(System.in));
String
jumlah = null;
try {
jumlah = bfr.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
int Data = Integer.valueOf(jumlah).intValue();
return Data;
}
private static String nama() {
BufferedReader
mmm = new BufferedReader(new
InputStreamReader(System.in));
String
nama = "";
try {
nama = mmm.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
return nama;
}
private static int nilai() {
BufferedReader
www = new BufferedReader(new
InputStreamReader(System.in));
String
nilai = null;
try {
nilai = www.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
int Data = Integer.valueOf(nilai).intValue();
return Data;
}
}
hasil outputnya:
**********************
Masukan jumlah mahasiswa : 3
1. Masukan nama mahasiswa : naufal
1. Masukan nilai OOP : 80
2. Masukan nama mahasiswa : fahmi
2. Masukan nilai OOP : 50
3. Masukan nama mahasiswa : andreas
3. Masukan nilai OOP : 100
Jumlah mahasiswa yang di masukan
3
Hasil Pengurutan dari nilai yang
terbesar adalah:
Nama :
andreas
Nilai : 100
Nama :
naufal
Nilai : 80
Nama :
fahmi
Nilai : 50
Hasil Pengurutan nama menurut
alfabet dari 3 data mahasiswa adalah:
Nama
: andreas
Nilai : 100
--------------
Nama
: fahmi
Nilai : 50
--------------
Nama
: naufal
Nilai : 80
--------------
Program lengkap java
larik satu dimensi menginput nama & nilai MAHASISWA:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public class UAS {
static int[] Larik;
static int jm;
static String[] nm;
static int asc;
static String tempstr;
public static void main(String[] args){
System.out.print("**********************\n");
System.out.print("Masukan
jumlah mahasiswa :");
System.out.print(" ");
jm = jumlah();
Larik = new int[jm];
nm = new String[jm];
for (int j = 0; j < jm; j++) {
System.out.print("\n" + (1 + j) + ".
Masukan nama mahasiswa :");
System.out.print(" ");
nm[j] = nama();
System.out.print((1 + j) + ".
Masukan nilai OOP :");
System.out.print(" ");
Larik[j] = nilai();
}
urut();
urut_nama();
}
private static void urut() {
for (int c = 0; c < jm; c++) // ubah
< > jumlah asli jm
{
for (int d = 0; d < (jm - 1); d++) // ubah
< > jumlah palsu jm
for (int a = 0; a < jm - c - 1; a++) // ubah
< > operasi
{
if (Larik[a] < Larik[a + 1])
{
asc = Larik[a];
Larik[a] = Larik[a + 1];
Larik[a + 1] = asc;
tempstr = nm[a];
nm[a] = nm[a + 1];
nm[a + 1] = tempstr;
}
}
}
System.out.println("");
System.out.println("Jumlah
mahasiswa yang di masukan " + jm);
System.out.println("Hasil Pengurutan
dari nilai yang terbesar adalah: \n");
for (int i = 0; i < jm; i++) {
System.out.print("\n\t
Nama : " + nm[i] + "\n\t
Nilai : " + Larik[i] + "\n\n");
}
}
private static void urut_nama() {
for (int x1 = 0; x1 < jm; x1++) {
for (int y = 0; y < (jm - 1); y++) {
for (int f = 0; f < jm - x1 - 1; f++)
if (nm[f].compareTo(nm[f + 1]) > 0) {
tempstr = nm[f];
nm[f] = nm[f + 1];
nm[f + 1] = tempstr;
asc = Larik[f];
Larik[f] = Larik[f + 1];
Larik[f + 1] = asc;
}
}
}
System.out.println("");
System.out.println("Hasil
Pengurutan nama menurut alfabet dari " + jm + " data
mahasiswa adalah: \n");
for (int i = 0; i < jm; i++) {
System.out.println("\t
Nama :
" + nm[i] +"\n\tNilai : " +Larik[i] +"\n\t--------------");
}
}
private static int jumlah() {
BufferedReader
bfr = new BufferedReader(new
InputStreamReader(System.in));
String
jumlah = null;
try {
jumlah = bfr.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
int Data = Integer.valueOf(jumlah).intValue();
return Data;
}
private static String nama() {
BufferedReader
mmm = new BufferedReader(new
InputStreamReader(System.in));
String
nama = "";
try {
nama = mmm.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return nama;
}
private static int nilai() {
BufferedReader
www = new BufferedReader(new
InputStreamReader(System.in));
String
nilai = null;
try {
nilai = www.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
int Data = Integer.valueOf(nilai).intValue();
return Data;
}
}
Post Comment
0 komentar:
Post a Comment