061323020_Andi Setiya Wardana_Review PBO

12
Nama : Andi Setiya Wardana NPM : 061323020 REVIEW PEMROGRAMAN OOP Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi. Sedangkan Compiler sendiri adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda. Untuk lebih jelas mengenai perbedaan antara Interpreter dengan Compiler, ada baiknya saya jelaskan lebih terperinci mengenai dua hal ini. Perbedaan antara Compiler dengan Interpreter : 1. Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber. 2. Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ). Kalau interpreter tidak ada proses terpisah. 3. JIka compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.

description

review fundamental java

Transcript of 061323020_Andi Setiya Wardana_Review PBO

Page 1: 061323020_Andi Setiya Wardana_Review PBO

Nama : Andi Setiya Wardana

NPM : 061323020

REVIEW PEMROGRAMAN OOP

Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

Sedangkan Compiler sendiri adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda.

Untuk lebih jelas mengenai perbedaan antara Interpreter dengan Compiler, ada baiknya saya jelaskan lebih terperinci mengenai dua hal ini.

Perbedaan antara Compiler dengan Interpreter :

1. Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.

2. Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ). Kalau interpreter tidak ada proses terpisah.

3. JIka compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.

4. Interpreter cocok untuk membuat / menguji coba modul (sub-routine / program-program kecil). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.

5. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.

Tingkat bahasa pemrograman :

1. Bahasa Pemrograman Tingkat Rendah (Assembler)2. Bahasa Pemrograman Tingkat Sedang(C, Pascal, Fortran)3. Bahasa Pemrograman Tingkat Tinggi(Java, C++, C#)

Page 2: 061323020_Andi Setiya Wardana_Review PBO

Sejarah pemrograman JAVA :

1. James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991

2. The language was initially called Oak after an oak tree that stood outside Gosling's office3. It went by the name Green later, and was later renamed Java, from a list of random words4. Gosling aimed to implement a virtual machine and a language that had a familiar C/C++ style of

notation5. Sun Microsystems released the first public implementation as Java 1.0 in 19956. On May 8, 2007, Sun finished the process, making all of Java's core code available under free

software/open-source distribution terms (GNU Public License)

Perangkat pemrograman JAVA :

1. Compiler (Interpreter): Java Standard Edition (JSE)2. Code Editor:

Text/Code Editor:TextPad, Notepad++ Integrated Development Environment (IDE):Netbeans, Eclipse, JCreator

Istilah-Istilah dalam pemrograman berorientasi objek :

1. Objek

Untuk mempermudah pemahaman, maka disini akan dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior.

Contoh objek : Motor. Maka atribute (state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi motor.

Analogi pemrograman berorientasi objek sama dengan penggambara pada dunia nyata seperti contoh di atas. Dalam OOP, state disimpan pada variabel dan tingkah laku disimpan pada method.

Dalam bahasa teoretis OOP, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

2. Class

Definisi class yaitu template untuk membuat objek. Class merupakan prototipe atau blue prints yang mendefinisikan variabel-variabel dan method-method secara umum. Objek merupakan

Page 3: 061323020_Andi Setiya Wardana_Review PBO

hasil instansiasi dari suatu class. Proses pembentukan objek dari suatu kelas disebut sebagai instantiation. Objek disebut juga sebagai instances.

Dalam bahasa teoretis OOP, class merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object.

Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

3. Attributes

Atribut adalah data yang membedakan antara objek satu dengan yang lainnya.

Contoh Objek : VolcanoRobot ( a volcanic exploration vehicle), mempunyai atribut sebagai berikut:

Status ~> exploring, moving, returning home

Speed ~> in miles per hour

Temperature ~> in Fahrenheit degrees

Dalam class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable.

Instance variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class yang sama bokeh mempunyai nilai yang sama atau berbeda.

Class Variable adalah atribut untuk semua objek yang dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama.

4. Behavior

Behavior/tingkah laku adalah hal-hal yang bisa dilakukan oleh objek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu objek, menerima informasi dari objek lain, dan mengirim informasi ke objek lain untuk melakukan suatu tugas (task).

Page 4: 061323020_Andi Setiya Wardana_Review PBO

Contoh behavior untuk objek VolcanoRobot:

check current temperature

begin a survey

report its current position

Dalam class, behavior disebut juga sebagai methods. Methods sendiri adalah serangkaian statements dalam suatu class yang menghandle suatu task tertentu. Cara objek berkomunikasi dengan objek yang lain adalah dengan menggunakan method.

5. Abstraksi

Abstraksi adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

Konsep-konsenp dalam pemrograman berorientasi objek

1. Enkapsulasi (Encapsulation)

Definisi enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut. Variabel dan method yang dimiliki oleh suatu objek, bisa ditentukan hak aksesnya. Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C.

Contoh: jam tangan. Dalam hal ini, penting sekali untuk mengetahui waktu, sedangkan cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.

Dengan kata lain enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

2. Pewarisan (Inheritance)

Pewarisan merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class lainya, disebut sebagai multilevel inheritance.

Page 5: 061323020_Andi Setiya Wardana_Review PBO

Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass. Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda.

Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.

Keuntungan Pewarisan

Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.

Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.

Single & Multiple Inheritance

Bahasa C adalah contoh multiple inheritance. Suatu class diperbolehkan untuk mempunyai lebih dari satu superclass. Variabel dan method yang diwariskan merupakan kombinasi dari superclass-nya. Java adalah contoh single inheritance. Suatu class hanya boleh mempunyai satu superclass.

Multilevel Inheritance

Suatu subclass bisa menjadi superclass bagi class yang lain.

3. Polimorfisme

Polimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Pemrograman dengan Java

Page 6: 061323020_Andi Setiya Wardana_Review PBO

Java sebagai salah satu bahasa pemrograman baru menjanjikan banyak kemudahan bagi programer junior maupun senior. Tutorial ini akan membawa Anda mengenal lebih jauh bahasa ini melalui pembahasan konsep model perancangan dan petunjuk sederhana penggunaannya.

Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.

Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.

JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti di Gambar 1. Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.

Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri.

Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar yang dapat mempermudah Anda dalam membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik, desain user interface, kriptografi, jaringan, suara, database, dan lain-lain.

Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.

Page 7: 061323020_Andi Setiya Wardana_Review PBO

Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi konsep orientasi objek dari C++ namun dengan menghilangkan aspek-aspek kerumitan dalam bahasa C++ tanpa mengurangi kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari Java namun mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library Java sendiri membuat seorang programer membutuhkan waktu yang tidak singkat untuk dapat menguasai penggunaan library-library tersebut.

Di dalam pembuatan program java ada beberapa yang harus diketahui, yaitu :

1. Program Hello World2. Type Data3. Variabel4. Operator5. Percabangan6. Perulangan7. dan Array

Konsep dasar pemograman java Graphical User InterFace (GUI) :

Konsep dasar di Java GUI adalah API, API adalah Application Programming InterFace yang terdiri dari 2 Komponen, dan pada kali ini saya akan membahas sedikit tentang Java GUI di Netbeans Melanjutkan materi yang sebelumnya. (Materi Sebelumnya). API sendiri pada Java terdapat dua kompenen, Apa saja yuuuk Cek dan baca baik-baik artikel ini.Konsep dasar pemograman java Graphical User InterFace (GUI) - Konsep dasar di Java GUI adalah API, API adalah Application Programming InterFace yang terdiri dari 2 Komponen, dan pada kali ini saya akan membahas sedikit tentang Java GUI di Netbeans Melanjutkan materi yang sebelumnya. (Materi Sebelumnya). API sendiri pada Java terdapat dua kompenen.

API untuk GUI di Java :

1. AWT (Abstract Windows Toolkit)2. Swing Or JVC (Java Foundation Class)

Fitur Swing :

1. Komponen GUI Lengkap: button, listbox, combobox, textarea, dsb2. Pluggable Look-and-Feel: tampilan GUI dapat diubah sesuai dengan kehendak (tidak perlu

mengikuti native sistem operasi)3. Data Transfer Antar Komponen: drag and drop, copy and paste4. Internationalization: proses desain aplikasi yang memungkinkan aplikasi dijalankan sesuai

dengan preferensi tanpa rekompilasi5. Localization: proses translasi teks ke bahasa lokal dan menambahkan komponen lokal

Komponen Dasar Swing :

Page 8: 061323020_Andi Setiya Wardana_Review PBO

1. Top-Level Container: kontainer dasar dimana komponen lainnya diletakkan (JFrame, JDialog dan Applet)

2. Intermediate Container: kontainer perantara dimana komponen lainnya diletakkan (JPanel, JScrollPane, JTabbedPane, JToolbar, JSplitPane)

3. Atomic Component: komponen yang memiliki fungsi spesifik dan menerima interaksi langsung dari user (JButton, JLabel, JTextArea, dsb)

4. Layout Manager: mengatur tata letak dan posisi komponen dalam kontainer (BorderLayout, BoxLayout, FlowLayout, GridBagLayout, GridLayout)

5. Event Handling: menangani event yang dilakukan user (klik mouse, ketik keyboard, perbesar frame, dan sebagainya)

Adapun pada versi awal peluncurannya pada tahun 1996 (selanjutnya disebut versi 1.0), bahasa pemrograman ini menyertakan beberapa paket standar yakni :

1. java.lang yakni sebuah kelas untuk elemen-elemen dasar2. java.io yang merupakan kelas input dan output termasuk penggunaan file3. java.util yakni kelas pelengkap seperti kelas struktur data dan kelas penanggalan4. java.net yakni kelas TCP/IP (untuk jaringan)5. java.awt yakni kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)6. java.applet yakni kelas dasar aplikasi antarmuka untuk browser

Sejak awal dibuatnya oleh Sun Microsystem, Java diorientasikan agar memiliki perangkat bergaya desktop dengan ToolkitJava yang dikenal dengan nama AWT (Abstract Windowing Toolkit). Kemudian pada tahun 1997 muncul JFC (Java Foundation Class) untuk kepentingan pembuatan aplikasi Window yang merupakan pengembangan dari AWT. JFC ini mempunyai kode swing yang terdapat pada package yang disediakan pada JAVA SDK versi 1.2 ke atas (Java 2).

GUI (Graphical User Interface) merupakan sebuah teknologi antarmuka pengguna yang memungkinkan seseorang untuk berinteraksi dengan program dengan berbagai cara selain mengetik seperti halnya komputer, MP3 Player dll yang berisikan banyak tombol bergambar/icon dibandingkan teks. GUI yang merupakan kebalikan dari CLI (Command Line Interface) menggunakan icon grafis atau indikator visual untuk kenyamanan user.

Java sendiri menyediakan dua buah pustaka grafis dalam paketnya yaitu AWT dan Swing. Keduanya menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan Applet. Tidak seperti komponen AWT yang menggunakan native code, keseluruhan Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama.

Terdapat 4 hal yang perlu diperhatikan pada pemrograman GUI ini yaitu :

1. Container (tempat) yaitu obyek yang dapat menampung komponen grafis dan tempat yang lebih kecil. Contoh : frames, panels.

Page 9: 061323020_Andi Setiya Wardana_Review PBO

2. Component yaitu obyek yang berfungsi untuk menampilkan data, menerima masukan atau menunjukkan suatu kondisi. Contoh : buttons, labels dan text fields.

3. Event yaitu obyek yang merepresentasikan suatu kejadian. Contoh gerakan mouse, penekanan tombol.

4. Listener yaitu suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi (melakukan sesuatu) jika kejadian tersebut terjadi.