PERTEMUAN 3 Struktur Program Java PEMROGRAMAN BERORIENTASI OBJEK
PERTEMUAN 3 Struktur Program Java PEMROGRAMAN BERORIENTASI OBJEK (PBO)
Pokok Bahasan Pertemuan 1 Pertemuan 2 Pertemuan 3 Pertemuan 4 Pertemuan 5 Pertemuan 6 Struktur Program Java™ TUJUAN INTERAKSIONAL UMUM : • Mahasiswa mampu menulis struktur program Java™ Pertemuan 8 KHUSUS : • Mahasiswa mampu menulis struktur keputusan Java™ • Mahasiswa mampu menulis perulangan pada Java™ • Mahasiswa mampu menulis tipe data Class ™ Pertemuan 9 Materi : Pertemuan 7 Pertemuan 10 Pertemuan 11 Pertemuan 12 1. 2. 3. Pengambilan Keputusan Pengulangan Proses Tipe Data Class Pertemuan 13 Pertemuan 14 Pertemuan 15 Universitas Budi Luhur, Fakultas Teknologi Informasi 2
1. Kontrol Keputusan Statement kontrol keputusan digunakan untuk memilih dan mengeksekusi kode atau blok kode. Jenis kontrol keputusan pada Java yaitu if dan switch. a. Kontrol Keputusan if b. Kontrol Keputusan if - else c. Kontrol Keputusan if – else – if d. Kontrol Keputusan switch Universitas Budi Luhur, Fakultas Teknologi Informasi 3
a. Kontrol Keputusan if Struktur if menentukan sebuah statement (atau blok statement) yang akan dieksekusi jika dan hanya jika persyaratan boolean (boolean statement) bernilai true. Bentuk if dengan 1 baris statement, if( boolean_expression ) statement; Bentuk if lebih dari 1 baris statement, Contoh : If_Satu. Baris. Statement. java Contoh : If_Block. Statement. java if( boolean_expression ){ statement 1; statement 2; } Universitas Budi Luhur, Fakultas Teknologi Informasi 4
Implementasi struktur kontrol keputusan if satu baris statement • Pada baris 7, statement p<q merupakan boolean statement dengan operator <. • Jika boolean_statement tersebut bernilai true maka akan menjalankan statement di baris 8. • Kondisi if dengan 1 baris statement tidak perlu menggunakan simbol kurung kurawal buka ( { ) dan kurung kurawal tutup ( } ). Universitas Budi Luhur, Fakultas Teknologi Informasi 5
Implementasi struktur kontrol keputusan if lebih dari 1 baris statement (block statement) • Pada baris 7, statement p<q merupakan boolean statement dengan operator <. • Jika boolean_statement tersebut bernilai true maka akan menjalankan statement baris 8 – 9 (blok statement). • Kondisi if dengan 1 baris statement harus menggunakan simbol kurung kurawal buka ( { ) dan kurung kurawal tutup ( } ). Universitas Budi Luhur, Fakultas Teknologi Informasi 6
b. Kontrol Keputusan if - else Struktur if-else digunakan apabila kita ingin mengeksekusi sebuah statement dengan kondisi true dan statement yang lain dengan kondisi false. Bentuk dari if-else, if( boolean_expression ) statement; else statement; Untuk Lebih dari 1 baris, if( boolean_expression ){ statement 1; …………………; } else{ statement 1; …………………; } Universitas Budi Luhur, Fakultas Teknologi Informasi Contoh : If. Else_Satu. Baris. Statement. java Contoh : If. Else_Block. Statement. java 7
Implementasi struktur kontrol keputusan if-else satu baris statement • Kondisi if – else dengan satu baris statement tidak perlu menggunakan symbol { dan symbol } Universitas Budi Luhur, Fakultas Teknologi Informasi 8
Implementasi struktur kontrol keputusan if lebih dari 1 baris statement (block statement) • Pada baris 7, statement p<q merupakan boolean statement dengan operator <. • Jika boolean_statement tersebut bernilai true maka akan menjalankan statement baris 8 – 9 (blok statement). • Kondisi if dengan 1 baris statement harus menggunakan simbol kurung kurawal buka ( { ) dan kurung kurawal tutup ( } ). Universitas Budi Luhur, Fakultas Teknologi Informasi 9
c. Kontrol Keputusan if – else - if Statement pada bagian else dari blok if-else dapat menjadi struktur if else yang lain. Struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih kompleks. Bentuk if-else if, if( boolean_expression 1 ) statement 1; else if( boolean_expression 2 ) statement 2; else statement 3; Contoh : If. Else. If_Satu. Baris. Statement 1. java if( boolean_expression 1 ){ statement 1; . . . } else if( boolean_expression 2 ){ statement 1; . . . } Else{ statement 1; . . . } Contoh : If. Else. If_Satu. Baris. Statement 2. java Contoh : If. Else. If_Block. Statement. java Universitas Budi Luhur, Fakultas Teknologi Informasi 10
Implementasi struktur kontrol keputusan if-else-if dengan satu statement • Kondisi if – else dengan satu baris statement tidak perlu menggunakan symbol { dan symbol } Universitas Budi Luhur, Fakultas Teknologi Informasi 11
Implementasi struktur kontrol keputusan if-else-if dengan satu statement • Kondisi if – else lebih dari satu baris statement harus menggunakan symbol { dan symbol } Universitas Budi Luhur, Fakultas Teknologi Informasi 12
d. Kontrol Keputusan switch Cara lain untuk membuat percabangan adalah dengan menggunakan keyword atau kata kunci switch. Dengan menggunakan switch kita bisa melakukan percabangan dengan persyaratan yang beragam. Bentuk switch, switch( switch_expression ){ case_selection 1: statement 1; //block 1 break; case_selection 2: statement 1; //block 2 break; default: statement 1; //block n break; } dimana, switch_expression adalah persyaratan integer atau character dan case_selection 1, case_selection 2 dan seterusnya adalah konstanta nilai integer atau character yang unique (unik). Contoh : Kondisi. Switch. java Universitas Budi Luhur, Fakultas Teknologi Informasi 13
Implementasi struktur kontrol keputusan Switch • Ketika statement switch ditemukan, pertama kali Java memeriksa switch_expression, dan meloncat ke case dan mencocokkan nilai yang sama dengan persyaratannya. Program mengeksekusi statement dari awal sampai menemui statement break, dan melewati statement yang lain sampai akhir struktur switch. • Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default. Bisa anda catat bahwa blok default adalah optional. Sebuah statement switch bisa tidak memiliki blok default. Universitas Budi Luhur, Fakultas Teknologi Informasi 14
2. Pengulangan Struktur kontrol pengulangan adalah statement dari Java dimana kita bisa mengeksekusi blok code berulang-ulang dalam kurun nilai tertentu. Ada tiga macam jenis struktur kontrol pengulangan yaitu while, do-while, dan for-loops. a. Pengulangan while b. Pengulangan do …. . While c. Pengulangan for d. Perintah break dan continue Universitas Budi Luhur, Fakultas Teknologi Informasi 15
a. Pengulangan while Statement while loop adalah statement atau blok statement yang diulang-ulang selama Boolean_expression bernilai true. Bentuk dari while, while( boolean_expression ){ statement 1; statement 2; . . . } Contoh : Pengulangan. While. java Universitas Budi Luhur, Fakultas Teknologi Informasi 16
Implementasi struktur kontrol pengulangan While Pada contoh program di atas akan mencetak ke console sebanyak 5 kali. Perulangan berhenti ketika nilai h menjadi 6 Universitas Budi Luhur, Fakultas Teknologi Informasi 17
b. Pengulangan do. . . while Do-while loop mirip dengan while-loop. Statement di dalam do-while loop akan dieksekusi beberapa kali selama kondisi bernilai true. Perbedaan antara while dan dowhile loop adalah dimana statement di dalam do-while loop dieksekusi sedikitnya satu kali. Bentuk dari do-while, do{ statement 1; statement 2; . . . }while( boolean_expression ); Contoh : Pengulangan. Do. While. java Universitas Budi Luhur, Fakultas Teknologi Informasi 18
Implementasi struktur kontrol pengulangan do … while - Pada contoh program di atas akan mencetak ke console sebanyak 5 kali. - Perulangan berhenti ketika nilai r menjadi 6 - Jika variable r diberikan nilai 6, setidaknya proses akan dilakukan sebanyak 1 kali Universitas Budi Luhur, Fakultas Teknologi Informasi 19
c. Pengulangan for Seperti pada struktur pengulangan sebelumnya yaitu melakukan pengulangan eksekusi code beberapa kali. Bentuk dari for loop, for (Init. Expression; Loop. Condition; Step. Expression){ statement 1; statement 2; . . . } Contoh : Pengulangan. For. java Keterangan , 1. Init. Expression – inisialisasi dari variabel loop. 2. Loop. Condition - membandingkan variabel loop pada nilai batas. 3. Step. Expression - melakukan update pada variabel loop. Universitas Budi Luhur, Fakultas Teknologi Informasi 20
Implementasi struktur kontrol pengulangan for - Pada bagian Init. Expression nilai awal variable h ditentukan dari 0 - Pada Loop. Condition Selama nilai variable h lebih kecil atau sama dengan 5 maka baris 8 akan dieksekusi - Setelah melakukan proses pada blok kode pengulangan for, selanjutnya nilai h di evaluasi sesuai dengan Step. Expression, dalam kasus di atas nilai h ditambahkan 1. kemudian proses diulang dari bagian Loop. Condition Universitas Budi Luhur, Fakultas Teknologi Informasi 21
d. Perintah break dan continue break adalah perintah yang digunakan untuk menghentikan kegiatan pengulangan break label dengan menambahkan label pada awal for terluar dapat menjadikan perintah break … label menghentikan semua pengulangan. continue dibawah perintah tersebut dan melanjutkan pengulangan Contoh : Pengulangan. Perintah. Break. java Contoh : Pengulangan. Perintah. Continue. java Universitas Budi Luhur, Fakultas Teknologi Informasi 22
Implementasi perintah break pada kontrol pengulangan for - Program akan mencetak ke console sebanyak 6 kali, yaitu nilai s dari 0 sampai 5 - Kemudian lihat pada baris 8 dan 9. ketika nilai s bernilai 5, maka perulangan dihentikan dengan menggunakan perintah break. Universitas Budi Luhur, Fakultas Teknologi Informasi 23
Implementasi perintah continue pada kontrol pengulangan for - Program akan mencetak bilangan ganjil, yaitu 1, 3, 5, 7, dan 9 - Lihat pada baris 8 dan 9. jika sisa pembagian dari nilai s dengan 2 bernilai 0, maka perulngan akan dilompati (akan melakukan proses perulangan selanjutnya baris statement 11 tidak dieksekusi) Universitas Budi Luhur, Fakultas Teknologi Informasi 24
3. Class Type Data (Tipe Data Refference) Dalam Java ada tipe data primitive dan reference. Tipe data primitive ada 8 yaitu int, boolean, char, double, long, float, short dan byte. Sedangkan selain semua itu termasuk tipe data refference a. Class String b. Class String. Buffer c. Class Character Universitas Budi Luhur, Fakultas Teknologi Informasi 25
a. Class String Model ini mengadopsi konsep Array-of-char dari bahasa C/C++. Dimana Array-of-char : memandang data string sebagai sederetan karakter yang membentuk array, jumlah element array sudah pasti dan tidak mungkin berubah. Sebuah kelas yang digunakan untuk mengoperasikan data String, deklarasi kelas ini sebagai berikut : 1. Inisialisasi 1 : String abc = new String(“Contoh inisialisasi 1”); 2. Inisialisasi 2 : String abc; abc = new String(“Contoh inisialisasi 2”); 3. Inisialisasi 3 : String abc; abc = “Contoh inisialisasi 3”; Universitas Budi Luhur, Fakultas Teknologi Informasi 26
Operasi-operasi pada Class String Berikut beberapa metode yang disediakan oleh class String untuk memanipulasi data string (metode lengkap dapat dilihat di Java. sun. com) : 1. Panjang data string : nama. Objek. length(); 2. Penggabungan data string : nama. Objek. concat(String); 3. Pembandingan data string : nama. Objek. equal (String); 4. Pengantian data string : nama. Objek. replace(char, char); nama. Objek. replace. All(String, String); nama. Objek. replace. First(String, String); 5. Kapitalisasi data string : nama. Objek. to. Lower. Case(); nama. Objek. to. Upper. Case(); 6. Sub-string : nama. Objek. substring(int); nama. Objek. substring(int, int); 7. Operasi charakter : nama. Objek. char. At(int); nama. Objek. to. Char. Array(); 8. Konversi : String. value. Of(variabel): nama. Objek. to. String(): Universitas Budi Luhur, Fakultas Teknologi Informasi 27
Implementasi Operasi pada Class String Universitas Budi Luhur, Fakultas Teknologi Informasi 28
b. Class String. Buffer Model kedua ini mengadopsi konsep pointer-of-char dari bahasa C/C++. Dimana tipe data pointer adalah implementasi dari dynamic-allocation yang mengijinkan penggunaan variabel dalam jumlah besar jika diperlukan dan penghapusan variabel tersebut jika sudah tidak diperlukan lagi pada saat run-time. Fleksibelitas ini yang menyebabkan suatu data string bisa mengalami perubahan ukuran: bertambah atau berkurang. Berbeda dengan class string, bahwa data String. Buffer hanya bisa diinisialisasi melalui construktornya yaitu dengan menggunakan perintah new. Sbb: String. Buffer nama. Objek = new String. Buffer(string); Universitas Budi Luhur, Fakultas Teknologi Informasi 29
Operasi-operasi pada Class String. Buffer Berikut beberapa metode yang disediakan oleh class String. Buffer untuk memanipulasi data string. Buffer, dimana tidak berbeda jauh dengan Class String. 1. Panjang data String. Buffer : nama. Objek. length(); nama. Objek. set. Length(int); 2. Penambahan data String. Buffer : nama. Objek. append(String); nama. Objek. insert(int, String); 3. Penghapusan data String. Buffer : nama. Objek. delete(int, int); 4. Penggantian data String. Buffer : nama. Objek. replace(int, String); 5. Pembandingan data String. Buffer : nama. Objek. equal (String); 6. Pembalikan data String. Buffer : nama. Objek. reverse(); 7. Sub-string : nama. Objek. substring(int); nama. Objek. substring(int, int); nama. Objek. index. Of(String). 8. Operasi karakter : nama. Objek. char. At(int); nama. Objek. delete. Char. At(int); nama. Objek. set. Char. At(int, char); 9. Konversi : nama. Objek. to. String(): Universitas Budi Luhur, Fakultas Teknologi Informasi 30
Implementasi Operasi pada Class String. Buffer Universitas Budi Luhur, Fakultas Teknologi Informasi 31
Perbedaan Class String dan String. Buffer • Perbedaan Class String dengan String. Buffer yang harus kita perhatikan adalah String bersifat Immutable sedangkan String. Buffer bersifat Mutable • Mutable adalah objek yang ketika dibuat (instantiate), dapat dirubah isinya. Immutable adalah kebalikan dari Mutable, ketika sudah di instantiated maka objek tersebut tidak dapat dirubah isinya • Contoh pada Java, kita harus berhati-hati dalam menggunakan String karena objek ini sifatnya immutable. Pada saat anda mendeklarasikan String kata = "Saya immutable", JVM akan membuat 1 objek immutable. Ketika anda melakukan perubahan: kata = "Saya mutable" anda sebenarnya melakukan pembuatan objek baru lagi dengan variable "kata" dan isi "Saya mutable" namun pada alokasi memori yang berbeda dari variable sebelumnya. Jika terlalu banyak operasi seperti itu, dapat mempengaruhi performance. • Jika anda akan melakukan banyak perubahan atau penambahan kalimat pada String objek, biasakan menggunakan class String. Builder atau String. Buffer, lalu pada akhir manipulasi tersebut ubah menjadi String. Universitas Budi Luhur, Fakultas Teknologi Informasi 32
Perbedaan Class String. Builder dan String. Buffer • Perbedaan String. Builder dan String. Buffer hanya pada Thread Safe (String. Buffer) dan Not-Thread Safe (String. Builder) • Thread Safe adalah konsep yang menjelaskan jika terdapat 1 resource yang digunakan bersama pada satu waktu (shared resource) tidak memberikan hasil yang berbeda / sinkron. Thread Safe dapat diartikan dengan synchronization. Sehingga terdapat aksi wait() terhadap resource yang dipegang oleh banyak thread. • Not-Thread Safe adalah kebalikan dari Thread Safe, jika ada 2 thread yang menggunakan 1 resource (shared resource) maka hasil/value yang diberikan bisa berbeda/tidak sinkron, tergantung siapa yang lebih dahulu mememegang resource tsb (hold / lock the resource). Universitas Budi Luhur, Fakultas Teknologi Informasi 33
Perbedaan Class String. Builder dan String. Buffer Perbedaan String. Builder dan String. Buffer hanya pada Thread Safe (String. Buffer) dan Not-Thread Safe (String. Builder) Objek String X THREAD A ubah x = “a” proses … … … proses tampilkan nilai X selesai THREAD B Karena proses pada thread A kehabisan waktu, sehingga pada baris ini proses thread A dihentikan sementara. Kemudian thread B diekseskusi Pada Thread B nilai objek X diubah menjadi “b” dan dieksekusi hingga selesai. Kemudian Thread A dilanjutkan kembali. Universitas Budi Luhur, Fakultas Teknologi Informasi proses … ubah x = “b” proses …. … … selesai Pertanyaan : Nilai X yang akan ditampilakan pada proses di Thread A ? Jawaban tergantung pada Thread Safe dan Not Thread Safe. - Jika Thread Safe, maka A akan membaca nilai objek X dimana dia terakhir diubah oleh B. Dalam contoh kasus di samping akan menampilkan nilai “b” - Jika, Not Thread Safe maka nilai objek X yang dibaca adalah nilai objek X yang terakhir diubah oleh A. Dalam contoh kasus di samping akan menampilkan nilai “a” 34
c. Class Character Kelas Character dibuat untuk meningkatkan kemampuan programmer dalam menangani tipe data karakter. Berbagai metode disiapkan untuk memanipilasi data karakter. Mulai dari memeriksa jenis karakter sampai dengan melakukan konversi tipe data karakter menjadi data lain. Kelas Character menyediakan satu constructor untuk menginisialisasi data karakter, yaitu : constructor dengan parameter data bertipe karakter. Deklarasi Kelas Character sbb : Character nama. Objek = new Character(char); Universitas Budi Luhur, Fakultas Teknologi Informasi 35
Operasi-operasi pada Class Character Beberapa metode akan dibahas terutama untuk memeriksa jenis karakter saat ini, diantaranya sbb: 1. Berjenis Bilangan ? : Character. is. Digit(char)); 2. Berjenis Huruf ? : Character. is. Letter(char)); 3. Berjenis Huruf/Bilangan ? : Character. is. Letter. Or. Digit(char)); 4. Berjenis Spasi ? : Character. is. White. Space(char)); 5. Berjenis Huruf Kecil ? : Character. is. Lower. Letter(char)); 6. Berjenis Huruf Besar ? : Character. is. Upper. Letter(char)); 7. Konversi ke Huruf Kecil ? : Character. to. Lower. Case(char)); 8. Konversi ke Huruf Besar ? : Character. to. Upper. Case(char)); 9. Konversi ke String ? : Character. to. String(char)); nama. Objek. to. String()); Universitas Budi Luhur, Fakultas Teknologi Informasi 36
Implementasi Operasi pada Class Character Universitas Budi Luhur, Fakultas Teknologi Informasi 37
End Of Slide Universitas Budi Luhur, Fakultas Teknologi Informasi 38
- Slides: 38