Array
Deklarasi Dan Penciptaan Array
Seperti yang telah dijelaskan secara singkat mengenai array pada pertemuan sebelumnya adalah kelompok variabel dengan tipe sejenis dan dinyatakan dengan nama yang sama. Dengan kata lain, array merupakan tipe khusus yang menyatukan sekelompok variabel dengan tipe yang sama. Array di Java dideklarasikan dengan kurung siku: […].
Sintaks umum deklarasi array:
type var-name[ ];
Atau
type[ ] var-name;
type berperan dalam mendeklarasikan tipe basis dari array. Tipe basis menentukan tipe data bagi masing-masing elemen yang membentuk array. Dengan demikian, tipe basis untuk array menentukan tipe data yang dimuat oleh array.
Berikut contoh-contoh deklarasi array di Java:
int numbers[ ];
char[ ] letters;
long grid[ ][ ];
Pada Java tidak perlu menspesifikasikan ukuran array kosong saat mendeklarasikan array. Kita harus selalu menyatakan ukuran array secara eksplisit saat melakukan operasi penciptaan menggunakan operator new() atau dengan mendaftarkan itemitem untuk array pada saat penciptaan.
Berikut contoh pendeklarasian array dengan menspesifikasikan ukuran spesifiknya menggunakan operator new() dan dengan memberikan daftar item yang termasuk di dalam array:
char alphabet[ ] = new( ) char [26];
int primes = {7, 11, 13};
Array 1 Dimensi
Array 1 dimensi pada dasarnya senarai (deretan) variabel bertipe serupa. Kita lebih dahulu menciptakan variabel array dari tipe yang dikehendaki. int monthDays[];
Meskipun deklarasi telah menetapkan bahwa monthDays adalah variabel array, namun sesungguhnya tidak ada array yang diciptakan pada saat itu. Nilai dari monthDays adalah nilai null yang merepresentasikan array tanpa nilai dan bukan bernilai nol.
Bentuk umum new() untuk array 1 dimensi adalah sebagai berikut:
array-var = new( ) type[size]
Dalam hal ini, type menspesifikasikan tipe data yang dialokasikan, size menspesifikasikan jumlah dari elemen array, dan array-var adalah variabel array yang dirangkai ke array. Dengan demikian, untuk menggunakan new(), kita harus menspesifikasikan tipe dan jumlah elemen untuk dialokasikan. Elemen-elemen di array yang dialokasikan oleh new( ) akan secara otomatis dinisialisasi ke nol.
Perhatikan contoh berikut:
monthDays = new( ) int[12];
Setelah pernyataan diatas dieksekusi, monthDays akan mengacu ke array berisi 12 bilangan int, kedua belas angka tersebut dinisialisasi dengan nol.
Ingat:
Proses untuk dapat memperoleh array ialah 2 langkah, yaitu:
1. Deklarasi variabel dari tipe array yang dikehendaki.
2. Alokasi memori yang akan menyimpan array menggunakan operator new() dan memberikannya ke variable array. Setelah adanya pengalokasian array, kita dapat mengakses elemen spesifik di array dengan menspesifikasikan indeks, yaitu dengan menspesifikasikannya di pasangan kurung siku. Semua array dimulai dengan indeks nol. Berikut contoh untuk memberikan nilai 29 ke elemen kedua dari monthDays, digunakan perintah: monthDays[1] = 29;
Berikut ini untuk menampilkan nilai yang disimpan pada indeks 3, yaitu:
System.out.println(monthDays[3]);
Berikut ini salah satu contoh penciptaan untuk array yang berisi jumlah hari maksimum di masing-masing bulan:
class Bulan
{
public static void main(String[] args)
{
// langkah 1: deklarasi variabel array
int monthDays[];
// langkah 2: penciptaan array bilangan int dengan 12 elemen
monthDays = new int[12];
monthDays[0] = 31;
monthDays[1] = 29;
monthDays[2] = 31;
monthDays[3] = 30;
monthDays[4] = 31;
monthDays[5] = 30;
monthDays[6] = 31;
monthDays[7] = 31;
monthDays[8] = 30;
monthDays[9] = 31;
monthDays[10] = 30;
monthDays[11] = 31;
System.out.println("Agustus mempunyai "+monthDays[7]+"
hari");
}
}
Hasil (output) dari contoh listing program diatas adalah Agustus mempunyai 31 hari. Simbol “//” (dua garis miring) digunakan untuk suatu komentar (informasi singkat) program, dimana komentar tersebut tidak dieksekusi.
Array Multi Dimensi
Di Java, array multidimensi sesungguhnya array dari array. Untuk mendeklarasikan variabel array, menspesifikasikan masing-masing indeks menggunakan himpunan kurung siku yang lain.
Contoh:
Array 2 dimensi bertipe int bernama intArr dideklarasikan dan diciptakan dengan perintah sebagai berikut:
int int2DArr[ ][ ] = new( ) int [4][5];
Perintah ini mendeklarasikan dan mengalokasikan array 4 kali 5 dan memberikan ke variabel int2DArr. Secara internal matriks ini diimplementasikan sebagai array dari array bertipe int. Secara konseptual array ini digambarkan sebagai berikut:
ifStatement
Contoh:
public class If
{
public static void main(String[] args){
int anInt = 0;
if (anInt==0){
System.out.println("Variabel anInt bernilai nol");
}
}
}
Hasil (output) dari contoh listing program diatas: Variabel anInt bernilai nol. Contoh program if diatas dapat diringkas sebagai berikut:
public class Ifringkas
{
public static void main(String[] args){
int anInt = 0;
if (anInt==0)
System.out.println("Variabel anInt bernilai nol");
}
}
Hasil (output) dari contoh listing program diatas: Variabel anInt bernilai nol.
Percabangan if-else
Percabangan ini untuk memilih salah satu dari 2 kemungkinan kemunculan. Dengan kata lain, bentuk if-else menyebabkan eksekusi dijlankan melalui sekumpulan boolean, sehingga hanya bagian tertentu program yang dijalankan.
Berikut bentuk umum pernyataan if-else:
if (condition or Boolean expression)
statement1
else
statement2
Klausa else bersifat pilihan (optional). Setiap statement dapat berupa kumpulan pernyataan yang dibatasi dengan kurung kurawal. Boolean expression atau
pernyataan boolean dapat berupa sembarang pernyataan yang menghasilkan besaran boolean. Jika condition atau Boolean expression dievaluasi bernilai true, maka statement1 dieksekusi, sedangkan jika condition atau Boolean expression dievaluasi bernilai false, maka statement2 yang dieksekusi.
Contoh 1:
public class Ifelse1
{
public static void main(String[] args){
int anInt = 0;
if (anInt==0)
System.out.println("Variabel anInt bernilai nol");
else
System.out.println("Variabel anInt tidak bernilai nol");
}
}
Hasil (output) dari contoh listing program diatas: Variabel anInt bernilai nol.
Contoh 2:
public class Ifelse2
{
public static void main(String[] args){
int anInt = 1;
if (anInt==0)
System.out.println("Variabel anInt bernilai nol");
else
System.out.println("Variabel anInt tidak bernilai
nol");
}
}
Hasil (output) dari contoh listing program diatas: Variabel anInt tidak bernilai nol.
Bahasa Java menyediakan beragam kendali percabangan tidak lokal, yaitu: break, return, dan continue.
Break
Java tidak memiliki pernyataan goto. Penggunaan goto di bahasa
pemrograman lain adalah cara untuk mencabang secara sembarang, yang membuat program sulit untuk dimengerti dan mengurangi optimasi compiler tertentu. Namun, ada beberapa keadaan dimana goto berguna dan bentuk yang sah untuk pengaturan program.
Pernyataan break pada Java dirancang untuk mengatasi semua kasus tersebut. Istilah break mengacu pada proses memecahkan blok program. Proses tersebut memerintahkan runtime untuk menjalankan program di belakang blok tertentu. Untuk dapat ditunjuk, suatu blok diberi nama, dan Java memiliki bentuk label untuk menyatakan nama suatu blok.
Contoh:
class Break
{
public static void main(String[] args)
{
boolean t =true;
a: {
b: {
c: {
System.out.println("Sebelum break");
if (t)
break b;
System.out.println("Ini tidak akan dieksekusi");
}
System.out.println("Ini tidak akan dieksekusi");
}
System.out.println("Ini adalah setelah b");
}
}
}
Hasil (output) dari contoh listing program diatas: Sebelum break Ini adalah setelah b
Return
Java menggunakan bentuk sub-rutin yang disebut method untuk mengimplementasikan antarmuka procedural ke kelas objek. Setiap saat dalam method dapat digunakan pernyataan return yang menyebabkan eksekusi mencabang kembali ke pemanggil method.
Contoh:
class Return1
{
public static void main(String[] args)
{
boolean t = true;
System.out.println("Before the return"); if (t)
return;
System.out.println("This won't execute");
}
}
Hasil (output) dari contoh listing program diatas: Before the return
Continue
Seringkali kita ingin keluar lebih cepat dari perulangan. Kita mungkin juga ingin meneruskan perulangan, tetapi harus menghentikan sisa proses pada program untuk iterasi yang bersangkutan. Ini dilakukan dengan goto yang memintas program, tetapi masih di dalam perulangan. Pernyataan continue di Java melakukan persis seperti itu.
Berikut contoh program penggunaan continue yang menyebabkan 2 bilangan dicetak dalam setiap baris:
class Continue1
{
public static void main(String[] args)
{
for (int i = 0; i<10; i++) { System.out.print(i + " "); if (i% 2 == 0)
continue;
System.out.println("");
}
}
}
Hasil (output) dari contoh listing program diatas:
0 1
2 3
4 5
6 7
8 9
Program continue1 diatas menggunakan System.out.print untuk mencetak tanpa pindah baris. Kemudian digunakan operator mod, % untuk memeriksa apakah indeksnya genap, atau dapat dibagi 2. Jika genap, perulangan dilanjutkan tanpa mencetak perpindahan baris.
Percabangan switch
Pernyataan switch memberikan suatu cara untuk mengirim bagian program berdasarkan nilai suatu variabel atau pernyataan tunggal. Percabangan switch dimaksudkan untuk menangani banyak kemungkinan kemunculan.
Berikut ini bentuk umum percabangan switch:
switch (expression) {
case valeue1:
break;
case value2;
break;
case valueN;
break;
default;
}
Expression dapat menghasilkan suatu tipe sederhana, dan setiap value yang disebutkan pada pernyataan case harus berupa tipe yang cocok. Pernyataan switch bekerja dengan cara seperti ini: nilai expression dibandingkan dengan setiap nilai pada pernyataan case. Jika ada yang cocok, maka urutan program yang ada di belakang penyataan case akan dijalankan. Jika tidak ada yang cocok, maka pernyataan default yang dijalankan. Pernyataan default merupakan pilihan juga. Jika tidak ada yang cocok dan tidak ada default, tidak ada yang dikerjakan.
Kata kunci break sering digunakan dalam pernyataan switch tanpa label. Di dalam pernyataan switch, break tanpa label menyebabkan eksekusi percabangan langsung menuju akhir pernyataan switch. Jika kita tidak menuliskan break, maka eksekusi akan dilanjutkan ke dalam case selanjutnya.
Pernyataan break adalah optional atau pilihan karena terdapat keperluan untuk mengeksekusi beberapa case sekaligus jika pernyataan case diatasnya di eksekusi. Pernyataan switch berbeda dengan pernyataan if. Dimana switch hanya dapat menguji kesamaan, sedangkan pernyataan if dapat melakukan evaluasi sembarang tipe ekspresi boolean. Dengan demikian switch terlihat seperti hanya mencocokkan diantara nilai-nilai ekspresi dan konstanta-konstanta case.
Contoh 1:
public class Switch1
{
public static void main(String[] args)
{
int a;
a = 5;
switch (a) {
case 0: System.out.println("Nol"); case 1: System.out.println("Satu"); case 2: System.out.println("Dua");
case 3: System.out.println("Tiga"); case 4: System.out.println("Empat"); case 5: System.out.println("Lima");
case 6: System.out.println("Enam");
case 7: System.out.println("Tujuh");
case 8: System.out.println("Delapan");
case 9: System.out.println("Sembilan");
default: System.out.println("bukan karakter digit");
}
}
}
Hasil (output) dari contoh listing program diatas:
Lima
Enam
Tujuh
Delapan
Sembilan
bukan karakter digit
Contoh 2:
public class Switchbreak2
{
public static void main(String[] args)
{
int a;
a = 5;
switch (a) {
case 0: System.out.println("Nol"); break;
case 1: System.out.println("Satu"); break;
case 2: System.out.println("Dua"); break;
case 3: System.out.println("Tiga"); break;
case 4: System.out.println("Empat"); break;
case 5: System.out.println("Lima"); break;
case 6: System.out.println("Enam"); break;
case 7: System.out.println("Tujuh"); break;
case 8: System.out.println("Delapan"); break;
case 9: System.out.println("Sembilan"); break;
default: System.out.println("bukan karakter digit");
}
}
}
Hasil (output) dari contoh listing program diatas: Lima
Perulangan
Terdapat beberapa jenis perulangan pada Java, yaitu for
while
do-while
Pernyataan-pernyataan diatas menciptakan loop. Loop secara berulang mengeksekusi sebarisan instruksi yang sama sampai kondisi akhir ditemui. Dengan kata lain, looping atau loop artinya mengulangi eksekusi blok program tertentu sampai tercapai kondisi untuk menghentikannya (terminasi). Setiap perulangan memiliki 4 bagian: inisialisasi (initialization), badan program (body)/ statement, iterasi (iteration), dan termination.
Perulangan for
Perulangan for menyediakan sarana mengulang kode dalam jumlah yang tertentu. Pengulangan ini terstruktur untuk mengulangi kode sampai tercapai batas tertentu.
Berikut bentuk dasar perulangan for:
for(InitializationExpression; LoopCondition; StepExpression) statement
InitializationExpression, digunakan untuk inisialisasi variabel kendali perulangan.
LoopCondition, membandingkan variabel kendali perulangan dengan suatu nilai batas.
StepExpression, menspesifkasikan cara variabel kendali dimodifikasi sebelum iterasi berikutnya dari perulangan.
Contoh:
public class For1
{
public static void main(String[] args)
{
int i;
for (i = 1;i<11;i++)
System.out.println(i);
}
}
Hasil (output) dari contoh listing program diatas:
1
2
3
4
5
6
7
8
9
10
Deklarasi variabel Kendali loop Di Dalam for-loop Sering variabel yang digunakan untuk mengendalikan for-loop hanya diperlukan untuk tujuan loop dan tidak digunakan di selain keperluan itu. Dalam kasus seperti ini, sebaiknya kita mendeklarasikan variabel di dalam bagian inisialisasi for.
Contoh:
public class For2
{
public static void main(String[] args)
{
for (int i = 1;i<11;i++)
System.out.println(i);
}
}
Hasil (output) dari contoh listing program diatas:
1
2
3
4
5
6
7
8
9
10
Penggunaan Koma Di for-loop
Sering kita memberikan lebih dari satu pernyataan di bagian inisialisasi dan iterasi di for-loop.
Contoh:
public class Forkoma1{
public static void main(String[] args){
for(int i=1,j=4; i
System.out.println("i = " + i);
System.out.println("j = " + j);
}
}
}
Hasil (output) dari contoh listing program diatas:
i = 1
j = 4
i = 2
j = 3
Loop diatas dikendalikan interaksi 2 variabel. Karena loop dikendalikan 2 variabel, maka lebih baik kedua variabel tersebut dimasukkan ke pernyataan for, dibanding j ditangani secara manual terpisah. Java mengijinkan 1 variabel atau lebih berada di pernyataan loop, bahkan Java mengijinkan banyak pernyataan berada di bagian inisialisasi dan iterasi dari pernyataan for. Masing-masing pernyataan itu harus dipisahkan menggunakan tanda koma.
Pernyataan for-loop Bersarang
Java memungkinkan loop yang disarangkan di loop yang lain. Satu loop berada di dalam loop yang lainnya.
Contoh:
public class Loopbersarang1{
public static void main(String[] args){
for(int i=0;i<10;i++){
for(int j=i;j<10;j++){
System.out.print("*");}
System.out.println();
}
}
}
Hasil (output) dari contoh listing program diatas:
*
**
*
**
*
**
*
Perulangan while
Pengulangan while mempunyai kondisi yang menngendalikan pernyataan perulangan.
Berikut bentuk dasar perulangan while:
[initialization;] while (Pernyataan boolean/ LoopCondition/ Termination) {
Statement;
[iteration;]
}
WhileStatement
Jika LoopCondition/ pernyataan boolean dievaluasi true, maka statement dieksekusi dan proses terus berlanjut berulang kali. Penting diketahui bahwa LoopCondition muncul sebelum badan dari pernyataan. Ini berarti jika LoopCondition sejak semula dievaluasi false, maka statement tidak pernah dieksekusi. Hal ini merupakan perbedaan penting antara perulangan while dengan perulangan do-while.
Berikut ini perulangan dengan while yang menghitung mundur dari n, menuliskan tepat sepuluh “track”.
Contoh:
class While1{
public static void main(String[] args){
int n = 10;
while (--n >= 0)
System.out.println("track " + (n + 1));
}
}
Hasil (output) dari contoh listing program diatas:
track 10
track 9
track 7
track 6
track 5
track 4
track 3
track 2
track 1
Perulangan do-while
Perulangan do-while serupa dengan perulangan while, hanya saja pemeriksaan kondisi yang dilakukan adalah setelah pernyataan. Kadang-kadang diinginkan untuk mengeksekusi badan program dengan perulangan while sekurang-kurangnya sekali, bahkan jika pernyataan boolean-nya langsung menghasilkan false. Akibarnya, kita
harus memeriksa pernyataan boolean/ LoopCondition di akhir perulangan, bukan di awal seperti pada perulangan while.
Bentuk umum atau bentuk dasar perulangan do-while:
[initialization;] do {
Statement;
[iteration;]
} while(Pernyataan boolen/ LoopCondition/ Termination);
1 Komentar:
kak ,adakah contoh program penggabungan dari percabangan,perulangan dan array kak?
Post a Comment