Friday, July 11, 2014

Algoritma dan Metode Object Oriented Programming II

Object Oriented Programming Concept

Object Oriented Programming adalah teknik untuk membuat program berorientasi pada objek. Sebuah objek yang dijelaskan oleh entitas di dunia nyata yang dapat diidentifikasi secara jelas. Obyek dalam bahasa pemrograman harus memiliki perilaku / metode, properti, jenis, dan identitas. Semua data dan fungsi dibungkus dalam kelas dan objek.

  • Kelebihan object oriented programming adalah sebagai berikut bisa menggunakan model yang ada dalam dunia nyata, mendukung penggunaan kode yang telah ada, dan fleksibel dalam memodifikasi aplikasi yang telah ada.
  • Class and Object : Class adalah kumpulan dari data dan method untuk tujuan tertentu, Object adalah reprentasi dari sebuah class. Method adalah semua proses kerja dan perilaku objek yang diwakili (method : fuction - behaviour). Abstraction adalah fungsi program untuk melewati suatu aspek dalam suatu proses informasi. Encapulation adalah fungsi program untuk menyembunyikan informasi dari user. Inheritance adalah pewarisan sifat dari kelas lain (kelas induk), sehingga memiliki karakteristik atau sifat kelas. (Inheritance extend) terdapat superclass dan subclass. Polymorphism adalah salah satu metods yang perilaku implementasi, kemampuan sebuah objek memiliki berbagai bentuk, tergantung pada situasi. (memiliki nama yang sama yaitu overiding). 
  • Relationship object and class in java : mewakili objek dalam kelas di java, hak akses dan variabel yang ada di java.

Class and Object 

Class adalah template dari objek, yang mendefinisikan sifat-sifat benda, dan menyediakan konstruktor untuk membuat objek dan metode untuk memanipulasi objek. Object adalah representasi dari kelas atau perwakilan dari kelas.Banyak benda yang bisa dibuat hanya menggunakan satu kelas, sebuah objek kelas memiliki identitas unik.
Contoh: Didalam kelas ada murid atau siswa, didalam kelas tersebut pasti orangnya tidak sama, seperti memiliki nama, umur, wajah, jenis kelamin yang berbeda-beda. Jadi didalam kelas tersebut terdapat nama, umur, wajah yang beda satu sama lainnya. Sesuatu yang beda tersebut disebut identitas unik.


  • Constructor

Digunakan untuk membuat objek
Penerbangan pertama pada saat benda itu dibuat menggunakan operator baru.
memiliki nama yang sama dengan nama kelasnya.
tidak ada jenis maupun kembali tipe data batal.


  • Access Modifier
Sering dikenal dengan visibilitas atau pengubah
untuk melindungi anggota kelas (data and method) yang ada dikelas.
Private : menyembunyikan anggota kelas sehingga tidak dapat di akses dari luar kelas tersebut.
Protected : memungkinkan anggota kelas dapat di akses oleh kelas atau turunannya di kelas beberapa paket serupa.
Public : memungkinkan anggota kelas dapat di akses oleh kelas lain.
Package : Digunakan untuk mengatur kelas, jika kelas yang diciptakan tanpa menggunakan pernyataan paket, kelas yang akan ditempatkan dalam paket default.
  • Method
Passing parameter dengan nilai adalah mengirimkan nilai fungsi yang ada di class.
Fungsi memungkinkan untuk nilai kembali. Hanya kekosongan yang tidak mengembalikan nilai dari method.
  • Abstact Method
Bahasa lain dari abstract method adalah dummy code.
Selalu didefinisikan dalam kelas abstrak.
Class Abstract : Kelas yang dinyatakan secara abstrak, tidak bisa menjadi nyata, tetapi digunakan dalam subclass.
Tidak ada implementasi.
Tidak memiliki isi koding dalam fungsi.
Diakhiri dengan titik koma (;).
  • Inner Class
Dikenal sebagai kelas bersarang.
Ditetapkan dikelas yang disebut Outer Class.
Dapat mengakses semua anggota kelas yang telah didefinisikan dalam Outer class.
Buat program untuk menjadi sederhana
Dapat dinyatakan dengan akses modifier
Dapat dinyatakan dengan variabel statis.
Sebuah kelas batin statis tidak dapat di akses oleh anggota non-statis dari Outer class.
  • Static Variable and Method
Radius variabel dalam kelas lingkaran adalah variabek instansi.
Jika anda ingin menggunakan semua data dari seluruh acara misal dikelas, menggunakan variabel statis.
Statik nilai variabel simpan dalam memori lokal.
Method statis dapat dipanggil tanpa membuat objek dari kelas.

Basic Class 

Wrapper class adalah semua tipe data primitif yang dibungkus kedalam class pada java.
  • Berisi dalam paket java.lang
Digunakan untuk melambangkan tipe data primitif dalam suatu objek jika perlu.
Primitive type
Wrapper class
Constructor Arguments
byte
Byte
byte or String
short
Short
short or String
int
Integer
int or String
long
Long
long or String
float
Float
floatdouble or String
double
Double
double or String
char
Character
char
boolean
Boolean
boolean or String

String Method
Fungsi dari string method

–length()
•To find out how the length of the string
–Example : msg.length();
–charAt(index)
•To restore the specific character designated by the index
–Example : String msg =“Welcome”;
       msg.charAt(0)   ß then the result : W
–concat()
•To combine strings
–Example: String word3 = word1.concat(word2);
           but we used to use String word3 = word1 + word2;
–substring(start,finish)
•To take a few characters from a string of the index.
–Example : String msg = “Welcome to Java”
         msg.substring(0,6);  ß then the result : Welcome
–toLowerCase()
•To convert all letters to lowercase
–Example : “Welcome”.toLowerCase(); ß then the result : welcome


–toUpperCase()
•To convert all letters to uppercase
–Example: “Welcome”.toUpperCase(); ß then the result WELCOME
–trim()
•To eliminate the blank character in string
–Example: “ W el com e “.trim();  ß then the result Welcome
–replace(character1, character2)
•To overwrite all the first character in the string with the second character
–Example : “Welcome”.replace(‘e’,’o’);  ß then the result Wolcomo
–replaceFirst(character1, character2)
•To override the first character only of a string with second characters
–Example: “Welcome”.replaceFirst(‘e’,’o’);  ß then the result Wolcome
–split(format,limit)
•To divide into multiple strings in a string with a particular format.
                                   -Example: String [] a = “Welcome#to#Java”.split(“#”,0);

  • Math : 
Fungsi matematika dasar
Identik dengan tipe data ganda
  • 3 Fungsi kategori :
Metode trigonometri
Contoh: Math.sin (x), Math.cos (x), Math.tan (x), Math.asin (x), Math.acos (x), Math.atan (x), Math.toRadians (x) , Math.toDegrees (x)
Metode eksponen
Contoh: Math.exp (x), Math.Log (x), Math.log10 (x), Math.pow (x), Math.sqrt (x)

Math method:

  • • Rounding Method
–ceil(double x)
•Rounding numbers up, Example Math.ceil(2.2); à results : 3.0
–floor(double x)
•Rounding numbers down, Example Math.floor(2.2); à results :2.0
–rint(double x)
•Rounding numbers to the nearest integer, Example Math.rint(2.5); results : 2.0
–round(double x)
•Rounding using floor but its value added by 0.5 first
•Example : Math.round(2.6)  à results 3
  • • Min, max and abs Method :
  • –Math.max(2.5 , 3)   à 3
  • –Math.min(-3.0 , 2)   à -3.0
  • –Math.abs(-2.1)        à 2.1

  • • Random Method :
  • –Int a = Math.random() * 10; à will return random value ranging from 0 -9

Inheritance 

Dapat memperoleh variabel dan fungsi dari kelas lain yang sudah ada.
Fitur Powerfull.
Impilicit atau pernyataan eksplisit.
Kelas di Java termasuk kelas yang membangun Java API adalah warisan dari Object Class.
  • Superclass and subclass
Kelas yang menerima dari kelas lain, yang disebut Subclass adalah kelas turunan dan kelas anak.
 Superclass juga disebut sebagai kelas induk.
         Subclass diberikan hak dan lulus untuk mengakses data anggota (bidang / variabel, metode, dan kelas bersarang) di supernya.
         Constructor bukan anggota sehingga tidak diwarisi oleh subclass.
         Memungkinkan menambahkan data anggota baru dalam subclass
  • Apa yang dilakukan di Subclass
Sebuah Subclass mewariskan semua hak untuk mengakses kedua publik dan dilindungi oleh superclass-nya, terlepas dari mana paket dari subclass berada.
Jika subclass memiliki paket yang sama dengan superclass sehingga subclass juga akan mendapatkan warisan dari anggota paket-pribadi dari superclass-nya.
Gunakan meluas untuk mengakses kelas induk
Tidak diizinkan untuk menerima beberapa warisan dari lebih dari satu kelas induk
  • Keyword super
Keyword ini mengacu objek dalam kelas. 
Keyword yang super mengacu pada superclass dari class pemanggil nya.
Ada 2 cara menggunakan keyword super :
        Memanggil konstruktor superclass
         Example: super() or super( parameters )
        Memanggil method superclass.
         Example: super.method( parameters )
public void printRadius()
{
            System.out.println(“Radius of a circle is ” + supper.getRadius() );
}
  • Kelebihan Inheritance
Kelebihan di Object Orientic Programming : Reusability
Ketika perilaku (metode) ini dideklarasikan pada superclass, perilaku yang secara otomatis diwariskan - 
kepada semua subclass
Hanya bisa mengkodekan metode sekali dan metode bisa digunakan oleh semua subclass
Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya dengan induknya
  • Overriding VS Overloading
Overriding :
Subclass memodifikasi metode yang telah didefinisikan oleh superclass.
Fungsi dideklarasikan disubclass harus memiliki tanda tangan yang sama dan kembali metode nilai dengan superclass.

Overloading :
Lebih dari satu fungsi yang memiliki nama yang sama dengan yang disuperclass.
Fungsi dideklarasikan disubclass harus tidak memiliki tanda tangan yang sama dan kembali metode nilai dengan yang di superclass.
  • Final Class and Method
Final Class
Kelas yang tidak bisa meluas
Untuk mendeklarasikan kelas akhir, kita bisa menulis :
                        public final ClassName
                        {
                                    . . .
                        }

                        Example:
                        public final class Person
                        { 

            
                        . . . 
                        }
Contoh lain dari kelas terakhir adalah kelas wrapper dan String.
  • Final Class and Method
Method Final
Metode yang tidak bisa diganti
Untuk mendeklasrasikan metode akhir kita bisa menulis :
                       public final return_Type  method_Name ( parameters )
                        {
                                    . . .
                        }
            Example :
public final String getName()
            {

                        return name; 
            
}
Metode statis otomatis adalah metode akhir.


Polymorphism 

  • Polymorhism
Fitur powerfull di java selain warisan dan enkapsulasi seperti prinsip OOP.
Objek yang memiliki banyak bentuk.
1 fungsi dengan banyak implementasi.
Efisien dan kurang redundansi.
Menggunakan metode abstrak dan kelas abstrak
  • Trivial VS Pure Polymorphism
Trial Polymorphism : (Overloading)
Menangani saat kompilasi, Statik Binding
Pure Polymorphism : (Overriding)
Menangani saat runtime, Dinamis Biding, Jenis Instance menentukan yang akan digunakan.
  • Dynamic Biding
Implementasi yang digunakan akan ditentukan secara dinamis oleh Java Virtual Machine pada saat runtime.
Kelebihan : Memungkinkan kelas baru yang akan dimuat tanpa mengkompilasi ulang, pengembangan tidak perlu membuat dan pengguna tidak harus menginstalnya. Versi utama perangkat lunak, Fitur baru dapat ditambahkan transparan jika diperlukan.

Abstract Class 

Menyatakan karakteristik umum subclass, dideklarasikan abstrak, tidak dapat membuat objek menggunakan operator baru, hanya digunakan sebagai superclass dari kelas-kelas lain dan membentuk abstrak, dideklarasikan menggunakan kata kunci abstrak, superclass harus nyata sehingga dapat diabstraksikan ke subclass.
  • Abstrak Method
Dummy code method atau prototype method, dideklarasikan diabstrak class, tidak ada implementasi, tidak memiliki konten coding dalam fungsi, diakhiri dengan tanda titik koma (;), metode yang harus diganti dalam subclass, dan dideklarasikan menggunakan kata kunci abstrak.
  • Interfaces
Hanya terdiri dari konstanta dan metode abstrak, tidak bisa dijadikan objek dengan operator baru, buat subclass yang memiliki lebih dari satu superclass atau solusi multiple inheritance, tidak diwariskan tetapi diimplementasikan, dideklarasikan menggunakan "interface", dan dalam subclass menggunakan "implements".

ArrayList and Vector 

  • List Operation
operasi yang paling khas dari list, mengambil emelen dari list, menyisipkan elemen baru kedalam list, mengapus sebuah elemen dari list, mencari jumlah elemen dalam list, untuk menemukan apa elemen berisi dalam list, dan mengetahui apakah list itu kosong atau tidak.
  • Method 
get(index), add (index, elemen), remove (elemen), size (), contains (elemen), is Empty (), clear (), indexOf (elemen), set (index, elemen).
  • List Implementation
Array
Dibuat secara dinamis, jika melebihi kapasitas array yang kemudian membuat array yang lebih besar dan menyalin semua elemen mengandung ke array baru.
Linked Structure
Terdiri dari node, setiap node dibuat secara dinamis untuk setiap elemen, semua simpul terhubung ke yang lain.
Array List
add (elemet) - adding element to the list
clear () - delete all element in the list
clone () - return the copied object in the list
containts (element) - searching element contains in the list
get (index) - take a certain element at index in list
isEmpty () - to check whether the list is empty or not
remove (index) - to remove the designated element in the list
size () - number of element in the list
set (index, element) - fill an element in the list in accordance with the designated position.
  • Vector class 
Inheritance dan sama menerapkan dengan ArrayList,
Juga dinamis dalam ukuran (growable),
Setiap vector mencoba untuk mengoptimalkan manajemen penyimpanan dan mempertahankan kapasitasnya,
Termasuk salah satu bagian dari koleksi kerangka java.
  • ArrayList VS Vector
Setiap Vector metode yang diberikan kata kunci "disinkronkan", sehingga ketika dieksekusi dalam Thread, itu tidak akan terjadi Thread kemacetan. Dalam ArrayList setiap metode tidak diberi keyword "disinkronkan", sehingga ketika dieksekusi dalam Thread, hal ini dapat mengakibatkan tidak aman Thread, dengan kata lain tabrakan Thread dapat terjadi, ketika Thread mencoba untuk memanggil Metode ArrayList. Waktu yang digunakan oleh ArrayList lebih pendek dibandingkan dengan Vector. Jika kita ingin membuat dinamis array yang dijalankan menggunakan Thread, gunakan Vector. Sedangkan jika memang proses yang kita tidak perlu menggunakan benang, kemudian gunakan untuk Arraylist

Generic

  • Generic in Java
Pemrograman Fasilitas Generik ditambahkan ke bahasa pemrograman Java pada tahun 2004 sebagai bagian dari J2SE 5.0,
Memungkinkan jenis atau fungsi yang akan dioperasikan dalam berbagai jenis objek data pada waktu kompilasi,
Mendefinisikan kelas atau fungsi dengan jenis generik yang dapat diganti dengan beton tipe data oleh compiler,.
String dan Nomor adalah jenis data konkret untuk menimpa tipe data generik.
  • Kelebihan dari Kelas Generic
Memungkinkan kompilasi deteksi kesalahan saat (kompilasi) dibandingkan dengan waktu dari program (runtime).
Sebuah kelas generik atau fungsi memungkinkan kita sebagai programmer untuk membuat beberapa jenis objek atau fungsi yang akan dibuat.
  • Motivation
Jenis generik harus menjadi acuan untuk jenis lain, hal ini tidak dapat diganti dengan tipe data primitif seperti int, ganda atau arang, modal seperti huruf T dan E selalu digunakan untuk mengacu pada jenis generik. ArrayList, iterator, LinkedList dan Vector adalah contoh dari kelas generik
  • Wild Card
Jenis parameter dengan bentuk "?", memberikan yang tepat elemen dari suatu obyek dengan wildcard diketahui, ditempatkan pembatasan pada jenis fungsi yang disebut dalam suatu objek.

File


  • File 
Data yang disimpan dalam variabel, array dan objek bersifat sementara, ketika program berakhir maka akan kehilangan semua yang telah disimpan. Setiap file ditempatkan dalam sebuah direktori dalam sistem file. 
 

Contoh: c: \ buku \ test.txt 
File name: test.txt 
Direktori path: c: \ buku 
File-file dan direktori yang diakses dan dimanipulasi oleh class java.io.File
  • fungsi dalam class file 
CanRead () : memeriksa apakah file tersebut dapat dibaca 
canWrite () : memeriksa apakah file tersebut dapat ditulis 
ada () : memeriksa apakah file ada 
getName () : mengembalikan nama file srting 
getPath () : mengembalikan jalur bentuk srting file 
getParent () : mengembalikan direktori induk dari direktori saat ini atau file-file tersebut ditempatkan 
isFile () : memeriksa apakah objek tersebut file atau tidak 
isHidden () : memeriksa apakah jenis tersembunyi atau tidak 
lastModified () : menampilkan terakhir kali modifikasi 
length () : menampilkan ukuran file 
renameTo (file dest) : mengubah nama file ke nama jalan abstrak, dll, dapat dilihat lagi di Jawa bantuan
  • PrintWriter Method:
print (value) : Tulis nilai dalam file tersebut dapat berupa string, char, int, double. panjang, float, boolean atau array karakter. 
println (value) : sama dengan nilai cetak dengan menambahkan baris baru int akhir. 
close () : Tutup koneksi ke file stream 
flush () : Hapus koneksi ke file stream

Package

  • Kelebihan menggunakan package
Penabrakan nama class  menghindari yang kita buat dengan kelas yang ada, mudah dalam perawatan dan pengembangan (pengelompokan), Kemudahan dalam mencari, menggunakan nama kelas dan akses kontrol dan memahami konsep Package akan membantu dalam mengelola dan menggunakan file yang disimpan dalam JAR (Java Archive) lebih efisien.

Reflection

Memungkinkan untuk menjalankan program Java yang akan diperiksa dan "refleksi" dari dirinya sendiri (informasi) dan memanipulasi properti dalam program ini. 
Contoh: untuk mendapatkan semua nama-nama anggota kelas dan menampilkan mereka.

Menggunakan class objek untuk mendapatkan informasi dari kelas yang diinginkan. contoh:
MyClass obj = new MyClass();
  Class Class = obj.getClass();
        or
  Class Class = MyClass.class;

Multitreading


Thread: urutan eksekusi dari awal sampai akhir dalam sebuah program.
Task: Unit program yang mengeksekusi secara independen dari satu bagian dari program
Sebuah thread memberikan mekanisasi perintah dieksekusi.
Satu set instruksi dieksekusi secara paralel dengan metode skala waktu (ketika satu prosesor melakukan perpindahan dari satu thread ke thread lain.)
Multiprocessing adalah penggunaan dua atau lebih CPU dalam sebuah sistem komputer. 
Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana ada berbagi sumber daya seperti CPU. 
Multithreading adalah cara yang memungkinkan pelaksanaan beberapa thread terjadi dalam sebuah proses, berbagi sumber daya tetapi dapat dijalankan secara independen

Thread sebenarnya mirip dengan proses, tapi cara berbagi sumber daya di antara proses dengan thread yang sangat berbeda.
Multiple thread dapat dijalankan secara paralel pada sistem komputer.
Beberapa thread dapat membuat program lebih responsif dan interaktif dan untuk meningkatkan kinerja program.

Basic GUI


  • GUI class diklasifikasikan menjadi 3 kelompok: 
1. Container Class
JFrame, JPanel, dan JApplet 
2. Component class
JButton, JTextField, JTextArea, JComboBox, JList, JRadioButton dan JMenu, adalah subclass dari JComponent. 
3. Helper class
 Graphics, Color, Font, FontMetrics dan Dimensi.
 

  • AWT (Abstract Windows Toolkit) :
Baik untuk pengembangan antarmuka pengguna grafis sederhana 
Kurang cocok untuk pengembangan GUI Projector. 
Peka terhadap bug. 
komponen Heavyweight 
Kelas Contoh: 
Button, Label, Daftar Komponen, kanvas, dll dari java.awt
  • Swing
lebih Kuat, 
lebih serbaguna, 
perpustakaan fleksibel, k
omponen tergantung pada platform, k
omponen ringan, untuk JApplet, JFrame dan JDialog komponen masih kelas berat karena masih tergantung pada AWT. 
Contoh Kelas: 
JButton, JLabel, JList, JComponent, dll dari javax.swing 
Umumnya semua kelas menggunakan "J" di depan nama kelas