Konsep Dasar Pemrograman Berorientasi Obyek 1 JAVA
BAB 1 PEMROGRAMAN DAN SIKLUS HIDUP PERANGKAT LUNAK
Daftar Isi Pendahuluan Pemrograman Siklus Hidup Perangkat Lunak Pengertian Bahasa Pemrograman Level Bahasa Pemrograman Siklus Hidup Perangkat Lunak Analisis Desain Pengembangan ( Development ) Pengujian ( Testing ) Implementasi Pemeliharaan Akhir Siklus
Pemrograman(1) Pengertian Bahasa Pemrograman Level Bahasa Pemrograman Penanaman instruksi ke dalam komputer / devais Tujuan : Komputer / devais melakukan operasi-operasi komputasi sesuai instruksi Contoh instruksi : Penjumlahan Jika input1=2 dan input2 =5, maka hasil operasi komputer = 7 Bahasa Pemrograman Instruksi yang dimengerti komputer : …010101001… Instruksi yang dimengerti manusia : b = a + 4 Agar manusia dapat memberi instruksi kepada komputer, dibutuhkan Bahasa Pemrograman Level Bahasa Pemrograman
Pemrograman(2) Level Bahasa Pemrograman Bahasa Tingkat Rendah ( low-level language ), misalnya: bahasa mesin dan assembler Bahasa Tingkat Menengah (medium-level language), misalnya: C / C++, Fortran Bahasa Tingkat Tinggi (high-level language), misalnya: Pascal Bahasa Tingkat Lebih Tinggi (higher-level language), misalnya: Java , .Net
Siklus Hidup Perangkat Lunak(1) Analisis Penentuan scope masalah Identifikasi komponen
Siklus Hidup Perangkat Lunak(2) Desain Membuat blueprint / cetak biru Spesifikasi teknis dari sistem yang akan dihasilkan
Siklus Hidup Perangkat Lunak(3) Pengembangan Penggunaan blueprint untuk membuat komponen aktual Jika diperlukan, komponen dapat dipecah menjadi sub-sub komponen
Siklus Hidup Perangkat Lunak(4) Pengujian Evaluasi terhadap komponen-komponen : Memenuhi spesifikasi ?
Siklus Hidup Perangkat Lunak(5) Pengujian Evaluasi terhadap komponen-komponen : Memenuhi spesifikasi ? Testing : Unit Test Functional Test Flow Graph Test Performance Test Security Test Integration Test dll
Siklus Hidup Perangkat Lunak(6) Implementation Pembuatan produk : Instalasi produk ke komputer / devais Pelatihan kepada user
Siklus Hidup Perangkat Lunak(7) Pemeliharaan Perbaikan terhadap masalah-masalah yang terjadi pada produk : Perbaikan bug Re-install produk Data recovery Perbaikan pada komponen dll
Siklus Hidup Perangkat Lunak(8) Akhir Siklus Mengumpulkan feedback dari user terhadap produk yang berjalan pada sistem Feedback Dikumpulkan Dianalisa Keputusan : Modifikasi produk / tidak ?
Bab 2 ANALISIS MASALAH MENGGUNAKAN KONSEP OBJECT-ORIENTED ANALYSIS
Daftar Isi Contoh Masalah Identifikasi Domain Masalah Identifikasi Obyek Seleksi Obyek Solusi / Hasil Analisa
Contoh Masalah User : Petugas logistik pada sebuah koperasi Aplikasi Diminta : Sistem pelaporan stok barang yang mencatat persediaan, pemasukan, dan pengeluaran barang Kebijakan Koperasi : Untuk barang berupa makanan : Jika kedaluwarsa sudah lewat, barang dibuang Jika kedaluwarsa tinggal 6 bulan lagi (asumsi ketika dibeli, masa kedaluwarsa makanan > 1 tahun ), diskon harga 50% Untuk semua barang : Jika stok suatu item tinggal 40% dari seharusnya, harus ditambah stoknya.
Contoh Masalah
Identifikasi Domain Masalah Domain masalah : ruang lingkup permasalahan yang akan dipecahkan. Tujuan : fokus pada masalah Domain masalah dapat ditentukan dari permintaan user (User Requirement Gathering )
Identifikasi Obyek Identifikasi sifat-sifat dasar dari obyek yang diperkirakan akan terlibat dalam aplikasi : Obyek : fisik / konseptual Identifikasi atribut / karakteristik Identifikasi operasi Membuat perkiraan obyek apa saja yang akan digunakan : Barang Supplier Koperasi Pembeli Gudang Daftar Transaksi Daftar Stok Barang
Seleksi Obyek (1) Pertimbangan-pertimbangan : Relevansi dengan masalah : Obyek eksis pada batasan masalah ? Obyek dibutuhkan dalam menyelesaikan masalah ? User dibutuhkan sebagai bagian dari interaksi antara user dan solusi ? Eksistensi independen : sebaiknya obyek yang dibuat tidak saling tergantung dengan obyek lainnya
Seleksi Obyek (2) Memilik Obyek : Barang OK Supplier Not OK , sebab tidak terlalu berperan dalam permasalahan Koperasi OK , menjadi obyek utama Pembeli Not OK, sebab tidak terlalu berperan dalam permasalahan Daftar Transaksi OK Daftar Stok Barang OK
Solusi
Bab 3 MEMBUAT DAN MENGUJI PROGRAM JAVA
Daftar Isi Identifikasi Komponen-komponen Class Strukturisasi Class Deklarasi Class Deklarasi Variabel dan Penugasan Pendefinisian Method Pemberian Komentar Membuat dan Menguji Program Java Konfigurasi yang Dibutuhkan Membuat dan Menggunakan Class Mengkompilasi dan Mengeksekusi Program
Identifikasi Komponen-komponen Class (1) Strukturisasi Class Deklarasi Class Deklarasi dan Inisialisasi Atribut Pendefinisian Method ( optional ) Komentar (Optional ) Deklarasi Variabel dan Penugasan Pendefinisian Method Pemberian Komentar
Identifikasi Komponen-komponen Class(2) Deklarasi Class : Tujuan : mendefinisikan data yang dibawa oleh obyek Syntax : [modifier] class class_identifier Contoh : public class Barang { }
Identifikasi Komponen-komponen Class (3) Deklarasi Variabel dan Penugasan Deklarasi variabel dilakukan di dalam class Variabel yang dideklarasikan di dalam class = variabel atribut / variabel anggota / variabel instans Syntax : [modifiers] data_type identifier [ = value ] ; Contoh : import java.util.Date; public class Barang { public int jumlah ; //contoh deklarasi public int hargaBeli ; public Date tanggalKedaluwarsa ; public int hargaJual ; public String idBarang ; double diskon = 0.0 ; //contoh penugasan }
Identifikasi Komponen-komponen Class (4) Pendefinisian Method Method : merepresentasikan operasi-operasi yang dapat dilakukan oleh obyek Syntax : [modifiers] return_type method_identifier ([arguments]){ method_code_block; } Contoh : public class Barang { ... //inisialisasi variabel public void setIDBarang( String id ){ dBarang = id;
Identifikasi Komponen-komponen Class (5) Pemberian Komentar : Tujuan : Menandai baris-baris program dengan catatan, supaya programmer dapat mengingat maksud dari baris-baris program tersebut Contoh : 1) public int hargaJual ; // ini variabel untuk // menyimpan data harga jual 2) /* ini variabel untuk menyimpan data harga jual */ public int hargaJual ;
Membuat dan Menguji Program Java (1) Konfigurasi yang Dibutuhkan : Java Runtime Environment ( JRE ) JRE dapat didownload dari : http://www.java.sun.com
Membuat dan Menguji Program Java (2) Membuat dan Menggunakan Class Contoh program : public class Barang { public int jumlah ; //contoh deklarasi public int hargaBeli ; public int hargaJual ; public String idBarang ; double diskon = 0.0 ; //contoh penugasan public int getJumlah(){ return jumlah; } Class disimpan dalam file : Barang.java
Membuat dan Menguji Program Java (3) Mengkompilasi Program : C:\Latihan>javac Barang.java Mengeksekusi Program : C:\Latihan>java Barang
Bab 4 DEKLARASI, INISIALISASI, DAN PENGGUNAAN VARIABEL
Daftar Isi Identifikasi Penggunaan Variabel dan Syntax Deklarasi dan Inisialisasi Variabel Mendeskripsikan Tipe Data Primitif Tipe Data Integral Tipe Data Floating-Point Tipe Data Tekstual Tipe Data Logika Memilih Tipe Data Mendeklarasikan Variabel dan Melewatkan Nilai ke Variabel Penamaan Variabel Melewatkan Nilai ke Variabel Konstanta
Identifikasi Penggunaan Variabel dan Syntax (1) Contoh Program :
Identifikasi Penggunaan Variabel dan Syntax (2)
Identifikasi Penggunaan Variabel dan Syntax (3) noPol menyimpan data nomor polisi merk menyimpan data merk mobil harga menyimpan harga mobil tahunPembuatan menyimpan tahun pembuatan mobil namaPemilik menyimpan data pemilik mobil Deklarasi dan Inisialisasi Variabel : [modifiers] data_type identifier [ = value ] ;
Identifikasi Penggunaan Variabel dan Syntax (4)
Identifikasi Penggunaan Variabel dan Syntax (5) Hasil Kompilasi : Penyebab : Variabel belum dideklarasikan !!!
Identifikasi Penggunaan Variabel dan Syntax (6) Inisialisasi Variabel ( dipisah dari deklarasi ) :
Mendeskripsikan Tipe Data Primitif (1) Integral : merepresentasikan nilai-nilai bilangan bulat ( tidak memiliki elemen pecahan desimal. Floating Point : merepresentasikan nilai-nilai bilangan real ( memiliki elemen pecahan desimal ) Tekstual : merepresentasikan nilai-nilai berupa alphabet. Logika : merepresentasikan nilai-nilai logika ( hanya bernilai true dan false ).
Mendeskripsikan Tipe Data Primitif (2)
Mendeskripsikan Tipe Data Primitif (3) Tipe Data Floating Point
Mendeskripsikan Tipe Data Primitif (4) Tipe Data Tekstual : char Contoh penggunaan : public char alphabet = ‘A’; public char ascii = ‘\111’; // jika dicetak, akan //menghasilkan // huruf ‘I’; Tipe Data Logika : boolean public boolean status = true; public boolean check = 10 < 5 ; // nilai check menjadi //false public boolean hasil = (10<5) && (var==3);
Mendeskripsikan Tipe Data Primitif (5) Memilih Tipe Data : Perhatikan Jenis Data ( bilangan bulat / bilangan real / logika / karakter ) Terdapat operasi pembagian ? disarankan menggunakan tipe floating point Jika program memperhatikan ukuran data dalam memory, gunakan tipe-tipe data dengan representasi bit kecil.
Mendeklarasikan Variabel dan Melewatkan Nilai ke Variabel (1) Variabel : entitas penyimpanan data yang paling elementer Variabel lebih mengacu ke alokasi memory daripada nilai data
Mendeklarasikan Variabel dan Melewatkan Nilai ke Variabel (2) Penamaan Variabel : Identifier variabel harus dimulai dengan alfabet huruf besar, huruf kecil, tanda dollar ( $ ) atau underscore (_). Setelah karakter pertama, dapat diikuti dengan angka. Identifier variabel tidak boleh mengandung punctuation, spasi, atau dashes ( - ) Kata kunci pada teknologi Java , seperti pada Tabel IV.3, tidak dapat dijadikan nama identifier variabel. Kata kunci yang tidak dapat dijadikan nama variabel :
Mendeklarasikan Variabel dan Melewatkan Nilai ke Variabel (3) Penamaan Variabel : Contoh nama variabel yang valid : @2var _status tanggal jumlahBarang nama_kecil final_test int_float Melewatkan Nilai ke Variabel Contoh :
Mendeklarasikan Variabel dan Melewatkan Nilai ke Variabel (4) Penamaan Variabel : Contoh nama variabel yang valid : @2var _status tanggal jumlahBarang nama_kecil final_test int_float Melewatkan Nilai ke Variabel Contoh :
Menyimpan Variabel Primitif dan Konstanta pada Memory
Bab 5 MENGGUNAKAN OPERATOR ARITMETIKA DAN BITWISE
Daftar Isi Menggunakan Operator Aritmatika untuk Memodifikasi Nilai Menggunakan Operator Bitwise untuk Memodifikasi Nilai Prioritas Operator Menggunakan Promosi dan Type Casting Promosi Type Casting Beberapa Catatan Promosi dan Type Casting
Menggunakan Operator Aritmatika Untuk Mengubah Nilai (1)
Menggunakan Operator Aritmatika Untuk Mengubah Nilai (2) Operator Aritmatika Unary
Menggunakan Operator Bitwise Untuk Mengubah Nilai (1)
Menggunakan Operator Bitwise Untuk Mengubah Nilai (2) Shift Kanan Shift Kiri
Menggunakan Operator Bitwise Untuk Mengubah Nilai (3) Shift Kanan Dengan Penambahan ‘0’ pada Bit-bit Kiri Operator ‘&’
Menggunakan Operator Bitwise Untuk Mengubah Nilai (4)
Menggunakan Operator Bitwise Untuk Mengubah Nilai (5)
Prioritas Operator (1) Prioritas dari yang paling dahulu dikerjakan : Operator pada tanda kurung “(…)” Operator-operator Increment dan Decrement Operator Perkalian dan Pembagian Operator Penjumlahan dan Pengurangan Operator Bitwise, dari kiri ke kanan
Prioritas Operator (2) Contoh 1: Contoh 2: Urutan Operasinya : int c = 12 * 3 +5 / (8 - 3) ; Urutan Operasinya : int c = 12 * 3 + 5 / 5 ; int c = 36 + 5 / 5; int c = 36 + 1 ; int c = 37; Contoh 2: int c = 3 + 4 >> 1 + 1 << 1; int c = 7 >> 1 + 1 << 1; int c = 7 >> 2 << 1; int c = 1 << 1; int c = 2;
Promosi dan Type-Casting (1) proses pengubahan representasi bit variabel primitif dari representasi bit yang lebih rendah ke representasi bit yang lebih tinggi Promosi karena assigning tipe data dengan representasi bit yang lebih tinggi ke yang lebih rendah Contoh : short a = 12; int b = a ; // nilai a promosi ke integer Promosi karena assigning tipe data integral ke tipe data floating-point int a = 30; float b = a ;
Promosi dan Type-Casting(2) proses pengubahan representasi bit variabel primitif dari representasi bit yang lebih tinggi ke representasi bit yang lebih rendah. Syntax : identifier = (target_type) value ; Contoh : int num1 = 34; int num2 = 45; short num3 = (short)(num1 + num2 ); Keterangan : (num1 + num2) menghasilkan nilai integer. Agar nilainya dapat di-assign ke num3, dilakukan casting dengan pernyataan : (short) (num1+num2)
Promosi dan Type-Casting(3) Type-Casting merupakan proses pemotongan bit Misalnya : Type-casting dari float ke int Contoh : int num1; long num2 = 123987654321L; num1 = (int)(num2); num1 akan bernilai -566397263
Beberapa Catatan Promosi & Casting (1) Operasi Aritmatika Menghasilkan Nilai di Luar Batas Tipe Data Contoh : int a = 55555; int b = 66666; int c = a * b System.out.println(c); Output : -591337666 ( != 55555 * 66666 ) Solusi : long b = 66666; long c = a * b; System.out.println(c); Output : 3703629630 ( = 55555 * 66666 )
Beberapa Catatan Promosi & Casting (2) Asumsi dasar compiler untuk tipe data integer: Nilai yang di-assign tanpa penambahan keterangan apapun, diasumsikan sebagai nilai integer Jika pada suatu operasi aritmatika, operand-operand pada ruas kanan berbeda tipe datanya ( semuanya masih termasuk tipe data integral ), dan semua tipe data merupakan tipe data yang representasi bitnya di bawah integer, maka hasil operasi aritmatika tersebut akan diasumsikan sebagai integer Jika pada suatu operasi aritmatika, operand-operand pada ruas kanan berbeda tipe datanya ( semuanya masih termasuk tipe data integral ), dan salah satu tipe data merupakan tipe data yang representasi bitnya di atas integer, yaitu long, maka hasil operasi aritmatika tersebut akan diasumsikan sebagai long
Beberapa Catatan Promosi & Casting (3) Asumsi dasar compiler untuk tipe data floating-point: Nilai yang di-assign tanpa penambahan keterangan apapun akan diasumsikan sebagai double Jika pada operasi aritmatika dengan semua operand pada ruas kanan menggunakan tipe data floating-point, maka hasil operasi aritmatika tersebut direpresentasikan dengan tipe data yang mengikuti tipe data dengan representasi tertinggi pada ruas kanan operasi aritmatika tersebut Jika pada operasi aritmatika dengan sebagian operand pada ruas kanan menggunakan tipe data floating-point dan sebagian menggunakan tipe data integral, maka hasil operasi aritmatika tersebut direpresentasikan dengan tipe data floating-point yang mengikuti tipe data floating-point dengan representasi bit tertinggi pada ruas kanan operasi aritmatika tersebut
Bab 6 MEMBUAT DAN MENGGUNAKAN OBYEK
Daftar Isi Deklarasi Referensi Obyek, Instanstiasi Obyek, dan Inisialisasi Obyek : Deklarasi Referensi Obyek Instanstiasi dan Inisialisasi Obyek Menggunakan Variabel Referensi Obyek untuk Memanipulasi Data
Deklarasi Referensi Obyek (1) Selain Variabel Primitif, terdapat satu jenis variabel lagi, yaitu : Variabel Referensi Obyek Ilustrasi :
Deklarasi Referensi Obyek(2) Letak variabel referensi obyek pada memory :
Deklarasi Referensi Obyek(3) Syntax : Classname identifier ; Contoh :
Inisialisasi Variabel Referensi Obyek (1) Syntax : Classname identifier = new Classname ( ) ; atau Classname identifier ; identifier = new Classname ( ); Contoh :
Inisialisasi Variabel Referensi Obyek(2) Hasil akhir pada memory :
Menggunakan Variabel Referensi Obyek untuk Memanipulasi Data Contoh :
Memindahkan Referensi dari Satu Obyek ke Obyek yang Lain (1) Contoh :
Memindahkan Referensi dari Satu Obyek ke Obyek yang Lain (2)
Bab 7 MENGGUNAKAN CLASS STRING DAN PUSTAKA JAVA
Daftar Isi Menggunakan Class String Investigasi Pustaka Class Java Instanstiasi String dengan Kata Kunci new Instanstiasi String tanpa Kata Kunci new Penggunaan Operator ‘==‘ dan Method equals( ) untuk Membandingkan Dua Buah String Investigasi Pustaka Class Java Spesifikasi Pustaka Class Java Mempelajari Spesifikasi Pustaka Class-class Java untuk Mempelajari Method
Menggunakan Class String Keunikan String : Merupakan kumpulan karakter yang jumlahnya dari 0 sampai memori tidak mencukupi Dapat diinstanstiasi tanpa kata kunci new Contoh penggunaan String :
Instanstiasi String dengan new Instanstiasi String dengan new : JVM akan membentuk 2 buah obyek : Obyek String : memuat referensi ke suatu String literal pada literal pool. String literal : yang memuat karakter-karakter. String literal ini terletak pada literal pool Literal pool : satu blok alokasi memory pada Heap Memory yang khusus berisi kumpulan String literal. Alokasi literal pool ini dimaksudkan untuk mengakomodasi apabila terdapat lebih dari satu obyek String yang mereferensi ke literal yang sama, tidak perlu membuat 2 string literal dengan komposisi karakter yang sama, tetapi cukup hanya 1 string literal saja.
Instanstiasi String tanpa new Instanstiasi String dengan new : JVM akan membentuk 1 buah obyek : Obyek String : memuat referensi ke suatu String literal pada literal pool. String literal akan dibentuk apabila representasi karakter obyek String belum ada di Literal Pool
Hasil Instanstiasi String
Penggunaan ‘==‘ dan Method equals( ) untuk Membandingkan dua buah String Penggunaan ‘==‘ : lebih menekankan apakah kedua obyek String tersebut menunjuk ke string literal yang sama Penggunaan method equals () : lebih menekankan apakah representasi karakter kedua String sama atau tidak
Investigasi Pustaka Class Java (1) Spesifikasi Pustaka Class-class Java : Java Software Development Kit (SDK ) Documentation
Investigasi Pustaka Class Java (2) Menggunakan Spesifikasi Pustaka Java untuk Mempelajari Method : Daftar Field Daftar Method
Bab 8 MENGGUNAKAN OPERATOR DAN KONSTRUKSI PENGAMBILAN KEPUTUSAN
Daftar Isi Menggunakan Operator Relasional dan Kondisional Operator Kondisional Konstruksi Pengambilan Keputusan Konstruksi if Konstruksi if … else Konstruksi switch
Menggunakan Operator Relasional dan Kondisional Operator Relasional digunakan untuk mengevaluasi variabel Operator Kondisional digunakan untuk mengevaluasi kondisi Operator Relasional dan Kondisional akan menghasilkan nilai true atau false
Operator Relasional (1) Membandingkan suatu variabel dengan variabel lain, atau variabel dengan sebuah nilai Operator Relasional :
Operator Relasional (2) Contoh 1 : int i = 1; System.out.println(i==1); Keluaran : true Contoh 2 : System.out.println(i>1); Keluaran : false
Operator Kondisional (1) Membandingkan suatu kondisi dengan kondisi lain Operator Kondisional :
Operator Kondisional (2) Contoh 1 : int i = 1; int j = 2; System.out.println ( ( i < 1 ) && ( j > 0 ) ) ; Keluaran : false Contoh 2 : System.out.println ( ( i < 1) || ( j > 0) ) ; Keluaran : true
Konstruksi Pengambilan Keputusan Konstruksi yang memungkinkan program melakukan evaluasi terhadap variabel / kondisi kemudian menjalankan alur program yang sesuai dengan kondisi. Konstruksi Pengambilan Keputusan : Konstruksi if Konstruksi if … else Konstruksi switch
Konstruksi if (1) Konstruksi pengambilan keputusan dengan 2 kemungkinan keputusan.
Konstruksi if (2) Syntax Contoh : if ( boolean_expression ){ code block; } //akhir dari konstruksi ‘if’ //program dilanjutkan Contoh :
Konstruksi if … else (1) Digunakan sebagai konstruksi pengambilan keputusan yang memiliki beberapa kemungkinan keputusan.
Konstruksi if … else (2) Syntax if ( boolean_expression_1 ){ code block 1; } else if ( boolean_expression_2 ){ code block 2; . else{ code block n;
Konstruksi if … else (3) Contoh
Konstruksi switch(1) Digunakan untuk mengambil keputusan yang mengevaluasi kemungkinan-kemungkinan nilai dari variabel yang dievaluasi
Konstruksi switch(2) Syntax switch( variabel ) { case nilai_literal_1 : code_block_1; [ break; ] case nilai_literal_2 : code_block_2; . [default:] code_block_default; }
Konstruksi switch(3) Contoh :
Konstruksi switch(4) Variabel yang dapat dievaluasi menggunakan konstruksi switch adalah variabel yang bertipe-data : int short byte char Setelah evaluasi terhadap satu nilai dilakukan, jika tidak ditemukan kata kunci break, maka pemeriksaan dilanjutkan ke nilai berikutnya. Jika ditemukan break, maka program keluar dari blok switch Kata kunci default dimaksudkan : jika semua nilai yang dievaluasi tidak ada yang cocok maka blok default ini akan dieksekusi
Bab 9 KONSTRUKSI LOOP
Daftar Isi Konstruksi Loop Membuat Loop Menggunakan While Membuat Loop Menggunakan For Membuat Loop Menggunakan Do/While Loop Bersarang ( Nested Loop ) Perbandingan Konstruksi Loop
Konstruksi Loop Konstruksi Loop adalah konstruksi yang digunakan untuk mengakomodasi pengulangan proses Konstruksi Loop diperlukan untuk lebih mengefisienkan penulisan kode program, sehingga tidak perlu dilakukan pengulangan penulisan kode untuk merepresentasikan suatu proses yang berulang. Konstruksi Loop : while for do..while
Konstruksi while (1) Konstruksi while adalah konstruksi loop yang jumlah perulangannya tergantung pada suatu kondisi logika tertentu Syntax : while(boolean_expression){ code_block; } //akhir dari konstruksi while //program dilanjutkan di sini
Konstruksi while (2) Contoh :
Konstruksi while (3) Tabel Perkembangan Nilai Variabel :
Konstruksi while (3) Penggunaan while(true) : jika code block tidak mengandung pemeriksaan kondisi untuk mengakhiri loop, maka loop akan terus dijalankan Jika menggunakan while(true), buatlah pemeriksaan kondisi untuk keluar dari loop Contoh :
Konstruksi for (1) Ada beberapa segmen yang dipertimbangkan pada konstruksi for : segmen inisialisasi segmen boolean_expression segmen update Syntax : for(initialize[,initialize] ; boolean_expression ;update[,update]){ code_block; }
Konstruksi for (2) Contoh :
Konstruksi for (3) Tabel perkembangan nilai variable
Konstruksi do…while Mirip dengan konstruksi while Perbedaan dengan konstruksi while : Looping dijalankan terlebih dahulu Dilakukan pemeriksaan kondisi Contoh :
Loop Bersarang (Nested Loop) (1) Looping di dalam Looping dapat diterapkan pada pemrograman Java Konstruksi yang digunakan dalam nested loop tidak dibatasi Contoh :
Loop Bersarang (Nested Loop) (2) Keluaran Program : @@@@@
Perbandingan Konstruksi Loop Konstruksi while : lebih tepat digunakan untuk membuat iterasi dengan jumlah iterasi yang tidak pasti dan untuk jumlah iterasi dari nol sampai beberapa kali Konstruksi do…while : , lebih tepat digunakan untuk membuat iterasi dengan jumlah iterasi yang tidak pasti , dan untuk jumlah iterasi dari satu sampai beberapa kali Konstruksi for : lebih tepat digunakan untuk membuat iterasi dengan jumlah iterasi yang pasti dan berhingga
Pernyataan Continue
Pernyataan continue (2)
Bab 10 MENGGUNAKAN METHOD
Daftar Isi Pengertian Method Membuat dan Memanggil ( Invoke ) Method Bentuk Dasar Method Memanggil Method dari Class yang Berbeda Memanggil Method dari Class yang Sama Melewatkan Argumen dan Mengembalikan Nilai Deklarasi Method Ber-argumen Memanggil Method Ber-argumen Mendeklarasikan Method yang Memiliki Nilai Pengembalian Menerima Nilai Pengembalian Keuntungan Menggunakan Method Overloading pada Method
Pengertian Method F ( x , y ) = x + y Method adalah satu kontainer pada class yang memuat baris-baris kode Semua baris kode pada pemrograman Java harus berada pada blok method, dan semua method harus berada di dalam blok class Method dapat dianalogikan sebagai fungsi. Contoh : F ( x , y ) = x + y F ( x, y ) dapat dikatakan sebagai method
Membuat dan Memanggil ( Invoke ) Method (1) Method dibuat / didefinisikan pada saat mendefinisikan class Syntax : [modifiers] return_type method_identifier ([arguments]){ method_code_block; }
Membuat dan Memanggil ( Invoke ) Method(2) Contoh :
Membuat dan Memanggil ( Invoke ) Method(3) Contoh (lanj.) :
Membuat dan Memanggil ( Invoke ) Method(4) Contoh (lanj.) :
Memanggil Method dari Class yang Berbeda Contoh : Syntax : < object identifier > . < method identifier ([arguments])> ;
Memanggil Method dari Class yang Sama Contoh : Syntax : <method identifier([arguments])>;
Melewatkan Argumen (1) Method dapat memiliki argumen Argumen dapat disebut sebagai variabel dummy, atau parameter Dalam pemanggilan method, dapat dilakukan passing argumen ( pelewatan argumen ), dengan nilai yang tipe datanya sama dengan tipe data parameter
Melewatkan Argumen (2) Syntax deklarasi method berargumen : [modifiers] return_type method_identifier ( data_type argument_identifier_1 [, data_type argument_identifier_n] ) { code_block; }
Melewatkan Argumen (3) Contoh method dengan parameter : Class LumbungPadi : public void simpanPadi(int tambahanPadi){ padiDisimpan = padiDisimpan + tambahanPadi; } Class Petani : public void simpanPanenanDiLumbung(int jumlahPanenan ){ lumbung.simpanPadi(jumlahPanenan); Contoh pemanggilan method : Petani pakBakri = new Petani( ); pakBakri.simpanPanenanDiLumbung(100 );
Mengembalikan Nilai (1) Method dengan return_type bukan void dapat mengembalikan nilai Nilai dikembalikan ke method lain yang memanggil method tersebut
Mengembalikan Nilai (2) Syntax deklarasi method yang dapat mengembalikan nilai : [modifiers] return_value method_identifier([arguments]){ method_code_block; return value; }
Mengembalikan Nilai (3) Contoh deklarasi method yang dapat mengembalikan nilai : Contoh pemanggilan method yang dapat mengembalikan nilai :
Keuntungan Menggunakan Method Method membuat program lebih mudah dibaca dan mudah untuk dipelihara / di-maintain. Method membuat proses pengembangan dan perawatan ( maintenance ) menjadi lebih cepat. Method merupakan dasar untuk melakukan membuat software yang re-usable. Method memungkinkan obyek-obyek yang berbeda untuk berkomunikasi dan untuk mendistribusikan beban kerja yang dipikul oleh program.
Overloading pada Method(1) Dalam satu class dapat dibuat lebih dari 1 method dengan identifier (nama method ) yang sama Setiap method dengan nama yang sama harus mempunyai komposisi argumen yang berbeda Contoh method-method yang merupakan overload : void simpanPanenanDiLumbung( ) void simpanPanenanDiLumbung(int jumlahPanenan) void simpanPanenanDiLumbung(int jumlahPanenan, LumbungPadi lb )
Overloading pada Method(2) Contoh :
Overloading pada Method(3) Contoh (lanj.) :
Overloading pada Method(4) Contoh (lanj.) :
Overloading pada Java API Pada Spesifikasi Java API, terdapat method-method overload. Contoh : pada class PrintStream, terdapat method-method overload : print (boolean b) print (char c) print (char[ ] ca) print (double d ) print (int i ) print (Object o ) dll
Bab 11 VARIABEL DAN METHOD STATIK
Membuat Method dan Variabel static Daftar Isi Membuat Method dan Variabel static Mendeklarasikan Method static Memanggil Method static Mendeklarasikan Variabel static Method static dan Variabel static pada Java API Method main ( ) Kapan Mendeklarasikan Method atau Variabel static ?
Membuat Method dan Variabel statik
Mendeklarasikan Method Statik Syntax [modifiers] static return_type method_identifier( [arguments ]){ method_code_block; }
Memanggil Method Statik Syntax <class_name> . <method_identifier(arguments)> ; Perbedaan pemanggilan method statik dan non-statik adalah : Pemanggilan method statik dilakukan tanpa menginstanstiasi obyek, tetapi langsung menuliskan nama class. Pemanggilan method non-statik dilakukan dengan terlebih dahulu menginstanstiasi obyek
Mendeklarasikan Variabel Statik Syntax [modifiers] static data_type identifier = value; Perbedaan pemanggilan variabel statik dan non-statik adalah : Pemanggilan variabel statik dilakukan tanpa menginstanstiasi obyek, tetapi langsung menuliskan nama class. Pemanggilan variabel non-statik dilakukan dengan terlebih dahulu menginstanstiasi obyek
Method Statik pada Java API Method statik pada Java API antara lain : Pada class System : public static Properties getProperties( ) public static String getProperty(String key) public static SecurityManager getSecurityManager() Pada class Math : Public static double abs (double a) Public static double cos (double c) Public static double exp (double e) Public static double max (double a, double b)
Variabel Statik pada Java API Variabel statik pada Java API antara lain : Pada class System : public static PrintStream err public static InputStream in public static PrintStream out Pada class Math : Public static double E Public static double PI
Method main ( ) (1) Method main() adalah satu method static khusus yang wajib ada dalam setiap aplikasi Java Standard Edition Method main( ) adalah method yang pertama kali dipanggil ketika sebuah aplikasi berbasis Java dipanggil ( kecuali Applet, MIDlet, dan aplikasi yang membutuhkan server ) Syntax : public static void main ( String[ ] args ){ main_method_code_block ; }
Method main ( ) (2) Method main() mempunyai argumen berupa array String Pemanggilan program dapat dilakukan dengan menyertakan argumen-argumennya Contoh pemanggilan program dengan argumen : C:> java KegiatanPanen petani1 petani2 petani3
Kapan Menggunakan Method atau Method Statik ? Tidak diperlukan operasi pada obyek individual Tidak diperlukan asosiasi suatu variabel kepada sebuah obyek Diperlukan akses variabel atau method sebelum instanstiasi obyek Method atau variabel secara logika bukan milik dari sebuah obyek, tetapi milik sebuah class utilitas. Contohnya class Math pada Java API
Bab 12 ENKAPSULASI DAN KONSTRUKTOR
Daftar Isi Menggunakan Enkapsulasi Mendeskripsikan Variable Scope Visibility Modifier Modifier public Potensi Masalah dengan modifier public Modifier private Interface dan Implementasinya Mendeskripsikan Variable Scope Penempatan Variabel Instans dan Variabel Lokal di Memori Konstruktor Mendefinisikan Konstruktor Konstruktor Default Konstruktor Overload
Menggunakan Enkapsulasi Enkapsulasi adalah menyembunyikan data di dalam class. Data yang disembunyikan adalah variabel instans / atribut Pada dasarnya, obyek adalah entitas yang mengikat data-data menjadi data-data yang eksklusif. Pengikatan ini juga dapat disebut enkapsulasi. Dengan menggunakan obyek, data-data dapat dimanipulasi aksesibilitasnya
Modifier public Modifier public adalah modifier yang memberi kemampuan tak terbatas bagi variabel atau method untuk diakses Variabel atau method yang menggunakan modifier public akan dapat diakses dari mana saja, baik dari dalam class sendiri, maupun dari class lain.
Visibility Modifier Visibility Modifier adalah modifier-modifier yang memberi batasan kemampuan variabel atau method untuk diakses Beberapa visibility modifier : public private
Potensi Masalah dengan Atribut public Contoh :
Potensi Masalah dengan Atribut public Contoh : Output : Persediaan = -100 Mungkinkah ???
Modifier private (1) Modifier private membatasi aksesibilitas variabel atau method, sehingga hanya dapat diakses oleh variabel atau method dari class yang sama. Contoh :
Modifier private (2) Hasil Kompilasi :
Interface dan Impementasinya (1) Agar variabel private dapat diakses oleh class lain, dibutuhkan interface yang dapat menghubungkan antara class yang mengakses variabel dengan variabel tersebut Interface tersebut berupa Method ! Interface dapat digunakan sebagai filter, sehingga nilai data tetap berada pada selang nilai yang sesuai dengan desain, dan masuk akal, sehingga : Persediaan padi selalu >= 0 Jumlah padi yang diambil selalu positif Jumlah padi yang dimasukkan selalu positif
Interface dan Impementasinya (2) Contoh :
Interface dan Impementasinya (3) Hasil eksekusi program :
Mendeskripsikan Variable Scope Variable Scope : ruang lingkup keteraksesan variabel. Pendefinisian scope menentukan pada bagian mana saja suatu variabel dapat diakses Berdasarkan scope-nya, variabel dibagi atas 2 kategori : instance variable : variabel yang dapat digunakan pada semua bagian obyek local variable : yaitu variabel yang hanya dapat digunakan pada method yang mendeklarasikannya
Penempatan Instance Variable dan Local Variable pada Memori(1) Instance Variable disimpan pada Heap Memory Local Variable disimpan pada Stack Memory Sebelum menempatkan Local Variable pada Stack Memory, terlebih dahulu dilakukan alokasi scope pada Stack Memory. Local variabel akan ditempatkan pada alokasi memory yang termasuk dalam scope
Penempatan Instance Variable dan Local Variable pada Memori(2)
Konstruktor Konstruktor adalah struktur yang mirip dengan method ( tetapi bukan method ), yang digunakan untuk melakukan instanstiasi obyek
Pendefinisian Konstruktor Syntax pendefinisian konstruktor : [modifiers] class className { [modifiers] ConstructorName([arguments]) { code_block; } Contoh :
Konstruktor Default Jika pada suatu class tidak didefinisikan satu konstruktor pun , maka JVM mengasumsikan konstruktor default, yaitu konstruktor yang tidak melakukan modifikasi nilai variabel, dan tidak mempunyai argumen
Konstruktor Overload(1) Dalam satu class dapat didefinisikan lebih dari 1 konstruktor Setiap konstruktor tidak boleh mempunyai komposisi argumen yang sama dengan konstruktor lain Contoh :
Konstruktor Overload(2) Contoh (lanj.)
Konstruktor Overload(3)