Think Different Buku Materi Pemdas bab 5-8
PEMROGRAMAN DASAR
Operasi Input
Sutrisno, Issa Arwani, Rekyan Regasari
Program Teknologi Informasi dan Ilmu Komputer Universitas Brawijaya, Email : informatika@ub.ac.id
Pendahuluan
Tujuan
Pada akhir pertemuan, diharapkanmahasiswa akan mampu menggunakan standard library function yang berhubungan dengan operasi input standart dalam bahasa pemrograman Java.
Operasi input/output (I/O) menggunakan standard library function yang berhubungan dengan operasi output dan input standar dalam bahasa pemrograman Java. Operasi input adalah operasi untuk menyimpan nilai data
ke variabel tertentu melalui peralatan I/O, spt: keyboard, disk, dll.
5
MODUL
S E LF -P R O P A G A T IN G E N T R E P RE N E U RI A L E D U C A T IO N D E V E LO P M E N T (S P E E D )(2)
Operasi Input
Pada bagian ini, kita akan menggunakan kelas Scanner yang berada di java.util package untuk mendapatkan input dari keyboard. Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari keyboard:
1. Tambahkan di bagian paling atas code anda:
import java.util.Scanner;
2. Tambahkan statement ini:
Scanner input = new Scanner( System.in);
3. Deklarasikan variabel untuk mendapatkan input, dan gunakan fungsi nextInt(), nextDouble(), dll untuk mendapatkan input dari keyboard.
int var_a = nextInt();
Ada beberapa fungsi untuk membaca inputan:
o next() untuk membaca inputan String hanya 1 kata
o nextLine() untuk membaca inputan String lebih dari 2 kata
o nextInt() untuk membaca inputan integer
o nextDouble() untuk membaca inputan double
o nextBoolean() untuk membaca inputan boolean
o nextByte() untuk membaca inputan byte
o nextLong() untuk membaca inputan long
o nextShort() untuk membaca inputan short
Berikut ini adalah source code selengkapnya:
import java.util.Scanner;
public class GetInputFromKeyboard {
public static void main (String[] args) { Scanner masukan = new Scanner(System.in); int var_a, var_b;
System.out.print(“Masukkan nilai var var_a :”); var_a = masukan.nextInt();
(3)
System.out.println();
System.out.println(“Variabel yang terdapat dalam
program :”);
System.out.println(“var_a = ” + var_a); System.out.println(“var_b = ” + var_b); }
}
}
Berikutnya akan dijelaskan setiap baris dari code:
Statement,
import java.util.Scanner;
menjelaskan bahwa kita akan menggunakan kelas Scanner yang berada di java.util package. Java Application Programming Interface (API) sudah berisi ratusan kelas yang bisa digunakan untuk program anda. Kelas-kelas tersebut dikumpulkan ke dalam packages.
Packages memiliki kelas yang mempunyai fungsi yang saling berhubungan. Seperti pada contoh di atas,
java.util package mengandung kelas-kelas yang memungkinkan program untuk melakukan input dan output data.
public class GetInputFromKeyboard {
public static void main( String[] args ){
Statement ini menyatakan bahwa kita mendeklarasikan sebuah class bernama GetInputFromKeyboard dan kita mendeklarasikan main method.
Pada statement,
Scanner masukan = new Scanner(System.in);
(4)
kita mendeklarasikan sebuah variabel bernama masukan dengan tipe kelas Scanner. Jangan mengkhawatirkan tentang maksud dari syntax saat ini. Kita akan menjelaskannya pada akhir pembahasan.
Sekarang, kita akan mendeklarasikan variabel integer dengan identifier name,
int var_a, var_b;
Statement diatas merupakan tempat untuk menyimpan input dari user.
Baris berikutnya adalah memberikan output string pada layar untuk memasukkan nilai var_a dan var_b.
System.out.print(“Masukkan nilai var var_b :”); Selanjutnya statement,
var_a = masukan.nextInt(); var_b = masukan.nextInt();
method diatas memanggil masukan.nextInt(), mendapatkan input dari user dan memberikan sebuah nilai integer. Nilai ini akan disimpan ke dalam variabel var_a dan var_b, yang akan kita gunakan untuk menampilkan nilai var_a dan var_b.
System.out.println(“var_a = ” + var_a); System.out.println(“var_b = ” + var_b);
(5)
LATIHAN
SOAL
1. Buatlah program untuk menerima masukan tulisan dari user dan tampilkan hasil masukan tersebut !
Contoh hasil eksekusi program :
Masukkan Tuliskan : Hello Java!
Anda mengetikkan tulisan „Hello Java!‟
2. Buatlah program untuk menghitung hasil penjumlahan, pengurangan, perkalian dan pembagian dari dua buah bilangan yang dimasukkan oleh user !
Contoh hasil eksekusi program :
Masukkan Bilangan 1 = 5 Masukkan Bilangan 2 = 7 Hasil Penjumlahan = 12 Hasil Pengurangan = -2 Hasil Perkalian = 35
(6)
PEMROGRAMAN DASAR
Proses Sederhana
Sutrisno, Issa Arwani, Rekyan Regasari
Teknik Informatika,
Universitas Brawijaya, Email : informatika@ub.ac.id
Pendahuluan
Tujuan
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :
Memahami tentang proses sederhana (simple process) berupa pemanggilan procedure (fungsi) dan ekspresi serta dapat menerapkannya dalam algorithma ataupun pemrograman dengan bahasa pemrograman Java.
Memahami tentang Ekspresi
Sebuah proses dikatakan sebagai proses sederhana (simple process) karena dipandang sebagai proses yang hanya mempunyai sebuah aliran masukan dan sebuah aliran keluaran. Proses sederhana dalam pemrograman komputer terdiri atas:
Perhitungan aritmetika atau logika
Pemanggilan fungsi
Bab ini akan membahas komponen-komponen proses sederhana dan perhitungan aritmetika dan logika.
6
MODUL
S E LF -P R O P A G A T IN G E N T R E P RE N E U RI A L E D U C A T IO N D E V E LO P M E N T (S P E E D )(7)
Proses Sederhana
Sebuah proses dikatakan sebagai proses sederhana (simple process) karena dipandang sebagai proses yang hanya mempunyai sebuah aliran masukan dan sebuah aliran keluaran. Proses sederhana dalam pemrograman komputer terdiri dari:
Perhitungan aritmetika atau logika Pemanggilan fungsi
Dalam flow-chart digambarkan sbb.:
Gambar 1 Flowchart proses sederhana
Ekspresi
Ekspresi merupakan proses sederhana dalam pemrograman komputer untuk melakukan proses perhitungan arithmatika dan logika. Ekspresi adalah segala sesuatu yang bila dievaluasi akan menghasilkan suatu nilai.
1. Sebuah konstanta adalah sebuah ekspresi 2. Sebuah variabel adalah sebuah ekspresi
3. Sebuah ekspresi yang dioperasikan dengan ekspresi lain adalah ekspresi 4. Pemanggilan sebuah fungsi adalah sebuah ekspresi
Prinsip dasar perhitungan arithmatika dan logika dalam pemrograman komputer adalah melakukan perhitungan arithmatika atau logika kemudian hasilnya disimpan dalam variabel tertentu. Dalam flowchart digambarkan sbb.:
(8)
Contoh:
Contoh flowchart diatas memiliki arti bahwa nilai data dari variabel c ditambah dengan 1 hasilnya disimpan ke dalam variabel c. Tidak boleh penulisannya seperti dibawah:
Komponen utama ekspresi adalah operand dan operator. Operand dapat berupa variabel, konstanta, nilai data konstan maupun fungsi. Setiap operand harus memiliki nilai data. Operator adalah simbol yang mengolah nilai pada operand dan menghasilkan satu nilai baru. Dalam pemrograman komputer penulisan perhitungan arithmatika/logika TIDAK BOLEH BERTINGKAT. Contoh:
Presedensi dan Assosiativitas Operator
Presedensi menentukan urutan pengerjaan operator berdasarkan prioritas. Operator yang memiliki tingkat presedensi lebih tinggi akan dikerjakan lebih dahulu.Assosiativitas menentukan urutan pengerjaan operator berdasarkan lokasinya dalam sebuah ekspresi (apakah dari kiri atau dari kanan).Assosiativitas berlaku untuk operator-operator yang memiliki presedensi yang sama.
(9)
OPERATOR denganPrioritas dan Urutan Pengerjaan
KATEGORI SIMBOL NAMA PRIORITAS URUTAN
PENGERJAAN
Resolusi Lingkup :: Resolusi Lingkup 1 Kiri-Kanan
Kurung, indeks larik dan elemen struktur data
() Kurung
2
Kiri-Kanan
[] Elemen array Kiri-Kanan
-> Pointer ke anggota struktur atau kelas Kiri-Kanan . Anggota struktur, union atau kelas Kiri-Kanan
Operator Unary
++ Pre-increment
3
Kanan-Kiri
-- Pre-decrement Kanan-Kiri
! Logika not Kanan-Kiri
~ Komplemen Bitwise Kanan-Kiri
- Unary minus Kanan-Kiri
+ Unary plus Kanan-Kiri
& Alamat Kanan-Kiri
* Indirection Kanan-Kiri
(type) Type casting Kanan-Kiri
KATEGORI SIMBOL NAMA PRIORITAS URUTAN
PENGERJAAN
Operator aritmatika perkalian
* Perkalian
4 Kiri-Kanan
/ Pembagian % Sisa Pembagian
Operator penambahan + Penambahan 5 Kiri-Kanan
- Pengurangan
Pergeseran bit
<< Geser Kiri
6 Kiri-Kanan
>> Geser Kanan
Operator Relational
< Lebih kecil
7 Kiri-Kanan
<= Lebih kecil sama dg > Lebih besar
>= Lebih besar sama dg
Operator Relational
== Sama dengan
8 Kiri-Kanan
!= Tidak sama dengan
(10)
^ Bitwise XOR 10
| Bitwise OR 11
Operator Logika
&& Logika AND 12
Kiri-Kanan
|| Logika OR 13
Operator Ternary ?: Operator kondisi 14 Kanan-Kiri
Operator Penugasan Majemuk
=, +=, -=, *=,
/=, %= Operator penugasan arithmatika
15 Kanan-Kiri
&=, ^=, |=,
<<=, >>= Operator penugasan bitwise
Operator koma , Operator Koma 16 Kiri-Kanan
Contoh:
import java.util.Scanner; public class soal {
public static void main(String[] args) { Scanner input = new Scanner(System.in); int a,b,z = 100; float x, y ;
System.out.println("Melihat pengaruh prioritas dan urutan pengerjaan"); System.out.print("Masukkan sembarang nilai integer: ");
a = input.nextInt(); x = a/3*3;
y = a*3/3; z += b = a;
System.out.println("x = "+a+"/3*3, diperoleh x = " +x); System.out.println("y = "+a+"*3/3, diperoleh y = " +y);
System.out.println("bila z = 100, maka z += b = "+a+" diperoleh z = "+z); }
(11)
(12)
Title
LATIHAN
SOAL PERTAMA public class soal {
public static void main(String[] args) { float x;
x = 7 / 2; System.out.println("x = " + x); x = (float) (7.0 / 2); System.out.println("x = " + x); x = (float) (7 / 2.0); System.out.println("x = " + x); x = (float) (7.0 / 2.0); System.out.println("x = " + x); x = (float) 7 / 2; System.out.println("x = " + x); }
}
Bagaimanakah hasil keluaran yang ditampilkan di layar monitor dari program di atas?, Jelaskan? SOAL KEDUA
public class soal {
public static void main(String[] args) { int x = 10, y = 6;
x *= 5 + y; y += y &= x;
System.out.println("x = " + x + " y = " + y); }
}
Apakah keluaran yang akan ditampilkan dilayar monitor bila program di atas berhasil dieksekusi ? SOAL KETIGA
public class soal {
public static void main(String[] args) { int x = 10, y = 6;
x *= 5 + y; y += y * x;
System.out.println("x = " + x + " y = " + y); }
}
(13)
PEMROGRAMAN DASAR
Operator
Sutrisno, Issa Arwani, Rekyan Regasari
Program Teknologi Informasi dan Ilmu komputer Universitas Brawijaya, Email : informatika@ub.ac.id
Pendahuluan
Tujuan
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :
Memahami tentang Operator Penugasan (assignment)
Memahami tentang Operator Logika
Memahami tentang Operator Aritmetika
Memahami tentang Operator Relasional
Memahami tentang Operator Bitwise
Operator merupakan simbol yang menetapkan jenis kalkulasi/manipulasi yang dilakukan pada unsur-unsur dari sebuah ekspresi. Dalam sebuah ekspresi, objek yang dikenai suatu perlakuan oleh operator disebut operand. Sebagai contoh, dalam ekspresi x+y, x dan y merupakan operand.
7
MODUL
S E LF -P R O P A G A T IN G E N T R E P RE N E U RI A L E D U C A T IO N D E V E LO P M E N T (S P E E D )(14)
Operator
Operator merupakan simbol yang menetapkan jenis kalkulasi/manipulasi yang dilakukan pada unsur-unsur dari sebuah ekspresi. Dalam sebuah ekspresi, objek yang dikenai suatu perlakuan oleh operator disebut operand. Sebagai contoh, dalam ekspresi x+y, x dan y merupakan operand.
Berdasarkan jumlah operand, operator dapat dibedakan menjadi tiga jenis, yaitu :
Unary operator
Binary operator
Ternary operator
Unary operator memerlukan 1 operand, binary operator memerlukan 2 operand, sedangkan ternary operator memerlukan 3 operand.
Berdasarkan jenis operasinya, operator dalam bahasa pemrograman Java dapat dikelompokkan :
Operator Penugasan (assignment operator)
Operator Aritmatika
Operator Relasional
Operator Logika
Operator Bitwise
A.
Operator Penugasan (assignment)
Operator penugasan (assignment operator) adalah operator yang berfungsi untuk memberikan/mengisikan nilai kepada suatu variabel. Dalam bahasa Java, operator penugasan diwakili oleh simbol sama dengan (=). Operator penugasan termasuk Binary operator yang digunakan untuk memberikan nilai kepada suatu Operand. Sintak sbb:
operand1 operator operand2;
Operand1 harus berupa variabel, sedangkan operand2 dapat sembarang operand termasuk variabel dari operand1. Urutan pengerjaan (assosiativitas) operator penugasan dari kanan ke kiri.
Contoh :
(15)
a = sin (y); // fungsi
Tipe hasil operasi disesuaikan dengan tipe operand sebelah kiri. int x = 7/2; /*nilai x sama dgn 3 */
float y = 3; /*nilai y sama dengan 3.000 */
B.
Operator Aritmatika
Operator aritmatika digunakan untuk melakukan perhitungan-perhitungan matematis. Beberapa simbol operator aritmatika dalam bahasa Java antara lain: *, /, %, +, -. Simbol-simbol tersebut secara berturut-turut mewakili operator perkalian, pembagian, modulus, penjumlahan, dan pengurangan.
Modulo/Modulus:
Simbol : %
Termasuk Binary operator
Untuk menghitung sisa hasil bagi
n % 2, dapat digunakan untuk menguji apakah integer n bernilai genap atau ganjil
n % 2 = 0 n GENAP
n % 2 = 1 n GANJIL Increment dan Decrement:
Simbol : ++(increment), --(decrement)
Termasuk unary operator
Menaikkan (++) dan menurunkan (--) nilai variabel dengan 1
Posisinya bisa di depan (pre) atau dibelakang (post) variabel Contoh:
N++; //post increment ++N; //pre increment N--; //post decrement --N; //pre decrement
(16)
Jika statement decrement stand alone. Maka N--; atau --N; sama dengan artinya N=N-1;
Jika ++n dan n++ sebagai statement yang terikat dalam ekspresi lainnya (sub expresi), keduanya mempunyai arti yang berbeda.
++n -> n ditambah 1, baru diproses terhadap ekspresinya
n++ -> n langsung diproses terhadap ekspresinya tanpa ditambah 1 terlebih dahulu, pada saat selesai baru n ditambah 1
Contoh:
Setiap ekspesi yang berbentuk :
<Variabel> = <Variabel><Operator><Exp>; dapat diganti dengan :
<Variabel><Operator> = <Exp>;
Operator ini sering disebut dengan Combined Operator.
Ekspresi Dapat diganti dengan
a = a + b; a += b;
a = a – b; a -= b;
a = a * b; a *= b;
a = a / b; a /= b;
a = a % b; a %= b;
(17)
Contoh soal:
x *= y +1; artinya sama dengan : A. x = x * (y + 1); B. x = x * y + 1; C. x = x + 1 * y; D. x = (x + 1) * y; Jawab: A
C.
Operator Relasional
Operator relasional digunakan untuk membandingkan dua buah operand. Hasil perbandingan tersebut akan menghasilkan nilai logika TRUE (Benar) atau FALSE (Salah). Dalam bahasa Java ada enam macam operator relasional, yaitu:
Simbol Fungsi
= = Sama Dengan
!= Tidak Sama Dengan
< Lebih Kecil Dari
> Lebih Besar Dari
<= Lebih Kecil atau Sama Dengan >= Lebih Besar atau Sama Dengan
(18)
Conditional Expressions
Operator kondisi digunakan untuk mendapatkan sebuah nilai dari dua buah kemungkinan, berdasarkan suatu kondisi.Operator kondisi diterapkan pada tiga operand, yaitu cek_kondisi, nilai_jika_benar, dan nilai_jika_salah. Sintaksis penulisannya adalah sebagai berikut:
[cek_kondisi] ? [nilai_jika_benar] : [nilai_jika_salah]
Pada sebuah operasi yang menggunakan operator kondisi, yang pertama kali dilakukan adalah mengecek kondisi logika operand pertama (cek_kondisi).Jika cek_kondisi bernilai benar (TRUE), maka operasi tersebut menghasilkan nilai_jika_benar.Sebaliknya, jika cek_kondisi bernilai salah (FALSE), maka operasi tersebut menghasilkan nilai_jika_salah.
Contoh yang sama artinya dgn statement diatas: z = (a > b) ?a : b;
Jika (a>b) bernilai benar maka z=a. Sebaliknya jika (a>b) bernilai salah maka z=b.
D.
Operator Logika
Operator logika digunakan untuk menggabungkan hasil ekspresi yang mengandung operator-operator relasional, menjadikan keduanya sebagai dua buah operand, sehingga menghasilkan sebuah ungkapan kondisi. Operator logika yang digunakan dalam bahasa Java adalah: && (AND), || (OR), dan ! (NOT).
(19)
Simbol Fungsi
&& AND
|| OR
! NOT
Table Kebenaran operator logika:
A B !A A && B A || B
True True False True True
True False False False True
False True True False True
False False True False False
E.
Operator Bitwise
Operator bitwise digunakan untuk keperluan manipulasi data dalam bentuk bit (binary digit). Bahasa Java menyediakan enam buah operator bitwise, yaitu:
Geser bit ke kiri (<<)
Geser bit ke kanan (>>)
AND (&)
OR (|)
XOR (^)
NOR (~)
Simbol Fungsi Contoh
& AND A & B
(20)
^ XOR A ^ B;
~ Complement 1 ~A;
>> Shift Right A >> 3; << Shift Left B << 2; Contoh:
Dua buah bit di-XOR-kan akan menghasilkan 1 jika kedua bit tersebut berbeda, dan akan menghasilkan 0 jika kedua bit tersebut sama.
Operator shift-right (>> n) dapat dipergunakan untuk menggeser n bit ke kanan dan diberi nilai 0 (nol) sejumlah n bit dari paling kiri yang ditinggalkan.
Operator shift-left (<< n) dapat dipergunakan untuk menggeser n bit ke kiri dan diberi nilai 0 (nol) sejumlah n bit dari paling kanan yang ditinggalkan.
Contoh:
int A, B=78;
A = B>>3; //nilai A=9 A = B<<2; //nilai A=312
Catatan:
(21)
Title
LATIHAN
SOAL PERTAMA
Jika semua variabel bertipe integer, maka tentukan nilai A sbb: B=23; C=12; D=32; E=0;
1. A = B && E; 2. A = B & C; 3. A = C || D; 4. A = B | D; 5. A = B > 2;
6. A = B >> 2; 7. A = C < 3; 8. A = C << 3; 9. A = B = C; 10.A = B == C; SOAL KEDUA
Sebutkan contoh operator yang termasuk : 1. Unary Operator
2. Binary Operator 3. Ternary Operator
Sebutkan beberapa operator yang bisa berfungsi sebagai unary dan binary operator, dan berikan contohnya.
SOAL KETIGA
z = (n > 0) ?f : b;
(22)
LATIHAN
SOAL KEEMPAT
import java.util.Scanner public class Operand {
public static void main(String[] args) { float x;
x = 7/2;System.out.printf("x = %f\n",x); x = 7.0/2;System.out.printf("x = %f\n",x); x = 7/2.0;System.out.printf("x = %f\n",x); x = 7.0/2.0;System.out.printf("x = %f\n",x); x = (float)7/2;System.out.printf("x = %f\n\n\n",x); }
}
Bagaimanakah hasil keluaran yang ditampilkan di layar monitor dari program di atas?, Jelaskan?
SOAL KELIMA
import java.util.Scanner public class Operand {
public static void main(String[] args) { int y=33, x=45;
y = y && x; System.out.printf("y = %d\n",y); y = y & x; System.out.printf("y = %d\n",y); y = y || x; System.out.printf("y = %d\n",y); y = y | x; System.out.printf("y = %d\n",y); y &= y = x; System.out.printf("y = %d\n",y); y ^= y = x; System.out.printf("y = %d\n",y); }
}
Apakah keluaran yang akan ditampilkan dilayar monitor bila program di atas berhasil dieksekusi ?
(23)
PEMROGRAMAN DASAR
Seleksi/Percabangan Bersyarat
Sutrisno, Issa Arwani, Rekyan RegasariProgram Teknologi Informasi dan Ilmu Komputer, Universitas Brawijaya, Email : informatika@ub.ac.id
Pendahuluan
Tujuan
Pada akhir pertemuan ini, diharapkan mahasiswa me-miliki kemampuan untuk:
Menggunakan struktur kendali pencabangan ber-syarat dalam bahasa pemrograman Java.
Memahami Konsep IF, IF-ELSE, IF-ELSE IF
Memahami Konsep Percabangan Bertingkat
Memahami penggunaan Switch-Case
Dalam sebuah algoritma, seringkali beberapa instruksi harus dilaksanakan bila suatu persyaratan dipenuhi (bernilai benar) dan sebaliknya.Dalam struktur pencabangan bersyarat, suatu instruksi atau sekelompok instruksi dapat dilewati, sementara instruksi lain dijalankan. Bab ini akan membahas lebih
detail tentang konsep dari percabangan.
8
MODUL
S E LF -P R O P A G A T IN G E N T R E P RE N E U RI A L E D U C A T IO N D E V E LO P M E N T (S P E E D )(24)
Pencabangan Bersyarat
Dalam sebuah algoritma, seringkali beberapa instruksi harus dilaksanakan bila suatu persyaratan dipenuhi (bernilai benar) dan sebaliknya.Dalam struktur pencabangan bersyarat, suatu instruksi atau sekelompok instruksi dapat dilewati, sementara instruksi lain dijalankan. Pernyataan pencabangan bersyarat terdiri dari:
if
if-else
switch-case
Pernyataan if
Penggambaran IF dalam flow-chart:
Gambar 3 Flowchart IF
Pernyataan if mempunyai format sebagai berikut:
if (ekspresi boolean) statement;
atau
if (ekspresi boolean) statement;
atau
if (ekspresi boolean) {
statement1; statement2;
(25)
Kondisi yang akan diperiksa oleh pernyataan if harus dituliskan di dalam tanda kurung dan harus menghasilkan nilai benar (TRUE) atau salah (FALSE). [pernyataan] akan dieksekusi apabila [cek_kondisi] bernilai benar. Jika [cek_kondisi] bernilai salah, [pernyataan] tidak akan dieksekusi.
(26)
Pernyataan if-else
Pernyataan if-else mempunyai format sebagai berikut:
if (ekspresi boolean) statement_01; else statement_11;
atau
if (ekspresi boolean) statement_01; else
statement_11;
atau
if (ekspresi boolean) { statement_01;
statement_02;
………
} else
{ statement_11; statement_12;
………
}
Seperti pada pernyataan if maka kondisi yang akan diperiksa oleh pernyataan if harus dituliskan di dalam tanda kurung dan harus memiliki nilai benar atau salah. [pernyataan1]akan dilaksanakan apabila kondisi bernilai benar, sedangkan [pernyataan2] akan dilaksanakan apabila kondisi bernilai salah.
(27)
Penggambaran dalam flow-chart:
Gambar 4 Flowchart IF-Else
Pernyataan if-else Bertingkat
Konstruksi if-else dapat digunakan secara bertingkat.Contoh:
if (ekspresi boolean1) statement1; else if (ekspresi boolean2) statement2; else if (ekspresi boolean3) statement3; ...
...
(28)
(29)
Contoh pernyataan if-else bertingkat:
(30)
Pernyataan switch-case
Jika dalam program dibutuhkan penyeleksi kondisi dengan banyak (lebih dari dua) alternatif, biasanya digunakan pernyataan switch-case.Pernyataan switch-case dapat dipergunakan sebagai pengganti pernyataan if-else, jika pernyataan if-else bertingkat terlalu banyak, sehingga menjadi sulit dibaca. Sintaks pernyataan switch-case
switch (ekspresi integer) {
case constant1 : statements1; break; case constant2 : statements2; break;
. .
[ default : statements; ] }
Pernyataan switch mengevaluasi ekspresi dan kemudian melihat isi case constant. Jika nilai ekspresi ada didalam constant list maka pernyataan dieksekusi.Jika tidak ada yang cocok, pernyataan default yang dieksekusi.
Catatan: nilai ekspresi harus integer dan constant harus integer constant termasuk char. Struktur logika switch-case dapat digambarkan sbb.:
(31)
Contoh:
import java.util.Scanner; public class KalkulatorSwitch {
public static void main(String args[]) { double bil1, bil2, hasil;
char op;
Scanner rawInput = new Scanner(System.in);
System.out.println("ketik bil 1 operator bil 2, cth : 3 * 4"); Scanner input = new Scanner(rawInput.nextLine()); input.useDelimiter(" ");
bil1 = input.nextDouble(); op = input.next().charAt(0); bil2 = input.nextDouble(); switch(op) {
case '*' : hasil = bil1 * bil2;
System.out.println("= " + hasil); break; case '/' : hasil = bil1 / bil2;
System.out.println("= " + hasil); case '+' : hasil = bil1 + bil2;
System.out.println("= " + hasil); break; case '-' : hasil = bil1 - bil2;
System.out.println("= " + hasil); break;
default : System.out.println("Operator tidak dikenal"); break; }
} }
(32)
Title
LATIHAN
SOAL PERTAMA
Buat program untuk menginput nilai IPK mahasiswa dan berikan penilaian :
3.5 - 4.0 Sangat Memuaskan
3.0 - 3.4 Memuaskan
2.5 – 2.9 Baik Sekali
2.0 – 2.4 Baik
Dibawah 2.0 Kurang
Gunakan perintah if / if-else ! SOAL KEDUA
Buatlah program komputer untuk menentukan nilai-huruf dari sebuah matakuliah yang nilainya terdiri dari: nilai tugas, nilai kuis dan nilai UAS. Bila nilai-kuis > UAS, nilai akhir dihitung dg rumus:
• Nilai akhir = 40% (nilai-kuis) + 40% (UAS) + 20% (tugas) Bila nilai UAS>= nilai-kuis, nilai akhir dihitung dg rumus:
• Nilai akhir = 30% (nilai-kuis) + 50% (UAS) + 20% (tugas)
Sedangkan konversi nilai-akhir menjadi nilai huruf menggunakan tabel berikut: Nilai Akhir Bobot Nilai Huruf
85 - 100 4 A : Sangat Baik
75 - 84 3 B : Baik
65 - 74 2 C : Cukup
50 - 64 1 D : Kurang
0 - 49 0 E : Gagal
SOAL KETIGA
Perhatikan potongan program dibawah ini: if(n > 0)
if(a > b) z = a; else z = b;
Jelaskan keyword elseberpasangan dengan if yangmana ?
Perbaiki cara penulisan potongan program disamping, agar menjadi lebih jelas dibaca algoritmanya !
(1)
Penggambaran dalam flow-chart:
Gambar 4 Flowchart IF-Else
Pernyataan if-else Bertingkat
Konstruksi if-else dapat digunakan secara bertingkat. Contoh:
if (ekspresi boolean1) statement1; else if (ekspresi boolean2) statement2; else if (ekspresi boolean3) statement3; ...
...
(2)
(3)
Contoh pernyataan if-else bertingkat:
(4)
Pernyataan switch-case
Jika dalam program dibutuhkan penyeleksi kondisi dengan banyak (lebih dari dua) alternatif, biasanya digunakan pernyataan switch-case.Pernyataan switch-case dapat dipergunakan sebagai pengganti pernyataan if-else, jika pernyataan if-else bertingkat terlalu banyak, sehingga menjadi sulit dibaca. Sintaks pernyataan switch-case
switch (ekspresi integer) {
case constant1 : statements1; break; case constant2 : statements2; break;
. .
[ default : statements; ] }
Pernyataan switch mengevaluasi ekspresi dan kemudian melihat isi case constant. Jika nilai ekspresi ada didalam constant list maka pernyataan dieksekusi.Jika tidak ada yang cocok, pernyataan default yang dieksekusi.
Catatan: nilai ekspresi harus integer dan constant harus integer constant termasuk char. Struktur logika switch-case dapat digambarkan sbb.:
(5)
Contoh:
import java.util.Scanner; public class KalkulatorSwitch {
public static void main(String args[]) { double bil1, bil2, hasil;
char op;
Scanner rawInput = new Scanner(System.in);
System.out.println("ketik bil 1 operator bil 2, cth : 3 * 4"); Scanner input = new Scanner(rawInput.nextLine()); input.useDelimiter(" ");
bil1 = input.nextDouble(); op = input.next().charAt(0); bil2 = input.nextDouble(); switch(op) {
case '*' : hasil = bil1 * bil2;
System.out.println("= " + hasil); break; case '/' : hasil = bil1 / bil2;
System.out.println("= " + hasil); case '+' : hasil = bil1 + bil2;
System.out.println("= " + hasil); break; case '-' : hasil = bil1 - bil2;
System.out.println("= " + hasil); break;
default : System.out.println("Operator tidak dikenal"); break; }
} }
(6)
Title
LATIHAN
SOAL PERTAMA
Buat program untuk menginput nilai IPK mahasiswa dan berikan penilaian : 3.5 - 4.0 Sangat Memuaskan
3.0 - 3.4 Memuaskan 2.5 – 2.9 Baik Sekali 2.0 – 2.4 Baik Dibawah 2.0 Kurang Gunakan perintah if / if-else !
SOAL KEDUA
Buatlah program komputer untuk menentukan nilai-huruf dari sebuah matakuliah yang nilainya terdiri dari: nilai tugas, nilai kuis dan nilai UAS. Bila nilai-kuis > UAS, nilai akhir dihitung dg rumus:
• Nilai akhir = 40% (nilai-kuis) + 40% (UAS) + 20% (tugas) Bila nilai UAS>= nilai-kuis, nilai akhir dihitung dg rumus:
• Nilai akhir = 30% (nilai-kuis) + 50% (UAS) + 20% (tugas)
Sedangkan konversi nilai-akhir menjadi nilai huruf menggunakan tabel berikut:
Nilai Akhir Bobot Nilai Huruf
85 - 100 4 A : Sangat Baik
75 - 84 3 B : Baik
65 - 74 2 C : Cukup
50 - 64 1 D : Kurang
0 - 49 0 E : Gagal
SOAL KETIGA
Perhatikan potongan program dibawah ini: if(n > 0)
if(a > b) z = a; else z = b;
Jelaskan keyword elseberpasangan dengan if yangmana ? Perbaiki cara penulisan potongan program disamping, agar