1
DASAR-DASAR PEMROGRAMAN BERORIENTASI OBYEK Program komputer adalah simulasi digital dari suatu model konseptual atau fisik yang seringkali menjadi sangat rumit. Kerja programer bertujuan untuk memecahkan kerumitan ini menjadi bentuk yang mudah dimengerti dan ditampilkan untuk para pemakai melalui antar muka.
BAHASA PEMROGRAMAN Bahasa pemrograman adalah bahasa yang menjadi sarana manusia untuk berkomunikasidengan komputer. Pikiran manusia yang tidak terstruktur harus dibuat terstruktur agar bisa berkomunikasi dengan komputer. Komputer memerlukan kepastian dan logika yang benaruntuk dapat melakukan suatu instruksi tertentu. Untuk itu diperlukan algoritma yang baik dan benar. Jenis-jenis Bahasa Pemrograman : 1. Bahasa Mesin Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa mesin sering juga disebut native code (sangat tergantung pada mesin tertentu). Bahasa ini merupakan bahasa level terendah dan berupa kode biner: 0 dan 1. Sekumpulan instruksi dalam bahasa mesin dapat membentuk microcode (semacam prosedur dalam bahasa mesin). Contoh: untuk mesin IBM/370, perintah 0001100000110101 = 1835 yang berarti mengkopikan isi register 5 ke register 3 Kelebihannya adalah mempunyai waktu eksekusi yang cepat sedangkan kelemahannya sangat sulit dipelajari manusia 2. Bahasa Assembly (mnemonic code) Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain. Sekumpulan kode-kode bahasa assembly dapat membentuk makroinstruksi. Bahasa assembly juga memiliki program pen-debug-nya, tidak seperti bahasa mesin. Misalnya: Turbo Assembler dan debug pada DOS. Assembler akan mencocokkan token simbol dari awal sampai dengan akhir, kemudian dikodekan menjadi bahasa mesin. Kelebihannya adalah mempunyai waktu eksekusi yang cepat, masih bisa dipelajari daripada bahasa mesin dan file hasil kompilasi sangat keci. Kelemahannya : Tetap sulit dipelajari dan program sangat panjang. 3. Bahasa Tingkat Tinggi (High Level Language) Bahasa ini lebih dekat dengan bahasa manusia. Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan sebagainya. Contoh: Pascal, Basic, C++, dan Java. Bahasa ini mendukung information hiding, enkapsulasi, dan abstract data type. Bahasa tingkat tinggi memiliki generasi, misalnya generasi ke-3 (Pascal, C/C++) dan generasi ke-4 (Delphi, VB, VB.NET, Visual Foxpro). Kelebihannya adalah mudah dipelajari, Pemrograman JAVA
2
mendekati permasalahan yang akan dipecahkan dan kode program pendek sedangkan kelemahannya mempunyai waktu eksekusi lambat 4. Bahasa yang berorientasi pada masalah spesifik (specificproblem oriented). Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu masalah tertentu. Misalnya SQLuntuk database, Regex untuk mencocokkan pola pada string tertentu dan sebagainya. Jenis bahasa ini juga masuk ke bahasa tingkat tinggi. Dalam lingkungan pemrograman yang lama, program dibuat sebagai urutan perintah yang linier. Model ini disebut juga sebagai model berorientasi proses dengan memikirkan langkah-langkah tunggal dalam masalah tanpa memodelkan gambaran keseluruhan masalah, contoh : Bahasa C, Bahasa BASIC, Bahasa PASCAL dsb. Meskipun program ini baik untuk program yang sederhana, masalah banyak timbul ketika program bertambah besar misalnya kelambatan definisi antar muka atau interaksi, program tidak teratur dan kesalahan lebih sering timbul. PEMROGRAMAN BERORIENTASI OBYEK Model Data Berorientasi Objek’ atau object-oriented programming (OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Model Data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Pemrograman ini mempunyai fungsi-fungsi obyek yang mudah dipahami dan memiliki antar muka yang jelas dan layak antar obyek. Pendekatan yang digunakan adalah top-down design dimana masalah dipahami pertama kali dalam bentuk paling abstrak, baru kemudian mendefinisikan sub rutin yang berkaitan dengan implementasi yang lebih konkrit. Pemrograman Berorientasi Objek (OOP) adalah metode pemrograman yang meniru cara kita memperlakukan sesuatu(benda). Ada tiga karakteristik bahasa Pemrograman Berorientasi Objek, yaitu : 1. Pengkapsulan (Encapsulation) Mengkombinasikan suatu struktur dengan fungsi yang memanipulasinya untuk membentuk tipe data baru yaitu kelas (class). Selain itu pengkapsulan juga memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin 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. Analoginya adalah seperti ini, bayangkan jika anda seorang arsitek, sebelum membangun rumah tentunya akan merancang dulu di kertas, jumlah dan letak pintu, jendela, dan semuanya, itulah class. Kemudian dari gambar rumah tersebut kita dapat membangun banyak rumah sesuai rancangan yang sudah dibuat. Masing-masing rumah jadi tersebut adalah yang disebut dengan objek/instance.
Pemrograman JAVA
3
2. Pewarisan (Inheritance) Mendefinisikan suatu kelas dan kemudian menggunakannya untuk membangun hirarki kelas turunan, yang mana masing-masing turunan mewarisi semua akses kode maupun data kelas dasarnya. Objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa harus mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.) Suatu kelas dapat diciptakan berdasarkan kelas lain. Kelas baru ini mempunyai sifatsifat yang sama dengan kelas pembentuknya, ditambah sifat-sifat khusus lainnya. Dengan pewarisan kita dapat menciptakan kelas baru yang mempunyai sifat sama dengan kelas lain tanpa harus menulis ulang bagian-bagian yang sama. Pewarisan merupakan unsur penting dalam pemrograman berorientasi objek dan merupakan blok bangunan dasar pertama penggunaan kode ulang (code reuse). Yang perlu menjadi catatan di sini adalah bahwa data dan fungsi yang dapat diwariskan hanya yang bersifat public dan protected. Untuk data dan fungsi private tetap tidak dapat diwariskan. Hal ini disebabkan sifat protected yang hanya dapat diakses dari dalam kelas saja. Sifat pewarisan ini menyebabkan kelas-kelas dalam pemrograman berorientasi objek membentuk hirarki kelas mulai dari kelas dasar, kelas turunan pertama, kelas turunan kedua dan seterusnya. Sebagai gambaran misalnya ada hirarki kelas unggas.
Sebagai kelas dasar adalah Unggas. Salah satu sifat Unggas adalah bertelur dan bersayap. Kelas turunan pertama adalah Ayam, Burung dan Bebek. Tiga kelas turunan ini mewarisi sifat kelas dasar Unggas yaitu bertelur dan bersayap. Selain mewarisi sifat kelas dasar, masing-masing kelas turunan mempunyai sifat khusus, Ayam berkokok, Burung terbang dan Bebek berenang. Kelas Ayam punya kelas turunan yaitu Ayam Kampung dan Ayam Hutan. Dua kelas ini mewarisi sifat kelas Ayam yang berkokok. Tetapi dua kelas ini juga punya sifat yang berbeda, yaitu: Ayam Kampung berkokok panjang halus sedangkan Ayam hutan berkokok pendek dan kasar. 3. Polimorphisme (Polymorphism) Memberikan satu aksi untuk satu nama yang dipakai bersama pada satu hirarki kelas, yang mana masing-masing kelas hirarki menerapkan cara yang sesuai dengan dirinya. Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang Pemrograman JAVA
4
berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa 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 orientasi-objek menekankan konsep berikut: 1. Class
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. 2. Objek
Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. 3. Abstraksi
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.
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objekobjek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagi administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah Pemrograman JAVA
5
dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki job descriptionnya sendiri. KONSTRUKTOR DAN DESTRUKTOR Konstruktor adalah fungsi khusus anggota kelas yang otomatis dijalankan pada saat penciptaan objek (mendeklarasikan instance). Konstruktor ditandai dengan namanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai tipe hasil, bahkan juga bukan bertipe void. Biasanya konstruktor dipakai untuk inisialisasi anggota data dan melakukan operasi lain seperti membuka file dan melakukan alokasi memori secara dinamis. Meskipun konstruktor tidak harus ada di dalam kelas, tetapi jika diperlukan konstruktor dapat lebih dari satu. Tiga jenis konstruktor: 1. Konstruktor default : tidak dapat meneriman argumen, anggota data diberi nilai awal tertentu 2. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal dari parameter. 3. Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota data diberi nilai awal dari objek lain. Destruktor adalah pasangan konstruktor. Pada saat program menciptakan objek secara otomatis konstruktor akan dijalankan, yang biasanya dimaksudkan untuk memberi nilai awal variabel private. Fungsi destruktor (penghancur atau pelenyap) secara otomatis akan dijalankan pada saat berakhirnya kehidupan objek. Fungsi destruktor adalah untuk mendealokasikan memori dinamis yang diciptakan konstruktor. PENGANTAR JAVA Java adalah bahasa pemrograman serbaguna untuk membuat program seperti PASCAL atau C++ yang mendukung sumber daya Internet (web) dan mendukung aplikasi klien/server baik dalam jaringan lokal (LAN) maupun WAN. Java dikembangkan oleh Sun Microsystems pada Agustus 1991 dengan nama semula OAK oleh James Gosling. OAK merupakan kepanjangan dari Object Application Kernel dan pada tahun 1995 berganti nama menjadi JAVA. Java merupakan hasil perpaduan dari sifat sejumlah bahasa pemrograman yaitu C, C++, Object-C, SmallTalk dan Common LISP. Java dapat dijalankan pada sembarang komputer dengan sembarang sistem operasi. Ketidakbergantungan terhadap platform sering dinyatakan dengan istilah portabilitas. Tingkat portabilitas Java tidak hanya pada program sumber (source code) tetapi juga pada tingkat kode biner (bytecode) Java pada berbagai sistem operasi : SISTEM OPERASI VENDOR AIX IBM DG/UX Data General Corporation Digital OpenVMS Digital Equipment Corporation Digital Unix Digital Equipment Corporation HP-UX Hewlett Packard IRIX Silicon Graphics Linux Banyak perusahaan MacOS Apple Netware Novell Pemrograman JAVA
6
OS/2 OS/390 dan OS/400 Solaris Keluarga Windows
IBM IBM Sun Microsystems Microsoft Corporation
Situs yang dapat Anda kunjungi untuk mencari informasi dan men-download mengenai Java adalah http://java.sun.com/ Program Java dapat dibagi menjadi : 1. Applet adalah program yang dibuat dan diletakkan pada web server dan diakses melalui web browser yang memiliki kemampuan Java, misal Netscape Navigator, Internet Explorer, HotJava dan sebagainya. 2. Aplikasi adalah program yang dibuat dengan Java yang bersifat umum tanpa menggunakan perangkat lunak web browser. Untuk memprogram Java, Anda dapat menggunakan bermacam-macam perangkat lunak, seperti : J2SDK (Java 2 System Development Kit) yang disediakan oleh Sun Microsystems Semantic Café Microsoft Visual J++ Borland JBuilder Program pada J2SDK adalah : javac (kompiler) digunakan untuk mengkompilasi berkas sumber kode Java kedalam bytecode. Hasil kompilasi akan menghasilkan file dengan ekstensi .class java (interpreter) digunakan untuk menjalankan berkas bytecode (class) jdb (debugger) berfungsi sebagai interpreter dan dapat menghentikan eksekusi program pada posisi yang dikehendaki oleh pemrogram (untuk melacak kesalahan program) appletviewer berguna untuk menampilkan applet javadoc digunakan untuk mengkonversi berkas sumber kode java ke dalam berkas HTML javah berfungsi untuk menghasilkan header C dan berkas kode sumber C berdasarkan berkas bytecode Java setelah Anda menginstall program Java, tambahkan file autoexec.bat dengan isi : CLS ECHO OFF CLS SET CLASSPATH=.;C:\J2SDK1.4.2_12\LIB\TOOLS.JAR PATH C:\J2SDK1.4.2_12\BIN Untuk membuat aplikasi Java, lakukan langkah berikut : 1. Buat program Java dengan menggunakan teks editor, misalnya : NOTEPAD lalu simpan program dengan ekstensi .java 2. Kompilasi program dengan perintah : javac
3. Jika terdapat kesalahan, perbaiki program lalu kompilasi ulang Pemrograman JAVA
7
4. Setelah program benar, jalankan program dengan perintah : java Contoh : // nama file selamatbelajar.java public class selamatbelajar { public static void main (String[ ] args) { System.out.println("Selamat Belajar Java"); } }
(1) (2) (3) (4) (5) (6) (7) (8)
Hasil : Selamat Belajar Java Keterangan : Baris (1) menyatakan komentar yang berfungsi menjelaskan kepada pembaca program Baris (3) merupakan bagian yang mengawali pendefinisian kelas berupa suatu blok yang diawali simbol { dan diakhiri dengan } pada baris (8) Definisi main() terdapat pada baris (4) sampai (7) yang berfungsi sebagai awal pengeksekusian. Kata public menyatakan bahwa metode ini dapat dipanggil dari mana saja Kata static menyatakan bahwa metode ini bersifat sama untuk semua instan kelas Kata void menyatakan bahwa metode ini tidak memberikan nilai balik Kata String[] menyatakan kelas yang berhubungan dengan penanganan huruf Kata args menyatakan array untuk tempat memperoleh baris perintah Baris (6) merupakan pernyataan untuk menampilkan tulisan Kata System.out digunakan untuk menangani keluaran standar pada Java Kata println digunakan untuk mencetak ke layar TUGAS Buat program dengan Java untuk menampilkan Biodata Pribadi Anda !
Pemrograman JAVA
1
DASAR BAHASA JAVA KARAKTER yaitu elemen terkecil pada bahasa pemrograman, berupa : Huruf (A s/d Z dan a s/d z) Angka (0 s/d 9) Simbol (misal * dan !) Kode kontrol (misal formfeed dan newline) Java tidak menggunakan himpunan kode ASCII (American Standard Code for Information Interchange) melainkan dengan himpunan Unicode yang dapat menampilkan huruf-huruf yang digunakan oleh berbagai bangsa selain huruf Latin. KATA KUNCI Java memiliki sejumlah kata yang bermakna khusus yang digolongkan sebagai kata kunci atau kata tercadang dan tidak dapat digunakan sebagai pengenal Misal : abstrac else interface super boolean extends long switch break final native synchronized byte finally new this case float null throw catch for package throws char goto private transient class if protected try const implements public void continue import return volatile do instanceof short while double int static PENGENAL Disebut juga sebagai identifier yaitu nama yang diciptakan oleh pemrogram dan digunakan dalam program untuk memberi nama kelas atau variabel. Aturan pemberian nama pengenal yaitu : Karakter pertama berupa huruf, tanda garis bawah atau dollar Karakter kedua dapat berupa sembarang huruf atau angka Panjang pengenal bebas Huruf kapital dan huruf kecil dibedakan Misal : x $_99 _nama NamaYangPanjangJugaBoleh TIPE DATA PRIMITIF Tipe data ini meliputi : 1. 2. 3. 4.
byte short int long
Tipe data bilangan bulat
Pemrograman JAVA
2
5. float 6. double
Tipe data bilangan real
7. char
Tipe data yang mewakili sebuah karakter
8. boolean
Tipe data yang menyatakan keadaan logika true atau false
Keterangan : 1. Tipe Bilangan Bulat Perbedaan masing-masing tipe data terletak pada jangkauan nilai yang dicakup. TIPE UKURAN JANGKAUAN byte 8 bit -128 s/d 127 short 16 bit -32.768 s/d 32.767 int 32 bit -2.147.483.648 s/d 2.147.483.647 long 64 bit -9.232.372.036.854.775.808 s/d 9.232.372.036.854.775.807 2. Tipe Bilangan Titik Mengambang TIPE UKURAN float 32 bit, presisi 6-7 digit double 64 bit, presisi 14-15 digit
JANGKAUAN -3.4E38 s/d +3.4E38 -1.7E308 s/d +1.7E308
3. Tipe Data Char Digunakan untuk menyatakan sebuah karakter yang tercakup dalam himpunan kode Unicode 4. Tipe Data Boolean Digunakan untuk menangani keadaan logika dengan dua kemungkinan nilai TRUE yang berarti benar dan FALSE yang berarti salah LITERAL adalah suatu nilai yang dituliskan pada kode sumber Java. Literal dapat dibedakan menjadi : 1. Literal Bilangan Literal bilangan bulat tergolong sebagai long. Simbol L dapat ditambahkan dibelakang bilangan, misal : 4L atau -4L. Suatu bilangan bulat dapat dinyatakan dalam bentuk dalam bentuk oktal dengan diawali dengan angka 0 atau heksadesimal dengan diawali dengan angka 0x Misal : //berkas : literal.java public class literal { public static void main (String[] args) { System.out.println("Bilangan Desimal :" + 17); System.out.println("Bilangan Oktal :" + 017); System.out.println("Bilangan Heksadesimal :" + 0x17); } } Hasil :
Bilangan Desimal :17 Bilangan Oktal :15 Bilangan Heksadesimal :23
Hasil konversi Oktal 17 ke Desimal
Pemrograman JAVA
3
Literal titik mengambang digunakan untuk menyatakan bilangan real. Notasi yang digunakan adalah tanda titik yang menyatakan pecahan. Selain itu simbol e atau E biasa digunakan untuk menyatakan eksponensial. Contoh : LITERAL KETERANGAN 0.1 Berarti 0,1 .5 Berarti 0,5 2e45 Identik dengan 2 x 10 pangkat 45 2E-45 Identik dengan 2 x 10 pangkat -45 2e45F Menghasilkan bilangan bertipe float 2. Literal Karakter Ditulis dalam tanda petik tunggal. Contoh : LITERAL KETERANGAN ‘a’ Karakter huruf a ‘$’ Karakter simbol $ ‘4’ Karakter angka 4 Pada Java terdapat istilah kode escape yaitu kode karakter yang penulisannya diawali dengan simbol \ (backslash) KODE KETERANGAN \b Backspace \f Formfeed \n Newline \r Carriage return \t Tab \’ Petik tunggal \” Petik ganda \ddd Oktal (dd bernilai 0 s/d 377) \xdd Heksadesimal (dd bernilai 1 s/d FF) Java tidak mengenal \a (bel) dan \v (tab). Untuk menampilkan karakter Unicode digunakan \udddd 3. Literal Boolean Literal yang hanya dapat berupa kata kunci TRUE atau FALSE 4. Literal String String berarti deretan atau kombinasi sejumlah karakter yang ditulis dalam tanda petik ganda, misal : “Aditya Fajar Ramadhan” “ 2 x 2 = 4” “” (tanda petik ganda dua kali tanda spasi yang berarti string kosong) Contoh : //berkas : literalstring.java public class literalstring { public static void main (String[] args) { System.out.println("Aditya Fajar\nRamadhan"); System.out.println("Sekar\tAyu"); System.out.println("Belajar \'JAVA\'"); } }
Pemrograman JAVA
4
Hasil : Aditya Fajar Ramadhan Sekar Ayu Belajar 'JAVA' 5. Definisi Konstanta Definisi konstanta dalam Java dengan menggunakan kata kunci final. Misalnya final double PI = 3.14; Contoh : //berkas : lingkaran.java public class lingkaran { public static void main (String[] args) { final double PI = 3.14; double jarijari = 10; double luas, keliling; luas = PI * jarijari * jarijari; keliling = 2 * PI * jarijari; System.out.println("Panjang Jari-jari = "+ jarijari); System.out.println("Luas Lingkaran = "+ luas); System.out.println("Keliling Lingkaran = "+ keliling); } } Hasil : Panjang Jari-jari = 10.0 Luas Lingkaran = 314.0 Keliling Lingkaran = 62.800000000000004 VARIABEL Variabel menyatakan suatu lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu nilai dimana nilai tersebut dapat diubah. Variabel dapat dibayangkan sebagai suatu kotak yang dapat diisi dan pada saat lain dapat diubah. Variabel dalam program Java perlu dideklarasikan. Bentuk pendeklarasian variabel dengan menggunakan perintah : tipe namaVar [,namaVarI] Contoh : int jumlahBarang; float bilPecahan; char huruf; string kalimat; float nilai1, nilai2, nilai3; Untuk memberikan nilai terhadap variabel adalah dengan menggunakan tanda =. Nilai yang diberikan dapat berupa suatu literal, variabel atau ekspresi yang melibatkan operator. Contoh : jumlahBarang=10; bilReal = 2.5f; (bilangan real diisi dengan 2,5 bertipe float) huruf = ‘A’; kalimat=”Halo, Annissa...”; Pemberian nilai juga dapat dilakukan saat variabel dideklarasikan. Bentuk penulisannya : tipe variabel = nilaiAwal; misal : double jarijari=10; Java memperkenankan penugasan sejumlah variabel dengan sebuah nilai, misalnya x=y=z=0; Pemrograman JAVA
5
KOMENTAR Komentar biasa dipakai dalam program dengan tujuan untuk memberikan penjelasan atau informasi kepada pembaca program. Komentar dapat berupa nama pembuat program, tanggal pembuatan program, fungsi program ataupun penjelasan untuk bagian tertentu dalam program. Untuk memberikan komentar digunakan tanda : // untuk komentar satu baris /* komentar baris pertama komentar baris kedua */ Komentar terkadang digunakan untuk mematikan bagian program tertentu agar tidak dianggap sebagai perintah dan sering digunakan untuk pengujian program Contoh : /* ---------------------------------------------Program menghitung Luas dan Keliling Lingkaran Dibuat oleh : Yudi Irawan Tanggal : 8-8-2008 ---------------------------------------------- */ //nama file berkas : komentar.java public class komentar { public static void main (String[] args) { final double PI = 3.14; // pendefinisian konstanta double jarijari = 10; double luas, keliling; luas = PI * jarijari * jarijari; //menghitung luas keliling = 2 * PI * jarijari; // menghitung keliling System.out.println("Panjang Jari-jari = "+ jarijari); System.out.println("Luas Lingkaran = "+ luas); System.out.println("Keliling Lingkaran = "+ keliling); } } TUGAS 1. Buat essay mengenai Unicode berikut tabel kodenya 2. Buat program untuk menghitung Diskon dan Harga Bayar jika diketahui : Pembelian = Rp. 1.000.000,Diskon = Rp. .... (10% ) Harga Bayar = Rp. .... (Pembelian-Diskon) 3. Buat program untuk menampilkan tulisan sebagai berikut : “Anda diundang rapat hari Jum’at / pukul 14.00 WIB” 4. Buat program untuk mencari nilai Determinan dengan rumus : D = b2 – 2 ac, jika diketahui nilai a=1, b=3 dan c= 2,5
Pemrograman JAVA
6
Jawab : Soal 2 : //nama file berkas : diskon.java public class diskon { public static void main (String[] args) { float beli= 1000000; double diskon; double bayar; diskon = 0.1 * beli; bayar = beli - diskon; System.out.println("Jumlah Pembelian = Rp."+ beli); System.out.println("Diskon = Rp. "+ diskon); System.out.println("Harga Bayar = Rp. "+ bayar); } } Soal 3 : //nama file berkas : undangan.java public class undangan { public static void main (String[] args) { System.out.println("\"Anda diundang rapat hari Jum'at / pukul 14.00 WIB\""); } } Soal 4 : //berkas : determinan.java public class determinan { public static void main (String[] args) { float D; int a=1; int b=3; float c=2.5F; D = (b*b)-(2*a*c); System.out.println("Nilai a=1, b=3 dan c=2,5"); System.out.println("Determinan = "+ D); } }
Pemrograman JAVA
1
OPERATOR DAN EKSPRESI EKSPRESI Ekspresi atau ungkapan adalah suatu bentuk yang menghasilkan suatu nilai . Dalam bentuk sederhana, ekspresi berupa sebuah literal atau variabel. dalam bentuk yang lebih kompleks, suau ekspresi melibatkan operator dan operand, misal : 1 + 2 merupakan suatu ekpresi yang menghasilkan nilai 3. Dalam hal ini 1 dan 2 bertindak sebagai operand dan + berperan sebagai operator. OPERATOR Operator adalah simbol atau karakterkhusus (misal + dan *) yang digunakan dalam suatu ekspresi untuk menghasilkan suatu nilai. Java menyediakan sejumlah kelompok operator, meliputi : operator aritmatika operator penambahan dan pengurangan operator penugasan operator pembandingan operator logika operator bit Menurut jumlah operand yang dilibatkan, operator diklasifikasikan menjadi : operator unary, yaitu operator yang hanya melibatkan satu operand, misalnya -4 operator binary, yaitu operator yang hanya melibatkan dua buah operand, misalnya 1+2 operator tertiary, yaitu operator yang hanya melibatkan tiga buah operand, misalnya a?b:c 1. Operator Aritmatika Operator ini digunakan untuk melakukan perhitungan aritmatika yang berlaku untuk bilangan bulat maupun titik mengambang OPERATOR KETERANGAN Penjumlahan + Tanda Plus – Pengurangan Tanda Minus Perkalian * Pembagian / Sisa pembagian % Operator *, / dan % mempunyai prioritas yang sama tetapi lebih tinggi daripada + atau – yang berkedudukan sebagai operator binary. Contoh : //berkas : aritmatika.java public class aritmatika { public static void main (String[] args) { System.out.println("1 + 2 * 3 = "+ (1+2*3)); System.out.println("13 / 5 = "+ (13/5)); System.out.println("13 / 5.2 = "+ (13/5.2)); System.out.println("13 % 5 = "+ (13%5)); } } Pemrograman JAVA
2
Hasil : 1 + 2 * 3 = 7 13 / 5 = 2 13 / 5.2 = 2.5 13 % 5 = 3 2. Operator Penambahan dan Pengurangan Pada Java, Anda dapat memberikan pernyataan sebagai berikut : x = x+1; yang berarti isi variabel x dinaikkan sebesar 1 y = y – 1; yang berarti isi variabel y berkurang sebesar 1 Operasi di atas seringkali dilaksanakan dengan menggunakan operator ++ atau --, misalnya : y = x++; y = y--; Operator ++ dan – dapat dikenakan pada bilangan bulat maupun bilangan real. NILAI SEMULA PERNYATAAN HASIL Y HASIL X 5 Y = X++; 5 6 5 Y = ++X; 6 6 5 Y = X--; 5 4 5 Y = --X 4 4 Contoh : //berkas : penambahan.java public class penambahan { public static void main (String[] args) { int x, y; x = 5; System.out.println("Nilai awal x = "+ x); y = 8 - x++; System.out.println("Operasi y = 8 - x++ akan menghasilkan nilai x = " + x +" dan y= "+ y); x = 5; System.out.println("Nilai awal x = "+ x); y = 8 - ++x; System.out.println("Operasi y = 8 - ++x akan menghasilkan nilai x = " + x +" dan y= "+ y); x = 5; System.out.println("Nilai awal x = "+ x); y = 8 - x--; System.out.println("Operasi y = 8 - x-- akan menghasilkan nilai x = " + x +" dan y= "+ y); x = 5; System.out.println("Nilai awal x = "+ x); y = 8 - --x; System.out.println("Operasi y = 8 - --x akan menghasilkan nilai x = " + x +" dan y= "+ y); } } Pemrograman JAVA
3
Hasil : Nilai awal x = 5 Operasi y = 8 - x++ akan menghasilkan nilai x = 6 dan y= 3 Nilai awal x = 5 Operasi y = 8 - ++x akan menghasilkan nilai x = 6 dan y= 2 Nilai awal x = 5 Operasi y = 8 - x-- akan menghasilkan nilai x = 4 dan y= 3 Nilai awal x = 5 Operasi y = 8 - --x akan menghasilkan nilai x = 4 dan y= 4 3. Operator Penggabungan Pada Java, operator + dapat juga dikenakan pada string. Gunanya adalah untuk menggabungkan dua buah string menjadi sebuah string baru. Misal : “Selamat Belajar” + “ Java” akan menghasilkan “Selamat Belajar Java” "Bilangan :" +8 akan menghasilan "Bilangan :8" Contoh : //berkas : string.java public class string { public static void main (String[] args) { System.out.println("Selamat Belajar"+ " Java"); System.out.println("Bilangan : "+ 8); } } Hasil : Selamat Belajar Java Bilangan : 8 4. Operator Bit Java mendukung 7 buah operator yang beroperasi pada level bit (0 dan 1) yaitu : & (DAN untuk biner) | (ATAU untuk biner) ^ (ATAU EKSKLUSIF) ~ (NOT untuk biner) << (geser kiri) >> (geser kanan) >>> (geser kanan tak bertanda) Contoh : //berkas : bit.java public class bit { public static void main (String[] args) { System.out.println("Hasil dari 9 & 10 = "+ (9&10)); System.out.println("Hasil dari 9 | 10 = "+ (9|10)); System.out.println("Hasil dari ~10 = "+ (~10)); System.out.println("Hasil dari 29 << 1 = "+ (29<<1)); System.out.println("Hasil dari 29 >> 1 = "+ (29>>1)); System.out.println("Hasil dari 29 >>> 1 = "+ (29>>>1)); } }
Pemrograman JAVA
4
Hasil : Hasil dari 9 & 10 = 8 Hasil dari 9 | 10 = 11 Hasil dari ~10 = -11 Hasil dari 29 << 1 = 58 Hasil dari 29 >> 1 = 14 Hasil dari 29 >>> 1 = 14 5. Operator Penugasan Berguna untuk memberikan nilai ke suatu variabel OPERATOR KETERANGAN Pemberian nilai = Penambahan bilangan += Penguranganbilangan -= Pengalian bilangan *= Pembagian bilangan /= Pemerolehan sisa bagi %= Y &= X identik dengan Y=Y&X &= Y ^= X identik dengan Y=Y^X ^= Y |= X identik dengan Y=Y|X |= Y <<= X identik dengan Y=Y<<X <<= Y >>= X identik dengan Y=Y>>X >>= Y >>>= X identik dengan Y=Y>>>X >>>= Contoh : //berkas : penugasan.java public class penugasan { public static void main (String[] args) { float a=5f; System.out.println("Nilai a=5"); System.out.println("Nilai a +=2 adalah "+ (a+=2)); a=5f; System.out.println("Nilai a -=2 adalah "+ (a-=2)); a=5f; System.out.println("Nilai a /=2 adalah "+ (a/=2)); a=5f; System.out.println("Nilai a *=2 adalah "+ (a*=2)); a=5f; System.out.println("Nilai a %=2 adalah "+ (a%=2)); } } Hasil : Nilai a=5 Nilai a +=2 adalah 7.0 Nilai a -=2 adalah 3.0 Nilai a /=2 adalah 2.5 Nilai a *=2 adalah 10.0 Nilai a %=2 adalah 1.0 Operator dalam suatu ekspresi memiliki prioritas pekerjaan yang berbeda-beda. Itulah sebabnya jika terdapat ekspresi yang melibatkan sejumlah operator, pekerjaannya ditentukan oleh prioritas masing-masing. Pemrograman JAVA
5
PRIORITAS Tertinggi
Terendah
OPERATOR . [] () ++ -- ! ~ instanceof new (type) ekspresi - (tanda negatif) + (tanda positif) ~ ! * / % + << >> >>> -e -r < <= > >= == != & ^ | && || ?: = += -= *= /= %= ^= &= |= <<= >>= >>>=
PENGARAH TIPE (TYPE-CASTING) Adakalanya diperlukan langkah untuk mengubah suatu tipe data menjadi tipe data lain. Proses untuk mengubah suatu tipe ke tipe yang lain. Bentuk penulisan : (tipe_data) data Misal : int i = 65; char huruf; huruf = char(i); Agar tidak ada nilai yang hilang, tipe tujuan harus memiliki ukuran yang lebih besar atau paling tidak sama dengan ukuran tipe sumber. TIPE SUMBER TIPE TUJUAN short, char, int, long, float, double byte int, long, float, double short int, long, float, double char long, float, double int long, double long double float Contoh : //berkas : tipecast.java public class tipecast { public static void main (String[] args) { int awal=28; double akhir; akhir = (double) awal; System.out.println("Nilai Awal = "+ awal); System.out.println("Nilai Sesudah Konversi = "+ akhir); } } Pemrograman JAVA
6
Hasil : Nilai Awal = 28 Nilai Sesudah Konversi = 28.0
TUGAS 1. Buatlah program untuk menghitung : Keliling, Luas Permukaan dan Isi dari sebuah bola dengan rumus : Keliling = 2 π r Luas Permukaan = 4/3 π r3 Isi = 4 π r2 Jika diketahui nilai r = 314 ! 2. Buat program untuk mencari hasil operasi bilangan : 25 (10) + 25 (10) = … (8) 2 (10) x 5 (10) = …(16) 81 (10) / 9 (10) = …(8) 3. Perusahaan telepon di kota XYZ mempunyai tarif Rp. 250,- per pulsa. Setiap langganan dikenakan biaya langganan sebesar Rp. 20.000,- per bulan. Buatlah program untuk menghitung tagihan langganan dengan menggunakan konstanta dengan keluaran sebagai berikut : Nomor Pelanggan : 001 Nama Pelanggan : Aditya Ramadhan Bulan Tagihan : April Banyaknya Pulsa Pemakaian : 110 Jumlah Tagihan Bulan April adalah sebesar Rp. 47500.0
Pemrograman JAVA
1
OPERASI MASUKAN DAN KELUARAN STREAM STANDAR Pada saat program Java dijalankan, terdapat tiga buah stream yang dengan sendirinya disediakan Java, yaitu : 1. System.in berguna untuk menangani pembacaan dari keyboard (standar input) 2. System.out berguna untuk mengirimkan keluaran ke layar (standar output) 3. System.err digunakan untuk mengirimkan kesalahan (didalam system Unix dikenal dengan standar error) MENAMPILKAN TEKS Untuk menampilkan teks ke layar digunakan metode println() yang merupakan milik System.out. Selain itu terdapat metode print() yang tidak menambahkan newline sehingga tidak terjadi perpindahan baris. Contoh : //nama file berkas : cetak.java public class cetak { public static void main (String[] args) { System.out.print("Belajar Bahasa Java"); System.out.println(" Itu Mudah"); System.out.print("Baris ini tercetak dibawah"); } } Hasil : Belajar Bahasa Java Itu Mudah Baris ini tercetak dibawah MEMBACA DARI KEYBOARD Sayang sekali Java tidak mendukung perintah sederhana untuk memasukkan data dari keyboard. Satu-satunya pernyataan sederhana yang tersedia adalah membaca sebuah karakter dengan menggunakan blok try ... catch. Oleh karena itu perlu dibuat suatu rutin yang memudahkan pembacaan data dari keyboard dimana tombol enter dianggap sebagai akhir masukan. Stream berhubungan dengan proses untuk membaca data dari suau sumber atau mengirimkan data ke suatu tujuan. Sebagai contoh, untuk menampilkan informasi ke layar dengan menggunakan System.out.println() ataupun dengan System.err.println() untuk menampilkan pesan kesalahan . Pada Java terdapat banyak kelas yang berhubungan dengan stream, namun secara prinsip terdapat dua buah kelas yang menjadi dasar bagi kelas-kelas lain yang berhubungan dengan stream. yaitu kelas InputStream dan OutputStream. Untuk menggunakan stream seringkali Anda diharuskan untuk meng-impor dengan memberikan pernyataan import java.io.*. Hal ini disebabkan kebanyakan kelas yang berhubungan dengan stream berada pada paket java.io
Pemrograman JAVA
2
Contoh : //nama file berkas : masuk.java import java.io.*; public class masuk { public static String baca() { int karakter; String str=""; boolean selesai = false; while (!selesai) { try { karakter = System.in.read(); if (karakter < 0 || (char) karakter =='\n') selesai = true; else if ((char) karakter != '\r') str = str + (char) karakter; } catch(java.io.IOException e) { System.err.println("Ada Kesalahan...!"); selesai=true; } } return str; } } Simpan program dengan nama masuk.java dan disimpan pada direktori tempat Anda menyimpan program java. Selanjutnya kompilasi program sehingga terbentuk masuk.class yang akan digunakan oleh program yang memerlukan pemasukan data dari keyboard. Selanjutnya buat program untuk memasukkan data dengan menggunakan kelas baru. Contoh : //nama file berkas : MasukanNama.java public class MasukanNama { public static void main(String[] args) { System.out.print("Nama anda ? "); String nama=masuk.baca(); System.out.print("Halo..."+ nama + " Apa Kabar ?"); } } Hasil : Nama anda ? Yudi Irawan Halo...Yudi Irawan Apa Kabar ? Metode lain yang digunakan adalah read() dengan tujuan untuk membaca sebuah byte data dari stream masukan. Contoh : //nama file berkas : bacastring.java import java.io.*; Pemrograman JAVA
3
public class bacastring { public static void main (String[] args) { int karakter; String str=""; boolean selesai = false; System.out.print("Ketik suatu kalimat : "); while (!selesai) { try { karakter = System.in.read(); if (karakter < -1 || (char) karakter =='\n') selesai = true; else if ((char) karakter != '\r') str = str + (char) karakter; } catch(java.io.IOException i) { System.err.println("Ada Kesalahan...!"); selesai=true; } } System.out.println("Kalimat yang Anda ketik adalah : " + str); } } Hasil : Ketik suatu kalimat : Yudi Irawan Kalimat yang Anda ketik adalah : Yudi Irawan Pada program di atas, pembacaan terhadap standar input dilakukan secara terus-menerus selama hasil read() tidak bernilai -1 (variabel karakter), tidak berupa kode untuk tombol enter (dinyatakan dengan \n) atau terjadi suatu eksepsi. Pengendalian untuk keluar dari pengulangan dilakukan dengan variabel selesai dimana pengulangan terus dilakukan selama variabel bernilai false. Selain itu dapat pula digunakan metode DataInputStream yang digunakan untuk menangani proses pemasukan data dari input-device. Contoh : //nama file berkas : EntryData.java import java.io.*; public class EntryData { public static void main(String[] args) throws Exception { DataInputStream karakter=new DataInputStream (System.in); System.out.print("Masukkan N.P.M : "); String npm=karakter.readLine(); System.out.print("Masukkan Nama Anda : "); String nama=karakter.readLine(); System.out.println("Halo..."+nama +" NPM Anda adalah : "+npm); } } Pemrograman JAVA
4
Hasil : Masukkan N.P.M : 10494570 Masukkan Nama Anda : Yudi Irawan Chandra Halo...Yudi Irawan Chandra NPM Anda adalah : 10494570 Variabel karakter adalah objek yang digunakan untuk menampung data dari keyboard menggunakan metode readLine(). Pada bagian ini, kita akan menggunakan class BufferedReader yang berada di package java.io untuk mendapatkan input dari keyboard. Contoh : import java.io.*; public class input { public static void main( String[] args ) throws Exception { BufferedReader kata = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Masukkan Kode Bagian :"); String kode = kata.readLine(); System.out.print("Masukkan Nama Anda :"); String nama = kata.readLine(); System.out.println("Hello " + nama +" Kode bagian Anda : "+kode); } } Hasil : Masukkan Kode Bagian :A Masukkan Nama Anda :Yudi Irawan Chandra Hello Yudi Irawan Chandra Kode bagian Anda : A MENGGUNAKAN JOPTIONPANE Cara lain untuk mendapatkan input dari user adalah dengan menggunakan class JoptionPane yang didapatkan dari javax.swing package. JoptionPane memudahkan memunculkan dialog box standard yang memberikan kepada user sebuah nilai atau menginformasikan sesuatu. Contoh : import javax.swing.JOptionPane; public class input1 { public static void main(String[] args) { String input1; String input2; int nilai1; int nilai2; int jumlah, kali; input1 = JOptionPane.showInputDialog("Masukan angka pertama"); input2 = JOptionPane.showInputDialog("Masukan angka Kedua"); nilai1 = Integer.parseInt(input1); nilai2 = Integer.parseInt(input2); Pemrograman JAVA
5
jumlah = nilai1 + nilai2; kali = nilai1 * nilai2; JOptionPane.showMessageDialog(null,"Hasil Penjumlahan" +jumlah,"Jumlah",JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(null,"Hasil Perkalian " +kali,"Perkalian",JOptionPane.PLAIN_MESSAGE); } } Hasil :
MENGKONVERSI STRING KE TIPE YANG LAIN Rutin untuk membaca data dari keyboard menghasilkan data berkelas String sehingga apabila ingin dirubah ke tipe data lain digunakan metode valueOf misaknya : Integer.valueOf(nilaiString).intValue() digunakan untuk mengkonversi string ke tipe int Double.valueOf(nilaiString).doubleValue() digunakan untuk mengkonversi string ke tipe double Float.valueOf(nilaiString).floatValue() digunakan untuk mengkonversi string ke tipe float Contoh : //nama file berkas : jumlah.java import java.io.*; public class jumlah { public static void main(String[] args) throws Exception { DataInputStream karakter=new DataInputStream (System.in); System.out.print("Nilai ke-1 : "); String nil1=karakter.readLine(); int bnil1=Integer.valueOf(nil1).intValue(); System.out.print("Nilai ke-2 : "); String nil2=karakter.readLine(); int bnil2=Integer.valueOf(nil2).intValue(); int jumlah=bnil1+bnil2; System.out.println("Jumlah bilangan adalah : "+jumlah); Pemrograman JAVA
6
} } Hasil : Nilai ke-1 : 12 Nilai ke-2 : 18 Jumlah bilangan adalah : 30 TUGAS : 1. Buat program untuk menghitung konversi suhu Celcius ke Fahrenheit dan Reamur dengan menggunakan input keyboard untuk nilai Celciusnya. Rumus : F = (9/5)*C + 32 dan R = 4/5 * C 2. Buat program untuk menghitung nilai akhir dengan rumus NA = 20% dari nilai tugas + 30% dari nilai mid + 50% nilai final 3. Buatlah sebuah program yang akan menghitung isi kotak dan luas permukaan kotak. dengan rumus : Isi = Panjang x Lebar x Tinggi Luas permukaan = 2x(PanjangxLebar) + 2x(PanjangxTinggi) + 2x(LebarxTinggi)
Pemrograman JAVA
1
EKSPRESI KONDISI DAN PERNYATAAN BERKONDISI EKSPRESI BOOLEAN Merupakan ekspresi yang menghasilkan nilai yang dapat berupa benar (true) atau salah (false). Ekspresi ini biasa digunakan pada pernyataan berkondisi maupun pernyataan pengulangan. OPERATOR PEMBANDING Operator ini disebut juga dengan operator opreasional yang digunakan untuk melakukan pembandingan. OPERATOR MAKNA == Kesamaan != Ketidaksamaan > Lebih dari < Kurang dari >= Lebih dari atau sama dengan <= Kurang dari atau sama dengan Contoh : //nama file berkas : relasi.java public class relasi { public static void main(String[] args) { int a=1; int b=2; System.out.println("Nilai a=1 dan b=2"); System.out.println("Apakah a == b ? "+(a==b)); System.out.println("Apakah a != b ? "+(a!=b)); System.out.println("Apakah a < b ? "+(a b ? "+(a>b)); System.out.println("Apakah a <= b ? "+(a<=b)); System.out.println("Apakah a >= b ? "+(a>=b)); } } Hasil : Nilai a=1 dan b=2 Apakah a == b ? false Apakah a != b ? true Apakah a < b ? true Apakah a > b ? false Apakah a <= b ? true Apakah a >= b ? false OPERATOR LOGIKA Digunakan untuk membentuk suatu keadaan logika (boolean) berdasarkan sebuah atau dua buah ekspresi kondisi (tergantung operator logika yang digunakan)
Pemrograman JAVA
2
OPERATOR && || !
MAKNA dan atau bukan
Contoh : //nama file berkas : logika.java public class logika { public static void main(String[] args) { char huruf=' '; System.out.print("Masukkan sebuah karakter : "); try { huruf=(char) System.in.read(); } catch (java.io.IOException e) { } System.out.print("Apakah karakter "+huruf+" berupa angka ? "); System.out.println((huruf >='0' && huruf <= '9')); System.out.print("Apakah karakter "+huruf+" berupa huruf ? "); System.out.println((huruf >='A' && huruf <= 'Z' || huruf >='a' && huruf <= 'z')); } } Hasil : Masukkan sebuah karakter : Y Apakah karakter Y berupa angka ? false Apakah karakter Y berupa huruf ? true PERNYATAAN IF Merupakan salah satu bentuk pernyataan berkondisi yang berguna untuk pengambilan keputusan terhadap dua buah kemungkinan. Pernyataan if sederhana Bentuk penulisan : if (kondisi) { blok pernyataan yang dijalankan jika kondisi benar; } Di dalam tanda { } dapat diletakkan pernyataan-pernyataan yang akan dijalankan sekiranya kondisi if bernilai benar. Jika hanya terdapat satu pernyataan maka tanda { } dapat dihilangkan. Contoh : //nama file berkas : kondisi1.java import java.io.*; public class kondisi1 { public static void main(String[] args) throws Exception { DataInputStream nilai=new DataInputStream (System.in); Pemrograman JAVA
3
System.out.print("Total Belanja Anda Rp. : "); String snilai=nilai.readLine(); double total=Double.valueOf(snilai).doubleValue(); double diskon=0; if (total >= 1000000) diskon = 0.1 * total; System.out.println("Diskon Anda Rp. : "+diskon); System.out.println("Total Bayar Rp. : "+(total-diskon)); } } Hasil : Total Belanja Anda Rp. : 1000000 Diskon Anda Rp. : 100000.0 Total Bayar Rp. : 900000.0
Pernyataan if else if Bentuk penulisan : if (kondisi) { blok pernyataan jika kondisi benar; } else { blok pernyataan jika kondisi salah; } Contoh : //nama file berkas : kondisi2.java import java.io.*; public class kondisi2 { public static void main(String[] args) throws Exception { DataInputStream nilai=new DataInputStream (System.in); System.out.print("Total Belanja Anda Rp. : "); String snilai=nilai.readLine(); double total=Double.valueOf(snilai).doubleValue(); double diskon; if (total >= 1000000) diskon = 0.1 * total; else diskon = 0; System.out.println("Diskon Anda Rp. : "+diskon); System.out.println("Total Bayar Rp. : "+(total-diskon)); } }
Pemrograman JAVA
4
Hasil : Total Belanja Anda Rp. : 990000 Diskon Anda Rp. : 0.0 Total Bayar Rp. : 990000.0
Pernyataan if bersarang yaitu suatu if berada dalam pernyataan if. Contoh : //nama file berkas : kondisi3.java import java.io.*; public class kondisi3 { public static void main(String[] args) throws Exception { DataInputStream nilai=new DataInputStream (System.in); System.out.print("Masukkan Nilai Ujian : "); String snilai=nilai.readLine(); int ujian=Integer.valueOf(snilai).intValue(); char skor; if (ujian >= 90) skor ='A'; else if (ujian >= 80) skor ='B'; else if (ujian >= 60) skor ='C'; else if (ujian >= 50) skor ='D'; else skor ='E'; System.out.println("Skor Anda : "+skor); } } Hasil : Masukkan Nilai Ujian : 75 Skor Anda : C
OPERATOR BERKONDISI Operator ini dikenal dengan nama operator ternary karena melibatkan tiga buah argumen. Bentuk penulisan : ekspresi_kondisi ? nilai1(jika true) : nilai2(jika false) Contoh : //nama file berkas : kondisi4.java import java.io.*; public class kondisi4 { public static void main(String[] args) throws Exception { DataInputStream nilai=new DataInputStream (System.in);
Pemrograman JAVA
5
System.out.print("Masukkan Nilai-1 : "); String snilai1=nilai.readLine(); int nilai1=Integer.valueOf(snilai1).intValue(); System.out.print("Masukkan Nilai-2 : "); String snilai2=nilai.readLine(); int nilai2=Integer.valueOf(snilai2).intValue(); int hasil=nilai1 > nilai2 ? nilai1 : nilai2; System.out.println("Nilai terbesar adalah "+hasil); } } Hasil : Masukkan Nilai-1 : 60 Masukkan Nilai-2 : 80 Nilai terbesar adalah 80 PERNYATAAN SWITCH Pernyataan ini memungkinkan untuk melakukan sejumlah tindakan berbeda terhadap kemungkinan nilai. Bentuk penulisan : switch(ekspresi) { case nilaiSatu : pernyataan-1; break; case nilaiDua : pernyataan-2; break; case nilaiTiga : pernyataan-3; break; ... default : pernyataan-n; } Pernyataan break memegang peran yang sangat penting karena membuat eksekusi dilanjutkan ke pernyataan yang terletak sesudah tanda penutup switch ( } ). Jika tidak ada ekspresi case yang cocok, maka pernyataan setelah default akan dijalankan. Contoh : //nama file berkas : switch1.java import java.io.*; public class switch1 { public static void main(String[] args) throws Exception { DataInputStream nilai=new DataInputStream (System.in); System.out.print("Masukkan Kode Hari [1-7] : "); String snilai1=nilai.readLine(); int kode=Integer.valueOf(snilai1).intValue();
Pemrograman JAVA
6
switch(kode) { case 1 : System.out.println("Pilihan 1, Hari SENIN"); break; case 2 : System.out.println("Pilihan 2, Hari SELASA"); break; case 3 : System.out.println("Pilihan 3, Hari RABU"); break; case 4 : System.out.println("Pilihan 4, Hari KAMIS"); break; case 5 : System.out.println("Pilihan 5, Hari JUMAT"); break; case 6 : System.out.println("Pilihan 6, Hari SABTU"); break; case 7 : System.out.println("Pilihan 7, Hari MINGGU"); break; default : System.out.println("Pilihan Anda Salah...! \nUlangi Lagi"); } } } Hasil : Masukkan Kode Hari [1-7] : 8 Pilihan Anda Salah...! Ulangi Lagi TUGAS : 1. Buat program untuk menentukan suatu bilangan GENAP atau GANJIL Input : Masukkan sebuah bilangan bulat : 6 Output : Nilai 6 habis dibagi 2 Karena itu termasuk bilangan GENAP 2. Buat Program untuk menghasilkan input/output sebagai berikut : Menu Restaurant Mc'Cihuy ======================================= 1. Nasi Goreng Informatika Rp. 5.000,2. Nasi Soto Ayam Internet Rp. 7.000,3. Gado-gado Disket Rp. 4.500,4. Bubur Ayam LAN Rp. 4.000,======================================= Masukkan Pilihan Anda... :1 Pilihan No.1 Nasi Goreng Informatika Rp.5.000,-
Pemrograman JAVA
7
3. Perusahaan Susu Cap Nona ingin membuat sistem penjualan susu dengan tampilan sebagai berikut : Masukkan Kode Susu (1-3) : 2 Masukkan Jumlah Pembelian : 5 Masukkan Ukuran (B/S/K) : S Susu Indomilk Harga Susu Rp. 4000.00 Jumlah Pembelian Rp. 20000.00 Untuk daftar harga produk susu dapat dilihat pada tabel di bawah ini : Kode Susu 1
Nama Produk Dancow
2
Indomilk
3
Sustacal
Ukuran B = Besar S = Sedang K = Kecil B = Besar S = Sedang K = Kecil B = Besar S = Sedang K = Kecil
Harga Rp. 10.000,Rp. 4.250,Rp. 2.100,Rp. 8. 500,Rp. 4.000,Rp. 2.025,Rp. 17.000,Rp. 14.500,Rp. 8.300,-
Buat program dengan menggunakan nested switch !
Pemrograman JAVA
1
PENGULANGAN PROSES Untuk melakukan pengulangan terhadap suatu proses, Java menyediakan pernyataan : while do ... while for Berkaitan dengan pengulangan proses, Java juga mnyediakan pernyataan break untuk mengakhiri pengulangan dan continue untuk melakukan pengulangan kembali PERNYATAAN WHILE Pernyataan ini berguna untuk melakukan proses yang berulang. Bentuk pernyataan : while (kondisi) { blok pernyataan; } Diagram :
ekspresi
salah
benar pernyataan
Blok pernyataan akan dijalankan secara terus menerus selama kondisi bernilai benar. Contoh : //nama file berkas : ulang.java public class ulang { public static void main (String[] args) { int jumlah=1; while (jumlah<=5) { System.out.println("Putaran ke-"+jumlah); jumlah++; } } } Hasil : Putaran ke-1 Putaran ke-2 Putaran ke-3 Putaran ke-4 Putaran ke-5 Pemrograman JAVA
2
PERNYATAAN DO…WHILE Pernyataan ini menyerupai pernyataan while tetapi blok pernyataan yang terdapat dalam do..while paling tidak dieksekusi sekali. Bentuk pernyataan : do { blok pernyataan; } while (kondisi); Diagram :
pernyataan
ekspresi benar salah Contoh : //nama file berkas : ulang1.java public class ulang1 { public static void main (String[] args) { int jumlah=11; do { System.out.println("Putaran ke-"+jumlah); jumlah++; } while (jumlah<=5); System.out.println("Selesai…"); } } Hasil : Putaran ke-11 Selesai… PERNYATAAN FOR Pernyataan ini juga berfungsi untuk menangani pengulangan. Bentuk penulisan : for (inisialisasi ; kondisi ; penaikan/penurunan) { blok pernyataan; } Pada pernyataan ini : Bagian inisialisasi digunakan untuk memberikan nilai awal kepada variabel yang digunakan untuk mengontrol pengulangan Bagian kondisi digunakan untuk mengontrol pengulangan dilanjutkan atau diakhiri Pemrograman JAVA
3
Bagian penaikan/penurunan digunakan untuk menaikkan atau menurunkan nilai variabel pengontrol pengulangan
Contoh : //nama file berkas : ulang2.java public class ulang2 { public static void main (String[] args) { for(int i=1; i<=13; i++) { System.out.print(i+" "); } } } Hasil : 1 2 3 4 5 6 7 8 9 10 11 12 13 PENGULANGAN DALAM PENGULANGAN Ada kalanya persoalan memerlukan penanganan pengulangan didalam suatu proses pengulangan yang lain, misalnya menggunakan for yang diletakkan didalam for. Contoh : //nama file berkas : nestedfor.java public class nestedfor { public static void main (String[] args) { for(int i=1; i<=3; i++) { for (int j=1; j<=5; j++) { System.out.print("*"); } System.out.print("\n"); } } } Hasil : ***** ***** ***** KELUAR DARI PENGULANGAN Java menyediakan sebuah pernyataan yang berguna untuk keluar dari suatu pengulangan (loop) dengan menggunakan perintah break. Contoh : //nama file berkas : break1.java public class break1 { public static void main (String[] args) { for(int i=1; i<=13; i++) { Pemrograman JAVA
4
if (i == 5) break; System.out.print(i+" "); } System.out.print("Selesai... "); } } Hasil : 1 2 3 4 Selesai... PERNYATAAN CONTINUE Pernyataan ini digunakan untuk mengarahkan eksekusi ke kondisi pernyataan berulang, sehingga kondisi akan dievaluasi lagi. Contoh : //nama file berkas : kontinu.java public class kontinu { public static void main (String[] args) { for (int i=1; i<=15; i++) { if (i >=5 && i <=10) continue; System.out.println(i); } } } Hasil : 1 2 3 4 11 12 13 14 15
Tampak bahwa angka 5 sampai 10 tidak ditampilkan disebabkan oleh perintah CONTINUE
TUGAS 1. Buat program untuk menghasilkan deret bilangan Genap dan Ganjil antara 0 sampai dengan 50 2. Buat program untuk membuat tabel suhu CELCIUS, FAHRENHEIT dan REAMUR dengan menggunakan perintah DO-WHILE Ketentuan : Nilai Celcius 100 menurun ke 0 Fahrenheit = 1,8 x Celcius + 32 Reamur = 1,8 x Celcius 3. Buat program untuk menampilkan :
* ** *** ***** Pemrograman JAVA
5
LATIHAN : //nama file berkas : deret.java public class deret { public static void main (String[] args) { System.out.print("Bilangan Ganjil : "); int x=1; for(int i=1; i<=10; i++) { System.out.print(x+" "); x+=2; } System.out.print("\n"); System.out.print("Bilangan Genap : "); int y=2; for(int i=1; i<=10; i++) { System.out.print(y+" "); y+=2; } } } Bilangan Ganjil : 1 3 5 7 9 11 13 15 17 19 Bilangan Genap : 2 4 6 8 10 12 14 16 18 20 /nama file berkas : deret1.java public class deret1 { public static void main (String[] args) { System.out.print("Bilangan Ganjil : "); int x=19; for(int i=1; i<=10; i++) { System.out.print(x+" "); x-=2; } System.out.print("\n"); System.out.print("Bilangan Genap : "); int y=20; for(int i=1; i<=10; i++) { System.out.print(y+" "); y-=2; } } } Bilangan Ganjil : 19 17 15 13 11 9 7 5 3 1 Bilangan Genap : 20 18 16 14 12 10 8 6 4 2
Pemrograman JAVA
1
ARRAY DAN ARGUMEN BARIS PERINTAH Array adalah obyek yang dapat digunakan untuk menyimpan sejumlah data. Elemen yang disimpan pada array dapat berupa tipe primitif (misalnya int) ataupun instan kelas (obyek). Untuk menciptakan array digunakan langkah berikut : 1. Mendeklarasikan variabel untuk merujuk ke array (selanjutnya disebut variabel array) 2. Menciptakan obyek array dan menugaskannya ke variabel yang dideklarasikan pada langkah pertama Variabel Array KOTA
Obyek Array data-1 data-2
Dideklarasikan melalui String KOTA;
Dialokasikan melalui KOTA = new String[2];
MENDEKLARASIKAN VARIABEL ARRAY Pendeklarasian variabel array dilakukan dengan bentuk : tipePrimitif NamaVariabelArray[ ]; atau namaKelas NamaVariabelArray[ ]; Misalnya : String[ ] kota; int[ ] nilai; Pernyataan String [ ] kota; dapat ditulis menjadi String kota[ ]; namun bentuk pertama lebih memberikan kejelasan karena yang berupa array bukanlah variabel itu sendiri melainkan yang dirujuknya. MENCIPTAKAN OBYEK ARRAY Penciptaan obyek array dan penugasan obyek ke variabel array dilakukan dengan menggunakan kata kunci new. Bentuk penulisan : namaKelas NamaVariabelArray = new namaKelas[jumlah elemen]; atau tipePrimitif NamaVariabelArray = new tipePrimitif[jumlah elemen]; Misalnya : kota = new String[5]; nilai = new int [3]; Dua pernyataan : String [ ] kota; kota = new String[5]
dapat disingkat
String [ ] kota = new String[5];
Pemrograman JAVA
2
MENGAKSES ELEMEN ARRAY Elemen array dapat diakses melalui notasi : NamaVariabelArray[subskrip] Subskrip berupa nomor elemen dimana elemen pertama dimulai dari 0 (nol). ARRAY kota[0] kota[1] Kota[2]
ELEMEN “Jakarta” “Bandung” “Semarang”
SUBSKRIP 0 1 2
Contoh : //berkas : larik1.java public class larik1 { public static void main (String[] args) { String[] kota = new String[5]; //mengisi elemen array kota[0]="Jakarta"; kota[1]="Bandung"; kota[2]="Semarang"; kota[3]="Medan"; kota[4]="Yogyakarta"; //menampilkan elemen array System.out.println("Elemen Array-1 = "+kota[0]); System.out.println("Elemen Array-2 = "+kota[1]); System.out.println("Elemen Array-3 = "+kota[2]); System.out.println("Elemen Array-4 = "+kota[3]); System.out.println("Elemen Array-5 = "+kota[4]); } } Hasil : Elemen Array-1 = Jakarta Elemen Array-2 = Bandung Elemen Array-3 = Semarang Elemen Array-4 = Medan Elemen Array-5 = Yogyakarta Pemberian nilai pada array dapat dilakukan sewaktu obyek array diciptakan, misalnya : String[ ] kota = {“Jakarta”, “Bandung”, “Semarang”, “Medan”, “Yogyakarta”}; Contoh : //berkas : larik2.java public class larik2 { public static void main (String[] args) { String[] kota = {"Jakarta", "Bandung", "Semarang", "Medan", "Yogyakarta"}; System.out.println("Elemen Array-1 = "+kota[0]); System.out.println("Elemen Array-2 = "+kota[1]); System.out.println("Elemen Array-3 = "+kota[2]); System.out.println("Elemen Array-4 = "+kota[3]); Pemrograman JAVA
3
System.out.println("Elemen Array-5 = "+kota[4]); } } Hasil : Elemen Array-1 = Jakarta Elemen Array-2 = Bandung Elemen Array-3 = Semarang Elemen Array-4 = Medan Elemen Array-5 = Yogyakarta Jumlah elemen array dapat diketahui dengan menggunakan variabel instan length milik obyek array, misalnya : kota.length (akan menghasilkan jumlah elemen yang dirujuk oleh kota). Selain itu untuk memasukkan atau menampilkan elemen array dapat menggunakan pernyataan for. Contoh : //berkas : larik3.java public class larik3 { public static void main (String[] args) { String[] hari = {"Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu"}; for(int i=0; i< hari.length; i++) System.out.println("Hari ke-"+i+" adalah "+hari[i]); System.out.println("Jumlah hari dalam seminggu = "+hari.length+" hari"); } } Hasil : Elemen Array ke-0 adalah Senin Elemen Array ke-1 adalah Selasa Elemen Array ke-2 adalah Rabu Elemen Array ke-3 adalah Kamis Elemen Array ke-4 adalah Jumat Elemen Array ke-5 adalah Sabtu Elemen Array ke-6 adalah Minggu Jumlah hari dalam seminggu = 7 hari ARRAY MULTIDIMENSI Java mendukung array multidimensi melalui pendekatan "array dari array". Misalnya : int [ ] [ ] Nilai = new int [2] [3] ; merupakan implementasi array berdimensi dua dimana terdapat 2 baris dan 3 kolom sebagaimana terlihat pada gambar dibawah ini : subskrip kolom
Nilai[0][0] Nilai[0][1] Nilai[0][2] Nilai[1][0] Nilai[1][1] Nilai[1][2]
subskrip baris
Pemberian nilai pada array dua dimensi dilakukan dengan : nilai [baris ] [kolom ] = data; Pemrograman JAVA
4
Contoh : //berkas : larik4.java public class larik4 { public static void main (String[] args) { int [][] nilai = new int [2][3]; int i,j; nilai[0][0]=1; nilai[0][1]=2; nilai[0][2]=3; nilai[1][0]=4; nilai[1][1]=5; nilai[1][2]=6; for(i=0; i< 2; i++) { for (j=0; j< 3; j++) System.out.print(nilai[i][j]+" "); System.out.println(" "); } } } Hasil : 123 456 Argumen baris perintah pada Java dapat diambil dari variabel array args. Adapun jumlah argumen dapat diperoleh melalui variabel instan pada kelas String yang bernama length. Contoh : //nama file berkas : arraytampil.java public class arraytampil { public static void main(String[] args) { for (int i=0;i< args.length;i++) System.out.println("Kata ke-"+(i+1)+" adalah : "+args[i]); } } Hasil : C:\j2sdk1.4.2_12\bin>java arraytampil Selamat Belajar Java Kata ke-1 adalah : Selamat Kata ke-2 adalah : Belajar Kata ke-3 adalah : Java Deklarasi array dua dimensi dapat dilakukan dengan menggunakan konstruksi seperti contoh berikut : //nama file berkas : arraykota.java public class arraykota { public static void main(String[] args) {
Pemrograman JAVA
5
String [][] kota = {{"Indonesia", "Jakarta"}, {"Filipina","Manila"}, {"Jepang","Tokyo"}, {"Iran","Teheran"}, {"Mesir","Kairo"}}; for(int i=0; i
Pemrograman JAVA
6
Hasil : Masukkan Jumlah Data : 5 Nilai Ke-1 = 1 Nilai Ke-2 = 2 Nilai Ke-3 = 3 Nilai Ke-4 = 4 Nilai Ke-5 = 5 Tabel Nilai ============================= Nilai-X Nilai X*X Nilai 1/X ============================= 1.0 1.0 1.0 2.0 4.0 0.5 3.0 9.0 0.3333333 4.0 16.0 0.25 5.0 25.0 0.2 =============================
TUGAS : 1. Buat program untuk mengurutkan data dengan menggunakan array 2. Buat program array untuk menjumlah dua buah matriks ber-ordo 2x2 3. Buat program array untuk membuat tabel penjualan dengan ketentuan sebagai berikut : INPUT : Masukkan Bulan Penjualan : Masukkan jumlah data : ... Nama Barang ke-... : ... Jumlah : ... Harga Rp. : ... PROSES : Total Beli = Jumlah * Harga Total Barang = total data input Total Penjualan = Total Penjualan + Total Beli OUTPUT : LAPORAN PENJUALAN PT. YAI BULAN : ... ============================================= NO NAMA BARANG JUMLAH HARGA TOTAL ============================================= 1 ? ? ? ? 2 ? ? ? ? 3 ? ? ? ? dst ============================================= TOTAL BARANG : 3 TOTAL PENJUALAN : ...
Pemrograman JAVA
1
KELAS DAN OBJEK Konsep pemrograman berorientasi objek yang populer pada masa kini menjadikan objek sebagai komponen utama dalam bahasa pemrograman. Objek menggabungkan data dan fungsi sebagai satu kesatuan, sedangkan pada pemrograman yang tidak berorientasi objek, fungsilah yang menjadi perhatian utama. Fungsi adalah subprogram atau sekumpulan kode yang diberi nama tersendiri. Pendekatan pemrograman berorientasi objek membuat pengembangan program dapat dilakukan dengan lebih mudah, mengurangi duplikasi kode dan mengurangi kesalahan. Pada pemrograman berorientasi objek terdapat dua istilah yang sangat terkenal yaitu kelas dan objek. Perbedaan kelas dan objek dapat dijelaskan melalui analogi : kelas itu seperti cetakan kue. kelas adalah cetakan untuk objek Sejumlah kue dapat diciptakan dengan menggunakan sebuah cetakan. Begitu pula halnya dengan kelas, sejumlah objek dapat pula diciptakan. Seringkali dikatakan bahwa objek adalah instan kelas.
Objek 1
Kelas
Objek 2
sebuah instan kelas Objek 3
Contoh lain dari sebuah kelas adalah mobil. Objek kelas mobil dapat memiliki data seperti merk, warna, dan atribut lain yang berhubungan dengan mobil sedangkan metode yang dimiliki objek mobil dapat berupa cara menghidupkan mesin dan mengoper persneling. MENGGUNAKAN OBJEK Objek dibuat dengan mula-mula membuat variabel yang kelak merujuk ke objek. Variabel seperti ini biasa disebut variabel objek. Selanjutnya objek diciptakan melalui new dan hasilnya ditugaskan ke variabel objek Contoh : //nama file berkas : objektanggal.java import java.util.Date; public class objektanggal { public static void main (String[] args) { Date waktusekarang=new Date(); System.out.println("Tanggal dan Waktu Sekarang : "+waktusekarang); } }
Pemrograman JAVA
2
Hasil : Tanggal dan Waktu Sekarang : Tue Oct 28 12:31:15 ICT 2008 Perlu diketahui bahwa Date adalah kelas yang disediakan Java yang berhubungan dengan tanggal dan waktu. Kelas ini terdapat pada paket java.util.Date. Variabel waktusekarang merujuk ke objek yang berisi tanggal dan jam saat pernyataan dijalankan. Adakalanya Anda perlu memanggil variabel instan yang terdapat pada suatu objek. Bentuk pemanggilan : namaVariabelObjek.namaVariabelInstan Untuk memanggil metode yang tedapat pada suatu objek diperlukan notasi sebagai berikut : namaVariabelObjek.namaMetode() atau jika metode melibatkan argumen : namaVariabelObjek.namaMetode(argumen1, argumen2, ...) Contoh : //nama file berkas : metode1.java public class metode1 { public static void main (String[] args) { String teks = "Selamat Belajar Java"; System.out.println(teks.toUpperCase()); System.out.println(teks.charAt(5)); } } Hasil : SELAMAT BELAJAR JAVA a Perintah teks.toUpperCase() merupakan contoh pemanggilan objek yang tidak melibatkan argumen dimana perintah tersebut berguna untuk menghasilkan string dengan seluruh huruf berupa huruf kapital. Perintah teks.charAt(5) merupakan contoh pemanggilan metode objek yang melibatkan sebuah argumen dimana perintah tersebut berguna untuk memperoleh sebuah karakter yang terletak pada posisi ke-6 karena posisi pertama karakter dimulai dari nol. MENCIPTAKAN KELAS Kelas pada Java didefinisikan dengan menggunakan kata kunci class. Contoh : //nama file berkas : kelasmobil.java class mobil { variabel instan String warna; int tahun; } public class kelasmobil { public static void main (String[] args) { mobil mobilku = new mobil();
Pemrograman JAVA
3
mobilku.warna ="Merah"; mobilku.tahun = 2008;
mengisi variabel instan
System.out.println("Warna mobilku adalah "+mobilku.warna); System.out.println("Dibuat tahun : "+mobilku.tahun); } } Hasil : Warna mobilku adalah Merah Dibuat tahun : 2008 KELAS DAN METODE Sebuah kelas pada umumnya tersusun atas variabel instan dan metode untuk objek. Metode adalah fungsi (subprogram) yang melekat pada sebuah objek atau instan kelas. Contoh : //nama file berkas : kelasmetode.java class mobil { variabel instan String warna; int tahun; void isidata(String warnamobil, int tahunmobil) { warna=warnamobil; tahun=tahunmobil; } String isiwarna() { return warna; } int isitahun() { return tahun; } }
metode
metode
metode
public class kelasmetode { public static void main (String[] args) { mobil mobilku = new mobil(); mobilku.isidata("Hitam", 2008); System.out.println("Warna mobilku adalah "+mobilku.isiwarna()); System.out.println("Dibuat tahun : "+mobilku.isitahun()); } } Hasil : Warna mobilku adalah Hitam Dibuat tahun : 2008 Pemrograman JAVA
4
Keterangan : • Metode isidata() digunakan untuk mengisikan data warna dan tahun • Pernyataan warna=warnamobil; dan tahun=tahunmobil; digunakan untuk mengisikan nilai parameter ke variabel instan • Kata kunci void menyatakan bahwa metode ini tidak mempunyai nilai balik (nilai yang diberikan oleh metode ketika dipanggil) • Metode isiwarna() digunakan untuk memperoleh isi variabel instan dengan tipe yang sama yaitu String. Sedangkan return warna() merupakan pernyataan untuk memberikan nilai baliknya sekaligus mengakhiri eksekusi metode. KATA KUNCI THIS Kata kunci this digunakan pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang. Contoh : //nama file berkas : kelasthis.java class mobil { String warna; int tahun; void isidata(String warna, int tahunmobil) { this.warna=warna; this.tahun=tahunmobil; } } public class kelasthis { public static void main (String[] args) { mobil mobilku = new mobil(); mobilku.isidata("Silver", 2008); System.out.println("Warna mobilku adalah "+mobilku.warna); System.out.println("Dibuat tahun : "+mobilku.tahun); } } Hasil : Warna mobilku adalah Silver Dibuat tahun : 2008 LINGKUP VARIABEL Bila dalam suatu metode terdapat pemanggilan terhadap suatu variabel, Java menggunakan konsep sebagai berikut. Mula-mula variabel akan dianggap berada pada lingkup blok sekarang. Jika tidak ada, Java akan mencarikannya pada blok yang lebih luar. Begitu seterusnya. Berdasarkan konsep lingkup variabel seperti ini, dimungkinkan untuk membuat variabel yang bersifat lokal. Contoh : //nama file berkas : lingkupthis.java class mobil Pemrograman JAVA
5
{ String warna="Merah"; int tahun=2008; void mobilku() { String warna="Biru"; int tahun=2008; System.out.println("Warna dan tahun pada metode mobilku : " +warna+" dan "+tahun); System.out.println("Warna dan tahun pada kelas instan mobil : " +this.warna+" dan "+this.tahun); } } public class lingkupthis { public static void main (String[] args) { mobil proses = new mobil(); proses.mobilku(); } } Hasil : Warna dan tahun pada metode mobilku : Biru dan 2008 Warna dan tahun pada kelas instan mobil : Merah dan 2008 PENENTU AKSES : PRIVATE DAN PUBLIC Pada pemrograman yang berorientasi objek, akses terhadap suatu variabel instan di luar kelas biasanya tidak diperkenankan. Sebagai penggantinya, disediakan metode yang diperlukan untuk mengakses variabel instan. Berkaitan dengan boleh-tidaknya suatu variabel instan diakses dari luar kelas, Java menyediakan penentu akses yaitu : • public berarti bahwa pengaksesan suatu variabel instan atau metode dapat dilakukan dari luar kelas • private berarti bahwa pengaksesan suatu variabel instan atau metode hanya dapat dilakukan di dalam kelas, tidak bisa diakses dari luar kelas. Contoh : //nama file berkas : penentuakses.java class siswa program error jika dirubah menjadi private String nama; { String nama; void isidata(String nama) { this.nama=nama; } String isinama() {
Pemrograman JAVA
6
return this.nama; } } public class penentuakses { public static void main (String[] args) { siswa siswaku = new siswa(); siswaku.isidata("Sekar Ayu"); System.out.println("Nama Siswa (metode) adalah "+siswaku.isinama()); System.out.println("Nama Siswa (variabel instan) adalah "+siswaku.nama); } } Hasil : Nama Siswa (metode) adalah Sekar Ayu Nama Siswa (variabel instan) adalah Sekar Ayu Program akan error jika ditambahkan private di depan String nama; tetapi jika ditambah public tidak akan terjadi kesalahan. Sekilas terlihat bahwa suatu variabel yang tidak diberi penentu akses apapun, variabel tersebut memiliki sifat yang sama dengan jika diberi penentu akses public, namun sebenarnya variabel tersebut memiliki makna yang berbeda. Perhatikan gambar berikut :
Pemrograman JAVA
7
METODE KELAS Kadangkala dijumpai pemanggilan metode dengan bentuk : namaKelas.namaMetode() bukan dalam bentuk namaVariabelObjek.namaMetode() Contoh : //nama file berkas : metodekelas.java public class metodekelas { public static void main (String[] args) { double akar = Math.sqrt(25); System.out.println("Akar dari 25 adalah "+akar); } } Hasil : Akar dari 25 adalah 5.0 Perhatikan bahwa pada program di atas tidak terdapat penciptaan objek. Metode sqrt dapat dipanggil secara langsung dengan menggunakan Math (nama kelas yang tersedia pada Java yang berkaitan dengan penanganan berbagai operasi matematika). Untuk membuat metode kelas (metode yang dapat dipanggil dengan menyebutkan nama kelas), Anda dapat menggunakan bentuk : static tipe namaMetode(parameter1, parameter2,...) { ... } Kata kunci static merupakan kunci untuk membuat metode kelas. Contoh : //nama file berkas : kuadrat.java class matematika { static public double kuadrat(double nilai) { return nilai*nilai; } } public class kuadrat { public static void main (String[] args) { double bilangan = matematika.kuadrat(5); System.out.println("Kuadrat dari 5 adalah "+bilangan); } } Hasil : Kuadrat dari 5 adalah 25.0
Pemrograman JAVA
8
TUGAS 1. Buat program untuk menghitung gaji harian PT. XYZ dengan ketentuan : Gaji pokok karyawan Rp. 2000/jam Bila karyawan bekerja lebih dari 7 jam/hari maka kelebihannya dihitung lembur yang besarnya 1.5 dari gaji pokok Untuk karyawan yang bekerja 8 jam/hari atau lebih akan mendapat tambahan uang makan sebesar Rp. 3500 Karyawan yang bekerja 9 jam/hari atau lebih akan mendapat uang transport lembur sebesar Rp. 4000 Gunakan fungsi kelas dan metode Input : NIP, Nama, Jumlah jam kerja Output : NIP, Nama, Gaji pokok, Lembur, Uang makan, Transport lembur
Pemrograman JAVA
1
KONSTRUKTOR, OVERLOADING dan PEWARISAN KONSTRUKTOR Metode konstruktor adalah metode yang dapat digunakan untuk memberikan nilai awal saat objek diciptakan. Metode ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan instan kelas. Konstruktor mempunyai sifat : • Namanya sama dengan kelas • Tidak memiliki nilai balik • Tidak boleh ada kata kunci void Contoh : //nama berkas : konstruktor.java class mobil { private String warna; variabel instan private int tahun; public mobil(String warna, int tahun) { konstruktor this.warna = warna; this.tahun = tahun; } metode public void info() { System.out.println("Warna mobil saya : "+ this.warna); System.out.println("Dibuat tahun : "+ this.tahun); } } public class konstruktor { public static void main (String[] args) { mobil mobilku = new mobil("Silver",2008); mobilku.info(); } } Hasil : Warna mobil saya : Silver Dibuat tahun : 2008 Pada program di atas tampak bahwa nama konstruktor sama dengan nama kelas. Dalam hal ini konstruktor memiliki dua parameter, yaitu warna dan tahun. Selain itu penciptaan objek tidak lagi dilakukan dengan menggunakan bentuk : mobil = new mobil( );
Pemrograman JAVA
2
OVERLOADING Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu. Dalam hal ini, pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter. Contoh : //nama berkas : konstruktor1.java class mobil { private String warna; private int tahun; public mobil(String warna, int tahun) { this.warna = warna; this.tahun = tahun; } public mobil() { }
konstruktor-1
konstruktor-2
public void info() { System.out.println("Warna mobil saya : "+ this.warna); System.out.println("Dibuat tahun : "+ this.tahun); } } public class konstruktor1 { public static void main (String[] args) { mobil mobilku = new mobil("Silver",2008); mobilku.info(); mobil mobilmu = new mobil(); mobilmu.info(); mobil mobilnya = new mobil("Silver",2008); mobilnya.info(); } } Hasil : Warna mobil saya : Silver Dibuat tahun : 2008 Warna mobil saya : null Dibuat tahun : 0 Warna mobil saya : Silver Dibuat tahun : 2008 Tampak bahwa pemanggilan dengan mobil mobilmu = new mobil( ); diperkenankan pada program di atas. Mengingat konstruktor yang tidak melibatkan parameter tidak melibatkan perintah apapun, maka warna dan tahun diisi dengan nilai default yaitu null dan 0.
Pemrograman JAVA
3
Overloading juga dapat dikenali pada metode non konstruktor. Contoh : //nama berkas : overloading.java class matematika { static public double kuadrat(double nilai) { return nilai*nilai; } static public int kuadrat(int nilai) { return nilai*nilai; } static public double kuadrat(String nilai) { double bilangan = Double.valueOf(nilai).doubleValue(); return bilangan*bilangan; } }
public class overloading { public static void main (String[] args) { System.out.println("Kuadrat dari 25.0 adalah : "+ matematika.kuadrat(25.0)); System.out.println("Kuadrat dari 25 adalah : "+ matematika.kuadrat(25)); System.out.println("Kuadrat dari \"25\" adalah : "+ matematika.kuadrat("25")); } } Hasil : Kuadrat dari 25.0 adalah : 625.0 Kuadrat dari 25 adalah : 625 Kuadrat dari "25" adalah : 625.0 Metode kuadrat mempunyai tiga buah bentuk yaitu double, int dan String. Program akan menghasilkan keluaran sesuai dengan jenis parameter yang diinput pada program utama. VARIABEL KELAS Variabel kelas adalah variabel yang berlaku tidak terbatas hanya pada objek tetapi pada seluruh objek. Variabel ini didefinisikan dengan menggunakan kata kunci static. Contoh : //nama berkas : variabelkelas.java class bilangan { static int pencacah = 0; private int nilai; public bilangan(int nilai) { this.nilai=nilai; Pemrograman JAVA
4
this.pencacah++; } public void info() { System.out.println("Data ke- "+ this.pencacah); System.out.println("Bilangan yang Anda ketik : "+ this.nilai); } } public class variabelkelas { public static void main (String[] args) { bilangan satu = new bilangan(44); satu.info(); bilangan dua = new bilangan(55); dua.info(); bilangan tiga = new bilangan(66); tiga.info(); } } Hasil : Data ke- 1 Bilangan yang Anda ketik : 44 Data ke- 2 Bilangan yang Anda ketik : 55 Data ke- 3 Bilangan yang Anda ketik : 66 Terlihat bahwa nilai pencacah bertambah sebesar satu setiap kali objek berkelas bilangan dibentuk. PEWARISAN Pewarisan merupakan konsep dalam pemrograman berorientasi objek yang memungkinkan untuk membuat suatu kelas dengan didasarkan pada kelas yang sudah ada sehingga mewarisi semua metode dan variabelnya. Pada gambar, kelasA disebut kelas dasar atau superkelas sedangkan kelasB disebut kelas turunan atau kelas anak. Semua metode dan variabel instan yang terdapat pada kelas dasar diturunkan ke kelas turunan. Namun kelas turunan dapat menambahkan metode baru atau variabel instan baru sendiri.
Pemrograman JAVA
5
Contoh : //nama berkas : alpha.java class alpha { digunakan untuk memperoleh private int a=4; nama kelas public void info() { System.out.println("Nilai a pada program alpha = "+a); System.out.println("Dipanggil oleh program : "+this.getClass().getName()); } } Untuk membuat kelas turunan, secara prinsip sibuat dengan menggunakan bentuk : class KelasTurunan extends KelasDasar() { pernyataan; } Contoh : //nama berkas : bravo.java class bravo extends alpha { public static void main(String[] args) { bravo cetak = new bravo(); cetak.info(); int a = 44; System.out.println("Nilai a pada program bravo = "+a); } } Hasil : Nilai a pada program alpha = 4 Dipanggil oleh program : bravo Nilai a pada program bravo = 44 PENENTU AKSES PROTECTED Penentu akses ini berguna untuk mengatur agar suatu variabel instan ataupun metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada subkelas. Contoh : //nama berkas : charlie.java class charlie { private int a=4; protected int b=44; public void info() { System.out.println("Nilai a = "+a); System.out.println("Nilai b = "+b); System.out.println("Dipanggil oleh program : "+this.getClass().getName()); } }
Pemrograman JAVA
6
Setelah itu buat program berikut sebagai turunan dari program charlie.java : //nama berkas : delta.java class delta extends charlie { supaya program benar, private int c=5; baris ini harus dihapus public void info() { System.out.println("Nilai a = "+a); System.out.println("Nilai b = "+b); System.out.println("Nilai c = "+c); System.out.println("Dipanggil oleh program : "+this.getClass().getName()); } } Hasil : delta.java:7: a has private access in charlie System.out.println("Nilai a = "+a); 1 error Tampak bahwa pesan kesalahan yang menyatakan variabel instan a tidak dikenal karena a adalah variabel private sedangkan b dengan variabvel protected dikenal pada kelas delta. Untuk memanggil kelas charlie dan delta, buat program berikut ini : //nama berkas : panggil.java class panggil { public static void main(String[] args) { charlie obyek1 = new charlie(); obyek1.info(); delta obyek2 = new delta(); obyek2.info(); } } Hasil : Nilai a = 4 Nilai b = 44 Dipanggil oleh program : charlie Nilai b = 44 Nilai c = 5 Dipanggil oleh program : delta PENENTU ABSTRACT Java menyediakan suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas tetapi tidak disertai dengan definisinya. Metode ini dikenal dengan nama metode abstrak, sedangkan kelasnya dinamakan kelas abstrak. Contoh : //nama berkas : kendaraan.java public abstract class kendaraan { protected String nama; public abstract void jalankan(); } Pemrograman JAVA
7
Pada program di atas tampak bahwa metode abstrak jalankan() tidak mempunyai tubuh program karena definisi metode tersebut harus dilakukan pada subkelas. Contoh : //nama berkas : tesjalankan.java class sepeda extends kendaraan { public sepeda(String nama) { this.nama=nama; } public void jalankan() { System.out.println("Duduklah diatas sadel "+this.nama+" dan kayuhlah..."); } } class mobil extends kendaraan { public mobil (String nama) { this.nama=nama; } public void jalankan() { System.out.println("Duduklah di depan stir "+this.nama+" dan hidupkan mesin..."); } } public class tesjalankan { public static void main(String [] args) { sepeda sepedaku = new sepeda("Sepeda BMX"); sepedaku.jalankan(); mobil mobilku = new mobil("Sedan"); mobilku.jalankan(); } } Hasil : Duduklah diatas sadel Sepeda BMX dan kayuhlah... Duduklah di depan stir Sedan dan hidupkan mesin...
LATIHAN Buat program dengan menggunakan teknik konstruktor untuk mencari BERAT BADAN IDEAL dengan rumus BBI = TINGGI – (110). BENTUK METODE : hitung(nama, tinggi)
Pemrograman JAVA
1
OPERASI STRING, MATEMATIKA DAN WAKTU OPERASI STRING String adalah kelas yang menangani deretan karakter. Kelas ini mendukung sejumlah metode yang sangat berguna untuk memanipulasi string, misalnya untuk mengkoversi huruf kecil menjadi kapital, memperoleh jumlah karakter dan sebagainya. • • •
Metode substring(int indeks) Fungsi : menghasilkan objek string yang berisi substring dimulai dari posisi indeks suatu teks Metode substring(int indeksAwal, int indeksAkhir) Fungsi : menghasilkan objek string yang berisi substring dimulai posisi indeksAwal hingga posisi indeksAkhir suatu teks Metode charAt(int indeks) Fungsi : menghasilkan karakter yang terletak pada posisi indeks
Contoh : //nama berkas : string1.java public class string1 { public static void main(String[] args) { String teks=("Belajar Java Itu Mudah"); System.out.println("teks = Belajar Java Itu Mudah"); System.out.println("substring(3) = "+teks.substring(3)); System.out.println("substring(0,3) = "+teks.substring(0,3)); System.out.println("charAt(6) = "+teks.charAt(6)); } } Hasil : teks = Belajar Java Itu Mudah substring(3) = ajar Java Itu Mudah substring(0,3) = Bel charAt(6) = r • • •
Metode length() Fungsi : menghasilkan jumlah karakter dari suatu teks Metode concat(String kata) Fungsi : menghasilkan objek string yang merupakan gabungan dari string kata Metode replace(char lama, char baru) Fungsi : menghasilkan objek string yang berisi string dengan semua karakter dengan huruf lama digantikan dengan karakter huruf baru
Contoh : //nama berkas : string2.java public class string2 { public static void main(String[] args) { String teks=("Belajar Java Itu Mudah"); System.out.println("teks = Belajar Java Itu Mudah"); System.out.println("length() = "+teks.length());
Pemrograman JAVA
2
System.out.println("concat(, Setuju?) = "+teks.concat(", Setuju?")); System.out.println("replace('a','A') = "+teks.replace('a','A')); } } Hasil : teks = Belajar Java Itu Mudah length() = 22 concat(, Setuju?) = Belajar Java Itu Mudah, Setuju? replace('a','A') = BelAjAr JAvA Itu MudAh • • •
Metode toLowerCase() Fungsi : menghasilkan objek string dengan seluruh huruf kecil Metode toUpperCase() Fungsi : menghasilkan objek string dengan seluruh huruf kapital Metode trim() Fungsi : menghasilkan objek string yang menghilangkan spasi di awal dan diakhir string
Contoh : //nama berkas : string3.java public class string3 { public static void main(String[] args) { String teks=("Belajar Java Itu Mudah"); System.out.println("teks = Belajar Java Itu Mudah"); System.out.println("trim() = "+teks.trim()); System.out.println("toLowerCase() = "+teks.toLowerCase()); System.out.println("toUpperCase() = "+teks.toUpperCase()); } } Hasil : teks = Belajar Java Itu Mudah trim() = Belajar Java Itu Mudah toLowerCase() = belajar java itu mudah toUpperCase() = BELAJAR JAVA ITU MUDAH • •
Metode equals() Fungsi : membandingkan suatu teks sesuai format Metode equalsIgnoreCase() Fungsi : membandingkan suatu teks dengan mengabaikan format
Contoh : //nama berkas : string4.java public class string4 { public static void main(String[] args) { String teks=("Java"); System.out.println("teks = Java"); System.out.println("equals(Java) = "+teks.equals("Java")); System.out.println("equalsIgnoreCase(JAVA) = "+teks.equalsIgnoreCase("JAVA")); Pemrograman JAVA
3
} } Hasil : teks = Java equals(Java) = true equalsIgnoreCase(JAVA) = true OPERASI MATEMATIKA Kelas Math adalah kelas yang terdapat pada paket java.lang yang berguna untuk melakukan berbagai operasi matematika seperti sinus, cosinus, akar, kuadrat, logaritma dan sebagainya. Kelas Math menyediakan konstanta : 1. Konstanta E menyatakan nilai e atau basis logaritma alami. Konstanta ini didefinisikan dengan : public static final double E = 2.7183; 2. Konstanta PI menyatakan nilai π yang didefiniskan dengan : public static final double PI = 3.1415; • • •
Metode cos(double a) Fungsi : menghasilkan nilai cosine dalam bentuk radian dengan tipe double Metode sin(double a) Fungsi : menghasilkan nilai sine dalam bentuk radian dengan tipe double Metode tan(double a) Fungsi : menghasilkan nilai tangent dalam bentuk radian dengan tipe double
Catatan : 3600 = 2 π radian 10 = 2π radian = 2 * 3,14159 360 360 =
1 57,2958
radian
radian
Contoh : //nama berkas : math1.java import java.io.*; public class math1 { public static void main(String[] args) { System.out.println("Nilai cos(60) = "+Math.cos(60/57.2958)); System.out.println("Nilai sin(30) = "+Math.sin(30/57.2958)); System.out.println("Nilai tan(45) = "+Math.tan(45/57.2958)); } }
Pemrograman JAVA
4
Hasil : Nilai cos(60) = 0.5000003242746784 Nilai sin(30) = 0.49999983786263447 Nilai tan(45) = 0.9999994383398783 • • •
Metode log(double a) Fungsi : menghasilkan nilai bertipe double yang merupakan logaritma alami Metode ceil(double a) Fungsi : menghasilkan nilai bertipe double yang merupakan nilai terbesar Metode floor(double a) Fungsi : menghasilkan nilai bertipe double yang merupakan nilai terkecil
Contoh : //nama berkas : math2.java import java.io.*; public class math2 { public static void main(String[] args) { double a=Math.log(100); System.out.println("Nilai log(100) = "+a); System.out.println("Dibulatkan dengan ceil() = "+Math.ceil(a)); System.out.println("Dibulatkan dengan floor() = "+Math.floor(a)); } } Hasil : Nilai log(100) = 4.605170185988092 Dibulatkan dengan ceil() = 5.0 Dibulatkan dengan floor() = 4.0 • •
Metode max(tipe a, tipe b) Fungsi : menghasilkan nilai terbesar dari bilangan a dan b Metode min(tipe a, tipe b) Fungsi : menghasilkan nilai terkecil dari bilangan a dan b
Contoh : //nama berkas : math3.java import java.io.*; public class math3 { public static void main(String[] args) { System.out.println("Nilai terbesar dari 4 dan 44 = "+Math.max(4,44)); System.out.println("Nilai terkecil dari 4 dan 44 = "+Math.min(4,44)); } } Hasil : Nilai terbesar dari 4 dan 44 = 44 Nilai terkecil dari 4 dan 44 = 4
Pemrograman JAVA
5
• • •
Metode random() Fungsi : menghasilkan nilai bertipe double yang merupakan hasil pembangkitan nilai acak Metode pow(double a, double b) Fungsi : menghasilkan nilai bertipe double yang merupakan hasil perpangkatan ab Metode sqrt(double a) Fungsi : menghasilkan nilai bertipe double yang merupakan akar kuadrat dari a
Contoh : //nama berkas : math4.java import java.io.*; public class math4 { public static void main(String[] args) { System.out.println("Nilai acak = "+Math.random()); System.out.println("Nilai 25 pangkat 0.5 = "+Math.pow(25,0.5)); System.out.println("Akar dari 25 = "+Math.sqrt(25)); } } Hasil : Nilai acak = 0.10454870453514287 Nilai 25 pangkat 0.5 = 5.0 Akar dari 25 = 5.0 OPERASI TANGGAL Kelas Date adalah kelas yang berhubungan dengan penanganan informasi tanggal dan jam. Contoh : //nama berkas : tanggal1.java import java.util.Date; public class tanggal1 { public static void main(String[] args) { String hari[]={"Minggu","Senin", "Selasa", "Rabu","Kamis","Jumat", "Sabtu"}; Date kini = new Date(); System.out.println("Sekarang Tanggal : "+kini.getDate()+"-"+kini.getMonth() +"-"+(kini.getYear()+1900)); System.out.println("Hari : "+hari[kini.getDay()]); } } Hasil : Sekarang Tanggal : 15-11-2008 Hari : Senin Perhatikan bahwa penampilan tahun dari getYear() perlu ditambah dengan angka 1900 Cara lain untuk menyatakan tanggal adalah dengan menggunakan kelas GregorianCalendar yaitu kelas turunan dari kelas Calendar yang ditujukan untuk menangani pemrosesan tanggal dan jam, Pemrograman JAVA
6
Tabel konstruktor pada kelas GregorianCalendar KONSTRUKTOR GregorianCalendar() GregorianCalendar(int TAHUN, int BULAN, int TANGGAL) GregorianCalendar(int TAHUN, int BULAN, int TANGGAL, int JAM, int MENIT) GregorianCalendar (int TAHUN, int BULAN, int TANGGAL, int JAM, int MENIT, int DETIK) Contoh : //nama berkas : tanggal2.java import java.util.*; public class tanggal2 { public static void main(String[] args) { String hari[]={"Minggu","Senin", "Selasa", "Rabu","Kamis","Jumat", "Sabtu"}; GregorianCalendar kini = new GregorianCalendar(1945,8,17); System.out.println("Tanggal sekarang : "); System.out.println(kini.get(Calendar.DATE)+"-"+ kini.get(Calendar.MONTH)+"-"+ kini.get(Calendar.YEAR)); kini.add(Calendar.DATE,7); System.out.println("Seminggu kemudian : "); System.out.println(kini.get(Calendar.DATE)+"-"+ kini.get(Calendar.MONTH)+"-"+ kini.get(Calendar.YEAR)); } } Hasil : Tanggal sekarang : 17-8-1945 Seminggu kemudian : 24-8-1945 LATIHAN 1. Buat program dengan input untuk menghitung jarak lintasan peluru dengan rumus : Jarak = 2 * Vo2 * sin a * cos a / g Jika diketahui : Vo adalah kecepatan tembak a adalah sudut elevasi g adalah gravitasi (konstanta 9,8) 2. Buat program untuk mencari kata apakah POLINDROM atau tidak. Misalnya : TAAT = TAAT : POLINDROM KASUR = RUSAK : bukan POLINDROM 3. Buat program untuk menghitung selisih hari Tanggal sekarang : 15-12-2008 Tanggal nanti : 18-12-2008 Selisih hari : 3 Pemrograman JAVA
1
PEMROGRAMAN WINDOW Program yang dibuat selama ini adalah pemrograman pada level konsol. Java sesungguhnya juga mendukung pemrograman windows. Salah satu mekanisme untuk mengimplementasikannya adalah dengan menggunakan paket java.awt (Java Abstract Tool Kit). Contoh : // nama berkas : testframe.java import java.awt.*; public class testframe extends Frame { public static void main(String[] args) { testframe frame1 = new testframe(); } public testframe() { super("Jendela Frame Saya"); setSize(300,200); show(); } } Hasil :
Frame adalah kelas dalam paket AWT yang mewujudkan jendela dengan judul dibagian atas dan memungkinkan menu pull down dibuat. Tampilan dari frame akan berbeda jika dijalankan pada sistem operasi Windows atau Linux. Untuk menutup jendela tekan CTRL C pada jendela konsol. KOMPONEN DALAM AWT Segala tampilan pada sistem Window sesungguhnya didasarkan kelas Component. Pada dasarnya komponen adalah segala sesuatu yang terlihat pada jendela, misalnya teks statis, tombol, kotak cek dan sebagainya. Komponen dapat dikelompokkan menjadi : • Container Merupakan wadah untuk komponen-komponen yang lain, misalnya Panel. • Canvas Seperti halnya dunia lukisan digunakan untuk menggambar apa saja. • Komponen antarmuka grafis Termasuk dalam kelompok ini yaitu tombol, menu pop-up dan kotak cek. • Komponen penyusun jendela Termasuk dalam hal ini jendela frame dan kotak dialog
Pemrograman JAVA
2
Hirarki dari komponen digambarkan sebagai berikut :
KOMPONEN BUTTON Button merupakan kelas yang berguna untuk membuat tombol dalam suatu jendela. Contoh : // nama berkas : testtombol.java import java.awt.*; public class testtombol extends Frame { public static void main(String[] args) { testtombol tombol1 = new testtombol(); } public testtombol() { super("Tombol Saya"); Digunakan untuk membuat sebuah panel setSize(300,200); Panel paneltombol = new Panel(); paneltombol.add(new Button("Perbesar")); paneltombol.add(new Button("Keluar")); add("South", paneltombol); Digunakan untuk membuat 2 buah tombol show(); } }
Digunakan untuk mengaitkan objek tombol ke panel
Hasil :
Pemrograman JAVA
3
Tabel nilai untuk menentukan letak panel dalam jendela : NILAI KETERANGAN South Letak di bawah West Letak di kiri atas North Letak di atas East Letak di kanan atas MENANGANI KEJADIAN Program di atas belum menangani kejadian sama sekali misalnya ketika tombol Keluar diklik maka aplikasi segera diakhiri. Penanganan kejadian dapat dilakukan dengan menggunakan paket java.awt.event. Objek Window menggunakan metode bernama addWindowListener() sedangkan komponen Button menggunakan metode bernama addActionListener(). Contoh : // nama berkas : testtombol1.java import java.awt.*; import java.awt.event.*; public class testtombol1 extends Frame { public static void main(String[] args) { testtombol1 tombol1 = new testtombol1(); } public testtombol1() { super("Tombol Saya"); setSize(300,200); Button tombolmaks = new Button("Perbesar"); Button tombolend = new Button("Keluar"); Panel paneltombol = new Panel(); paneltombol.add(tombolmaks); paneltombol.add(tombolend); add("South", paneltombol); tombolmaks.addActionListener(new testtombol1.penangantombol()); tombolend.addActionListener(new testtombol1.penangantombol()); addWindowListener(new testtombol1.penangankejadian()); show(); } class penangankejadian extends WindowAdapter { public void windowClosing (WindowEvent e) { System.exit(0); } } class penangantombol implements ActionListener { public void actionPerformed(ActionEvent e) Pemrograman JAVA
4
{ String s = e.getActionCommand(); if (s.equals("Perbesar")) { setSize(600,400); } else if (s.equals("Keluar")) { System.exit(0); } } } } FILE DIALOG Adalah subkelas dari dialog yang menyediakan kemudahan dalam menampilkan daftar berkas yang akan dibaca ataupun berkas untuk menyimpan data. Contoh : // nama berkas : dialog.java import java.awt.*; public class dialog extends Frame { public static void main(String[] args) { dialog aplikasi = new dialog(); } public dialog() { super("Form Dialog"); setSize(400,150); FileDialog fd = new FileDialog(this, "Buka Berkas :"); fd.show(); setTitle("File yang Anda buka : "+fd.getFile()); show(); } } Hasil :
Pemrograman JAVA
5
SETLAYOUT Digunakan untuk mengatur tata letak komponen-komponen. AWT menyediakan 5 manajer dasar untuk mengelola peletakan komponen, yaitu : 1. FlowLayout Melakukan pengaturan komponen dengan urutan dari kiri ke kanan dan dari atas ke bawah dengan melibatkan konstanta LEFT, RIGHT dan CENTER 2. GridLayout Menggunakan bentuk kisi-kisi dengan ukuran yang sama untuk setiap komponen 3. BorderLayout Menempatkan komponen dengan pendekatan arah mata angin 4. CardLayout Menampilkan objek-objek seperti tumpukan kartu 5. GridBagLayout Digunakan untuk meletakkan komponen secara bebas LABEL Merupakan komponen yang umum digunakan untuk menampilkan suatu string dan umumnya bersifat tidak untuk diubah. Contoh : // nama berkas : label.java import java.awt.*; public class label extends Frame { public static void main(String[] args) { label aplikasi = new label(); } public label() { super("Teks Label"); setSize(300,100); Label t1 = new Label("Terimakasih", Label.LEFT); Label t2 = new Label("Thank You", Label.CENTER); Label t3 = new Label("Xie Xie", Label.RIGHT); Panel plabel = new Panel(); plabel.setLayout(new GridLayout(3,1)); plabel.add(t1); plabel.add(t2); plabel.add(t3); add("North", plabel); show(); } }
3 baris 1 kolom
Hasil :
Pemrograman JAVA
6
TEXTFIELD Adalah kelas yang berguna untuk menciptakan obyek yang ditujukan untuk memasukkan data satu baris. Contoh : // nama berkas : textfield.java import java.awt.*; import java.awt.event.*; public class textfield extends Frame { Label info; TextField f1, f2; Button b; public static void main(String[] args) { textfield aplikasi = new textfield(); } public textfield() { super("Silahkan Anda Login :"); setSize(300,120); Label t1 = new Label("Nama Pemakai :"); f1 = new TextField("", 10); Label t2 = new Label("Password : "); f2 = new TextField("", 10); f2. setEchoChar('#'); b = new Button("Login"); info = new Label(); Panel p1 = new Panel(); p1.setLayout(new GridLayout(3,2)); p1.add(t1); p1.add(f1); p1.add(t2); p1.add(f2); Panel p2 = new Panel(); p2.setLayout(new GridLayout(1,2)); p2.add(b); p2.add(info); add("North", p1); add("South", p2); b.addActionListener(new textfield.penangantombol()); show(); } class penangantombol implements ActionListener { public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals("Login"))
Pemrograman JAVA
7
{ String nama = f1.getText(); String pin = f2.getText(); if (nama.compareTo("Aditya") == 0 && pin.compareTo("123") == 0) info.setText("Login berhasil..!"); else info.setText("Login gagal...!"); } } } } Hasil :
TEXTAREA Adalah kelas yang berguna untuk membuatbobjek yang dapat digunakan untuk menampilkan data teks yang terdiri atas sejumlah baris. Contoh : // nama berkas : teksarea.java import java.awt.*; import java.awt.event.*; import java.io.*; public class teksarea extends Frame { TextArea tarea; Button bsimpan, bmuat, bhapus; String namaberkas = "Tarea.out"; public static void main(String[] args) { teksarea aplikasi = new teksarea(); } public teksarea() { super("Aplikasi TextArea"); setSize(350,150); tarea = new TextArea("Ketik teks disini...",5,30); bsimpan = new Button("Simpan"); bmuat = new Button("Muat"); bhapus = new Button("Hapus"); Panel p1 = new Panel(); p1.add(tarea); Panel p2 = new Panel(); p2.setLayout(new GridLayout(3,1)); Pemrograman JAVA
8
p2.add(bsimpan); p2.add(bmuat); p2.add(bhapus); add("West", p1); add("East", p2); bsimpan.addActionListener(new teksarea.penangantombol()); bmuat.addActionListener(new teksarea.penangantombol()); bhapus.addActionListener(new teksarea.penangantombol()); show(); } class penangantombol implements ActionListener { public void actionPerformed (ActionEvent e) { String s = e.getActionCommand(); if (s.equals("Simpan")) { try { FileWriter keluaran = new FileWriter(namaberkas); String isiteks = tarea.getText(); keluaran.write(isiteks); keluaran.flush(); keluaran.close(); } catch (IOException i) { System.err.println("Gagal menyimpan berkas...!"); System.exit(1); } tarea.setText ("Teks telah disimpan..."); } else if (s.equals("Muat")) { try { FileReader masukan = new FileReader(namaberkas); BufferedReader streamMasukan = new BufferedReader(masukan); String teks=""; while(true) { String data = streamMasukan.readLine(); if (data == null) break; teks = teks+data+'\n'; } masukan.close(); tarea.setText(teks); } catch (IOException i) { tarea.setText("Berkas tidak dapat dibaca..."); } } else if(s.equals("Hapus"))
Pemrograman JAVA
9
{ tarea.setText(""); } } } } Hasil :
Pemrograman JAVA
1
PEMROGRAMAN WINDOW (lanjutan) CHECKBOX Adalah komponen yang biasa digunakan untuk memilih salah satu pilihan diantara dua kemungkinan. Contoh : // nama berkas : kotakcek.java import java.awt.*; import java.awt.event.*; public class kotakcek extends Frame { Checkbox cb1, cb2, cb3; TextArea tarea; public static void main(String[] args) { kotakcek aplikasi = new kotakcek(); } public kotakcek() { super("Aplikasi Checkbox"); setSize(400,120); cb1 = new Checkbox("Java"); cb2 = new Checkbox("C++"); cb3 = new Checkbox("PHP"); tarea = new TextArea("",3,35, TextArea.SCROLLBARS_NONE); tarea.setEditable(false); Panel p1 = new Panel(); p1.setLayout (new GridLayout(3,1)); p1.add(cb1); p1.add(cb2); p1.add(cb3); Panel p2 = new Panel(); p2.add(tarea); add("West", p1); add("East", p2); cb1.addItemListener(new kotakcek.penanganitem()); cb2.addItemListener(new kotakcek.penanganitem()); cb3.addItemListener(new kotakcek.penanganitem()); show(); } public void cetak() { String scb1, scb2, scb3; scb1 = "Pilihan Java : "+cb1.getState(); scb2 = "Pilihan C++ : "+cb2.getState(); scb3 = "Pilihan PHP : "+cb3.getState(); tarea.setText(scb1+"\n"+scb2+"\n"+scb3); Pemrograman JAVA
2
} class penanganitem implements ItemListener { public void itemStateChanged(ItemEvent e) { Object o = e.getItem(); if (o.equals("Java")) cetak(); else if (o.equals("C++")) cetak(); else if (o.equals("PHP")) cetak(); } } } Hasil :
CHECKBOXGROUP Adalah wadah yang mengelompokkan sejumlah kotak cek yang mempunyai sifat hanya satu kotak cek dalam keadaan terpilih atau dalam lingkungan Windows dikenal dengan isitilah radio button Contoh : // nama berkas : cbgrup.java import java.awt.*; import java.awt.event.*; public class cbgrup extends Frame { Checkbox cb1, cb2, cb3; CheckboxGroup cbg; TextArea tarea; public static void main(String[] args) { cbgrup aplikasi = new cbgrup(); } public cbgrup() { super("Aplikasi CheckboxGroup"); setSize(450,120); addWindowListener (new cbgrup.keluar()); Label teks1 = new Label("Pilih Jurusan Kuliah :"); cbg = new CheckboxGroup(); cb1 = new Checkbox("Sistem Informasi", cbg, true); cb2 = new Checkbox("Teknik Informatika", cbg, false); cb3 = new Checkbox("Manajemen Informatika", cbg, false); tarea = new TextArea("",3,35, TextArea.SCROLLBARS_NONE); tarea.setEditable(false); Pemrograman JAVA
3
Panel p1 = new Panel(); p1.setLayout (new GridLayout(4,1)); p1.add(teks1); p1.add(cb1); p1.add(cb2); p1.add(cb3); Panel p2 = new Panel(); p2.add(tarea); add("West", p1); add("East", p2); cb1.addItemListener(new cbgrup.penanganitem()); cb2.addItemListener(new cbgrup.penanganitem()); cb3.addItemListener(new cbgrup.penanganitem()); show(); } public void cetak() { tarea.setText("Anda memilih jurusan : \n"+cbg.getSelectedCheckbox().getLabel()); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } class penanganitem implements ItemListener { public void itemStateChanged(ItemEvent e) { Object o = e.getItem(); if (o.equals("Sistem Informasi")) cetak(); else if (o.equals("Teknik Informatika")) cetak(); else if (o.equals("Manajemen Informatika")) cetak(); } } } Hasil :
Pemrograman JAVA
4
CHOICE Merupakan salah satu kelas yang memungkinkan untuk membuat objek yang digunakan untuk memilih sebuah pilihan berdasarkan sejumlah pilihan dengan mekanisme pop-up atau dalam lingkungan Windows dikenal dengan istilah combo box Contoh : // nama berkas : kombo.java import java.awt.*; import java.awt.event.*; public class kombo extends Frame { Choice pilih; CheckboxGroup cbg; TextArea tarea; public static void main(String[] args) { kombo aplikasi = new kombo(); } public kombo() { super("Aplikasi Choice"); setSize(400,120); addWindowListener (new kombo.keluar()); Label teks1 = new Label("Pilih Jurusan Kuliah :"); pilih = new Choice(); pilih.add("Sistem Informasi"); pilih.add("Manajemen Informatika"); pilih.add("Teknik Informatika"); pilih.add("Teknik Komputer"); pilih.addItemListener(new kombo.penanganitem()); tarea = new TextArea("",3,40, TextArea.SCROLLBARS_NONE); tarea.setEditable(false); Panel p1 = new Panel(); p1.setLayout(new GridLayout(1,1)); p1.add(teks1); p1.add(pilih); Panel p2 = new Panel(); p2.setLayout(new GridLayout(1,1)); p2.add(tarea); add("West", p1); add("South", p2); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0);
Pemrograman JAVA
5
} } class penanganitem implements ItemListener { public void itemStateChanged(ItemEvent e) { tarea.setText("Anda Memilih Jurusan : \n"+ pilih.getSelectedItem()); } } } Hasil :
LIST Adalah kelas yang digunakan untuk membuat objek yang menyediakan pemilihan sebuah item atau beberapa item dari sejumlah item. Komponen yang ditampilkan dilengkapi dengan penggulung. Contoh : // nama berkas : teslist.java import java.awt.*; import java.awt.event.*; public class testlist extends Frame { List daftar; TextArea tarea; public static void main(String[] args) { testlist aplikasi = new testlist(); } public testlist() { super("Aplikasi List"); setSize(250,250); addWindowListener (new testlist.keluar()); Label teks1 = new Label("Pilih Jurusan Kuliah :"); daftar = new List(5,false); daftar.add("Sistem Informasi"); daftar.add("Manajemen Informatika"); daftar.add("Teknik Informatika"); daftar.add("Teknik Komputer"); tarea = new TextArea("",3,35, TextArea.SCROLLBARS_NONE); tarea.setEditable(false); Panel p1 = new Panel(); p1.setLayout (new GridLayout(3,1)); p1.add(teks1); Pemrograman JAVA
6
p1.add(daftar); p1.add(tarea); add("West", p1); daftar.addItemListener(new testlist.penanganitem()); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } class penanganitem implements ItemListener { public void itemStateChanged(ItemEvent e) { tarea.setText("Anda memilih jurusan :\n "+daftar.getSelectedItem()); } } } Hasil :
Jika program dapat memilih lebih dari satu item, maka ubah perintah daftar = new List(6,false) menjadi TRUE dan getSelectedItem() menjadi getSelectedItems(). SCROLLBAR Adalah kelas yang bermanfaat untuk membuat batang penggulung. Contoh : // nama berkas : scroll.java import java.awt.*; import java.awt.event.*; public class scroll extends Frame { Scrollbar sb1, sb2, sb3; TextArea tarea; public static void main(String[] args) { scroll aplikasi = new scroll(); Pemrograman JAVA
7
} public scroll() { super("Aplikasi ScrollBar"); setSize(400,200); addWindowListener (new scroll.keluar()); sb1 = new Scrollbar(Scrollbar.VERTICAL,0,0,0,10); sb2 = new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,10); sb3 = new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,10); Label t1 = new Label("Volume"); Label t2 = new Label("Bass"); Label t3 = new Label("Treble"); Label t4 = new Label("Hasil pilihan anda : "); tarea = new TextArea("",3,35, TextArea.SCROLLBARS_NONE); tarea.setEditable(false); Panel p1 = new Panel(); p1.add(t1); p1.add(sb1); p1.add(t2); p1.add(sb2); p1.add(t3); p1.add(sb3); Panel p2 = new Panel(); p2.setLayout (new GridLayout(2,1)); p2.add(t4); p2.add(tarea); add("North", p1); add("South", p2); sb1.addAdjustmentListener(new scroll.atur()); sb2.addAdjustmentListener(new scroll.atur()); sb3.addAdjustmentListener(new scroll.atur()); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } class atur implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { String hasil = "Volume : "+sb1.getValue() +"\n"+ "Bass : "+sb2.getValue() +"\n"+
Pemrograman JAVA
8
"Treble : "+sb3.getValue(); tarea.setText(hasil); } } } Hasil :
Pemrograman JAVA
1
PEMROGRAMAN SWING dan APPLET Swing merupakan alternatif lain untuk mengimplementasikan pemrograman window. Walaupun diimplementasikan berdasarkan kelas AWT, Swing tidak menggunakan komponen-komponen yang terdapat pada AWT, sehingga tampilan komponen dalam Swing tidak tergantung pada sistem window lokal. Pada Swing kelas JComponent merupakan superkelas bagi sejumlah kelas, misalnya JLabel, JComboBox, JList, JPanel dan sebagainya. Swing dikemas dalam paket bernama javax.swing. JLABEL Merupakan komponen yang biasa digunakan untuk meampilkan teks yang pendek. Selain itu komponen ini dapat digunakan untuk menampilkan ikon ataupun untuk menampilkan ikon dan teks. Icon adalah interface yang didefinisikan untuk mengatur ikon pada paket javax.swing. Adapun kelas yang mengimplementasikan Icon adalah ImageIcon. Bentuk penulisan : Icon varikon = new ImageIcon(nama file gambar) Contoh : // nama berkas : apsjlabel.java import javax.swing.*; import java.awt.event.*; public class apsjlabel extends JFrame { public static void main(String[] args) { apsjlabel aplikasi = new apsjlabel(); } public apsjlabel() { super("Aplikasi JLabel"); setSize(300,150); addWindowListener (new apsjlabel.keluar()); Lokasi file gambar Icon panda = new ImageIcon("f:/panda.gif"); JLabel t1 = new JLabel("Binatang kesayanganku : "); JLabel t2 = new JLabel("Lucu...", panda, SwingConstants.CENTER); JPanel p1 = new JPanel(); p1.add(t1); p1.add(t2); getContentPane () .add("South", p1); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); }
Pengaturan rata tengah
Pemrograman JAVA
2
} } Hasil :
JBUTTON Berguna untuk membuat objek tombol yang dapat dilengkapi dengan judul tombol maupun ikon. Contoh : // nama berkas : apsjbutton.java import javax.swing.*; import java.awt.event.*; import java.awt.*; public class apsjbutton extends JFrame { public static void main(String[] args) { apsjbutton aplikasi = new apsjbutton(); } public apsjbutton() { super("Aplikasi JButton"); setSize(400,150); addWindowListener (new apsjbutton.keluar()); Icon stop = new ImageIcon("f:/panda.gif"); JButton tmaks = new JButton("Perbesar"); JButton tmin = new JButton("Perkecil"); JButton tout = new JButton("Keluar",stop); JPanel p1 = new JPanel(); p1.add(tmaks); p1.add(tmin); p1.add(tout); getContentPane () .add("South", p1); tmaks.addActionListener(new apsjbutton.penangantombol()); tmin.addActionListener(new apsjbutton.penangantombol()); tout.addActionListener(new apsjbutton.penangantombol()); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); Pemrograman JAVA
3
} } class penangantombol implements ActionListener { public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals("Perbesar")) { setSize(600,400); } else if (s.equals("Perkecil")) { setSize(400,150); } else if (s.equals("Keluar")) { System.exit(0); } } } } Hasil :
BOX Berguna untuk melakukan pengaturan terhadap sejumlah komponen. Contoh : // nama berkas : apsbox.java import javax.swing.*; import java.awt.event.*; import java.awt.*; public class apsbox extends JFrame { public static void main(String[] args) { apsbox aplikasi = new apsbox(); } public apsbox() { super("Aplikasi Box"); setSize(400,150); addWindowListener (new apsbox.keluar()); Box bt1 = Box.createVerticalBox(); Pemrograman JAVA
4
for (int i=1; i<=3; i++) bt1.add(new JButton("Tombol ke-"+i)); Box bt2 = Box.createHorizontalBox(); for (int i=1; i<=3; i++) { bt2.add(new JButton("Tombol ke-"+i)); bt2.add(Box.createHorizontalStrut(20)); } Pengaturan spasi tombol
Container p1 = getContentPane(); p1.add(BorderLayout.EAST, bt1); p1.add(BorderLayout.SOUTH, bt2); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } } Hasil :
MENU adalah kelas yag berguna untuk membuat batang menu yang biasa diletakkan di atas jendela dan bersifat pull down. Dalam prakteknya pembuatan batang menu melibatkan sejumlah kelas lain yaitu JMenu dan JMenuItem. Contoh : // nama berkas : menu.java import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.io.*; public class menu extends JFrame implements ActionListener { public static void main(String[] args) { menu aplikasi = new menu(); } public menu() { Pemrograman JAVA
5
super("Aplikasi Menu"); setSize(300,150); addWindowListener (new menu.keluar()); JMenuBar apsmenu = new JMenuBar(); setJMenuBar (apsmenu); JMenu file = new JMenu("File"); JMenu warna = new JMenu("Warna"); apsmenu.add(file); apsmenu.add(warna); JMenuItem buka = new JMenuItem("Buka"); JMenuItem simpan = new JMenuItem("Simpan"); JMenuItem garis = new JMenuItem("-"); JMenuItem keluar = new JMenuItem("Keluar"); file.add(buka); file.add(simpan); file.add(garis); file.add(keluar); JMenu latar = new JMenu("Warna Latar Belakang"); JMenu teks = new JMenu("Warna Teks"); warna.add(latar); warna.add(teks); JMenuItem latarputih = new JMenuItem("Putih"); JMenuItem latarabu = new JMenuItem("Abu-abu"); latar.add(latarputih); latar.add(latarabu); JMenuItem tekshitam = new JMenuItem("Hitam"); JMenuItem teksbiru = new JMenuItem("Biru"); teks.add(tekshitam); teks.add(teksbiru); keluar.addActionListener(this); show(); } class keluar extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals("Keluar")) { dispose(); } }
Pemrograman JAVA
6
} Hasil :
APPLET Merupakan program Java yang ditujukan secara khusus agar bisa berjalan di lingkungan web browser, misalnya Internet Explorer, Netscape Navigator, Opera dan sebagainya. Applet adalah subkelas dari Panel yang terletak pada java.applet dan dilengkapi dengan fitur untuk berkomunikasi dengan host server dan bahkan berkomunikasi antar applet namun tidak dirancang untuk tidak melakukan operasi penulisan ke komputer klien karena alasan keamanan. Contoh : // nama berkas : applet1.java import java.awt.*; import java.applet.Applet; public class applet1 extends Applet { public void paint(Graphics g) { Font f = new Font ("sanserif", Font.BOLD, 20); g.setFont(f); g.setColor(Color.BLUE); int xpusat = this.getSize().width/2; int ypusat = this.getSize().height/2; String s = "Teks ini dibuat dengan Java Applet"; FontMetrics fm = this.getFontMetrics(f); int posisix = xpusat - (fm.stringWidth (s) /2); g.drawString(s, posisix, ypusat); } } Kompilasi program untuk menghasilkan applet1.class kemudian buat program HTML sebagai berikut : Belajar Applet Belajar Applet
-- Akhir HTML - Jika program HTML di atas dijalankan dengan menggunakan Internet Explorer akan menghasilkan : Pemrograman JAVA
7
MELEWATKAN PARAMETER Parameter yang berasal dari skrip HTML dapat ditangkap dengan menggunakan metode : getParameter(String namaparameter) dan dikirimkan ke applet Java melalui tag <param> Contoh : // nama berkas : applet2.java import java.awt.*; import java.applet.Applet; public class applet2 extends Applet { String nama; public void init() { nama = getParameter("nama"); if (nama == null) nama = "Yudi Irawan Chandra"; nama = "Hai.."+nama+" , Apa Kabar ?"; } public void paint (Graphics g) { g.drawString(nama,10,25); } } File HTML : Belajar Applet Belajar Applet
-- Akhir HTML -
Pemrograman JAVA
8
MEMAINKAN SUARA Applet mendukung metode yang ditujukan untuk memainkan suara. Metode yang sederhana adalah dengan menggunakan : play(URL url, String namaberkas) atau dapat juga dengan menggunakan metode getAudioClip(). Beberapa tipe suara yang dapat dimainkan adalah : • MIDI (The Music Instrument Digital Interface) • RMF (The Rich Music Format) • WAV (format suara audio dari Microsoft) • AIFF (The Audio Interchage File Format) • AU (format suara audio dari SUN) Contoh : // nama berkas : musik.java import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.applet.AudioClip; public class musik extends Applet { Button main, berhenti, ulang; AudioClip klip; public void init() { klip = getAudioClip(getCodeBase(), "musik.mid"); main = new Button("Main"); berhenti = new Button("Berhenti"); ulang = new Button("Ulang"); add(main); add(berhenti); add(ulang); main.addActionListener(new musik.penangantombol()); berhenti.addActionListener(new musik.penangantombol()); ulang.addActionListener(new musik.penangantombol()); } class penangantombol implements ActionListener { public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals("Main")) klip.play(); else if (s.equals("Berhenti")) klip.stop(); else if (s.equals("Ulang")) klip.loop(); } } } File HTML : Belajar Applet Pemrograman JAVA
9
Aplikasi Musik
-- Akhir HTML - Hasil :
MENAMPILKAN GAMBAR Gambar dapat ditampilkan dengan kelas Image, metode paint() dan menggunakan drawImage() Contoh : // nama berkas : gambar.java import java.awt.*; import java.applet.Applet; public class gambar extends Applet { Image panda; public void init() { panda = getImage(getCodeBase(), "panda.gif"); } public void paint (Graphics g) { g.drawImage(panda,0,0, this); } } File HTML : Belajar Applet My Animation :
-- Akhir HTML - Hasil :
Pemrograman JAVA