DAFTAR ISI
BAB 1 Pengenalan Lingkungan Kerja Java ………………………… 1
Pokok Bahasan …………………………………………….....……1
Tujuan Belajar …………………………………………………...... 1
Dasar Teori …………………………………………… ....……… 1
Percobaan ………………………………………......……………. 2
Percobaan 1 : Instalasi JDK …………............................………….
2
Percobaan 2 : Pengesetan PATH………………………………….. 2
Percobaan 3 : Pengesetan CLASSPAT………………………….. 2
Percobaan 4 : Menampilkan suatu tulisan ke layar ………………………..
2
Percobaan 5 : Melibatkan suatu class dalam program …………………….
2
Latihan ………………………………………………………………….. 3
Latihan 1 : Menganalisa dan membenahi kesalahan pada
program ……….. 3
Latihan 2 : Menganalisa dan membenahi kesalahan pada
program ……….. 3
Latihan 3 : Menganalisa dan membenahi kesalahan pada
program ……….. 4
Latihan 4 : Menganalisa dan membenahi kesalahan pada
program ……….. 4
Tugas ……………......…………………………………………………. 5
Tugas 1 : Menghitung luas dan keliling lingkaran …………………………
5
Tugas 2 : Mengkonversi suatu nilai dari Celcius ke Fahrenheit
atau
sebaliknya ……………………………………………..........…………. 5
Lampiran ………………………………………......………………….. 6
BAB 2 Dasar Pemrograman Java ……………………………………… 7
Pokok Bahasan ....…………………………………………………….. 7
Tujuan Belajar …………………………………………………………... 7
Dasar Teori ……………………………………………………………… 7
Percobaan ……………………………………………………………. 9
Percobaan 1 : Memberikan nilai ke suatu tipe ….………………………….
9
Percobaan 2 : Mencetak nilai default dari tipe dasar
………..……….. 10
Percobaan 3 : Mengamati hasil perubahan nilai dari suatu
operasi
matematis ………………………………………………..........…... 10
Percobaan 4 : Mengamati hasil perubahan nilai dari suatu
operasi
matematis …………………………………………………............. 10
Percobaan 5 : Menampilkan bilangan oktal ke format desimal
………..….. 11
Percobaan 6 : Menampilkan bilangan heksadesimal ke format
desimal ….. 11
Percobaan 7 : Mengamati perubahan nilai pada suatu tipe
……………….. 11
Percobaan 8 : Memahami pemakaian Unicode ……………………...
12
Latihan ……………………………………………………………….. 12
Latihan 1 : Membuat formulasi proses casting dari tipe-tipe
primitif ….…. 12
Latihan 2 : Membuat formulasi proses promotion dari
tipe-tipe primitif …. 12
Tugas …………………………………………………………………... 13
Tugas 1 : Menganalisa batasan maksimum dari suatu tipe
……………..… 13
Tugas 2 : Mencari panjang menit dari durasi waktu ……...……………….
13
3 Operator ………………………….…………………………… 14
Pokok Bahasan …………………………………………………..…….. 14
Tujuan Belajar ……………………………………………………... 14
Dasar Teori …………………………………………………………….. 15
Percobaan …………………………………………………………... 18
Percobaan 1 : Melakukan increment dan decrement nilai
...…………. 18
Percobaan 2 : Melakukan operasi bit …………………..………..…………
19
Percobaan 3 : Melakukan operasi komplemen ………………………..…...
19
Percobaan 4 : Melakukan operasi shift ………………………….………...
19
Percobaan 5 : Melakukan logical operator ……………………..……..…..
19
Percobaan 6 : Menggunakan operator boolean and …………….…….…..
20
Percobaan 7 : Menggunakan operator boolean and short-circuit
….….….. 20
Percobaan 8 : Menggunakan boolean or ……….………………………...
20
Percobaan 9 : Menggunakan boolean or short-circuit ….………………...
20
Percobaan 10 : Menggunakan operator kondisi ……..…………………...
21
Latihan ………………………………………………………………………….. 21
Latihan 1 : Menampilkan representasi biner dari bilangan
desimal bertipe
integer ……………………………………………………..…. 21
Latihan 2 : Menampilkan representasi biner dari bilangan
desimal bertipe
byte ………………………………………………………..…. 21
Tugas …………………………………………………………………………... 22
Tugas 1 : Mencari representasi biner dari suatu bilangan
….…………..… 22
Tugas 2 : Menganalisa pergeseran bit dari operasi shift
….………………. 22
BAB 4 Percabangan …..…………………………….…………………………… 23
Pokok Bahasan …………………………………………………………..…….. 23
Tujuan Belajar ………………………………………………………………... 23
Dasar Teori …………………………………………………………………….. 23
Percobaan ……………………………………………………………………... 25
Percobaan 1 : Percabangan menggunakan if, if-else dan
else-if …………. 25
Percobaan 2 : Percabangan menggunakan switch ….....………..…………
25
Percobaan 3 : Percabangan menggunakan switch dengan
break ……..…... 26
Latihan ……………………………………………………………..………….. 27
Pengecekan kelompok karakter …………..………………….………..…. 27
Tugas …………………………………………………………………………... 27
Tugas 1 : Menghitung nilai determinan dan mencari akar
persamaan
kuadrat …………………………………………...…………..… 27
Tugas 2 : Menentukan tahun kabisat ……………………..……………….
27
BAB 5 Perulangan …..…………………………….………..…………………… 29
Pokok Bahasan …………………………………………………………..…….. 29
Tujuan Belajar ………………………………………………………………... 29
Dasar Teori …………………………………………………………………….. 29
Percobaan ……………………………………………………………………... 30
Percobaan 1 : Perulangan menggunakan for ………………………..…….
30
Percobaan 2 : Perulangan menggunakan while ….....………..……………
31
Percobaan 3 : Perulangan dengan break ………..………………………...
31
Percobaan 4 : Perulangan dengan continue ……..………………………...
31
Percobaan 5 : Pemakaian label pada kondisi break ………………………...
32
Percobaan 6 : Pemakaian label pada kondisi continue
….………………... 32
Latihan ……………………………………………………………..………….. 32
Menampilkan bilangan faktorial ………………………..…….………..….
32
Tugas …………………………………………………………………………... 33
Tugas 1 : Deret Fibonacci …………...……………………...…………..…
33
Tugas 2 : Menampilkan deret bilangan genap ……..……..……………….
33
Bab 1
Pengenalan Lingkungan Kerja
Java
POKOK BAHASAN
• Instalasi Java Development Kit
• Pengesetan PATH dan CLASSPATH • Latihan program sederhana
• Cara kompilasi dan menjalankan program • Troubleshotting
TUJUAN BELAJAR
Setelah melakukan praktikum dalam bab ini, mahasiswa
diharapkan mampu:
• Mengenal dan mempersiapkan lingkungan kerja Java
• Membuat program sederhana dengan Java
• Mengkompilasi dan menjalankan program Java
• Menganalisa beberapa problem yang terjadi saat pemrograman
dan
memberikan solusi
Dasar Teori
Untuk bisa bekerja dengan Java, maka kita
perlu melakukan instalasi Java
Development Kit (JDK) atau Java 2 Software Development
Kit (J2SDK). Setelah
proses instalasi selesai, selanjutnya adalah melakukan
penyetingan PATH dan
CLASSPATH di dalam sistem. Penyetingan PATH sangat berguna
untuk
memberitahu sistem dimana kita meletakkan file-file
utama Java (diantaranya java,
1
BAB 1 - PENGENALAN LINGKUNGAN KERJA JAVA 2
javac, jdb, dan lain-lain). Sedangkan
penyetingan CLASSPATH sangat berguna
untuk memberitahu sistem dimana kita meletakkan file-file
class yang akan kita
libatkan dalam program kita. Penyetingan CLASSPATH ini
biasa melibatkan dua
item, yaitu tanda (titik) yang menandakan direktori
kerja dan tools.jar yang
berisikan kumpulan file-file library standar yang disediakan
oleh Java.
Percobaan
Percobaan 1 : Instalasi JDK
Jalankan file instalasi JDK dan ikuti proses instalasi
tahap demi tahap. Pilihlah direktori penginstallan secara
default (biasanya ini akan membuat direktori baru atau
c:\jdkxxx atau c:\j2sdkxxx dimana xxx adalah versi JDK
yang di-install.
Percobaan 2 : Pengesetan PATH
set PATH=%PATH%;%JAVA_HOME%\bin
Percobaan 3 : Pengesetan CLASSPATH
set CLASSPATH=.;%JAVA_HOME%\lib\tools.jar
Percobaan 4 : Menampilkan suatu tulisan
ke layar
Hallo.java
public class Hallo {
public static void main(String args[]) {
System.out.println("Hallo...");
}
} |
Percobaan 5 : Melibatkan suatu class dalam
program
|
TestGreeting.java
public class TestGreeting {
public static void main (String[] args) {
Greeting hello = new Greeting();
hello.greet();
}
}
Greeting.java
public class Greeting {
public void greet() {
System.out.println("hi");
}
}
|
BAB 1 - PENGENALAN LINGKUNGAN KERJA JAVA 3
Latihan
Latihan 1 : Menganalisa dan membenahi kesalahan pada
program
Tulislah program berikut ini dan simpanlah dengan nama
tertentu.Test.java
Greeting.java
public class Testing {
public static void main(String[] args) {
System.out.println("What's wrong with this
program?");
}
} |
Lakukan kompilasi pada file tersebut dan
amati hasilnya. Kenapa terjadi kegagalan pada saat kompilasi?.
Benahilah kesalahan diatas sehingga program tersebut
dapat berjalan dengan baik.
Latihan 2 : Menganalisa dan membenahi
kesalahan pada program
Tulislah program dibawah ini dan simpanlah dengan nama
tertentu. Lakukan
BAB 1 - PENGENALAN LINGKUNGAN KERJA JAVA 4
kompilasi pada file tersebut dan amati
hasilnya. Kenapa terjadi kegagalan pada saat kompilasi?.
Benahilah kesalahan diatas sehingga program tersebut
dapat berjalan dengan baik.
|
public class Test {
public static void main(String[] args) {
System.out.println("What's wrong with this
program?");
}
}
public class TestAnother {
public static void main(String[] args) {
System.out.println("What's wrong with this
program?");
}
}
|
Latihan 3 : Menganalisa dan membenahi
kesalahan pada program
Tulislah program berikut ini dan simpanlah.
public class Test {
public static void main(String args) {
System.out.println("What's wrong with this
program?");
}
} |
Lakukan kompilasi pada program tersebut
dan jalankan. Kenapa terjadi kesalahan pada saat menjalankan
program tersebut. Benahilah kesalahan diatas sehingga
program tersebut dapat berjalan dengan baik.
Latihan 4 : Menganalisa dan membenahi kesalahan pada
program
Tulislah program berikut ini dan simpanlah.
public
class Test {
public void main(String args[]) {
System.out.println("What's wrong with this
program?");
}
} |
BAB 1 - PENGENALAN LINGKUNGAN KERJA JAVA
5
Lakukan kompilasi pada program tersebut dan jalankan.
Kenapa terjadi kesalahan pada saat menjalankan program
tersebut. Benahilah kesalahan diatas sehingga program
tersebut dapat berjalan dengan baik.
Tugas
Tugas 1 : Menghitung luas dan keliling lingkaran
Buatlah program untuk menghitung luas dan keliling lingkaran.
Rumus :
|
Luas
lingkaran = PI x jari-jari2
Keliling lingkaran = 2 x PI x jari-jari |
tugas 2 : Mengkonversi suatu nilai dari
Celcius ke Fahrenheit atau sebaliknya
Buatlah suatu program untuk meng
|
Rumus
:
Fahrenheit = (Celcius x 9 /3)+ 32
|
konversi suatu nilai dari Celcius ke Fahrenheit
atau sebaliknya.
|
PENGENALAN LINGKUNGAN KERJA
JAVA 6 |
Lampiran
Cara memasukkan input melalui JoptionPane.
import
javax.swing.JOptionPane; public class InputPane
{
public static void main(String args[]) {
int nilai;
String str=JOptionPane.showInputDialog("Masukkan
nilai :"); nilai=Integer.parseInt(str);
System.out.println(nilai); System.exit(0);
}
} |
Bab 2
POKOK BAHASAN
• Identifier
• Kata kunci
• Tipe dasar
• Nilai default
• Casting dan promotion
TUJUAN BELAJAR
Dengan praktikum ini mahasiswa diharapkan
dapat:
• Mengetahui aturan penamaan identifier
• Mengenal kata-kata kunci yang ada di Java
• Mengetahui tipe-tipe dasar yang ada di Java
• Mengetahui pemberian nilai default untuk masing-masing
tipe dasar • Memahami bagaimana melakukan casting dan
promotion
Dasar Teori
Identifier adalah nama yang diberikan untuk variabel,
class atau method.
Penamaan identifier harus diawali dengan karakter unicode,
tanda $ (dollar) atau tanda _ (underscore). Penamaan
identifier ini bersifat case-sensitive dan tidak dibatasi
panjang maksimum.
Java mempunyai 48 kata kunci, seperti if, int, void,
dan lain-lain. Kata-kata kunci tersebut tidak bisa dipakai
sebagai identifier. Selain kata kunci, Java juga mempunyai
3 kata literal, yaitu true, false dan true, yang juga
tidak bisa dipakai untuk penamaan identifier.
Java mempunyai 8 tipe dasar, yaitu boolean, char, byte,
short, int, long, float, dan double. Spesifikasi panjang
bit dan range untuk masing-masing tipe adalah sebagai
berikut:
Tipe |
Panjang bit |
Range |
boolean |
16 |
- |
char |
16 |
0 - 2^16-1 |
byte |
8 |
-2^7 - 2^7-1 |
short |
16 |
-2^15 - 2^15-1 |
int |
32 |
-2^31 - 2^31-1 |
long |
64 |
-2^63 - 2^63-1 |
float |
32 |
- |
| double |
64 |
- |
Nilai default untuk masing-masing tipe
adalah sebagai berikut:
Tipe |
Nilai default |
boolean |
false |
char |
'\u0000' |
byte |
0 |
short |
0 |
int |
0 |
long |
0L |
float |
0.0F |
double |
0.0 |
Casting diperlukan untuk mengkonversi dari suatu tipe
ke tipe data yang lebih kecil panjang bitnya. Sedangkan
promotion terjadi pada saat mengkonversi dari suatu
tipe data ke tipe data yang lebih panjang bitnya.
Contoh : int p = (int) 10L;
long i = 10;
Percobaan
Percobaan
1 : Memberikan nilai ke suatu tipe
public class Assign {
public static void main(String args[]) {
boolean b=true;
System.out.println("Value b = " + b);
char c='C';
System.out.println("Value c = " + c);
byte bt=10;
System.out.println("Value bt = " + bt);
short s=20;
System.out.println("Value s = " + s);
int i=30;
System.out.println("Value i = " + i);
long l=40L;
System.out.println("Value l = " + l);
float f=3.14F;
System.out.println("Value f = " + f);
double d=3.14;
System.out.println("Value d = " + d);
}
} |
Percobaan
2 : Mencetak nilai default dari tipe dasar
public class DefaultValue
{
static boolean b;
static char c;
static byte bt;
static short s;
static int i;
static long l;
static float f;
static double d;
public static void main(String args[]) {
System.out.println("Default value b = "
+ b);
System.out.println("Default value c = "
+ c);
System.out.println("Default value bt = "
+ bt);
System.out.println("Default value s = "
+ s);
System.out.println("Default value i = "
+ i);
System.out.println("Default value l = "
+ l);
System.out.println("Default value f = "
+ f);
System.out.println("Default value d = "
+ d);
}
} |
| Percobaan
3 : Mengamati hasil perubahan nilai dari suatu
operasi matematis
public class
Divide {
public static void main(String[] arguments) {
float number1 = 15;
float number2 = 6;
float result = number1 / number2;
float remainder = number1 % number2;
System.out.println(number1 + " divided by
" + number2);
System.out.println("\nResult\tRemainder");
System.out.println(result + "\t" + remainder);
}
}
Percobaan
4 : Mengamati hasil perubahan nilai dari suatu
operasi matematis
class Invest
{
public static void main(String[] arguments) {
float total = 14000;
System.out.println("Original investment:
$" + total);
// Inceases
by 40 percent the first year total = total + (total
* .4F);
System.out.println("After one year: $"
+ total);
// Loses
$1,500 the second year total = total - 1500F;
System.out.println("After two years: $"
+ total);
// Increases
by 12 percent the third year total = total + (total
* .12F);
System.out.println("After three years: $"
+ total);
}
}
|
| Percobaan
5 : Menampilkan bilangan oktal ke format desimal
public class
Octal {
public static void main(String args[]) {
int six=06;
int seven=07;
int eight=010;
int nine=011;
System.out.println("Octal six = " +
six);
System.out.println("Octal seven = "
+ seven);
System.out.println("Octal eight = "
+ eight);
System.out.println("Octal nine = " +
nine);
}
}
|
|
Percobaan
6 : Menampilkan bilangan heksadesimal ke format
desimal
public class
Hexadecimal {
public static void main(String args[]) {
int x=0x0001;
int y=0x7fffffff;
int z=0xDeadCafe;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = " + z);
}
}
|
| Percobaan
7 : Mengamati perubahan nilai pada suatu tipe
public class Plus {
public static void main(String args[]) {
int x;
int y;
x=2147483647; //(2^31)-1
System.out.println("x = " + x);
y=x+1;
System.out.println("y = " + y);
}
}
|
|
Percobaan 8 : Memahami pemakaian Unicode
public class
CobaUnicode {
public static void main(String args[]) {
ch\u0061r a='a';
char \u0062 = 'b';
char c= '\u0063';
String kata="\u0061\u0062\u0063";
System.out.println("a:
" + a);
System.out.println("a: " + b);
System.out.println("a: " + c);
System.out.println("kata: " + kata);
}
}
|
Latihan
Latihan 1 : Membuat formulasi proses casting dari tipe-tipe
primitif
Lakukan percobaan casting antar tipe-tipe primitif.
Lalu amati dan catatlah konversi dari suatu tipe ke
tipe lainnya yang memerlukan suatu casting. Dari hasil
analisa anda, buatlah suatu skema casting diantara tipe-tipe
primitif.
Latihan 2 : Membuat formulasi proses promotion
dari tipe-tipe primitif
Lakukan percobaan promotion antar tipe-tipe
primitif. Lalu amati dan catatlah
konversi dari suatu tipe ke tipe lainnya yang menyebabkan
terjadinya suatu
promotion. Dari hasil analisa anda, buatlah suatu skema
promotion diantara tipe-tipe
primitif.
Tugas
Tugas 1 : Menganalisa batasan maksimum
dari suatu tipe
Amatilah dan tulislah program berikut
ini:
public
class BigInteger {
public static void main(String args[]) {
long p=2147483648;
}
} |
Lakukan kompilasi pada file tersebut dan amati pesan
kesalahannya. Lakukan analisa mengapa bisa terjadi kesalahan
padahal batasan nilai maksimum dari suatu bilangan bertipe
long adalah 263-1 (9223372036854775807)?. Kemudian berikanlah
solusi yang tepat untuk mengatasi persoalan diatas.
Tugas 2 : Mencari panjang menit dari durasi
waktu
Input: jam awal, menit awal, jam akhir,
menit akhir
Output: durasi waktu (dalam menit) antara jam awal menit
awal dengan jam akhir menit akhir.
Bab 3
Operator
POKOK BAHASAN
• Bentuk operator
o Unary operator
o Binary operator
• Jenis operator
o arithmatic operator (operator aritmatika) o increment
- decrement operator
o bitwise operator
o boolean operator (operator boolean)
o logical operator (operator logika)
o shift operator (operator geser)
o assignment operator (operator penugasan)
o combination operator (operator kombinasi)
o conditional operator (operator kondisi)
TUJUAN BELAJAR
Dengan praktikum ini mahasiswa diharapkan dapat:
• Mengenal bentuk-bentuk operator
• Memahami berbagai macam jenis operator yang ada di
Java
Dasar Teori
Operator dapat diklasifikasikan menjadi 2 bentuk, yaitu
unary operator dan
binary operator. Unary operator adalah operator yang
hanya melibatkan 1
operan. Sedangkan binary operator adalah operator yang
melibatkan 2
operan.
Java mempunyai berbagai macam jenis operator yang dapat
digolongkan menjadi operator aritmatika, increment-decrement,
bitwise, boolean, logik, shift (geser), penugasan, kombinasi
dan kondisi.
Arithmatic operator (operator aritmatika) adalah operator
yang berfungsi
untuk operasi aritmatika. Yang termasuk dalam arithmatic
operator adalah sebagai berikut :
Keterangan
|
Arithmaticoperator |
Keterangan
|
|
+ |
OPerasi
penambahan |
|
- |
OPerasi
pengurangan |
|
* |
OPerasi
perkalian |
|
/ |
OPerasi
pembagian |
|
% |
OPerasi
modulus |
Increment - decrement operator adalah
operator yang berguna untuk
menaikkan 1 nilai (increment) dan menurunkan 1 nilai
(decrement). Yang
termasuk increment-decrement operator ini sebagai berikut
:
|
Increment-Decrement
operator |
keterangan |
|
++ |
increment |
|
-- |
decrement |
Berdasarkan urutan eksekusi penaikkan
dan penurunan nilainya,
increment-decrement operator ini dapat diklasifikasikan
menjadi 2 macam, yaitu:
pre-increment/decrement dan post-increment/decrement.
Bitwise operator adalah operator yang
dipakai untuk operasi bit pada nilai operan. Yang termasuk
bitwise operator ini adalah sebagai berikut :
|
Bitwise
operator |
keterangan |
|
~ |
Operasi
complement |
|
& |
Operasi
AND |
|
| |
Operasi
OR |
|
^ |
Operasi
XOR |
Boolean operator (operator boolean)
adalah operator yang mengharuskan
operannya bertipe boolean (true atau false). Yang termasuk
boolean operator
adalah sebagai berikut :
Logical Keterangan
|
Logical
operator |
Keterangan |
|
! |
Operasi
negasi (NOT) |
&
|
Operasi
AND |
|
| |
Operasi
OR |
|
^ |
Operasi
XOR |
|
&& |
Operasi
AND (short circuit) |
|
|| |
Operasi
OR (short circuit) |
Operator !, &, | dan ^ mempunyai implementasi
yang sama sebagaimana ketika ia menjadi bitwise operator.
Hanya saja di logical operator, operan yang dilibatkan
disini harus bertipe boolean, yang hanya mempunyai nilai
true atau false.
Logical operator (operator logika)
adalah operator yang sering dipakai untuk
operasi perbandingan dan selalu menghasilkan suatu nilai
bertipe boolean
(true atau false). Yang termasuk logical operator adalah
sebagai berikut:
|
Logical
operator |
keterangan |
|
== |
Operasi
perbandingan sama dengan |
|
!= |
Operasi
perbandingan tidak sama dengan |
|
> |
Operasi
perbandingan lebih besar |
|
>= |
Operasi
perbandingan lebih besar sama dengan |
|
< |
Operasi
perbandingan lebih kecil |
|
<= |
Operasi
perbandingan lebih kecil sama dengan |
Shift operator (operator geser) adalah
operator yang berfungsi untuk
menggeser susunan bit pada suatu nilai. Yang termasuk
dalam shift operator
ini adalah sebagai berikut:
|
Shift
operator |
Ketersngsn |
|
>> |
right shift |
|
>>> |
unsigned right shift |
|
<< |
left shift |
Combination operator (operator kombinasi)
adalah operator yang terdiri dari gabungan 2 operator.
Biasanya combination operator ini dipakai untuk mempersingkat
waktu penulisan program. Yang termasuk operator combination
ini adalah:
|
Combination
Operator |
Keterangan |
|
+= |
Gabungan dari operator =
dan + |
|
-= |
Gabungan dari operator =
dan - |
| *= |
Gabungan dari operator =
dan * |
| /= |
Gabungan dari operator =
dan / |
| %= |
Gabungan dari operator =
dan % |
| >>= |
Gabungan dari operator =
dan >> |
| >>>= |
Gabungan dari operator =
dan >>> |
| <<= |
Gabungan dari operator =
dan << |
| &= |
Gabungan dari operator =
dan & |
| |= |
Gabungan dari operator =
dan | |
| ^= |
Gabungan dari operator =
dan ^ |
Conditional operator (operator konditional)
adalah operator yang dipakai untuk operasi kondisi (persyaratan),
sama sebagaimana if-then-else dan hanya berlaku untuk
pernyataan tunggal. Operator ini mengembalikan suatu
nilai yang benar sesuai dengan kondisi yang diberikan.
Conditional operator (operator konditional) ini hanya
ada 1 macam, yaitu ? disertai dengan tanda : (titik
dua). Jika kondisi persyaratan yang terletak di
sebelah kiri tanda ?
bernilai benar, maka pernyataan yang berada
di sebelah kiri tanda : yang akan
diambil. Demikian juga sebaliknya, jika kondisi persyaratan
bernilai salah,
maka pernyataan yang berada di sebelah kanan tanda :
yang akan diambil.
Percobaan
|
Percobaan
1 : Melakukan increment dan decrement nilai
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);
}
}
|
|
Percobaan 2 : Melakukan operasi bit
class Bitwise
{
public static void main (String args[]) {
int x = 5, y = 6;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("x & y = " +
(x & y));
System.out.println("x | y = " + (x |
y));
System.out.println("x ^ y = " + (x ^
y));
}
}
|
|
Percobaan
3 : Melakukan operasi komplemen
class BitwiseComplement
{
public static void main (String args[]) {
int x = 8;
System.out.println("x = " + x); int
y = ~x;
System.out.println("y = " + y);
}
}
|
|
Percobaan
4 : Melakukan operasi shift
class Shift
{
public static void main (String args[]) {
int x = 7;
System.out.println("x = " + x);
System.out.println("x >> 2 = "
+ (x >> 2));
System.out.println("x << 1 = "
+ (x << 1));
System.out.println("x >>> 1 = "
+ (x >>> 1));
}
}
|
|
Percobaan
5 : Menggunakan logical operator
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));
}
}
|
|
Percobaan
6 : Menggunakan operator boolean and
public class
BooleanAnd {
public static void main(String args[]) {
int a=5, b=7;
if ((a<2) & (b++<10)) b+=2;
System.out.println(b);
}
}
Percobaan
7 : Menggunakan operator boolean and short-circuit
public class
ShortCircuitBooleanAnd {
public static void main(String args[]) {
int a=5, b=7;
if ((a<2) && (b++<10)) b+=2;
System.out.println(b);
}
}
|
|
Percobaan
8 : Menggunakan boolean or
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);
}
}
Percobaan
9 : Menggunakan boolean or short-circuit
public class
ShortCircuitBooleanOr {
public static void main(String args[]) {
int a=5, b=7;
if ((a>2) || (b++<10)) b+=2;
System.out.println(b);
}
} |
|
Percobaan
10 : 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);
}
}
|
Latihan
Latihan 1 : Menampilkan representasi biner
dari bilangan desimal bertipe int
Buatlah suatu program untuk menampilkan susunan bit
dari suatu bilangan desimal. Nilai bilangan input yang
dimasukkan adalah bertipe int.
Contoh tampilan:
Masukkan nilai desimal: 13
Susunan bit dari 13 adalah 00000000000000000000000000001101
Masukkan nilai desimal: 612
Susunan bit dari 13 adalah 00000000000000000000001001100100
Masukkan nilai desimal: -1
Susunan bit dari 13 adalah 11111111111111111111111111111111
Masukkan nilai desimal: -13
Susunan bit dari 13 adalah 11111111111111111111111111110011
Latihan 2 : Menampilkan representasi biner
dari bilangan desimal bertipe byte
Buatlah suatu program seperti diatas untuk
menampilkan susunan bit dari suatu
bilangan desimal, akan tetapi nilai bilangan input yang
dimasukkan adalah bertipe
byte.
Tugas
Tugas 1 : Mencari representasi biner dari suatu bilangan
Tuliskan representasi bit dari nilai -19? Jelaskan.
Tugas 2 : Menganalisa pergeseran bit dari operasi shift
Jelaskan apa yang terjadi pada potongan program berikut
ini:
byte a=-1;
a=(byte) (a >>> 2);
POKOK BAHASAN
• Percabangan
o if
o if-else
o else-if
o switch
TUJUAN BELAJAR
Dengan praktikum ini mahasiswa diharapkan dapat:
• Memahami logika percabangan
• Memakai percabangan yang tepat
Dasar Teori
Percabangan di dalam Java terdapat 2 macam,
yaitu dengan memakai if dan switch.
Percabangan if dipakai jika kita menginginkan suatu
pernyataan itu dilakukan
dengan syarat tertentu yang bernilai benar. Sintaks
dari if adalah sebagai
berikut:
if (ekspresi_boolean)
{
Pernyataan1;
} |
Pernyataan1 akan dilakukan kalau ekspresi_boolean
bernilai true.
Percabangan if-else dipakai untuk mengeksekusi
salah satu dari 2 pernyataan dari syarat tertentu yang
pada pada if yang dapat bernilai benar atau salah. Sintaks
dari if-else adalah sebagai berikut:
if (ekspresi_boolean) {
Pernyataan1;
} else {
Pernyataan2;
} |
Pernyataan1 akan dilakukan kalau ekspresi_boolean bernilai
true. Kalau ekspresi_boolean bernilai false, maka Pernyataan2
akan dikerjakan.
Percabangan else-if dipakai untuk memberikan kondisi
tertentu pada bagian else. Sintaks dari else-if adalah
sebagai berikut:
if (ekspresi_boolean1) {
Pernyataan1;
} else if (ekspresi_boolean2) {
Pernyataan2;
} |
Ketika ekspresi_boolean bernilai false, maka alur program
akan menuju ke bagian else. Selanjutnya Pernyataan2
diatas akan dikerjakan kalau ekspresi_boolean2 bernilai
true.
Percabangan switch dipakai pada saat kita ingin memberikan
kondisi denga
beberapa syarat yang identik yang masing-masing mempunyai
pernyataan
yang berbeda-beda. Pada Java, nilai yang dilewatkan
pada switch harus
bertipe int, short, byte atau char. Sintaks dari switch
adalah sebagai berikut:
switch
(ekspresi) {
case nilai1: Pernyataan1;
break;
case nilai2: Pernyataan2;
break;
default: Pernyataan3;
} |
Ketika ekspresi bernilai nilai1, maka alur program akan
mengeksekusi Pernyataan1. Selanjutnya break menyebabkan
alur program keluar dari daerah switch. Kalau ekspresi
bernilai nilai2, maka alur program akan mengeksekusi
Pernyataan2. Apabila ekspresi mempunya nilai yang tidak
sama dengan nilai1 dan nilai2, maka alur program akan
menuju ke bagian default dan kemudian mengeksekusi Pernyataan3.
Percobaan
|
Percobaan
1 : Percabangan menggunakan if, if-else dan else-if
class IfElseName
{
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!");
}
}
|
Percobaan
2 : Percabangan menggunakan switch
class SwitchName {
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!");
}
}
} |
|
Percobaan
3 : Percabangan menggunakan switch dengan break
class SwitchNameBreak
{
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!");
}
}
}
|
Latihan
Pengecekan kelompok karakter
Buatlah program untuk menentukan kelompok suatu karakter
yang dimasukkan melalui keyboard. Kelompok karakter
tersebut adalah huruf kecil, huruf besar, angka, dan
karakter khusus (tanda baca, operator dan sebagainya).
Tugas
Tugas 1 : Menghitung nilai determinan
dan mencari akar persamaan kuadrat
Buatlah program untuk menghitung determinan dan mencari
akar-akar dari persamaan kuadrat : ax2 + bx + c = 0
, dengan ketentuan sebagai berikut :
D = b2 - 4ac
• Jika D = 0 , maka terdapat 2 akar real yang kembar,
yaitu : x1 = x2 = -b / 2a • Jika D > 0 , maka terdapat
2 akar real yang berlainan, yaitu :
x1 = (-b + D^0.5) / 2a
x2 = (-b - D^0.5) / 2a
• Jika D < 0 , maka terdapat 2 akar imaginer yang
berlainan, yaitu :
x1 = -b / 2a + (D^0.5 / 2a) i
x2 = -b / 2a - (D^0.5 / 2a) i
Input : a, b, c (int)
Output : Nilai Determinan serta nilai akar-akar persamaan
tsb (x1 dan x2).
Petunjuk : Gunakan Math.pow(x,0.5) untuk mencari akar
dari x.
Tugas 2 : Menentukan tahun kabisat
Buatlah program untuk menentukan suatu tahun kabisat
atau bukan dimana tahun dibatasi mulai dari tahun 1900
sampai dengan tahun 2005.
Contoh tampilan:
Masukkan tahun (1900-2005) : 1923 1923
bukan tahun kabisat
Masukkan tahun (1900-2005) : 1898
Maaf, tahun input dibawah 1900
Masukkan tahun (1900-2005) : 1996 1996
adalah tahun kabisat
Masukkan tahun (1900-2005) : 2008 Maaf,
tahun input diatas 2005
POKOK BAHASAN
• Perulangan
o for
o while
o do-while
• Kondisional untuk perulangan
o break
o continue
o break/continue dengan label
TUJUAN BELAJAR
Dengan praktikum ini mahasiswa diharapkan
dapat:
• Memahami logika perulangan
• Memakai perulangan yang tepat
• Memahami pemberian kondisi untuk perulangan
Dasar
Teori
Perulangan di dalam Java terdapat 3 macam, yaitu for,
while dan do-while.
Perulangan for
dipakai pada saat kita melakukan perulangan dengan jumlah
yang sudah diketahui pasti. Sintaks dari for adalah
sebagai berikut:
for (inisialisasi;
kondisi; perubah) {
Pernyataan;
} |
Perulangan while dipakai
pada saat kita melakukan perulangan dengan jumlah yang
belum diketahui pasti. Pernyataan pada while akan dikerjakan
setelah pengecekan kondisi pada while bernilai true.
Sintaks dari while adalah sebagai berikut:
while (kondisi) {
Pernyataan;
} |
Perulangan do-while
dipakai pada saat kita melakukan perulangan dengan jumlah
yang belum diketahui pasti. Pernyataan pada do akan
dikerjakan terlebih dahulu, baru setelah itu dilakukan
pengecekan kondisi pada while. Sintaks dari do-while
adalah sebagai berikut:
do {
Pernyataan;
} while (kondisi); |
Kita dapat memberikan kondisi tertentu pada saat terjadi
perulangan. Kondisi yang mungkin terjadi pada perulangan
terdapat 2 macam, yaitu break dan continue. Break menyebabkan
suatu kondisi untuk keluar dari perulangan. Sedangkan
continue memyebabkan suatu kondisi untuk melanjutkan
ke tahapan selanjutnya pada perulangan.
Percobaan
Percobaan 1 : 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();
}
}
} |
|
Percobaan
2 : Perulangan menggunakan while
class WhileCount
{
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++;
}
}
}
|
|
Percobaan
3 : 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);
}
}
Percobaan
4 : 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);
}
}
}
|
|
Percobaan 5 : 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);
}
}
}
|
|
Percobaan
6 : Pemakaian label pada kondisi continue
public class
ContinueLabel {
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);
}
}
}
|
Latihan
Menampilkan bilangan faktorial
Bilangan bulat faktorial n, ditulis dengan n! adalah
dihasilkan dari mengalikan dari 1 sampai dengan n. Contohnya
5! = 1 x 2 x 3 x 4 x 5 =120. Buatlah program untuk menampilkan
tabel hasil faktorial dari suatu bilangan yang diinputkan
(tampilan bilangan rata kanan)
Contoh tampilan :
Masukkan bilangan faktorial? 7
n n!
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
Tugas
Tugas 1 : Deret Fibonacci
Buatlah program untuk menampilkan deret
Fibonacci.
Contoh tampilan:
Masukkan berapa deret Fibonacci? 8
8 deret Fibonacci = 1 1 2 3 5 8 13 21
Tugas 2 : Menampilkan deret bilangan genap
Buatlah program untuk menampilkan deret bilangan genap
dari 2 sampai 20 kecuali kelipatan 6.
Contoh tampilan:
2 4 8 10 14 16 20