Pemrograman Lanjut

advertisement
By. Rita Wiryasaputra
 Pengenalan
bahasa Java
 Konsep bahasa pemrograman Java
 Operator dan assignment
 Array
 Class
 Pewarisan
 Encapsulation
 Polymorphism
 Collection (list, vektor)
J2ME (Pada perangkat bergerak)
 J2EE sekarang menjadi JEE (Pada Web based
Aplication)
 Java Card (pada penggunaan Smart Card)
 ...

 Enterprise
Java (J2EE)  aplikasi berbasis
web, aplikasi sistem tersebar dengan
beraneka ragam client berkompleksitas
tinggi. Merupakan superset dari Standar Java
 Standar Java (J2SE)  biasa dikenal bahasa
Java
 Micro Java (J2ME) subset J2SE dan salah
satu aplikasi yang banyak dipakai adalah
untuk wireless device / mobile device
 Ide
 bahasa pemrograman berorientasi
objek yang dirancang agar lebih mudah
dipakai dengan platform independent
(dapat dijalankan di berbagai jenis sistem
operasi dan arsitektur komputer)
 1991
 lahir Bahasa pemrograman Java dari
The Green Project (James Gosling dkk dari
sun microsystems) dengan Teknologi *7 (Star
Seven)
 James Gosling (bahasa pemrograman OAK) 
Sun mengubahnya menjadi Java
 1996
 Sun merilis versi awal java
selanjutnya JDK 1.1,JDK 1.2 ; mulai versi ini
disebut java2
 1998-1999
 teknologi J2EE(Enterprise
Edition)
 J2ME(Micro Edition) diadopsi oleh Nokia,
Siemens, SonyEricsson, Motorola untuk
menghasilkan aplikasi mobile baik games
yang dapat dijalankan diperalatan mobile
(handphone)
 Multiplatform
 dapat dijalankan di
beberapa
platform
(sistem
operasi
komputer); prinsip write once, run every
where
 OOP (Object Oriented Programming) 
semua aspek pada Java adalah Objek.
 Library lengkap kumpulan program yang
disertakan dalam pemrograman java untuk
memudahkan pembanguan aplikasi
 Sintaks
bahasa pemrograman [C++] 
pemrogram C++ untuk pindah ke Java.
 menghasilkan
program dengan seminimal
mungkin bug  garbage collection
 memiliki array yang tidak memerlukan
pointer
sehingga
memudahkan
para
programmer.
 menghilangkan multiple inheritance pada
c++ dan menggunakan interface yang
memiliki kemampuan sama tetapi lebih
sederhana.
 menghilangkan
banyak kebingungan terjadi
apabila
terjadi
proses
assignment(pemberian nilai) pada statemen
konditional seperti berikut:
if (varnya=5)
Kode di atas menyebabkan program Java
tidak dapat dikompilasi karena Java
membedakan tanda = yang digunakan untuk
pemberian nilai dan untuk pengecekan
kondisi true atau false yang harus
menggunakan tanda = ganda (==).
 Java



bersifat Neutral Architecture
Compiler java menghasilkan kode yang netral
terhadap seluruh arsitektur mesin komputer 
Java bytecode
Umumnya aplikasi komputer (native code) 
disesuaikan dengan arsitektur mesin
Java
Virtual
Machine
(JVM)

menginterpretasikan
kode-kode
bytecode
kedalam native code mesin tersebut
 OOP
 semua aspek di Java adalah objek.
 Semua tipe data diturunkan dari kelas dasar
Object.
 Keuntungan
: memudahkan programmer
untuk
mendesain,
membuat,
mengembangkan dan mengalokasi kesalahan
program secara cepat, tepat, mudah dan
terorganisir.
 Tujuan
 menghilangkan alokasi memori dan
dealokasi memori secara manual.
 Garbage collection  fasilitas pengaturan
penggunaan memori sehingga programmer
tidak perlu melakukan pengaturan memori
secara langsung (mencegah adanya memory
leak)
 Memory leak  masalah yang sering dihadapi
programmer c dan c++ dimana memori yang
digunakan untuk objek atau variabel yang
sudah tidak digunakan tidak didealokasikan
sehingga memungkinkan adanya kehabisan
memori karena proses alokasi maupun
dealokasi yang tidak diatur dengan baik.

J2SDK: seperangkat
tool
(kit)
berisi
kompiler
dan
interpreter
java
(dirilis SUN), bersifat
Free www.sun.com
Nama Program
Keterangan
javac
Kompiler
java
interpreter
jdb
debugger
javap
Disasembler
appletviewer
Penampilan
applet
Javadoc
Pembangkit
dokumentasi
javah
Pembangkit
berkas header
C
Interpreter
Kompiler
Menerjemahkan instruksi per instruksi
Soure
program
tidak
harus
Menerjemahkan secara keseluruhan
ditulis Source program ditulis lengkap
lengkap
Bila terjadi kesalahan kompilasi, dapat Bila
langsung dibetulkan secara interaktif
terjadi
kesalahan
kompilasi,
source program harus dibenarkan dan
proses kompilasi diulang kembali
Tidak menghasilkan objek program
Tidak
menghasilkan
Menghasilkan objek program
executable Menghasilkan
executable
program,
program karena langsung dijalankan sehingga dapat dijalankan di keadaan
pada saat program diinterpretasi
prompt sistem
Proses interpretasi terasa cepat, Proses
karena
tiap-tiap
kompilasi
lama,
karena
instruksi sekaligus menerjemahkan seluruh
langsung dikerjakan dan dapat instruksi program
dilihat hasilnya
Source
program
dipergunakan
karena
terus Source
program
tidak dipergunakan
dihasilkan executable program
sudah
lagi
tidak
untuk
mengerjakan program
Proses pengerjaan program lebih Proses pengerjaan program lebih
lambat, karena setiap instruksi cepat, karena executable program
dikerjakan
harus sudah dalam bahasa mesin
diinterprestasikan ulang kembali
Keamanan dari program kurang Keamanan
terjamin,
digunakan
program
karena
yang
adalah
dari
program
lebih
selalu terjamin, karena yang dipergunakan
source executable program.
 Sederhana
 menggunakan sintaks c++
 berorientasi objek  semua adalah objek,
terkecuali tipe data primitif
 dapat didistribusikan dengan mudah 
tampak sebagai applet dan library yang
mampu bekerja dalam jaringan dan bekerja
dengan objek terdistribusi (RMI). Saat ini
Java juga memiliki kemampuan untuk
server side processing yaitu teknologi Java
Servlet dan Java Server Pages.
 Aman  library security serta policy yang
membatasi akses applet di komputer client.
 diinterpretasi
oleh
interpreter

memerlukan
virtual
machine
yang
bertindak sebagai interpreter yang
menterjemahkan bytecode (file class)
menjadi bahasa mesin yang dimengerti
oleh komputer host
 Portabel
 dijalankan di berbagai
platform tanpa perubahan kode sama
sekali
 Multithreading  kemampuan menangani
dan menjalankan banyak thread sekaligus
 Dinamik

teknologi
yang
terus
berkembang (library)
 netral
terhadap arsitektur hardware 
dijalankan pada arsitektur berbeda
 Robust  menghasilkan
program secara
cepat dan handal karena pencegahan
memory leaking, meniadakan pointer(yang
merupakan keharusan pada programmer c
dan c++) serta mencegah berbagai error
yang mungkin terjadi dengan adanya
berbagai proses pengecekan awal pada
kompilasi.
 Apa
yang membedakan?
 Bagaimana Merubahnya?
Procedural Approach
 Data Structures can be
represented as a network
of associated structures,
referring to one another.
 Procedures
can
be
represented as a network
of routines which call one
another, i.e., "call tree"
Object Oriented Approach
 Collection
of
discrete
objects that incorporate
data
structures
and
behavior.
 Each data structure has,
combined with it, the
procedures which apply to
that data structure.
 Contrasts
with
conventional programming
in which data structures
and behavior are only
loosely connected
 These
entities,
called
objects, can be associated
to one another in one
network, rather than two.



Koordinat adalah sebuah variabel bertipe Titik dimana
terdiri atas elemen variabel x dan y
Banyak variabel dengan tipe titik, tetapi tidak dapat
melakukan
modifikasi
tipe
titik
(menambahkan
fungsi/prosedur)
Variabel koordinat tidak bisa menyimpan fungsi/prosedur
untuk melakukan modifikasi terhadap data yang di
simpannya
typedef struct
Int x;
Int y
{
} Titik
Titik Koordinat;
Koordinat.X=10;
Koordinat.Y=15;
 Pendekatan
berorientasi
objek

memandang sistem yang akan dikembangkan
sebagai suatu kumpulan objek yang
berkorespondensi dengan objek-objek dunia
nyata.
 Setiap objek yang dimodelkan terpisah satu
sama lain dengan objek lainnya.
 Objek
bersiklus
hidup:
diciptakan,
dimanipulasi, dan dihapus.
 Meliputi : Abstraksi objek, kelas, hubungan
antar kelas sampai abstraksi sistem.
Sesuatu dapat disebut sebagai objek apabila ada
ciri-ciri yang tersirat dalam objek tersebut, mampu
menyimpan
informasi
(status/state)
dan
mempunyai operasi (kelakuan/behaviour) yang
dapat diterapkan atau dapat berpengaruh pada
status objeknya.
 Penentuan sebuah objek dilakukan secara relatif.
 objek adalah instan dari kelas  yang dibentuk
secara seketika dari kelas pada saat eksekusi
(seperti halnya deklarasi variabel pemrograman
prosedural )


Objek memiliki ciri-ciri yang relatif umum  objek pasti dapat
dispesialisasikan lebih lanjut / diberikan ciri yang lebih khusus.

Misalnya :
 Rekening bank dispesialisasikan lagi menjadi rekening
tabungan atau rekening deposito.
 Mahluk
hidup dispesialisasikan lagi menjadi binatang,
tumbuhan atau manusia
Contoh Objek :

merupakan sesuatu yang real/nyata
Misal : mahluk hidup, alat transportasi, dll

merupakan sesuatu yang abstrak
Misal : rekening bank, sinyal, dll.
Ciri-ciri yang dimiliki sebuah objek :
 Karakteristik pasif  Ciri-ciri yang secara pasif
menunjukan status keadaan/state dari sebuah objek.
seperti mobil memiliki state warna, model, tahun
pembuatan, kondisi, dll.
 Karakteristik
aktif  Ciri-ciri fungsional yang
menunjukan kemampuan operasional/kelakuan dari
sebuah objek.
seperti mobil dapat melaju, membelok, membunyikan
klakson, dll
Sifat – sifat objek :
 Encapsulation / Pembungkusan
 Inheritance / Penurunan Sifat
 Polymorphism / Perubahan Perilaku

Encapsulation (Pembungkusan)  sebagai satu kesatuan
yang lengkap meliputi properti (Karakteristik pasif) dan
metode (Karakteristik aktif) yang dimiliki objek
 Bertujuan menyembunyikan kompleksitas operasi pada objek.

Keuntungan:
Modularitas



Setiap objek dapat dikelola secara independen
Setiap objek dikemas secara utuh dengan segala kelengkapan.
Setiap objek dengan demikian akan bersifat unik terhadap objek
lainnya.
Penyembunyian kompleksitas operasi


Kerumitan operasi yang terkandung dalam metode objek menjadi
tersamar.
Terlindungnya kode program dari kemungkinan modifikasi pihak lain.
Inheritance (Penurunan sifat) terjadi dalam 2
tingkatan objek.
 Tingkat pertama pendefenisian kelas berbasis
kelas lain yang telah ada sebelumnya.
 Tingkat kedua  pembentukan instan terhadap
sebuah kelas
 Penurunan sifat  satu arah dari objek yang lebih
tinggi tingkatannya (sebagai objek parent) ke objek
turunannya (sebagai objek child / instant). Tidak
terjadi sebaliknya.

 Polymorphism
 metode sama yang dapat
menyajikan operasi yang berbeda


Berkaitan dengan defenisi metode dalam setiap
objek.
Memanfatkan overloading terhadap fungsi dan
objek.


Overloading  bentuk pendeklarasian ulang fungsi /
operasi untuk menangani beberapa kasus yang berbeda
dengan operasi yang sejenis
Digunakan untuk meningkatkan kemampuan fungsi /
operasi dalam menangani data yang berbeda dengan
perlakuan yang sama.
 Atribut
 Layanan
 Klasifikasi
 Atribut
 ciri (nilai/elemen data) dari
sebuah objek
 Dimiliki secara individual oleh sebuah objek
 Contoh: berat, warna, jenis, nama, dan
sebagainya
Layanan (Service)  Metode/operasi yang
berfungsi untuk memanipulasi objek itu sendiri.
 Dapat berasal dari:
 model objek
 event
 aktivitas atau aksi keadaan
 fungsi
 kelakuan dunia nyata
 Contoh:
Read, Write, Move, Copy dan
sebagainya.

 ADT
(Abstract Data Type)  Definisi dari
class dimana komponen type menjadi atribut
dan
fungsi
primitif
menjadi
operasi/metode/layanan.
 Mesin  Objek pasif dengan status yang akan
diaktifkan oleh objek lain.
 Proses  Objek aktif yang mempunyai
“urutan kendali” (thread of control)
Note: Fungsi primitif pada mesin merupakan
mekanisme transisi yang mengubah suatu
status ke status lain.

Class  kumpulan objek berkarakterikstik sama definisi statik
dari himpunan objek yang sama yang mungkin lahir atau
diciptakan dari kelas tersebut.
Misal :
 Program simulasi ATM  objek-objek Nasabah, Kartu ATM,
Mesin ATM, Rekening

Mempunyai sifat (atribut),
(relationship) dan arti.
kelakuan
(operasi),
hubungan

Dapat diturunkan dari class lain, dimana atribut dari class semula
dapat diwariskan ke class baru.
Ibaratkan sebuah rancangan rumah yang
digunakan untuk membangun ratusan
rumah.
 Rumah yang dibangun tersebut  objek
dari kelas rancangan rumah.
 Hal ini dapat dilakukan karena semua
objek rumah yang dibangun memiliki
karakteristik yang sama, sehingga dapat
dibuatkan semacam blueprint-nya.
 Objek
 model eksekusi (timbul saat
eksekusi)
 Class  deskripsi statik dari objek (timbul
dalam pemodelan analisis dan perancangan
serta teks program)
 Aktivitas
kuliah pada sistem akademik
Secara eksplisit  3 objek :
Dosen  memberikan kuliah
Mahasiswa  mengikuti kuliah
Materi Kuliah yang disampaikan
 Secara implisit  2 objek :
Jadwal kapan kuliah diadakan
Nilai yang didapat mahasiswa dari kuliah yang
sudah diikutinya

Notepad  editor standard yang disediakan oleh
windows. Tidak dilengkapi dengan utilitas jumlah baris
(berpengaruh pada pelacakan baris program yang
menyebabkan error kompilasi) contoh Ms Dos Edit,Editor
windows Notepad/Wordpad, mempunyai file otomatis
dengan ekstensi .txt
Beri penambahan ekstensi .java untuk setiap penyimpanan
program java
 Gel 
1.Editor yang hanya bekerja di windows dan mengenali
reserve keyword dari beberapa bahasa seperti java, html,
C/C++ shg dapat digunakan secara meluas
2.Terdapat fasilitas untuk pelacakan baris program yang
menyebabkan error kompilasi
 Editor-editor lain: Eclipse, Netbeans, Jbuilder, Jcreator
dll

 Case
sensitive, penggunaan huruf kapital dan
kecil memiliki arti yang berbeda.
 Spasi kosong, spasi kosong yang dapat terdiri
dari beberapa karakter, tab, dan ganti baris
diabaikan dalam java.
 Kurung kurawal, kurung kurawal adalah
simbol yang menandai awal dan akhir suatu
blok program.
 Komentar
 teks yang menerangkan kode,
tetapi tidak dibaca sebagai program.
 Tujuan : membantu programmer maupun
orang lain dalam mendefinisikan program.
 Komentar berisi hal-hal sebagai berikut:
Tujuan dan fungsi dari program
 Hak cipta
 Nama pembuat program
 Tanggal pembuatan serta perubahan program
 Keterangan-keterangan lain yang diperulkan

Dua bentuk komentar, yaitu:
 Komentar baris (//komentar)

Contoh: //Nama file: hello.java
 Komentar paragraf (/* komentar */)
 Contoh:
/* Nama program: Contoh pemrograman Java
Nama file: hello.java */
/*
nama file : hello.java
deskripsi : merupakan program percobaan Java pertama
yang menampilkan Hallo, apa kabar
dibuat oleh : Rita W.
kompilasi: javac hello.java  konversi ke class
eksekusi: java hello  jalankan dengan nama
*/
package hello;
public class Main //pendefinisian class bernama Main
{
public static void main(String[] args) {
System.out.println ("Hallo, apa kabar");
System.out.print (“test”);
}
}
public class hello{
....
}
Pendefinisian class dengan modifier public 
agar dapat dikompilasi dan dijalankan oleh Java
VM.
 Sintaks dasar utama sebuah file program Java
adalah sintaks definisi class seperti berikut :

[modifier] [class] namaclass {
....
}
public static void main (String [ ] args)
{
....
}
Kode program ini adalah bagian utama, karena
bagian ini pertama kali dijalankan/tempat
dimulainya program dieksekusi.
 Jika tidak ada method ini maka akan keluar pesan
kesalahan:

Exception in thread “main”.java.lang.NoSuchMethodError: main
public
 static
 void

main
java.
 string


args
:Salah satu macam modifier.
:Tipe method.
:Menunjukkan bahwa method tidak
mengembalikan nilai atau objek.
:Nama method utama dari program
:Tipe argumen yang diterima untuk
parameter dari command java.
:Array argumen yang bisa ditambahkan
pada saat menggunakan command
java untuk menjalankan program java.
System.out.println ("Hallo apa kabar");
Fungsi  menampilkan pada konsol data yang
dimasukkan sebagai parameter
 Tipe data  String (diinputkan sebagai
parameter pada method println()
 Untuk
menginputkan data karakter atau
numerik sebagai String maka diawali dan
diakhiri dengan tanda “ ”

Download