Belajar Java, menggunakan operasi, conditional dan perulangan Nah, kali ini saya punya hasil praktikum saya dari basic java tentang ope...
Belajar Java, menggunakan operasi, conditional dan perulangan
Nah, kali ini saya punya hasil praktikum saya dari basic java tentang operator, loop, dan condition, bagi kalian yang tidak tahu saya dapat darimana, kalian bisa download modul praktikum-nya di page download praktikum java di footer blog saya. Happy Learning. Sebelumnya ane mohon maaf syntax codenya agak berantakan.. well ane sudah berusaha semaksimal mungkin biar rapi, tapi emang inilah batasan platform gratisan kayak blogger.
Tips!! Download dulu praktikumnya, lalu pahami bab percobaan setelah itu kerjakan soal latihan dan tugas!
Dasar Teori
Dalam Java, terdapat Operator, percabangan dan pengulangan (Loop) untuk menjalankan program.
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi, contoh operator yaitu penjumlahan, pengurangan, perkalian, pembagian, dan lain-lain.
Dalam Java terdapat :
(1) operator matematis digunakan untuk operasi aritmetika,
(2) Operator relational adalah operator yang menyatakan hubungan antara satu operand dengan operand lainnya, menghasilkan nilai true atau false,
(3) Operator logika berguna ketika kita ingin menguji dua kondisi atau lebih secara bersamaan apakah kondisinya bernilai benar atau tidak,
(4) Operator penugasan berguna untuk memberikan nilai ke suatu variabel,
(5) Operator bitwise digunakan untuk manipulasi bit-bit dari nilai data yang ada di memori.
Percabangan atau Conditional Relation memiliki suatu kondisi yang mana kondisi tersebutlah yang akan menentukan perintah-perintah yang akan dijalankan oleh suatu program. Perintah dalam suatu kondisi akan dijalankan ketika kondisi tersebut bernilai benar, dan sebaliknya apabila kondisi bernilai salah maka perintah didalamnya tidak akan dijalankan. Ada beberapa macam struktur percabangan, yaitu : percabangan if, if else dan switch case.
Perulangan adalah suatu proses di dalam program yang dapat mengeksekusi satu (beberapa) statement yang sama secara berulang sampai ditemukan kondisi untuk berhenti. Dalam java terdapat tiga buah jenis struktur pengulangan, yaitu for, while, dan do while.
Praktikum 3 Java Operator
Percobaan
Percobaan 1 : Increment dan Decrement
[class IncDec {
public static void main(String args[]) {
int x = 8, y = 13;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("x = " + ++x);
System.out.println("y = " + y++);
System.out.println("x = " + x--);
System.out.println("y = " + --y);
}
}]
Dalam java terdapat operator yang berfungsi untuk menaikkan atau menurunkan nilai, yaitu double plus (++) dan double min (--). Pada percobaan di atas nilai variabel bertambah satu bila menggunakan operator ++ dan berkurang satu bila menggunakan --, baik operator dipasang setelah variabel ataupun sebelum.
Percobaan 2 : Menggunakan logical operator Java
[class LogicalOperator {
public static void main(String args[]) {
int x = 7,
y = 11,
z = 11;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = " + z);
System.out.println("x < y = " + (x < y));
System.out.println("x > z = " + (x > z));
System.out.println("y <= z = " + (y <= z));
System.out.println("x >= y = " + (x >= y));
System.out.println("y == z = " + (y == z));
System.out.println("x != y = " + (x != z));
}
}]
Algoritma & Analisa
Operasi diatas adalah operasi logika, untuk mengombinasikan hasil ekspresi yang mengandung relasi antara dua pernyataan variabel. Hasilnya adalah apakah relasi tersebut true atau false.
Operasi diatas adalah operasi logika, untuk mengombinasikan hasil ekspresi yang mengandung relasi antara dua pernyataan variabel. Hasilnya adalah apakah relasi tersebut true atau false.
Percobaan 3 : Menggunakan operator boolean and
[public class BooleanAnd {
public static void main(String[] var0) {
byte var1 = 5;
byte var2 = 7;
boolean var10000 = var1 < 2;
byte var10001 = var2;
int var3 = var2 + 1;
if (var10000 & var10001 < 10) {
var3 += 2;
}
System.out.println(var3);
}
}]
- - Melakukan pengecekan apakah a lebih kecil dari 2 dan b+1 lebih kecil dari 10,
- Jika iya b+2, jika tidak b tetap
- Print nilai b
Operator boolean tersebut berfungsi untuk membuat pengkondisian dari pernyataan, apabila pernyataan true maka lakukan b+2 jika false, abaikan dan lanjut ke kode selanjutnya. Hanya saja pada operasi bit ini, nilai variabel b bertambah karena nilai b bertambah pada pengecekan kondisi (b++ < 10)
Percobaan 4 : Menggunakan operator boolean and short-circuit
[public class ShortBoolean {
public static void main(String args[]) {
int a = 5, b = 7;
if ((a < 2) && (b++ < 10)) b += 2;
System.out.println(b);
}
}]
Percobaan ketiga adalah bitwise operator dan percobaan keempat adalah statement operator, algoritma dan hasil keputusan adalah sama, yaitu return false, namun yang menjadi perbedaan antara bitwise operator dengan statement operator adalah percobaan ke empat tidak melakukan pengecekan kondisi kedua karena kondisi pertama sudah return false.
Percobaan 5 : Menggunakan boolean or
Bitwise | berarti Or (atau) yang mana bila satu pernyataan bernilai true, maka seluruhnya bernilai true. Sama seperti &, ia menyeleksi semua statement, dan variabel dalam statement mempengaruhi nilai variabel seterusnya.
Capture
[public class BooleanOr {
public static void main(String args[]) {
int a = 5, b = 7;
if ((a > 2) | (b++ < 10)) b += 2;
System.out.println(b);
}
}]
Capture
Algoritma
- Melakukan pengecekan apakah a lebih kecil dari 2 atau b+1 lebih kecil dari 10,
- Jika iya b+2, jika tidak b tetap
- Print nilai b
Percobaan 6 : Menggunakan boolean or short-circuit
[public class ShortCircuitBooleanOr {Analisa :
public static void main(String args[]) {
int a = 5, b = 7;
if ((a > 2) || (b++ < 10)) b += 2;
System.out.println(b);
}
}]
Operator logis sangat mirip dengan operator bitwise dalam mengevaluasi dua kondisi. Ada dua perbedaan signifikan antara operator logis dan bitwise. Pertama, operator logis akan selalu mengembalikan 1 (untuk true) atau 0 (untuk false). Dan hanya melakukan pengecekan selanjutnya bila nilainya true. Oleh karena itulah disebut short-circuit. Yang artinya jika kondisi pertama sudah menjawab keluarannya, maka tidak perlu melakukan cek kondisi kedua.
Percobaan 7 : Menggunakan operator kondisi
[class Conditional {
public static void main(String args[]) {
int x = 0;
boolean isEven = false;
System.out.println("x = " + x);
x = isEven ? 4 : 7;
System.out.println("x = " + x);
}
}]
Algoritma & Analisa
- Cek isEven
- Jika isEven true maka x = 4
- Jika false maka x = 7
Program di atas menggunakan tenary operator yang mempunyai format expr1 ? expr2 : expr3 yang mana jika true maka expr1 = expr2 jika false expr1 = expr3. Di sini variable isEven bukan untuk mencari kebenaran dari bilangan tersebut genap atau bukan.
Latihan Java Operator
Latihan 1 : Menentukan bilangan genap dan ganjil
[import java.util.Scanner;Capture :
public class CheckNumber{
public static void main(String[] args) {
System.out.println("Check the number even or odd");
Scanner input = new Scanner(System.in);
int bil;
int i, total;
System.out.println("How many number");
total = input.nextInt();
for (i = 0; i < total; i++) {
System.out.println("Masukan Bil :");
bil = input.nextInt();
if (bil % 2 == 0) {
System.out.println("Genap");
} else if (bil % 2 == 1) {
System.out.println("Ganjil");
}
}
}
}]
Algoritma dan analisa :
Cek bilangan genap atau ganjil :
- Masukkan bilangan
- Jika bilangan dibagi 2 tidak ada sisa atau 0, maka bilangan genap
- Jika bilangan dibagi 2 namun sisa satu, maka bilangan ganjil
Latihan 2 : Penghitungan volume balok
[class LogicalOperator {
public static void main(String args[]) {
int x = 7,
y = 11,
z = 11;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = " + z);
System.out.println("x < y = " + (x < y));
System.out.println("x > z = " + (x > z));
System.out.println("y <= z = " + (y <= z));
System.out.println("x >= y = " + (x >= y));
System.out.println("y == z = " + (y == z));
System.out.println("x != y = " + (x != z));
}
}]
Analisa
Volume balok adalah panjang sisi balok pangkat tiga, v = s 3 , yang berarti s*s*s. Pada program ini user bebas menginput sisi.
Tugas, Soal Operator Java
Tugas 1 : Penghitungan volume Bola
[import java.util.Scanner; public class Ball { public static void main(String[] args) { Scanner input = new Scanner(System.in); double jari; int i, total; double volume; System.out.println("Berapa banyak bola"); total = input.nextInt(); for (i = 0; i < total; i++) { System.out.println("Masukan panjang jari:"); jari = input.nextDouble(); volume = jari * jari * jari * Math.PI * 4 / 3; System.out.println("Volume =" + String.format("%.2f", volume)); } } }]
Capture
Analisa
Untuk mencari volume bola, menggunakan rumus v = 4/3*jari3 *PHI,
Ketentuan nilai Phi di sini sudah disediakan Java, dan untuk pembulatan koma ke dua desimal terdekat menggunakan method String.format.
Tugas 2 : Pencarian bilangan terkecil
[import java.util.Scanner;
public class Urutkan{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i, total;
int num1, num2,num3;
System.out.println("Berapa banyak perulangan");
total = input.nextInt();
for (i = 0; i < total; i++) {
System.out.println("\nEnter three values to be sorted: ");
num1 = input.nextInt();
num2 = input.nextInt();
num3 = input.nextInt();
if ( (num1 >= num2 && num1 >= num3) && num2 >= num3 )
System.out.printf("Smallest number = %d", num3);
else if ((num1 >= num2 && num1 >= num3) && num3 >= num2)
System.out.printf("Smallest number = %d", num2);
else if ( (num2 >= num1 && num2 >= num3) && num1 >= num3 )
System.out.printf("Smallest number = %d", num3);
else if ((num2 >= num1 && num2 >= num3) && num3 >= num1)
System.out.printf("Smallest number = %d", num1);
else if ( (num3 >= num2 && num3 >= num1) && num2 >= num1 )
System.out.printf("Smallest number = %d", num1);
else if ((num3 >= num2 && num3 >= num1) && num1 >= num2)
System.out.printf("Smallest number = %d", num2);
}
}
}]
Algoritma dan Analisa
- Input nilai num1, num2, num3
- if num1 > num2 > num3, print num3 sebagai bilangan terkecil
- - else num3 > num1 > num2, print num2 sebagai bilangan terkecil
- - else num2 > num1 > num3, print num3 sebagai bilangan terkecil
- - else num2 > num3 > num1, print num1 sebagai bilangan terkecil
- - else num3 > num2 > num1, print num1 sebagai bilangan terkecil
- - else num3 > num1 > num2, print num2 sebagai bilangan terkecil
Praktikum 4 : Perulangan dan Percabangan
Percobaan Condition making and Loop di Java
Percobaan 1
[class IfName {
public static void main(String args[]) {
char firstInitial = 'a';
System.out.println("Masukkan huruf awal nama anda: ");
try {
firstInitial = (char) System. in .read();
} catch(Exception e) {
System.out.println("Error: " + e.toString());
}
if (firstInitial == 'a') System.out.println("Nama anda pasti Asep!");
else if (firstInitial == 'b') System.out.println("Nama anda pasti Brodin!");
else if (firstInitial == 'c') System.out.println("Nama anda pasti Cecep!");
else System.out.println("Nama anda tidak terkenal!");
}
}]
Capture :
Analisa :
Program di atas merupakan program yang menggunakan percabangan if else, dengan kondisinya adalah apakah huruf yang diinput user mempunyai kesamaan pada salah satu pernyataan if dan else if. Jika tidak ada maka berakhir pada else, sebagai output terakhir.
Penggunaan try catch adalah untuk mengantisipasi kemungkinan error pada program sehingga program masih dapat berjalan meskipun terjadi event yang mengganggu flow program.
Percobaan 2
class Switch { public static void main(String args[]) { char firstInitial = 'a'; System.out.println("Masukkan huruf awal nama anda:"); try { firstInitial = (char) System. in .read(); } catch(Exception e) { System.out.println("Error: " + e.toString()); } switch (firstInitial) { case 'a': System.out.println("Nama anda pasti Asep!"); case 'b': System.out.println("Nama anda pasti Brodin!"); case 'c': System.out.println("Nama anda pasti Cecep!"); default: System.out.println("Nama anda tidak terkenal!"); } } }
Capture :
Analisa :
Switch Case adalah percabangan selain if else, di sini outputnya adalah ketika pernyataan ketiga benar maka lanjut melakukan eksekusi sesuai dengan perintah di pernyataan ketiga, hanya saja program juga mengeksekusi perintah setelah pernyataan ketiga, yaitu “Nama Anda tidak terkenal!”.
Percobaan 3
class SwitchBreak { public static void main(String args[]) { char firstInitial = 'a'; System.out.println("Masukkan huruf awal nama anda:"); try { firstInitial = (char) System.in.read(); } catch (Exception e) { System.out.println("Error: " + e.toString()); } switch (firstInitial) { case 'a': System.out.println("Nama anda pasti Asep!"); break; case 'b': System.out.println("Nama anda pasti Brodin!"); break; case 'c': System.out.println("Nama anda pasti Cecep!"); break; default: System.out.println("Nama anda tidak terkenal!"); } } }
Capture
Analisa
Untuk mengatasi masalah eksekusi pernyataan seperti pada program kedua, diperlukan code break;
Default pada switch case mempunyai kegunaan sama seperti else pada if else.
Percobaan 4 : Perulangan menggunakan for
class ForCount {
public static void main(String args[]) {
int count = 1;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print(count);
}
count++;
System.out.println();
}
}
}
Capture:
Analisa :
While loop akan mengulang kode di dalamnya selama kondisi spesifik masih true. Pengecekan kondisi dimulai di awal.
Algoritma
- Deklarasi count = 0, i = 0
- Loop pertama, lakukan selama i < 9
- Deklarasi j = 0
- Loop kedua, lakukan selama j < i+1
- print count
- j+1
- Count+1, print spasi, i+1
Percobaan 5 : Perulangan menggunakan while
[class WhileCount {Analisa :
public static void main(String args[]) {
int count = 1;
int i = 0;
while (i < 9) {
int j = 0;
while (j < i + 1) {
System.out.print(count);
j++;
}
count++;
System.out.println();
i++;
}
}
}]
While loop akan mengulang kode di dalamnya selama kondisi spesifik masih true. Pengecekan kondisi dimulai di awal.
Algoritma :
- Deklarasi count = 0, i = 0
- Loop pertama, lakukan selama i < 9
- Deklarasi j = 0
- Loop kedua, lakukan selama j < i+1
- print count
- j+1
- Count+1, print spasi, i+1
Percobaan 6 : Perulangan dengan break
[class BreakLoop {
public static void main(String args[]) {
int i = 0;
do {
System.out.println("Iterasi ke " + i);
i++;
if (i > 10) break;
} while ( true );
}
}]
Capture :
Analisa :
Penggunaan break di dalam loop dapat menghentikan pengulangan loop meskipun kondisi pengulangan masih true.
Percobaan 7 : Perulangan dengan continue
public class ContinueLoop {
public static void main(String args[]) {
int a, b;
for (a = 0; a < 2; a++)
for (b = 0; b < 3; b++) {
if (b == 1) continue;
System.out.println("a=" + a + " ; b=" + b);
}
}
}
Capture :
Analisa :
Penggunaan Continue di dalam loop berfungsi untuk melanjutkan ke loop selanjutnya tanpa harus mengeksekusi kode setelah continue. Hal ini berfungsi untuk menambah pernyataan baru di dalam loop yang mengharuskan untuk tidak mengeksekusi kode seterusnya.
Percobaan 8 : Pemakaian label pada kondisi break
public class BreakLabel {
public static void main(String args[]) {
int a, b;
Mulai:
for (a = 0; a < 2; a++)
for (b = 0; b < 3; b++) {
if (b == 1) break Mulai;
System.out.println("a=" + a + " ; b=" + b);
}
}
}
Capture :
Analisa :
Perbedaan break tanpa label dengan break dengan label adalah, menggunakan break tanpa label menghentikan inner loop yang saat ini dieksekusi. Menggunakan break dengan label foo mematahkan pernyataan loop termasuk outer loop—yang sudah berlabel foo.
Percobaan 9 : Pemakaian label pada kondisi continue
[public class ContinueLabel {Capture :
public static void main(String args[]) {
int a,
b;
Mulai: for (a = 0; a < 2; a++)
for (b = 0; b < 3; b++) {
if (b == 1) continue Mulai;
System.out.println("a=" + a + " ; b=" + b);
}
}
}]
Analisa :
Sama seperti labelled break, labelled continue berfungsi untuk melanjutkan pengulangan loop terluar yang sudah dilabeli.
Latihan
Latihan : Menampilkan bilangan faktorial
[import java.util.Scanner;Capture :
public class Faktor {
public static void main(String[] args) {
// TODO Auto-generated method stub
long fak = 1;
int angka;
System.out.print("Masukkan angka : ");
Scanner in =new Scanner(System. in );
angka = in.nextInt();
System.out.println("n\t" + "n!");
for (int i = 1; i <= angka; i++) {
fak = i * fak;
System.out.println(i + "\t" + fak + "\n");
}
}
}]
Algoritma dan Analisa
- - variabel Fak = 1, angka
- - User memasukkan angka
- - Angka diloop dengan i=1; i<=angka; i++
- - Di dalam loop,
- fak = fak*i
- Print i sebagai nilai ke-i dan fak sebagai hasil faktorial dari bilangan i
Latihan 2 : Menampilkan deret bilangan genap sampai bilangan 20
Output :[public class Odd {
public static void main(String[] args) {
int x;
for (x = 2; x <= 20; x = x + 2) {
if (x % 6 == 0) continue;
System.out.printf("%d ", x);
}
}
}]
Algoritma dan Analisa
- - Int x
- - Loop, x start at 2 to 20, with increment x+2
- - Dalam Loop
- -- Jika nilai x bisa dibagi 6 maka lanjut ke loop berikutnya
Apabila nilai x mempunyai nilai kelipatan 6 maka akan di continue langsung ke loop berikutnya tanpa harus eksekusi kode berikutnya.
Tugas Praktikum Java Pengulangan dan Percabangan
Tugas 1 Fibonacci
Algoritma dan Analisa[import java.util.Scanner;
public class Fibo {
public static void main(String[] args) {
int a = 1;
int b = 1;
int input;
Scanner in =new Scanner(System. in );
input = in.nextInt();
System.out.print(a + " " + b);
for (int i = 1; i < input - 1; i++) {
int c = a + b;
a = b;
b = c;
System.out.printf(" %d", c);
}
}
}]
- User menginput year (tahun) untuk mengecek apakah kabisat atau bukan
- Cek apakah year berada di antara 1900 – 2005
- Jika iya, maka cek apakah year habis dibagi 4 dan tidak habis dibagi 100, atau cek apakah year habis dibagi 400
- Jika salah satu statemen benar maka year adalah tahun kabisat, jika dua-duanya salah maka bukan tahun kabisat
Tugas 2 : Menentukan tahun kabisat
[import java.util.Scanner;
public class LeapYear {
public static void main(String args[]) {
Scanner s = new Scanner(System. in );
System.out.print("Enter any year (1900-2005):");
int year = s.nextInt();
if (year < 1900) {
System.out.println("Maaf, tahun input dibawah 1900");
} else if (year > 2005) {
System.out.println("Maaf, tahun input diatas 2005");
} else {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
System.out.println("Tahun " + year + " adalah kabisat");
} else {
System.out.println(year + "bukan kabisat");
}
}
}
}]
Algoritma dan Analisa
- User menginput year (tahun) untuk mengecek apakah kabisat atau bukan
- Cek apakah year berada di antara 1900 – 2005
- Jika iya, maka cek apakah year habis dibagi 4 dan tidak habis dibagi 100, atau cek apakah year habis dibagi 400
- Jika salah satu statemen benar maka year adalah tahun kabisat, jika dua-duanya salah maka bukan tahun kabisat
























COMMENTS