PENGENALAN PEMROGRAMAN 1
MODUL PRAKTIKUM
Struktur Kontrol
Versi 1.3
JAVA EDUCATION NETWORK INDONESIA
Modul Praktikum Struktur Kontrol
1. Tujuan
• Menggunakan struktur kontrol keputusan (if, else, switch) yang digunakan
untuk memilih blok kode yang akan dieksekusi
• Menggunakan struktur kontrol pengulangan (while, do-while, for) yang
digunakan untuk melakukan pengulangan pada blok kode yang akan
dieksekusi
• Menggunakan statement percabangan (break, continue, return) yang
digunakan untuk mengatur redirection dari program
2. Latar Belakang
Pada bab sebelumnya, kita sudah mendapatkan contah dari program
sequential, dimana statement dieksekusi setelah statement sebelumnya dengan
urutan tertentu. Pada bagian ini, kita mempelajari tentang struktur kontrol yang
bertujuan agar kita dapat menentukan urutan statement yang akan dieksekusi.
Struktur kontrol keputusan adalah statement dari Java yang mengijinkan user
untuk memilih dan mengeksekusi blok kode dan mengabaikan blok kode yang
lain.
3. Percobaan
Percobaan 1 Statement if:
public class Grade {
public static void main( String[] args )
{
double grade = 92.0;
if( grade >= 90 ){
System.out.println( "Excellent!" );
}
else if( (grade < 90) && (grade >= 80)){
System.out.println("Good job!" );
}
else if( (grade < 80) && (grade >= 60)){
System.out.println("Study harder!" );
Versi 1.3 1|Page
Modul Praktikum Struktur Kontrol
}
else{
System.out.println("Sorry, you failed.");
}
}
}
Percobaan 2 Statement switch:
public class Grade2
{
public static void main( String[] args )
{
int grade = 92;
switch(grade){
case 100:
System.out.println( "Excellent!" );
break;
case 90:
System.out.println("Good job!" );
break;
case 80:
System.out.println("Study harder!" );
break;
default:
System.out.println("Sorry, you failed.");
}
}
}
Versi 1.3 2|Page
Modul Praktikum Struktur Kontrol
Percobaan 3 Statement break:
public class Grade3
{
public static void main( String[] args )
{
String names[] = {"Beah", "Bianca", "Lance", "Belle",
"Nico", "Yza", "Gem", "Ethan"};
String searchName = "Yza";
boolean foundName = false;
for( int i=0; i< names.length; i++ ){
if( names[i].equals( searchName )){
foundName = true;
break;
}
}
if( foundName ){
System.out.println( searchName + " found!" );
}
else{
System.out.println( searchName + " not found." );
}
}
}
Percobaan 4 Labeled break statement:
public class Grade4
{
public static void main( String[] args )
{
String names[] = {"Beah", "Bianca", "Lance", "Beah"};
int count = 0;
for( int i=0; i<names.length; i++ ){
if( !names[i].equals("Beah") ){
continue; //skip next statement
}
count++;
}
System.out.println("There are " + count + " Beahs in the list"); } }
Versi 1.3 3|Page
Modul Praktikum Struktur Kontrol
Percobaan 5 Continue statement:
public class Grade5
{
public static void main( String[] args )
{
String names[] = {"Beah", "Bianca", "Lance", "Beah"};
int count = 0;
for( int i=0; i<names.length; i++ ){
if( !names[i].equals("Beah") ){
continue; //skip next statement
}
count++;
}
System.out.println("There are " + count + " Beahs in the list");
}
}
Percobaan 6 Labeled statement continue:
public class Grade6
{
public static void main( String[] args )
{
outerLoop:
for( int i=0; i<5; i++ ){
for( int j=0; j<5; j++ ){
System.out.println("Inside for(j) loop"); //message1
if( j == 2 ) continue outerLoop;
}
System.out.println("Inside for(i) loop"); //message2
}
}
}
Versi 1.3 4|Page
Modul Praktikum Struktur Kontrol
Percobaan 7 While:
public class WhileElevator {
public boolean doorOpen=false;
public int currentFloor = 1;
public final int TOP_FLOOR = 5;
public final int BOTTOM_FLOOR = 1;
public void openDoor() {
System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");
}
public void goUp() {
System.out.println("Going up one floor.");
currentFloor++;
System.out.println("Floor: " + currentFloor);
}
public void goDown() {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);
}
public void setFloor() {
int desiredFloor = 5;
while (currentFloor != desiredFloor){
if(currentFloor < desiredFloor) {
goUp();
} else {
goDown();
}
}
}
}
public class WhileElevatorTest {
public static void main(String args[]){
WhileElevator elevator = new WhileElevator();
Versi 1.3 5|Page
Modul Praktikum Struktur Kontrol
elevator.openDoor();
elevator.closeDoor();
elevator.setFloor();
}
}
Percobaan 8 While:
public class WhileRectangle {
public int height = 3;
public int width = 10;
public void displayRectangle() {
int colCount = 0;
int rowCount = 0;
while (rowCount < height){
colCount = 0;
while (colCount < width){
System.out.print("@");
colCount++;
}
System.out.println();
rowCount++;
}
}
}
public class WhileRectangleTest {
public static void main(String args[]){
WhileRectangle rect = new WhileRectangle();
rect.displayRectangle();
}
}
Versi 1.3 6|Page
Modul Praktikum Struktur Kontrol
Percobaan 9 For:
public class ForElevator {
public boolean doorOpen=false;
public int currentFloor = 1;
public final int TOP_FLOOR = 5;
public final int BOTTOM_FLOOR = 1;
public void openDoor() {
System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");
}
public void goUp() {
System.out.println("Going up one floor.");
currentFloor++;
System.out.println("Floor: " + currentFloor);
}
public void goDown() {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);
}
public void setFloor() {
// Normally you would pass the desiredFloor as an argument to
// the setFloor method. However, because you have not learned
// how to do this yet, desiredFloor is set to a specific
// number (5) below.
int desiredFloor = 5;
if (currentFloor > desiredFloor) {
for (int down=currentFloor;down != desiredFloor;--down) {
goDown();
}
} else {
for (int up = currentFloor; up != desiredFloor; ++up) {
goUp();
}
} }}
Versi 1.3 7|Page
Modul Praktikum Struktur Kontrol
public class ForElevatorTest {
public static void main(String args[]){
ForElevator elevator = new ForElevator();
elevator.openDoor();
elevator.closeDoor();
elevator.setFloor();
}
}
Percobaan 10 Nested For:
public class ForRectangle {
public int height = 3;
public int width = 10;
public void displayRectangle() {
for (int rowCount = 0; rowCount < height; rowCount++) {
for (int colCount = 0; colCount < width; colCount++) {
System.out.print("@");
}
System.out.println();
}
}
}
public class ForRectangleTest {
public static void main(String args[]){
ForRectangle rect = new ForRectangle();
rect.displayRectangle();
}
}
Percobaan 11 Do-While:
public class DoWhileElevator {
public boolean doorOpen=false;
public int currentFloor = 1;
public final int TOP_FLOOR = 5;
public final int BOTTOM_FLOOR = 1;
public void openDoor() {
Versi 1.3 8|Page
Modul Praktikum Struktur Kontrol
System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");
}
public void goUp() {
System.out.println("Going up one floor.");
currentFloor++;
System.out.println("Floor: " + currentFloor);
}
public void goDown() {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);
}
public void setFloor() {
int desiredFloor = 5;
do {
if(currentFloor < desiredFloor) {
goUp();
} else if (currentFloor < desiredFloor){
goDown();
}
}
while (currentFloor != desiredFloor);
}
}
public class DoWhileElevatorTest {
public static void main(String args[]){
DoWhileElevator elevator = new DoWhileElevator();
elevator.openDoor();
elevator.closeDoor();
elevator.setFloor();
}
}
Versi 1.3 9|Page
Modul Praktikum Struktur Kontrol
4. Latihan
4.1 Nilai
Ambil tiga nilai ujian dari user dan hitung nilai rata-rata dari nilai tersebut. Berikan
output rata-rata dari tiga ujian. Berikan juga smiley face pada output jika nilai rata-rata
lebih besar atau sama dengan 60, selain itu beri output :-(.
1. Gunakan BufferedReader untuk mendapat input dari user, dan System.out untuk
output hasilnya.
2. Gunakan JOptionPane untuk mendapat input dari user dan output hasilnya.
4.2 Membaca Bilangan
Ambil sebuah angka sebagai input dari user, dan outputnya berupa kata yang sesuai
dengan angka. Angka yang dimasukkan antara 1-10. Jika user memasukkan nilai yang
tidak sesuai berikan output “Invalid number”.
1. Gunakan statement if-else untuk menyelesaikan
2. Gunakan statement switch untuk menyelesaikan
4.3 Cetak Seratus Kali
Buat sebuah program yang mencetak nama Anda selama seratus kali. Buat tiga versi
program ini menggunakan while loop, do while dan for-loop.
4.4 Perpangkatan
Hitung pangkat sebuah nilai berdasarkan angka dan nilai pangkatnya. Buat tiga versi
dari program ini menggunakan while loop, do-while dan for-loop.
Versi 1.3 10 | P a g e