RSS FEED

counter

java II(OOP)

SEKILAS TENTANG OOP
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.

Pemahaman tentang OOP
OOP adalah teknik untuk membuat program objek, yaitu program yang tersusun dari kelas dan objek yang saling berhubungan. Hubungan antar kelas/objek ini dapat dilihat baik saat program ditulis maupun saat program dieksekusi.
Karena OOP merupakan teknik pembuatan program, maka ada pendekatan yang digunakan. Ada aturan yang harus diikuti saat menyusun programnya, dan ada tools yang digunakan untuk menuliskan programnya.
Gambaran OOP:


JAVA II

Konsep Class dan Object
Apa hubungan antara class dan objek? class adalah cetak biru dari object. Ini berarti kita bisa membuat banyak objek dari satu macam class.

A.Konsep objek
Lalu, objek itu apa? Secara umum, objek adalah sesuatu yang mempunyai indentitas (nama), pada umumnya memiliki pengetahuan baik tentang dirinya maupun objek lain dan memiliki ketrampilan untuk melakukan sesuatu atau beberapa hal dan bisa bekerja sama dengan objek lain. Ini tampaknya batasan yang sangat umum, tetapi sebenarnya tidak, karena memang begitulah adanya.
Sebuah objek juga mempunyai peranan atau tanggung jawab tertentu. Artinya suatu objek memanfaatkan pengetahuan dan ketampilan yang dimilikinya untuk melaksanakan perannya pada sistem di mana dia hidup. Seperti halnya bakteri yang memiliki fungsi biodekomposisi, ataupun seorang pedagang yang bertanggung jawab dalam pendistribusian barang dagangannya. Dalam software, pengetahuan dari suatu objek biasa disebut dengan state atau attribute atau field. Sedang ketrampilan dan perilakunya disebut dengan behaviour/function/method.
Sebuah objek juga mungkin terdiri atas objek-objek lain. Seperti halnya objek mobil
terdiri atas mesin, ban, kerangka mobil, pintu, karoseri dan lain-lain. Atau suatu objek boleh jadi merupakan turunan dari objek lain sehingga mewarisi sifat-sifat induknya. Misal Gajah, Singa dan Macan adalah Mamalia, sehingga Gajah, Singa dan Macan mempunyai sifat-sifat yang dimiliki oleh class Mamalia. Namun selain sifat-sifat umum Mamalia seperti melahirkan dan menyusui serta berdarah panas, Gajah, Singa dan Macan juga memiliki perilakunya sendiri yang khas.
Contoh Class dan Object
//membuat class mamalia
class mamalia
{
//variable
public String nama_hewan;
public String jenis_makanan;
//konstruktor / harus sama dengan nama class
public mamalia(String n, String m)
{
this.nama_hewan = n;
this.jenis_makanan = m;
}
//method untuk menampilkan data
public void showdata()
{
System.out.println(“Nama Hewan : “+nama_hewan);
System.out.println(“Jenis Makanannya : “+jenis_makanan);
}
}
public class hewan
{
public static void main(String[] args)
{
//membuat 3 objek yaitu sapi dan harimau
mamalia sapi = new mamalia(“Sapi”,”Tumbuh Tumbuhan “);
mamalia harimau = new mamalia(“Harimau “,”Hewan Lain “);
//memanggil method
sapi.showdata();
System.out.println(“”);
harimau.showdata();
}
}
Simpan dengan nama hewan.java kemudian compile


OBJEK

Baik dalam dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode. Dengan penjelasan di atas, dapat disimpulkan bahwa objek adalah bagian software yang dibentuk dengan variabel-variabel dan metode-metode yang berhubungan dengan variabel tersebut.
Dengan karakteristik tersebut, kita dapat memodelkan berbagai objek dalam kehidupan nyata ke dalam objek-objek dalam sebuah program. Lebih lanjut kita dapat memodelkan objek-objek abstrak ke dalam sebuah program. Contoh umum untuk konsep abstrak seperti ini adalah objek Event, yaitu objek untuk mewakili peristiwa klik atau tombol ditekan.
Sebuah objek yang dibentuk dari sebuah kelas biasa disebut instans dalam terminologi OOP. Artinya objek tersebut adalah wujud nyata dari sebuah kelas. Variabel dan metode dari instans ini disebut variabel instans dan metode instans. Setiap instans menyimpan variabelnya sendiri-sendiri, jadi nilai variabel untuk tiap instans bisa berbeda.


Kelas

Kelas adalah semacam cetakan, atau template, untuk membuat objek. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut adalah 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. Tetapi objek-objek yang dibangun tetap akan memiliki bentuk fisik tertentu sendiri-sendiri, seperti variabel dalam sebuah program, atau pintu sebuah objek rumah. Dengan penjelasan ini, kelas dapat kita definisikan kembali menjadi sebuah blueprint, atau prototipe, yang mendefinisikan variabel dan metode yang sama untuk semua objek sejenis.
Sebagai contoh, misalkan kita ingin membuat kelas Rumah, maka kita harus membuat sebuah kelas yang mendefinisikan semua variabel yang dimiliki objek dari kelas tersebut. Selain itu, kelas tersebut juga harus mendeklarasikan metode-metode yang dimiliki objek dari kelas dan juga membuat implementasi dari metode tersebut. Dengan adanya kelas ini, kita dapat membuat sebanyak apapun objek-objek rumah yang sejenis, yaitu jenis yang didefinisikan oleh kelas Rumah. Setiap objek Rumah diciptakan, sistem akan mengalokasikan sejumlah memori untuk objek tersebut dan variabel-variabelnya. Dengan begitu setiap objek akan memiliki salinan masing-masing untuk setiap variabel instans.
Setelah mengenal konsep kelas, saatnya Anda dikenalkan dengan variabel kelas. Variabel kelas sebenarnya sama dengan variabel instans. Bedanya adalah, setiap objek berbagi satu dan hanya satu variabel kelas, tapi masing-masing memiliki salinan dari variabel instans. Misalkan kelas Rumah yang kita buat hanya akan mendukung 2 lantai, dan setiap objek Rumah terdiri atas 2 lantai. Maka informasi ini cukup disimpan satu kali, karena nilainya tidak berbeda untuk semua objek. Lebih jauh, bila ada satu objek yang mengubah nilai dari variabel kelas, maka semua objek sejenis lainnya akan mengikuti perubahan itu. Di samping variabel, terdapat juga metode kelas. Metode jenis ini dapat langsung dipanggil melalui kelas dan bukan dari instans kelas tersebut.


Pewarisan

Terminologi asing untuk pewarisan adalah inheritance. Mungkin dalam literatur lain Anda akan sering menjumpai istilah ini. Secara gamblang, pewarisan berarti sebuah kelas mewarisi state dan behaviour dari kelas lain. Sebagai contoh, sebuah kelas RumahMewah akan mewarisi state dan behaviour dari kelas Rumah. Begitu juga dengan kelas RumahSederhana. Kelas RumahMewah dan RumahSederhana disebut subkelas, atau kelas anak, dari kelas Rumah, yang disebut superkelas, atau kelas induk.
Seluruh subkelas akan mewarisi (inherits) state dan behaviour dari superkelasnya. Dengan begitu, semua subkelas dari superkelas yang sama akan memiliki state dan behaviour yang sama. Namun, masing-masing subkelas bisa menambah sendiri state atau behaviournya. Misalkan, pada kelas Rumah tidak terdapat variable kolamRenang, namun subkelas RumahMewah memiliki variabel tersebut. Contoh lain misalnya kelas Rumah tidak memiliki metode nyalakanAlarm, namun rumah mewah memiliki metode itu.
Dalam kasus tertentu subkelas mungkin memiliki implementasi behaviour yang berbeda dengan superkelasnya. Hal seperti ini disebut override. Contohnya subkelas SepedaBalap memiliki implementasi metode ubahGigi yang berbeda dengan implementasi metode tersebut pada superkelas Sepeda.
Tingkat pewarisan tidak hanya terbatas pada dua tingkatan. Dari contoh di atas, kita bisa saja membuat subkelas dari kelas SepedaBalap, dan seterusnya. Kita bisa terus memperpanjang tingkat pewarisan ini sepanjang yang kita butuhkan. Dengan begitu, subkelas-subkelas yang dibuat akan lebih khusus dan lebih terspesialisasi. Namun terdapat batasan pewarisan dalam Java yang disebut single inheritance. Artinya sebuah kelas hanya dapat mewarisi sifat dari satu dan hanya satu superkelas saja. Dalam beberapa bahasa pemrograman berorientasi objek lain, yang berlaku adalah multiple inheritance. Artinya sebuah kelas dapat mewarisi sifat dari beberapa superkelas sekaligus.
Dalam Java, terdapat kelas Object yang merupakan superkelas dari semua kelas dalam Java, baik yang builtin ataupun yang kita buat sendiri, lansung maupun tidak langsung. Karena itu sebuah variabel bertipe Object akan dapat menyimpan referensi ke objek apapun dalam bahasa Java. Kelas Object ini memiliki behaviour yang dibutuhkan semua objek untuk dapat dijalankan di Java Virtual Machine. Sebagai contoh, semua kelas mewarisi metode toString dari kelas Object, yang mengembalikan representasi String dari objek tersebut.
Manfaat penggunaan konsep pewarisan antara lain: pertama, kita dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas. Kedua, kita dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas. Kelas semacam ini disebut kelas abstrak, karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret, mengimplementasikan behaviour abstrak tersebut sesuai dengan kebutuhan masing-masing.
Sedikit penjelasan mengenai kelas abstrak, kelas ini bisa memiliki hanya satu atau lebih metode abstrak. Subkelas dari kelas ini bertanggung jawab untuk memberikan implementasi untuk metode-metode abstrak tersebut. Sebagai akibat dari keberadaan metode abstrak ini, kelas abstrak tidak dapat diinstanskan (dibuatkan instansnya) atau digunakan untuk menciptakan sebuah objek dari kelas tersebut.


POLIMORFISME

Kemampuan dari reference untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.
Contoh lain yang menunjukkan properti polimorfisme adalah ketika kita mencoba melalui reference ke method. Misalkan kita punya method static printInformation yang mengakibatkan object Person sebagai reference, kita dapat me-reference dari tipe Employee dan tipe Student ke method ini selama itu masih subclass dari class Person.
public static main( String[] args )
{
Student
studentObject = new Student();
Employee
employeeObject = new Employee();
printInformation( studentObject );
printInformation( employeeObject );
}
public static printInformation( Person p ){
. . . .
}


PAKET

Sintaks untuk pernyataan package sebagai berikut:

Package Identifier;

Pernyataan package harus ditempatkandi awal unit kompilasi (file kode sumber). Setiap kelas dan interface di unit kompilasi dalam penyataan package dianggap sebagian bagian paket.

Contoh: Package person;

Java menggunakan fasilitas system file untuk menyimpan package. File-file.class yang dideklarasikan sebagai bagian paket person harus disimpan di directori bernama person. Java membedakan antara huruf capital dan kecil, untuk itu nama directori harus sama dengan nama paket.

Lebih dari satu file dapat dimasukkan di satu package. Kalimat package mengspesifikasikan kedalam paket dimana kelas-kelas itu akan berbeda. Kebanyakan paket disebarkan dibanyak file.

Paket juga dapat bersarang dipaket lain. Kita dapat menciptakan hirarki paket. Ketika hal ini dilakukan, java interpreter mengharuskan struktur hirarki berisi kelas-kelas yang cocok dengan hirarki package. Untuk melakukan hal ini kita cukup memisahkan masing-masing nama paket menggunakan tanda titil (.). bentuk umum pernyataan package multi level sebagai berikut:

Package pkg1[.pkg2.[.pkg3]]

Cotoh hirarki paket dapat di JDK:

Package java.awt.image

Berarti disimpan di system file windows di java/awt/image.

Kita harus memilih nama paket dengan hati-hati karena kita tidak dapat mengganti nama pakettanpa mengganti nama directori dimana kelas-kelas itu disimpan.

Penggunaan kelas atau interface di paket berbeda dengan lebih dahulu menyatakan:

1. Kalimat import kelas atau
2. Mengacu pada letak kelas atau interface yang digunakan secara lengkap.


ARRAY

Array adalah bentukan yang menyediakan penyimpanan sejumlah item bertipe sama. Item-item array dapat berupa data sderhana atau komposit. Array dijava dideklarasikan dengan kurung siku: [….]. array merupakan cara nyaman untuk mengelompokan informasi yang berhubungan.

Sintaks umum deklarasi array sebagaii berikut:

Type var-name[];

Atau

Type[] var-name;

Type adalah mendeklarasikan tipe basis dari array. Tipe basis menggunakan tipe dat bagi masing-masing elemen yang membentuk array. Dengan demikian, tipe basis untuk array menentukan tipe data yang dimuat oleh array.

Berikut ini adalah contoh deklarasi array di java:

Int numbers[];
Char[] letters;
Long grid[] [];

Pada java, kita tidak perlu menspesifikasikan ukuran array kosong saat mendeklarasikan array. Kita harus menyatakan ukuran array secara eksplisit saat melakukan penciptaan array menggunakan operator new() atau dengan mendaftarkan item-item untuk array pada saat penciptaan.

Keanehan lain di java adalah penempatan kurung siku pada deklarasi array. Kita dapat menempatkan kurung siku setelah tipe variable atau setelah identifier.

Berikut ini adalah contoh pendeklarasian array dengan menspesifikasian ukuran spesifik menggunakan operator new() dan dengan memberikan daftar item yang termasuk di dalam array.

Char alphabet[]=new() char[26]
Int primes={7, 11, 13};

Array bisa terdiri dari banyak dimensi namun disini saya hanya membahas dasar arraynya saja di java.


Sumber:
www.ilmukomputer.com
esensi-esensi bahasa pemograman java, bambang harianto, informatika bandung

Sistem Basis Data(Relasi, Attribut, Tupel, Domain, Derajat dan Cardinality)

Sekilas tentang Relasi, Attribut, Tupel, Domain, Derajat dan Cardinality.

1. Relasi
Relation (Relasi) merupakan sebuah tabel dengan kolom-kolom dan baris-baris. Pada model relasional, relasi digunakan untuk menyimpan informasi mengenai objek-objek yang direpresentasikan dalam sebuah basis data. Relasi ini digambarkan dalam bentuk tabel dua dimensi. Contohnya mengenai informasi pegawai-pegawai yang bekerja di perusahaan X direpresentasikan pada relasi PEGAWAI yang mengandung informasi nomor induk pegawai, nama, alamat, gaji dan kode divisi tempat pegawai bekerja.

Untuk lebih lanjutnya dikenal Skema relasi.
Relation schema (Skema relasi) adalah nama relasi yang diikuti dengan kumpulan atribut-atributnya. Misalkan skema relasi R dinyatakan sebagai R(A1, A2, ..., An), dimana R = relasi dan Ai = atribut ke i. Contoh : PEGAWAI (NIP#, Nama, Alamat, Gaji, KodeDiv).

2. Atribut
Attribute (Atribut) merupakan kolom dari suatu relasi yang mempunyai nama. Atribut-atribut pada suatu relasi tidak harus tersusun secara khusus. Contohnya, pada relasi PEGAWAI mempunyai lima kolom untuk atribut-atribut NIP#, Nama, Alamat, Gaji dan KodeDiv.

3. Tupel
Tuple (Tupel) merupakan suatu baris dari suatu relasi. Pada relasi PEGAWAI, setiap tupel mempunyai 5 nilai, masing-masing untuk setiap atribut NIP#, Nama, Alamat, Gaji dan KodeDiv.

4. Domain
Domain (Domain) merupakan kumpulan nilai-nilai data yang mungkin untuk suatu atribut dan bersifat atomik. Contoh : domain dari atribut KodeDiv adalah {Div01, Div02, Div03, Div04}.

5. Derajat
Degree of relation (Derajat dari suatu relasi) adalah banyaknya atribut pada suatu relasi. Relasi PEGAWAI yang mempunyai 5 atribut berarti mempunyai derajat lima, dimana setiap tupelnya mempunyai 5 nilai.

6. Cardinality
Cardinality of relation (Kardinalitas dari suatu relasi) adalah banyaknya tuple pada suatu relasi. Kardinalitas dari relasi ini dapat berubah-ubah sesuai dengan perubahan yang terjadi pada relasi.

Semuanya itu termasuk kedalam Relational database (Database relasional), yang merupakan sekumpulan relasi yang sudah dalam bentuk normal.

Dari ke-6 penjelasan diatas dapat dipaparkan dengan gambar sebagai berikut:

Unified Modeling Language (UML)


Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML tidak berdasarkan pada bahasa pemrograman tertentu. Standar spesifikasi UML dijadikan standar defacto oleh OMG (Object Management Group) pada tahun 1997.UML yang berorientasikan object mempunyai beberapa notasi standar.

Spesifikasi ini menjadi populer dan standar karena sebelum adanya UML, telah ada berbagai macam spesifikasi yang berbeda. Hal ini menyulitkan komunikasi antar pengembang perangkat lunak. Untuk itu beberapa pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat standar baru. UML dirintis oleh Grady Booch, James Rumbaugh pada tahun 1994 dan kemudian Ivar Jacobson.

UML mendeskripsikan OOP (Object Oriented Programming) dengan beberapa diagram, diantaranya:

Diagram struktur:

1. Diagram kelas
2. Diagram obyek
3. Diagram komponen
4. Diagram deployment

Diagram perilaku:

1. Diagram use-case
2. Diagram urutan/sekuen
3. Diagram kolaborasi
4. Diagram statechart
5. Diagram aktivitas



Dengan UML kita dapat membuat model untuk semua piranti perangkat lunak.

UML class diagram :

Kandidate & Alternate key

CANDIDATE KEY(Kunci Kandidat/Kunci Calon)
Kunci kandidat adalah satu attribute atau satu set minimal attribute yang mengidentifikasi secara unik suatu kejadian specific dari entity.

Satu minimal set dari attribute menyatakan secara tak langsung dimana anda tidak dapat membuang beberapa attribute dalam set tanpa merusak kepemilikan yang unik.

Jika satu kunci kandidat berisi lebih dari satu attribute maka biasanya disebut sebagai composite key (kunci campuran/gabungan).

Contoh :

File Pegawai berisi attribute seperti :

*No Induk
*No KTP
*Nama
*Tempat Lahir
*Tanggal Lahir
*Alamat
*Kota

Kunci kandidat disini adalah :

*No Induk, karena unik tidak mungkin ganda
*No KTP, karena unik juga tidak mungkin ganda
*Nama, sering dipakai sebagai kunci pencarian namun tidak dapat dikatakan kunci karena sering seseorang punya nama yang sama.
*Nama + tempat lahir + tanggal lahir, dapat dipakai sebagai kunci
*Alamat, kota (bukan kunci).


Alternate key
Alternate key/Kunci alternatif merupakan kunci kandidat yang tidak terpilih sebagai kunci utama. Contoh : Nama.
Atau kunci kandidat yang tidak dipakai sebagai kunci primer. Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam laporan.

sistem basis data

Arti istilah Data Definition Language (DDL)
Disingkat dengan DDL. Adalah Bahasa pemrograman untuk pendefinisian data. Terdiri dari perintah-perintah untuk membentuk, mengubah atau menghapus tabel beserta kolom-kolom dan type data penyusunnya, serta perintah-perintah untuk menetapkan hubungan dan batasan-batasan data.

dengan kata lain DDL adalah Struktur / skema basis data yang menggambarkan / mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yaitu DDL. Dengan bahasa ini kita dapat membuat tabel (create table) baru, indeks, mengubah table, menentukan struktur penyimpanan table, dan lainnya. Hasil dari kompilasi perintah DDL, adalah kumpulan table yang disimpan dalam file khusus yang disebut kamus data (data dictionary).

Kamus data merupakan suatu metadata (superdata), yaitu data yang mendiskripsikan data sesungguhnya. Contoh perintah DDL dengan Foxpro adalah create matakuliah, modify report, modify structure, dan lainnya, sedangkan perintah DDL dengan MS-SQl Server 2000,

Arti istilah Data Manipulation Language (DML)
Data Manipulation Language (DML)

Bentuk bahasa basis data untuk melakukan menipulasi dan pengambilan data pada suatu basis data. Manipulasi data pada dabase dapat berupa :

1). Penyisipan / penambahan data pada file / table dalam suatu basis data.
2). Penghapusan data pada file / table dalam suatu basis data.
3). Pengubahan data pada file / table dalam suatu basis data.
4). Penelusuran data pada file / table dalam suatu basis data.
Pada level phisik kita harus mendefinisikan alghoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi yang dipentingkan bukan efisien akses, tapi juga efisiensi interaksi pemakai dengan sistem. DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 (dua) jenis DML adalah sebagai berikuit :

1). Prosedural, yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.
2). Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

Contoh paket bahasa prosedural DML : dBase, FoxBase, sedang untuk Nonprosedural DML : SQL (Structure Query Language), QBE (Query By Example).

Query
Adalah pernyataan yang diajukan untuk mengambil informasi di dalam suatu basis data. Query merupakan bagian dari DML yang untuk pengambilan informasi disebut Query Language.
Return top