if184982 pengantar logika dan pemrograman pertemuan ke-5 filepengantar logika dan pemrograman...
TRANSCRIPT
IF184982Pengantar Logika dan Pemrograman
Pertemuan ke-5Misbakhul Munir IRFAN SUBAKTI
司馬伊凡Мисбакхул Мунир Ирфан Субакти
static: Diakses Beberapa class/File
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
2
static: Diakses Beberapa class/File (lanj.)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
3
static: Diakses Beberapa class/File (lanj.)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
4
static: Diakses Beberapa class/File (lanj.)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
5
Variabel di Java
• Nama variabel tidak boleh mengandung spasi• int angka kecil = 100;→ diantara angka dan kecil terdapat spasi→
salah!
• Nama variabel dapat dimulai dengan karakter spesial: $ dan _ (garisbawah)
• Nama variabel dalam standar pengkodean Java seharusnya dimulai denganhuruf kecil• int angka• Untuk nama variabel yang panjang yang mempunyai lebih dari satu kata → int angkaKecil; int angkaBesar;→mulailah kata kedua dengan hurufbesar
• Nama variabel adalah case sentisitive→ huruf besar dan kecil dibedakan
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
6
Variabel di Java (lanjutan)
• Local variable• Dideklarasikan di dalam method/function dari suatu class. Jangkauannya terbatas
pada method/function tersebut→ tidak dapat diakses dari luar method/function dan nilainya juga tidak dapat diubah dari luar method/function
• Static (atau class) variable• Static variable (class variable) → diasosiasikan dengan class dan berlaku sama untuk
semua instance dari suatu class. Jika 3 obyek dibuat dari suatu class dan mengakses/mengacu pada suatu static variable→maka static variable tadi akanberlaku sama pada semua obyek tadi – perubahan pada variabel ini menggunakansalah satu obyek tadi akan terefleksi jika kita akses variabel tersebut melalui obyekyang lain.
• Instance variable• Setiap instance (object) dari class mempunyai salinan (copy) instance variable sendiri-
sendiri. Tidak seperti static variable, instance variable mempunyai salinan yang terpisah dari instance variable.
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
7
Variabel di Java (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
8
Tipe Data di Java
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
9
• Primitive• Integer. (bilangan bulat): byte, short, int dan long
• byte: 1 byte. [-128 s/d 128]. Nilai default: 0.• short: 2 byte. [-32,768 s/d 32,767]. Nilai default: 0.• int: 4 byte. [-2,147,483,648 s/d 2,147,483,647]. Nilai default: 0.• long: 8 byte. [-9,223,372,036,854,775,808 s/d 9,223,372,036,854,775,807]. Default: 0.
• Floating point (bilangan pecahan): float dan double• float: 4 byte. Dapat menampung 6 s/d 7 digit decimal.• double: 8 byte. Dapat menampung 15 digit decimal.
• Character (Karakter): char → 2 byte• Boolean→ Nilai true (benar) atau false (salah). Keyword: boolean
• Non Primitive• Classes• Interfaces• Arrays
Operator di Java
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
10
• Aritmatika dasar: +, -, *, /, % (modulo: 7 % 2 = 1)
• Assignment (pemberian nilai): =, +=, -=, *=, /=, %=
• Auto-increment dan auto-decrement: == dan --
• Logika: && (AND), || (OR), ! (negasi)
• Pembandingan (relasional): ==, !=, >, <, >=, <=
• Bitwise:& (AND), | (OR), ^ (XOR), ~ (complement), << (geser bit ke kiri sebanyak bilangan di kananoperator), >> (geser bit ke kanan sebanyak bilangan di kanan operator), >>> (geser bit ke kanansebanyak bilangan di kanan operator dan nilai yang digeser diisi dengan 0)
• Ternary ( ? : ) → variabel angka = (pernyataan) ? nilai jika benar : nilai jika salah• Jika pernyataan benar maka nilai pertama sebelum tanda : akan diberikan ke variabel angka, jika tidak nilai
kedua yang akan diberikan ke variabel angka
• instanceof• (Object reference variable) instanceof (class/interface type)• String namaKuliah = “PLP”;
• boolean hasil = namaKuliah instanceof String;→ hasil akan bernilai true
Prioritas Urutan Operator
• x = 10 + 2 * 3;
• Nilai x adalah 16,bukannya 36
• 10 + (2 * 3) =
10 + 6 = 16
• Bukannya (10 + 2) * 3= 12 * 3 = 36
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
11
Kategori Operator Asosiasi/Urutan
Postfix () [] . (dot operator) Kiri ke kanan
Unary (tunggal) ++ -- ! ~ Kanan ke kiri
Perkalian * / Kiri ke kanan
Penambahan + - Kiri ke kanan
Penggeseran >> >>> << Kiri ke kanan
Relasional > >= < <= Kiri ke kanan
Penyamaan == != Kiri ke kanan
Bitwise AND & Kiri ke kanan
Bitwise XOR ^ Kiri ke kanan
Bitwise OR | Kiri ke kanan
Logical AND && Kiri ke kanan
Logical OR || Kiri ke kanan
Kondisi ?: Kanan ke kiri
Pemberian nilai >= += -= *= /= %= >>= <<= &= ^= |= Kanan ke kiri
if, if … else
• Terdapat 4 jenis pernyataan kondisi• if
• if dalam if (if bersarang)
• if-else
• if-else-if
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
12
if
if (kondisi) {
statement(s);
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
13
if bersarang (if dalam if)
if (kondisi) {
statement(s);
} else {
statement(s);
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
14
if-else-if
if (kondisi_1) {
// Jika kondisi_1 benar, jalankan ini
statement(s);
} else if (kondisi_2) {
// Jalankan ini jika kondisi_1 tak ketemu & kondisi_2 ketemu
statement(s);
} else if (kondisi_3) {
// Jalankan ini jika kondisi_1 & kondisi_2 tak ketemu, serta kondisi_3 ketemu
statement(s);
}
.
.
else {
// Jika tak ada satu pun dari kondisi-kondisi di atas benar, maka statement(s) ini akan dijalankan
statement(s);
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
15
switch-case
switch (variable atau ekspresi integer) {
case konstanta:
// Kode Java
;
case konstanta:
// Kode Java
;
default:
// Kode Java
;
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
16
switch-case dengan break
switch (variable atau ekspresi integer) {
case konstanta:
// Kode Java
break;
case konstanta:
// Kode Java
break;
default:
// Kode Java
;
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
17
for-loop
for (inisialisasi; kondisi; penambahan/pengurangan) {
statement(s);
}
public static void main(String args[]) {
for (int i = 0; i < args.length(); i++) {
System.out.println(args[i]);
}
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
18
for-loop (lanjutan)
public static void main(String args[]) {
int arrayKu[] = {1, 3, 5, 7};
for (int i : arrayKu) {
System.out.println(arrayKu[i]);
}
}
String arrayKu[] = {“satu”, “dua”, “tiga”};
for (String string : arrayKu) {
System.out.println(string);
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
19
while-loop
• Bila diinginkan perulangan (loop) paling tidak terjadi minimal 0 kali
while (kondisi) {
statement(s);
}
int i = 5;
while (i > 2) {
System.out.println(i);
i--;
}
Output:
5
4
3
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
20
while-loop yang tak ada berhentinya
while (true) {
statement(s);
}
int i = 5;
while (i > 2) {
System.out.println(i);
i++;
}
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
21
do-while
• Bila diinginkan perulangan (loop) paling tidak terjadi minimal 1 kali
do {
statement(s);
} while (kondisi);
int i = 5;
do {
System.out.println(i);
i--;
} while (i > 2);
Output:
5
4
3
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
22
continue
• Digunakan dalam loop (perulangan)
• Begitu ditemui continue ini, maka kontrol akan langsung melompat ke awal dariperulangan untuk iterasi selanjutnya, melewatkan eksekusi dari statement di dalambadan perulangan pada iterasi saat itu
for (int k = 1; k <= 5, k++) {
if (k == 3) {
continue;
}
System.out.print(k + “ “);
}
Output: 1 2 4 5
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
23
continue (lanjutan)
int angka = 5;
while (angka >= 1) {
if (angka == 3) {
angka--;
continue;
}
System.out.print(angka + “ “);
angka--;
}
Output: 5 4 2 1
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
24
continue (lanjutan)
int angka = 1;
do {
if (angka == 3) {
angka++;
continue;
}
System.out.print(angka + “ “);
angka++;
} while (angka < 6);
Output: 1 2 4 5
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
25
break dalam while-loop
• break biasanya digunakan untuk:• Keluar dari loop (perulangan) secara langsung. Kapan saja break ini ditemui dalam perulangan, maka kontrol secara langsung akan keluar dari perulangan dan perulangan akan berhenti untuk sisa iterasi.
Biasanya digunakan dengan if, kapan saja digunakan dalam perulangan sehingga perulangan akan berhenti pada kondisi tertentu.
• Digunakan dalam switch-case. Secara umum semua case dalam switch-case diikuti dengan break, sehingga kapan saja kontrol program melompat ke suatu case, maka ia tidak akan mengeksekusicase-case berikutnya. Secepat break ditemui dalam blok switch-case, kontrol akan keluar dari bodi switch-case
int angka = 1;
while (angka <= 5) {
System.out.println(“Nilai dari variabel angka: “ + angka);
if (angka == 2) {
break;
}
angka++;
}
System.out.println(“Keluar dari while-loop“);
Output:
Nilai dari variabel angka: 1
Nilai dari variabel angka: 2
Keluar dari while-loop
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
26
break dalam for-loop
for (int k = 1; k <= 5, k++) {
System.out.println( “k: “ + k);
if (k == 2) {
break;
}
}
System.out.println( “Keluar dari for-loop“);
Output:
1
2
Keluar dari for-loop
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
27
break dalam switch-case
int angka = 2;
switch (angka) {
case 1:
System.out.println(“Case 1“);
break;
case 2:
System.out.println(“Case 2“);
break;
case 3:
System.out.println(“Case 3“);
break;
default:
System.out.println(“Default“);
}
Output:
Case 2
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
28