51
By. Rita Wiryasaputra

By. Rita Wiryasaputra - ritasaputra.web.ugm.ac.idritasaputra.web.ugm.ac.id/pemrograman lanjut/Pemrograman Lanjut2.pdf · web, aplikasi sistem tersebar dengan ... dengan Teknologi

Embed Size (px)

Citation preview

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 memerlukanpointer sehingga memudahkan paraprogrammer.

menghilangkan multiple inheritance padac++ dan menggunakan interface yangmemiliki kemampuan sama tetapi lebihsederhana.

menghilangkan banyak kebingungan terjadiapabila terjadi prosesassignment(pemberian nilai) pada statemenkonditional seperti berikut:

if (varnya=5)

Kode di atas menyebabkan program Javatidak dapat dikompilasi karena Javamembedakan tanda = yang digunakan untukpemberian nilai dan untuk pengecekankondisi true atau false yang harusmenggunakan 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 dandealokasi memori secara manual.

Garbage collection fasilitas pengaturanpenggunaan memori sehingga programmertidak perlu melakukan pengaturan memorisecara langsung (mencegah adanya memoryleak)

Memory leak masalah yang sering dihadapiprogrammer c dan c++ dimana memori yangdigunakan untuk objek atau variabel yangsudah tidak digunakan tidak didealokasikansehingga memungkinkan adanya kehabisanmemori karena proses alokasi maupundealokasi 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 Menerjemahkan secara keseluruhan

Soure program tidak harus ditulis

lengkap

Source program ditulis lengkap

Bila terjadi kesalahan kompilasi, dapat

langsung dibetulkan secara interaktif

Bila terjadi kesalahan kompilasi,

source program harus dibenarkan dan

proses kompilasi diulang kembali

Tidak menghasilkan objek program Menghasilkan objek program

Tidak menghasilkan executable

program karena langsung dijalankan

pada saat program diinterpretasi

Menghasilkan executable program,

sehingga dapat dijalankan di keadaan

prompt sistem

Proses interpretasi terasa cepat,

karena tiap-tiap instruksi

langsung dikerjakan dan dapat

dilihat hasilnya

Proses kompilasi lama, karena

sekaligus menerjemahkan seluruh

instruksi program

Source program terus

dipergunakan karena tidak

dihasilkan executable program

Source program sudah tidak

dipergunakan lagi untuk

mengerjakan program

Proses pengerjaan program lebih

lambat, karena setiap instruksi

dikerjakan harus

diinterprestasikan ulang kembali

Proses pengerjaan program lebih

cepat, karena executable program

sudah dalam bahasa mesin

Keamanan dari program kurang

terjamin, karena yang selalu

digunakan adalah source

program

Keamanan dari program lebih

terjamin, karena yang dipergunakan

executable program.

Sederhana menggunakan sintaks c++berorientasi objek semua adalah objek,

terkecuali tipe data primitif

dapat didistribusikan dengan mudah

tampak sebagai applet dan library yangmampu bekerja dalam jaringan dan bekerjadengan objek terdistribusi (RMI). Saat iniJava juga memiliki kemampuan untukserver side processing yaitu teknologi JavaServlet dan Java Server Pages.

Aman library security serta policy yangmembatasi akses applet di komputer client.

diinterpretasi oleh interpreter

memerlukan virtual machine yangbertindak sebagai interpreter yangmenterjemahkan bytecode (file class)menjadi bahasa mesin yang dimengertioleh komputer host

Portabel dijalankan di berbagaiplatform tanpa perubahan kode samasekali

Multithreading kemampuan menanganidan menjalankan banyak thread sekaligus

Dinamik teknologi yang terusberkembang (library)

netral terhadap arsitektur hardware

dijalankan pada arsitektur berbeda

Robust menghasilkan program secaracepat dan handal karena pencegahanmemory leaking, meniadakan pointer(yangmerupakan keharusan pada programmer cdan c++) serta mencegah berbagai erroryang mungkin terjadi dengan adanyaberbagai proses pengecekan awal padakompilasi.

Apa yang membedakan?

Bagaimana Merubahnya?

Procedural Approach

Data Structures can berepresented as a networkof associated structures,referring to one another.

Procedures can berepresented as a networkof routines which call oneanother, i.e., "call tree"

Object Oriented Approach

Collection of discreteobjects that incorporatedata structures andbehavior.

Each data structure has,combined with it, theprocedures which apply tothat data structure.

Contrasts withconventional programmingin which data structuresand behavior are onlyloosely connected

These entities, calledobjects, can be associatedto one another in onenetwork, 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 kesatuanyang lengkap meliputi properti (Karakteristik pasif) danmetode (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 objeklainnya.

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), kelakuan (operasi), hubungan

(relationship) dan arti.

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

1.

Case sensitive, penggunaan huruf kapital dankecil memiliki arti yang berbeda.

Spasi kosong, spasi kosong yang dapat terdiridari beberapa karakter, tab, dan ganti barisdiabaikan dalam java.

Kurung kurawal, kurung kurawal adalahsimbol yang menandai awal dan akhir suatublok 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 JavaNama 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 JavaVM.

Sintaks dasar utama sebuah file program Javaadalah 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 :Salah satu macam modifier.

static :Tipe method.

void :Menunjukkan bahwa method tidakmengembalikan nilai atau objek.

main :Nama method utama dari programjava.

string :Tipe argumen yang diterima untukparameter dari command java.

args :Array argumen yang bisa ditambahkanpada saat menggunakan commandjava 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 “ ”