Jumat, 01 November 2013

PBO - Java


JAVA

 

A.   Pengenalan Java
Java adalah salah satu bahasa pemrograman berorientasi objek (OOP-Object Oriented Programming). Paradigma OOP menyelesaikan masalah dengan merepresentasikan masalah ke model objek.
Pemrograman Berorientasi Obyek (OOP)
Pemisalan Objek dalam OOP
Objek-objek dalam dunia nyata, mempunyai 2 karakteristik khusus : Status dan Perilaku. Contohnya, sepeda punya status(jumlah gir, jumlah pedal, dua buah ban) dan perilaku(mengerem, mempercepat, 
ubah gir).
Bahasa yang berorientasi pada objek pun mempunyai karakteristik yang sama dengan objek-objek di dunia nyata. Yaitu status yang dalam bahasa pemrograman biasanya disimpan sebagai Variabel dan perilaku yang diimplementasikan sebagai Method.

1.    Sejarah Java

 Dimulai pada tahun 1991 dibentuknya suatu tim yang diberi nama green
Tim ini dipimpin oleh Patrick Naughton dan James Gosling (Sekelompok insinyur Sun ).
Awalnya mereka ingin membuat suatu bahasa komputer yang dapat digunakan oleh TV kabel ( Cable TV Box) yang memiliki memori kecil dan setiap perusahaan memiliki tipe yang berbeda.
Untuk mengaplikasikan hal tersebut mereka menggunakan hal yang pernah dicoba oleh bahasa pascal.
Sebelumnya Niclaus Wirth telah membuat sebuah bahasa yang portable yang akan digunakan dalam mesin bayangan selanjutnya ini disebut sebagai Virtual Mesin namun saat itu belum diumumkan.
Akhirnya tim green mengunakan ide ini akhirnya mereka menciptakan Java Virtual Mesin.
Vitual mesin inilah yang menbuat java dapat dijalankan diberbagai platform.
Pada tahun 1992 tim green membuat produknya yang diberi nama *7 (Star Seven )
Namun produk ini gagal dipasaran.


Setelah itu dibuat produk yang baru. Inilah java, pada awalnya bahasa pemrograman yang dibuat tersebut diberi nama “oak “ (Kemungkinan nama ini diambil dari nama pohon yang ada didepan jendela James Gosling)
Namun setelah diperiksa ternyata nama oak sudah pernah digunakan. Maka lahirlah nama “ Java “
Pada tahun 1993 sampai pertengahan 1994 tim green yang mempunyai nama baru First person. Inc hanya menghabiskan waktu dengan memperhatikan penjualan dari produknya. Ternyata tidak satupun orang ditemukan. Akhirnya pada tahun 1994 First Person dibubarkan.
Pada tahun itu Web berkembang sangat pesat saat itu browser yang banyak digunakan adalah Mosaic suatu broser yang gratis.

Dalam suatu wawancara pada pertengahan tahun 94 James Gosling mengatakan “We could build a real cool browser. It was one of the few things in the client/serve mainstream that needed some of the weird things we’d done: architecture neutral, real-time,reliable, secure—issues that weren’t terribly important in the workstation world. So we built a browser.”
Akhirnya dibuatlah suatu browser oleh Patrick Naughton dan Jonathan Payne.
Browser itu diberi nama Hot Java. Browser ini dibuat dengan menggunakan bahasa java untuk menunjukkan kemampuan dari java.
Yang tidak kalah hebatnya mereka juga membuat teknologi yang disebut Aplet sehingga browser dapat menjalankan kode program didalam browser.
Inilah bukti dari teknologi itu yang ditunjukkan java pada tanggal 25 mei 1995
Sejak saat itu browser java memberikan lisensinya kepada browser lain untuk bisa menjalankan Applet dan pada tahun 1996 diberikan pada Internet Explorer.
Akhirnya pada tahun 1996 dikeluarkan versi pertama dari java dengan mengeluarkan java 1.02
Pada tahun 1998 dikeluarkan java 1.2 dan java mulai mengeluarkan slogannya “Write once, Run anywhre “
Edisi Java
Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkngan : internet, intranets,consumer electronic products, dan computer applications.The java 2 platform tersedia dalam 3 edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa Java, java dipaketkan dalam edis – edisi berikut :
1.Java 2 Standard Edition ( J2SE )
2.Java 2 Enterprise dition ( J2EE )
3.Java 2 Micro Edition ( J2ME )
Masing – masing edisi berisi Java 2 Software Development Kit ( J2SDK ) untuk mengembangkan aplikasi dan Java 2 Runtime Environent ( J2RE ) untuk menjalankan aplikasi.
Kelebihan Java di bandingkan dengan C++
Pembuat program java telah merancang java untuk menghilangkan pengalokasian dan dealokasi memori secara manual, karena java memiliki Garbage Collection
Diperkenalkannya deklarasi array yang sebenarnya dan menghilangkan aritmatika pointer. Hal ini yang sering menyebabkan memori overwrite.
Dihilangkannya multiple inheritance, mereka menggantinya dengan interface.

2.    Pengertian Java
Java adalah bahasa pemrograman yang multi platform dan multi device. Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik.

Slogan Java adalah “Tulis sekali, jalankan di manapun”. Sekarang ini Java menjadi sebuah bahasa pemrograman yang populer dan dimanfaatkan secara luas untuk pengembangan perangkat lunak. Kebanyakan perangkat lunak yang menggunakan Java adalah ponsel feature dan ponsel pintar atau smartphone.

     3. Kelebihan dan kekurangan Java
Setelah membahas mengenai pengertian java, selanjutnya kita membahas mengenai kelebihan dan kekurangan java. Kelebihan Java yang pertama tentu saja multiplatform. Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda. Hal ini sesuai dengan slogannya yangs udah dibahas sebelumnya. Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Hal ini akan memudahkan pemrograman menjadi lebih mudah. Kelengkapan library semakin beragam jika ditambah dengan karya komunitas Java.

Setiap hal pasti memiliki kelebihan dan kekurangan. Kekurangan yang dimiliki oleh Java adalah pada satu slogannya, takni “Tulis sekali dan jalankan dimana saja” ternyata tidak sepenuhnya benar. Beberapa hal harus disesuaikan jika dijalankan pada platform yang berbeda. Misalnya untuk J2SE dengan platform SWT-AWT bridge tidak dapat berfungsi di Mac OS X. Kekurangan lainnya adalah kemudahan aplikasi Java didekompilasi. Dekompilasi adalah suatu proses membalikkan sebuah aplikasi menjadi kode sumbernya. Hal ini memungkinkan terjadi pada Java karena berupa bytecode yang menyimpan bahasa tingkat tinggi. Hal ini terjadi pula pada platform .NET dari Microsoft sehingga program yang dihasilkan mudah dibajak kodenya karena sulit untuk disembunyikan.

Kekurangan Java yang lain adalah penggunaan memori yang cukup banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java. Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java. Mereka yang sudah menggunakan perangkat keras dengan teknologi terbaru tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain halnya dengan mereka yang menggunakan teknologi lama atau komputer yang sudah berumur tua lebih dari empat tahun akan merasakan adanya kelambatan. Namun apapun kelemahan yang dimiliki Java, faktanya adalah Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh dunia saat ini.

B. Paket (Package) di Java

Java class library (Java API) memiliki banyak sekali kelas (Java predefined classes) yang diletakkan ke dalam paket (package) untuk dapat dipergunakan kembali di dalam program. Paket tersebut digunakan untuk mengelompokkan kelas-kelas yang mempunyai kemiripan fungsi (related class). Kelas-kelas Java yang akan digunakan di dalam program, terlebih dahulu harus diimpor beserta dengan nama paket di mana kelas tersebut berada, kecuali untuk kelas Java yang berada di paket java.lang seperti kelas JOptionPane yang berada di paket javax.swing dan kelas DecimalFormat yang berada di paket java.text. Berikut ini adalah daftar beberapa paket Java yang sering dipergunakan di dalam kode program Java:

1.    Keuntungan menggunakan paket
Ada kemungkinan, programer Java telah membuat kelas sendiri yang mempunyai nama sama dengan kelas yang sudah ada di Java API tanpa sengaja. Konflik penamaan kelas seperti ini bisa saja terjadi. Untuk mengatasi masalah terkait penamaan kelas, Anda dapat meletakkan kelas yang mempunyai nama sama ke dalam paket berbeda dan mengakses atau mengacu kelas tersebut beserta dengan nama paketnya. Kelas-kelas Java yang mempunyai kemiripan fungsi seharusnya diletakkan di paket yang sama sehingga nantinya akan mempermudah penempatan dan pendistribusian. Paket juga memberikan perlindungan (protection) kepada kelas dan interface yang ada di dalamnya. Sebagai contoh kelas yang dideklarasikan dengan kata kunci private, hanya dapat diakses oleh kelas-kelas lain yang berada dalam paket yang sama.
2.    Direktori paket
Sebuah paket (package) sebenarnya adalah direktori yang digunakan untuk menyimpan file-file bytecode (file berekstensi .class). Paket Java disusun secara berjenjang (hierarchical). Anda bisa mempunyai paket di dalam paket yang lain. Sebagai contoh, javax.swing.JOptionPane menunjukkan bahwa kelas JOptionPane berada di dalam paket swing, dan paket swing itu sendiri berada di dalam paket javax. Level jenjang paket dapat digunakan untuk memastikan keunikan dari nama paket.
Semua kelas yang dibuat akan tersimpan di direktori yang sekarang aktif (current directory atau default package) ketika program sumber Java dikompilasi. Karena program sumber Java terletak di direktori, misalnya c:\hindro\javasc dan proses kompilasi juga dilakukan di direktori tersebut, maka file bytecode hasil kompilasi juga akan tersimpan di direktori yang sama.
3.    Meletakkan kelas ke dalam paket
Setiap kelas Java akan diletakkan atau dikelompokkan ke dalam paket. Kelas-kelas tersebut diletakkan ke dalam paket saat program sumber Java (Java source program) dikompilasi. Untuk meletakkan sebuah kelas hasil kompilasi ke dalam paket yang akan dituju, Anda dapat menyertakan pernyataan package diikuti nama paket di program sumber Java. Pernyataan package yang diikuti nama peket adalah pernyataan Java yang paling pertama (the first non-comment statement of Java source program). Berikut ini adalah sintak pernyataan package untuk meletakkan hasil kompilasi sebuah kelas ke dalam paket:
   package nama-paket;
Untuk mendemonstrasikan pernyataan package di atas, Anda dapat membuat direktori baru. Misalnya c:\filejava\javaapp\kelas\bangun\datar adalah direktori yang digunakan untuk menyimpan file bytecode Java (berekstensi .class). Dari direktori tempat menyimpan kelas, Anda dapat menentukan c:\filejava\javaapp\kelas sebagai class path dan bangun\datar sebagai nama paket (package name). Agar Java mengetahui letak kelas yang sudah Anda buat di dalam sistem file (file system), Anda perlu memodifikasi nilai variabel CLASSPATH di kotak dialok Edit System Variable.

Untuk bisa sampai ke kotak dialok Edit System Variable, Anda dapat membuka kembali materi panduan mengkonfigurasi Java di Bab I. Modifikasi nilai variabel CLASSPATH dilakukan dengan menambahkan ;c:\filejava\javaapp\kelas ke nilai yang sudah ada di variabel CLASSPATH. Untuk menambahkan beberapa path lain ke dalam nilai variabel CLASSPATH, Anda harus memberikan pemisah berupa titik koma. Umumnya, variabel CLASSPATH sudah terisi dengan dot (.) yang mengacu ke direktori yang sedang aktif (current directory) atau lokasi dari pustaka kelas Java. Berikut ini adalah kotak dialok Edit System Variable dari variabel CLASSPATH:
Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus keliling segitiga sama sisi ABC adalah sisi AB + sisi BC + sisi CA dan rumus luasnya adalah ½ x alas x tinggi. Kelas bangun datar segitiga sama sisi ini dinamakan Segi3ABC dan mempunyai dua metoda untuk mencari keliling dan luas. Kelas Segi3ABC akan diletakkan di paket bangun\datar. Berikut ini adalah listing kode programnya:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Meletakkan kelas ke paket
package bangun.datar;

// Mendefinisikan kelas Segi3ABC
public class Segi3ABC {

   // Metoda hitungKeliling
   // Untuk mencari keliling segi tiga
   public static double hitungKeliling(double sisiAB, double sisiBC, double sisiCA) {

      double keliling;
      keliling = sisiAB + sisiBC + sisiCA;
      return keliling;
   }

   // Metoda hitungLuas
   // Untuk mencari luas segi tiga
   public static double hitungLuas(double sisiAB) {

      // Deklarasi variabel
      double luas;

      // Mencari tinggi segi tiga
      double tinggi = Math.sqrt(Math.pow(sisiAB, 2) - Math.pow((0.5 * sisiAB), 2));

      // Mencari luas segi tiga
      luas = sisiAB * tinggi;
      return luas;
   }
}
Kelas Segi3ABC tidak memiliki metoda main dikarenakan kelas ini hanya digunakan di dalam program lain yang mempunyai metoda main. Dari listing kode program di atas, baris nomor 2 adalah pernyataan package yang diikuti oleh nama paket bangun.datar. Pernyataan package di program sumber Java (Segi3ABC.java) digunakan untuk meletakkan file bytecode hasil kompilasi (Segi3ABC.class) ke dalam paket yang sudah ditentukan di pernyataan package.
Baris nomor 24 adalah pernyataan untuk mencari tinggi segitiga sama sisi. Anda dapat menggunakan rumus phytagoras untuk mengetahui tinggi dari segitiga sama sisi. Rumus phytagoras meliputi pencarian akar (√x) dan pemangkatan (x2) dari variabel x. Untuk mencari nilai akar dan pemangkatan, Anda dapat menggunakan metoda statik sqrt dan pow dari kelas Math yang ada di paket java.lang. Math.sqrt(x) sama artinya dengan √x dan Math.pow(x, y) sama artinya dengan xy. Selain metoda sqrt dan pow, kelas Math juga berisi metoda lain yang digunakan untuk melakukan fungsi matematika dasar serta metoda random (Math.random) yang dapat menghasilkan nilai random double lebih besar atau sama dengan 0.0 dan lebih kecil dari 1.0 (0 <= Math.random() < 1.0).
Ada dua cara untuk mengkompilasi program sumber Java agar file berekstensi .class hasil dari kompilasi dapat diletakkan di paket yang sudah ditentukan sebagaimana di dalam pernyataan package. Cara pertama, Anda harus menyimpan file program sumber (file berekstensi .java) di direktori c:\filejava\javaapp\kelas\bangun\datar. Sebelum proses kompilasi dilakukan, Anda terlebih dahulu harus berada di direktori dimana paket bangun\datar berada. Cara kedua, anda dapat mengkompilasi program sumber Java yang terletak di sebuah direktori dan meletakkan hasil kompilasi di direktori (paket) tertentu melalui c prompt (c:\>).
Untuk cara pertama, file program sumber Java (Segi3ABC.java) harus disimpan di folder atau direktori c:\filejava\javaapp\kelas\bangun\datar. Karena di program sumber tersebut sudah ada pernyataan package bangun.datar, sebelum dikompilasi, Anda cukup berada di direktori c:\filejava\javaapp\kelas. Kompilasi dapat dilakukan dengan menuliskan perintah seperti di bawah ini di baris perintah pada jendela Command Prompt.
   javac bangun\datar\Segi3ABC.java
Setelah proses kompilasi selesai, Anda harus pastikan bahwa file bytecode yang berekstensi .class (Segi3ABC.class) sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar. Kompiler Java dapat mengetahui tempat untuk meletakkan file hasil kompilasi dengan mengkombinasikan classpath c:\filejava\javaapp\kelas dengan nama paket bangun.datar.
Umumnya, programer Java memilih untuk meletakkan file program sumber (berekstensi .java) dan file hasil kompilasi (berekstensi .class) di direktori berbeda. Hal ini dimaksudkan untuk mempermudah proses pendistribusian paket yang hanya berisi kelas-kelas hasil dari kompilasi. Anda juga dapat mengelola file dengan cara demikian. Misalnya, Anda membuat direktori c:\filejava\javaapp\sumber\bangun\datar sebagai tempat menyimpan file program sumber, sedangkan tempat untuk menyimpan file hasil kompilasi, Anda dapat menggunakan direktori c:\filejava\javaapp\kelas\bangun\datar. Untuk mengkompilasi file program sumber melalui c prompt (c:\>), Anda dapat menuliskan perintah seperti di bawah ini.
   c:\>javac –d filejava\javaapp\kelas filejava\javaapp\sumber\bangun\datar\Segi3ABC.java
-d memberitahukan kompiler Java untuk meletakkan file kelas (Segi3ABC.class) ke direktori c:\filejava\javaapp\kelas\bangun\datar. Setelah kompilasi file sumber selesai dilakukan dan tidak terdapat kesalahan, Anda dapat memastikan bahwa file hasil kompilasi sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar.
Kelas Segi3ABC yang tersimpan di direktori c:\filejava\javaapp\kelas\bangun\datar dapat dipakai (dipanggil) dengan menggunakan pernyataan import sebagaimana kelas-kelas Java yang lain. Contoh program berikut ini, akan menggunakan kelas Segi3ABC yang sudah didefinisikan sebelumnya untuk menghitung keliling dan luas segitiga sama sisi. Segitiga sama sisi mempunyai panjang sisi yang sama yaitu 9 cm. Berikut ini adalah listing kode program, penjelasan program, dan hasil eksekusinya:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Nama file : SegitigaSamaSisi.java
// Menghitung keliling dan luas segitiga

// Mengimpor kelas
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
import bangun.datar.Segi3ABC;

// Deklarasi kelas
public class SegitigaSamaSisi {

   // Metoda main
   public static void main(String[] args) {

      // Deklarasi variable
      double keliling;
      double luas;
      double sisi = 9;
      String hasil= "";
      DecimalFormat formatAngka;

      // Membuat objek dari kelas DecimalFormat
      formatAngka = new DecimalFormat("0.00");

      hasil += "Segitiga Sama Sisi\n\nPanjang sisi : " + sisi + "\n\n";

      keliling = Segi3ABC.hitungKeliling(9, 9, 9);
      hasil += "Keliling Segitiga ABC : " + formatAngka.format(keliling) + "\n";

      luas = Segi3ABC.hitungLuas(9);
      hasil += "Luas Segitiga ABC : " + formatAngka.format(luas) + "\n";

      JOptionPane.showMessageDialog(null, hasil, "Menghitung Keliling dan Luas",
         JOptionPane.INFORMATION_MESSAGE);

      // Mengakhiri aplikasi berpenampilan GUI
      System.exit(0);
   }
Baris nomor 7 adalah pernyataan untuk mengimpor kelas Segi3ABC yeng terletak di paket bangun.datar. Kelas Segi3ABC merupakan kelas yang didefinisikan oleh pengguna aplikasi (user-defined class) dan bukan termasuk ke dalam Java predefined class yang terletak di pustaka kelas Java. Baris nomor 27 adalah pernyataan pemberian (assigment statement). Di dalam pernyataan ini, metoda hitungKeliling dari kelas Segi3ABC yang berada di paket bangun.datar diminta atau dipanggil. Metoda hitungKeliling akan mengembalikan nilai keliling segitiga dengan tipe data double untuk diberikan atau disimpan ke variabel keliling.
Baris nomor 30 adalah juga pernyataan pemberian nilai. Di dalam pernyataan pemberian nilai ini, metoda hitungLuas dari kelas Segi3ABC yang tersimpan di paket bangun.datar diminta atau dipanggil. Metoda hitungLuas akan mengembalikan nilai luas segitiga dengan tipe data double untuk disimpan di variabel luas. Baris nomor 33 adalah pernyataan untuk menampilkan hasil mencari keliling dan luas dengan menggunakan metoda hitungKeliling dan hitungLuas dari kelas Segi3ABC.

Tidak ada komentar:

Posting Komentar