Oleh
Nama : Marta Yulianti
NIM : 215314154
B. DASAR TEORI
Array Dimensi Satu
7.1 Tujuan
Dalam bab ini, kita akan mendiskusikan mengenai array dalam Java. Pertama, kita
akan mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan
mendiskusikan bagaimana mendeklarasikannya dan menggunakannya dalam Java.
Pada akhir pembahasan, diharapkan pembaca dapat :
Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier
berbeda untuk tiap variabel.
int number1;
int number2;
int number3;
number1 = 1;
number2 = 2;
number3 = 3;
Seperti yang dapat Anda perhatikan pada contoh diatas, kode tersebut akan sia-sia
karena harus menginisialisasi dan menggunakan setiap variabel padahal sebenarnya
variabel-variabel tersebut digunakan untuk tujuan yang sama. Pada bahasa pemrograman
Java maupun di bahasa pemrograman yang lain, terdapat sebuah kemampuan untuk
menggunakan satu variabel yang dapat menyimpan beberapa data dan memanipulasinya
dengan lebih efektif. Tipe variabel inilah yang disebut sebagai array.
int []ages;
atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai
contoh,
int ages[];
Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa
panjangnya dengan sebuah konstruktor. Proses ini di Java disebut sebagai instantiation
(istilah dalam Java yang berarti membuat). Untuk meng-instantiate sebuah obyek, kita
membutuhkan sebuah konstruktor. Kita akan membicarakan lagi mengenai instantiate
obyek dan pembuatan konstruktor pada bagian selanjutnya. Sebagai catatan bahwa ukuran
dari array tidak dapat diubah setelah anda menginisialisasinya. Sebagai contoh,
//deklarasi
int ages[];
//instantiate obyek
ages = new int[100];
Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript telah
diberikan kepada tiap anggota array, sehingga program dan programmer dapat
mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeks selalu dalam tipe
integer, dimulai dari angka nol dan dilanjutkan ke angka berikutnya sampai akhir
array. Sebagai catatan bahwa indeks didalam array dimulai dari 0 sampai dengan
(ukuranArray-1).
Sebagai contoh, pada array yang kita deklarasikan tadi, kita mempunyai,
Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam array. Dalam
contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih pendek.
Elemen-elemen dalam n-elemen array memiliki indeks dari 0 sampai n-1. Perhatikan disini
bahwa tidak ada elemen array arr[n]. Hal ini akan menyebabkan array-index out-of-bounds
exception.
arrayName.length
Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini,
1. Pada saat pembuatan for loop untuk memproses elemen-elemen dalam array,
gunakanlah atribut length yang di letakkan di dalam bag ian pengkondisian
dari for loop. Hal ini akan menyebabkan loop secara otomatis menyesuaikan
diri terhada ukuran array yang berbeda-beda.
2. Pendeklarasian ukuran array di program Java, biasanya menggunakan sebuah
konstanta untuk mempermudah. Sebagai contoh,
// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];
Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan
mengakses array satu dimensi. Misalnya saja, untuk mengakses elemen pertama dari
baris pertama didalam array dogs, kita akan menulis,
System.out.print( dogs[0][0] );
C. ANALISIS
1. Soal_No1
a. Uraian soal
import java.util.Scanner;
public class CobaArray1 {
public static void main(String[] args) {
int[] nilai;
nilai = new int[5];
Scanner Keyboard = new Scanner(System.in);
System.out.println("Masukkan 5 data bulat");
//Menyimpan 5 data bulat ke array nilai
nilai[0] = 45;
nilai[1] = 75;
nilai[2] = 80;
nilai[3] = 78;
nilai[4] = 93;
b. Rancangan program
Output
Proses
Input
Scanner input
Screenshot Output
2. Soal_No2
a. Uraian soal
Tulis, jalankan dan pahami program berikut:
import java.util.Scanner;
public class CobaArray2 {
public static void main(String[] args) {
int[] skor;
skor = new int[5];
Scanner Keyboard = new Scanner(System.in);
System.out.println("Masukkan 5 data bulat");
//Membaca 5 data bulat
for(int i = 0; i <=4; i++){
System.out.print("Data ke "+(i+1)+" : ");
skor[i] = Keyboard.nextInt();
}
//Menampilkan data dari akhir ke awal
for(int i=0; i <= 4; i++) System.out.println("Data ke "+ (i+1) +" adalah "+skor[4-i]);
}
}
b. Rancangan program
Output
Proses
Scanner Keyboard
Screenshot Output
3. Soal_No3
a. Uraian soal
Modifikasilah program di atas sehingga semua isi array skor dikopikan ke array yang
bernama cadangan. Cetaklah isi array skor dan array cadangan untuk melihat apakah
isinya sama.
b. Rancangan program
Output
-- Data Cadangan --
Data ke 1 adalah 25
Data ke 2 adalah 20
Data ke 3 adalah 15
Data ke 4 adalah 10
Data ke 5 adalah 5
Proses
println()
Input
int[] skor = new int[5]; Memesan tempat untuk bilangan bulat dengan nama
skor sebagai nama array dan membuat atau meng-
instantiate array skor yang terdiri dari 5 elemen.
int [] cadangan = new int [5]; Memesan tempat untuk bilangan bulat dengan nama
cadangan sebagai nama array dan membuat atau
meng-instantiate array cadangan yang terdiri dari 5
elemen.
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
Screenshot Output
4. Soal_No4
a. Uraian soal
Modifikasilah program no 2 di atas sehingga tidak hanya menampilkan isi array tetapi
juga bisa menampilkan rata-rata, nilai maksimum dan nilai minimum isi array tersebut.
b. Rancangan program
Output
Data ke 1 adalah 92
Data ke 2 adalah 88
Data ke 3 adalah 90
Data ke 4 adalah 80
Proses
Data ke 5 adalah 95
Menampilkan tulisan "Masukkan 5 data bulat "
Rata-rata : 89.0
Max : 95
Membaca 5 data bulat
Min : 80
for(i = 0; i <= 4; i++){
Cetak "Data ke "+(i + 1)+" : "
skor[i] = input.nextInt()
}
println()
Scanner input
c. Algoritma memakai
pseudocode informal (input, proses, output)
int[] skor = new int[5]; Memesan tempat untuk bilangan bulat dengan nama
skor sebagai nama array dan membuat atau meng-
instantiate array skor yang terdiri dari 5 elemen.
int max, min, i, jumlah = 0; Memesan tempat untuk bilangan bulat dengan nama
max, min, i, jumlah dan menyimpan bilangan bulat
nol (0) ke variable jumlah.
double ratarata; Memesan tempat untuk bilangan real dengan nama
ratarata.
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
System.out.println("Masukkan 5 data bulat"); Menampilkan tulisan "Masukkan 5 data bulat" pada
output dengan menambahkan baris baru.
for(i = 0; i <= 4; i++){ Variable i tugasnya untuk menyimpan i pengulangan.
5. Soal_No5
a. Uraian soal
Rata-rata : 91.8
Max : 95.1
Min : 89.5
Proses
Scanner input
Screenshot Output
6. Soal_No6
a. Uraian soal
Buatlah sebuah program yang dapat mencari posisi sebuah nilai dalam array berikut
ini!
A = {2,7,3,9,4,1,34,25,76,80,90,54,21,78}
Nilai yang dicari: 34 -------------------------- dimasukkan lewat keyboard
Berada di index : 6
Jika yang dicari tidak ada di array maka program menampilkan pesan ‘Tidak ada’
b. Rancangan program
Output
Proses
Input
int A [] = {2, 7, 3, 9, 4, 1, 34, 25, 76, 80, 90, Memesan tempat untuk bilangan bulat dengan nama
54, 21, 78}; A sebagai nama array dan membuat atau meng-
instantiate array A yang terdiri dari index {2, 7, 3, 9,
4, 1, 34, 25, 76, 80, 90, 54, 21, 78}
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
System.out.print("Nilai yang dicari : "); Menampilkan tulisan "Nilai yang dicari : " pada
output tanpa menambahkan baris baru.
int nilai = input.nextInt(); Int nilai memesan tempat untuk bilangan bulat
dengan nama nilai.
for(int i = 1; i < A.length; i++){ Int i memesan tempat untuk bilangan bulat dengan
nama i.
7. Soal_No7
a. Uraian soal
b. Rancangan program
Output
Proses
Scanner input
int[] usia1 = {18, 39, 45, 50, 65, 70, 90}; Memesan tempat untuk bilangan bulat dengan nama
usia1 sebagai nama array dan membuat atau meng-
instantiate array usia1 yang terdiri dari index {18, 39,
45, 50, 65, 70, 90}
int[] usia2 = {20, 32, 54, 66, 75, 80, 85, 89, Memesan tempat untuk bilangan bulat dengan nama
90, 95, 96}; usia2 sebagai nama array dan membuat atau meng-
instantiate array usia2 yang terdiri dari index {20, 32,
54, 66, 75, 80, 85, 89, 90, 95, 96}
int[] usiaGabung = new int [usia1.length + Memesan tempat untuk bilangan bulat dengan nama
usia2.length]; usiaGabung sebagai nama array dan membuat atau
meng-instantiate array usiaGabung yang terdiri dari
elemen [usia1.length + usia2.length]
int jumlah = 0, index = 0, counter = 0, max, Memesan tempat untuk bilangan bulat dengan nama
min, temp, i, j; jumlah, index, counter, max, min, temp, i, j dan
menyimpan bilangan bulat 0 ke variabel jumlah,
index dan counter.
8. Soal_No8
a. Uraian soal
b. Rancangan program
Output
Bilangan Genap : 26 30 32 50 70 80 76
Bilangan Ganjil : 23 33 69 55 53 21
Proses
int [] Bil = {23, 26, 30, 32, 33, 69, 50, 70, 80, Memesan tempat untuk bilangan bulat dengan nama
55, 76, 53, 21}; Bil sebagai nama array dan membuat atau meng-
instantiate array Bil yang terdiri dari index {23, 26,
30, 32, 33, 69, 50, 70, 80, 55, 76, 53, 21}
Screenshot Output
9. Soal_No9
a. Uraian soal
Buatlah sebuah program yang yang dapat mengurutkan isi sebuah array dari yang
terkecil sampai yang terbesar memakai algoritma bubble sort !
Banyak elemen : 5
Elemen-1 : 4
Elemen-2 : 3
Elemen-3 : 2
Elemen-4 : 5
Elemen-5 : 1
Hasil Pengurutan : 1 2 3 4 5
b. Rancangan program
Output
Banyak Elemen : 5
Elemen Ke- 1 : 9
Elemen Ke- 2 : 6
Elemen Ke- 3 : 10
Elemen Ke- 4 : 8
Elemen Ke- 5 : 7
Hasil Pengurutan : 6 7 8 9 10
Proses
Input
Scanner input
c. Algoritma memakai pseudocode informal (input, proses, output)
Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan fungsi-
fungsi untuk mengambil input dari keyboard. Agar
kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
public class Soal_No9 { Deklarasi class Soal_No9
public static void main(String [] args) { Deklarasi metode main
Screenshot Output
10. Soal_No10
a. Uraian soal
Buat program untuk merekam NIM, nama, us1, us2dan uas dari sejumlah mahasiswa memakai
array yang masing-masing bertipe String, String, double, double, dan double. Selanjutnya buat
juga array totalNil dan finalNil yang masing-masing bertipe double dan char. Array totalNil
digunakan untuk merekam nilai total dengan rumus
totalNil = 30 % us1 + 30 % us2 + 40 % uas
sedang finalNil untuk merekam konversi nilai total ke nilai huruf memakai rumus
Setelah merekam data sejumlah (minimal 10) data nilai,selanjutnya program menampilkan
daftar Nim, nama dan semua nilai memakai format berikut:
==================================================================
Selanjutnya program menampilkan daftar Nim, nama dan semua nilai urut dari nilai total
yang paling tinggi memakai format berikut:
6. Menampilkan
Bobi 216735648
tulisan "\t\t\t 70.0
Daftar Nilai 80.0 TI 85.0
Mahasiswa USD" 79.0 B
9. Cetak Kiko
"--------------------------------------------------------------------------------------------"
213672747 60.0 65.0 65.0 63.5 C
10.for (intLoli
i = 0; i < n; i++) 217837839
{ 50.0 60.0 70.0 61.0 C
Cetak ((i+1) + ".") dan input nama[i]
Cetak ("\t\t") dan input nim[i]
========================================================
Cetak ("\t\t") dan us1[i]
Cetak ("\t") dan input us2[i]
Cetak ("\t") dan input uas[i]
Cetak ("\t\t")
}
Hitung total[i] = hitungtotal(us1[i], us2[i], uas[i])
for (int a = 0; a < n; a++){
for (int j = 0; j < n - a - 1; j++){
if (total[j] < total[j + 1]){
swap = total[j]
total[j] = total[j + 1] Mengurutkan nilai total
total[j + 1] = swap
nilaius1 = us1[j]
us1[j] = us1[j + 1] Mengurutkan nilai us1
us1[j + 1] = nilaius1
nilaius2 = us2[j]
us2[j] = us2[j + 1] Mengurutkan nilai us2
us2[j + 1] = nilaius2
nilaiuas = uas[j]
uas[j] = uas[j + 1] Mengurutkan nilai uas
uas[j + 1] = nilaiuas
namaa = nama[j]
nama[j] = nama[j + 1] Mengurutkan nama
nama[j + 1] = namaa
nim1 = nim[j]
nim[j] = nim[j + 1] Mengurutkan nim
nim[j + 1] = nim1
Input
Memesan memori bernama swap, nilaius1, nilaius2, nilaiuas dengan tipe data
bilangan real.
Scanner input
Memesan memori bernama nim dan nama yang akan digunakan sebagai nama
array yang berisi data bertipe String, dan dilanjutkan dengan membuat atau meng-
instantiate array nim dan nama yang terdiri dari n elemen.
Memesan memori bernama us1, us2, uas, total yang akan digunakan sebagai
nama array yang berisi data bertipe double, dan dilanjutkan dengan membuat
atau meng-instantiate array us1, us2, uas, total yang terdiri dari n elemen.
Memesan memori bernama akhir yang akan digunakan sebagai nama array yang
berisi data bertipe char, dan dilanjutkan dengan membuat atau meng-instantiate
array akhir yang terdiri dari n elemen.
c. Algoritma memakai pseudocode informal (input, proses, output)
nilaius1 = us1[j]
us1[j] = us1[j + 1]
us1[j + 1] = nilaius1
nilaius2 = us2[j]
us2[j] = us2[j + 1]
us2[j + 1] = nilaius2
nilaiuas = uas[j]
uas[j] = uas[j + 1]
uas[j + 1] = nilaiuas
namaa = nama[j]
nama[j] = nama[j + 1]
nama[j + 1] = namaa
nim1 = nim[j]
nim[j] = nim[j + 1]
nim[j + 1] = nim1
huruf = akhir[j];
akhir[j] = akhir[j + 1]
akhir[j + 1] = huruf
}
}
}
31. for (int x = 0; x < n; x++) {
println isi array dari ((x+1) + "." + "\t" + nama[x] + "\t\t" + nim[x] + "\t" +
us1[x] + "\t" + us2[x] + "\t" + uas[x] + "\t" + total[x] + "\t " + akhir[x])
32. println()
33. } end for
34. println("=================================================")
35. } end metode main
Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan
fungsi-fungsi untuk mengambil input dari keyboard.
Agar kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
public class Soal_No10 { Deklarasi class Soal_No10
public static void main(String [] args) { Deklarasi metode main
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
int n, no; Memesan tempat untuk bilangan bulat dengan nama
n, no.
double swap = 0, nilaius1 = 0, nilaius2 = 0, Memesan tempat untuk bilangan real dengan nama
nilaiuas = 0; swap, nilaius1, nilaius2, nilaiuas dan menyimpan
bilangan real 0 ke variabel swap, nilaius1, nilaius2,
nilaiuas.
String namaa, nim1; Memesan tempat untuk variabel namaa, nim1
dengan tipe data String.
char huruf; Memesan tempat untuk variable huruf dengan tipe
data char.
System.out.print("Masukan Jumlah Siswa : "); Menampilkan tulisan "Masukan Jumlah Siswa : "
pada output tanpa menambahkan baris baru.
n = input.nextInt(); Perintah untuk membaca angka/nilai (dalam
bilangan bulat) yang diinput sendiri oleh user.
System.out.println(); Perintah untuk memindahkan cursor ke baris baru.
String[] nim = new String[n]; Memesan tempat untuk array nim dengan tipe data
String dan membuat atau meng-instantiate array
nim yang terdiri dari n elemen.
String[] nama = new String[n]; Memesan tempat untuk array nama dengan tipe data
String dan membuat atau meng-instantiate array
nama yang terdiri dari n elemen.
double[] us1 = new double[n]; Memesan tempat untuk bilangan real dengan nama
us1 sebagai nama array dan membuat atau meng-
instantiate array us1 yang terdiri dari n elemen.
double[] us2 = new double[n]; Memesan tempat untuk bilangan real dengan nama
us2 sebagai nama array dan membuat atau meng-
instantiate array us2 yang terdiri dari n elemen.
double[] uas = new double[n]; Memesan tempat untuk bilangan real dengan nama
uas sebagai nama array dan membuat atau meng-
instantiate array uas yang terdiri dari n elemen.
double[] total = new double[n]; Memesan tempat untuk bilangan real dengan nama
total sebagai nama array dan membuat atau meng-
instantiate array total yang terdiri dari n elemen.
char[] akhir = new char[n]; Memesan tempat untuk array akhir dengan tipe data
char dan membuat atau meng-instantiate array akhir
yang terdiri dari n elemen.
System.out.println("\t\t\t Daftar Nilai Mahasiswa Menampilkan tulisan "\t\t\t Daftar Nilai Mahasiswa
TI USD"); TI USD" pada output dengan menambahkan baris
baru. \t\t\t digunakan untuk memberikan jarak 3 kali
spasi seperti hanya fungsi tab.
System.out.println("No.\t" + "Nama\t\t" + "NIM\t\ Menampilkan tulisan "No.\t" + "Nama\t\t" + "NIM\
t" + "US1\t" + "US2\t" + "UAS\t" + "Total\t" + t\t" + "US1\t" + "US2\t" + "UAS\t" + "Total\t" +
"Final"); "Final" pada output dengan menambahkan baris
baru. \t digunakan untuk memberikan jarak
beberapa spasi seperti hanya fungsi tab.
System.out.println("------------------------------------- Menampilkan garis putus-putus pada output dengan
------------------------------------------"); menambahkan baris baru.
for (int i = 0; i < n; i++) { int i memesan tempat untuk bilangan bulat
dengan nama i
if (total[i] >= 80) { Jika kondisi (total[i] >= 80) bernilai true maka, nilai
akhir[i] = 'A'; akhir = 'A'
}
else if (65 <= total[i] && total[i] < 80) { Jika kondisi (65 <= total[i] && total[i] < 80)
akhir[i] = 'B'; bernilai true maka, nilai akhir = 'B'
}
else if (55 <= total[i] && total[i] < 65) { Jika kondisi (55 <= total[i] && total[i] < 65)
akhir[i] = 'C'; bernilai true maka, nilai akhir = 'C'
}
else if (50 <= total[i] && total[i] < 55) { Jika kondisi (50 <= total[i] && total[i] < 55)
akhir[i] = 'D'; bernilai true, maka nilai akhir = 'D'
}
else { Jika semua kondisi di atas bernilai false maka nilai
akhir[i] = 'E'; akhir = ‘E’
}
System.out.print(total[i] + "\t"); Menampilkan isi dari array total pada output tanpa
menambahkan baris baru.
System.out.print(akhir[i]); Menampilkan isi dari array akhir pada output tanpa
menambahkan baris baru.
System.out.println(); Perintah untuk memindahkan cursor ke baris baru.
} End for
System.out.println("====================” Menampilkan “=========================”
) pada output dengan menambahkan baris baru.
System.out.println(); Perintah untuk memindahkan cursor ke baris baru.
System.out.println("\t\t Daftar Nilai Mahasiswa Menampilkan tulisan "\t\t Daftar Nilai Mahasiswa
TI USD Urut Terbaik"); TI USD Urut Terbaik" pada output dengan
menambahkan baris baru.
System.out.println("No.\t" + "Nama\t\t" + "NIM\t\ Menampilkan tulisan “No.\t" + "Nama\t\t" + "NIM\
t" + "US1\t" + "US2\t" + "UAS\t" + "Total\t" + t\t" + "US1\t" + "US2\t" + "UAS\t" + "Total\t" +
"Final"); "Final") pada output dengan menambahkan baris
baru.
System.out.println("------------------------------------- Menampilkan garis putus-putus pada output dengan
------------------------------------------"); menambahkan baris baru.
for (int a = 0; a < n; a++){ int a memesan tempat untuk bilangan bulat
dengan nama a
huruf = akhir[j];
akhir[j] = akhir[j + 1];
akhir[j + 1] = huruf Mengurutkan hasil akhir nya
}
} End for
} End for
for (int x = 0; x < n; x++) { int x memesan tempat untuk bilangan bulat
dengan nama x
Pusat Ilmu Secara Detil, Program Bubble Sort Dengan Menggunakan Java, https://ilmu-
detil.blogspot.com/2016/09/algoritma-bubble-sort-pada-java.html, diakses pada 27 November
2021, 13:24 WIB