Rabu, 16 November 2011

PERTEMAN 6


PACKAGE DAN JAVA KELAS

A.                PACKAGE
1. Pengertian
- Package adalah suatu cara untuk memanage class-class yang kita buat. Package akan sangat bermanfaat Jika class-class yang kita buat sangat banyak sehingga perlu dikelompokkan berdasarkan kategori tertentu.
- Package adalah koleksi dari beberapa class dan interface yang berhubungan, dan menyediakan proteksi akses dan pengelolaan namespace
2. Ketentuan
- 1 package adalah 1 subfolder di file system
- Package sangat berguna untuk mengorganisir file dalam suatu Project atau library
- Nama package menggunakan lowercase
- Keyword: package name;
3. Contoh
- Menyimpan program
Misalnya saja kita mempunyai 3 buah class menu makanan, dimana yang pertama adalah class Pagi untuk menupagi , yang kedua adalah class Siang untuk menusiang, dan yang ketiga adalah class Sore untuk menusore. Kita tetap dapat mendeklarasikan 3 class tersebut dengan nama masing-masing, dengan cara mendeklarasikannya package masingmasing class seperti yang tampak di bawah ini:

Yang perlu kita perhatikan pada saat deklarasikan package, bahwa class tersebut harus disimpan pada suatu direktori yang sama dengan nama package-nya. Berkenaan dengan class Pagi diatas, class Pagi pada package menupagi harus disimpan pada direktori menupagi, class Siang pada package menusiang harus disimpan pada direktori menusiang, class Sore pada package menusore harus disimpan pada direktori menusore, lihat gambar 1 dan 2.


Pada gambar 1 terlihat bahwa folder menupagi,folder menusiang,dan folder menusore disimpan sejajar dengan program class pemanggil package yaitu RestoranBeraksi.java pada folder projek restoran.
Selanjutnya posisi class yang menyimpan package

Pada gambar 2 terlihat bahwa folder menupagi berisi program class Pagi.java yang menyimpan package menupagi,folder menusiang berisi program class Siang.java yang menyimpan package menusiang,dan folder menusore berisi program class Sore.java yang menyimpan package menusore.
- Import class
Suatu class dapat meng-import class lainnya sesuai dengan nama package yang dipunyainya.
Misalnya saja kita dapat meng-import class Pagi.java dalam package menupagi dengan deklarasikan kata kunci import.
import menupagi.Pagi;
public class RestoranBeraksi {

}
Jika kita ingin meng-import semua class yang ada pada package menupagi, maka kita dapat mendeklarasikannya
dengan menuliskan tanda *.
import menupagi.*;
Satu hal yang perlu kita ketahui, pada saat kita ingin meng-import suatu class dalam suatu package, pastikan letak package tersebut satu direktori dengan class yang ingin meng-import. Dalam contoh gambar 1 terlihat bahwa program RestoranBeraksi.Java berada satu direktori dengan folder paket-paket yaitu folder Projek Restoran.
Jika letak package tersebut tidak satu direktori dengan class yang ingin meng-import, maka letak direktori package itu haruslah terdaftar dalam CLASSPATH.
- Projek lengkap Restoran
1. Program package menupagi (Pagi.java)
Buatlah program class Pagi.java yang disimpan pada folder menupagi, seperti terlihat pada gambar di bawah ini
2. Program package menusiang (Siang.java)
Buatlah program class Siang.java yang disimpan pada folder menusiang, seperti terlihat pada gambar di bawah ini




3. Program package menusore (Sore.java)
Buatlah program class Sore.java yang disimpan pada folder menusore, seperti terlihat pada gambar di bawah ini



4. Program Class pemanggil package (RestoranBeraksi.java)
Buatlah program class Objek RestoranBeraksi.java yang disimpan pada folder Projek Restoran, seperti terlihat pada gambar di bawah ini


B.                 JAVA KELAS

1.      Kelas String

Kelas string merupakan suatu kelas yang menangani deretan karakter.kelas ini mendukung sjumlh method yang sangat berguna untuk memanipulasi string.
Nilai suatu String adalah objek. Objek ini berisi rangkaian huruf yang membentuk string. Objek tersebut juga berisi subrutin. Misalnya length adalah fungsi yang menghitung panjang suatu string, atau jumlah karakter dalam suatu string. Misalnya string str yang dideklarasikan sebagai berikut :
String str;
str = "Hari ini cerah sekali!"
Untuk menghitung jumlah karakter dalam string str, panggil fungsi str.length() yang keluarannya bertipe int. Fungsi ini tidak membutuhkan parameter. Fungsi length merupakan anggota kelas String dan dapat digunakan oleh semua data yang bertipe String. Dan juga bisa digunakan oleh literal string, misalnya program berikut menghitung jumlah karakter dalam string "Indonesia Raya" :
System.out.print("Jumlah karakter dalam \"Indonesia Raya\" adalah ");
System.out.print("Indonesia Raya".length());
System.out.println(" karakter");
Kelas String memiliki beberapa fungsi di antaranya :
·         s1.equals(s2) adalah fungsi yang mengembalikan nilai boolean (true atau false). Fungsi ini akan menghasilkan true jika s2 sama dengan s1, dan salah jika tidak. Kesamaan yang diuji adalah kesamaan persis baik kapitalnya maupun urutan huruf-hurufnya.
·         s1.equalsIgnoreCase(s2) juga menghasilkan nilai boolean yang menguji apakah string s2 sama dengan s1 dengan tidakmembandingkan kapitalnya. "Kucing".equalsIgnoreCase("kucing") menghasilkan true.
·         s1.length(). Seperti diulas sebelumnya, fungsi ini menghitung jumlah karakter dalam string s1.
·         s1.charAt(N). N adalah integer (bilangan bulat). Fungsi ini mengembalikan karakter ke-N dari string s1. Karakter pertama dihitung sebagai posisi ke-0. s1.charAt(0) berarti mengambil karakter pertama, sedangkan s1.charAt(1) berarti mengambil karakter ke-2, dan seterusnya. Karakter terakhir memiliki indeks s1.length() - 1. Fungsi ini akan mengeluarkan pesan kesalahan apabila N bernilai negatif atau lebih besar dari s1.length() - 1.
·         s1.substring(N,M), di mana N dan M bilangan bulat. Fungsi ini mengambil potongan string antara karakter ke-N hingga karakter M-1. Catatan bahwa karakter ke-M tidak ikut diambil. Misalnya, "jalan layang".substring(1,4) menghasilkan "ala".
·         s1.indexOf(s2) mengembalikan nilai integer. Fungsi ini mencari string s2 di dalam string s1, dan apabila ditemukan mengembalikan posisi awal s2 di dalam s1. Jika tidak ditemukan, fungsi ini akan mengembalikan -1. Fungsi ini bisa juga digunakan untuk mencari string s2 dalam s1 setelah posisi ke-N dalam string s1. Misalnya, "kelapa muda".indexOf("a")menghasilkan 3, sedangkan "kelapa muda".indexOf("a",6) menghasilkan 10.
·         s1.compareTo(s2) membandingkan s2 dan s1. Jika s1 dan s2 sama, hasilnya 0. Jika s1 kurang dari s2, hasilnya bilangan negatif , dan jika s1 lebih besar dari s2, hasilnya bilangan positif. "Kurang dari" atau "lebih dari" mengacu pada urutannya dalam abjad jika keduanya huruf kecil atau keduanya huruf besar. Jika kapitalnya berbeda, perbandingannya bergantung pada nilai ASCII-nya.
·         s1.toUpperCase() adalah fungsi untuk mengubah seluruh huruf dalam s1 menjadi huruf besar.
·         s1.toLowerCase() berfungsi untuk mengubah huruf dalam s1 menjadi hurug kecil.
·         s1.trim() adalah berfungsi menghapus karakter yang tak bisa dicetak, misalnya spasi, baris baru, enter, yang ada sebelum atau sesudah suatu kalimat. Misalnya "  selamat pagi bu  ".trim() menghasilkan "selamat pagi bu".
Untuk s1.toUpperCase(), s1.toLowerCase(), s1.trim() nilai s1 tidak berubah. Fungsi ini melakukan perhitungan kemudian mengembalikan string baru hasil perhitungan tersebut.
Kita bisa juga menggunakan tanda + menyambung 2 string. Misalnya "mata" + "hari" menjadi "matahari". Nilai yang dapat disambungkan bukan hanya string dan string, tetapi juga string dan angka, misalnya "jalan" + 2 menjadi "jalan2".

2.             Kelas Math
Math adalah kelas yang terdapat pada paket java.lang yang berguna untuk melkukan berbagai oprasi matematika.

Kelas Math memiliki banyak fungsi statik. Beberapa yang penting di antaranya:
·  Math.abs(x), menghitung nilai mutlak (absolut) dari x. Nilai mutlak bilangan negatif adalah bilangan positif, dan bilangan positif tetap bilangan positif.
·  Fungsi trigonometri Math.sin(x)Math.cos(x), and Math.tan(x). (Untuk semua fungsi trigonometri, sudut memiliki satuan radian, bukan derajat)
·  Fungsi trigonometri inverse, yang mencari sudut dari suatu nilai trigonometric, kebalikan dari fungsi trigonometri, seperti arcus sin, arcus cos, dan arcus tangen. Math.asin(x)Math.acos(x), and Math.atan(x).
·  Math.exp(x), menghitung pangkat dari bilangan natural e, atau ex. Dan logaritma natural loge x atau ln x bisa dihitung dengan menggunakan fungsi Math.log(x).
·  Math.pow(x,y) menghitung xy atau x pangkat y
·  Math.floor(x) menghitung pembulatan ke bawah dari suatu bilangan riil, misalnya 3.84 akan dibulatkan ke bawah menjadi 3.0
·  Math.random() memilih bilangan acak di antara 0.0 dan 1.0. Komputer memiliki algoritma perhitungan tertentu yang hasilnya bilangan acak (meskipun bulan bilangan yang betul-betul acak, tetapi cukup untuk kebanyakan fungsi)
Paremeter (nilai di dalam kurung) fungsi-fungsi di atas bisa bertipe numerik apa saja (misalnya double, int, dll), tetapi keluarannya bertipe double, kecuali abs(x) yang tipe keluarannya sama dengan tipe parameternya.
Math.random() tidak memiliki parameter, tetapi tanda kurungnya harus tetap ditulis untuk membedakan fungsi dan variabel. Contoh fungsi lain yang tidak memiliki parameter adalah System.currentTimeMillis() yang berguna untuk mengambil waktu saat ini dalam satuan milidetik, dihitung sejak 1 Januri 1970 waktu GMT. Satu milidetik sama dengan 1 per 1000 detik. Keluarannya bertipe long.
Untuk menghitung waktu yang diperlukan untuk menjalankan suatu perintah, jalankan fungsi System.currentTimeMillis()sebelum dan sesudah suatu instruksi dijalankan. Perbedaannya adalah waktu yang diperlukan untuk menjalankan suatu instruksi.
 CONTOH
Berikut ini adalah listing program untuk melakukan beberapa perhitungan matematika, menampilkan hasilnya di layar, dan melaporkan waktu yang diperlukan untuk melakukan perhitungan tersebut.

Ø    Penggunaan Kelas Math 

Bisa ditulis sebagai penggunaan kode metoda yang berikut java.lang. 
Math kelas : abs, ceil, lantai, max, min, acak, putaran, dosa, cos, berwarna coklatlah, sqrt. 

Menulis kode menggunakan kelas metoda java.lang. 
Math sebagai berikut : abs,ceil,floor,max,min,random,round,sin,cos,tan,sqrt. 

Java.Lang Paket menggambarkan kelas pokok pada bahasa java .Karena itu, semua kelas di dalampaketjava.lang diimport secara otomatis, maka tidak ada alasan untuk menulis suatu statemen import/ masukan . Paket menggambarkan tbungkus obyek untuk semua jenis data primitif. Nama 
Kelas adalah Boolean, Byte, Character, Double Long, short seperti halnya Obyek, kelas dari yang semua lain Kelas turunan dari java. 

Java.Lang Paket juga berisi Math Kelas, yang mana digunakan untuk melaksanakan mathematical operasi basis dasar. Math Kelas menggambarkan perkiraan untuk mathematical pi (22/7) tetap . 

Seperti dijelaskan pada datar berikut : 

Math.Pi ganda statis akhir publik yang publik Math.E ganda statis akhir 

Sebab semua metoda Math Kelas digambarkan sebagai statis, tidak harus menciptakan suatu kejadian untuk menggunakannya Sesungguhnya, tidak mungkin untuk menciptakan suatu kejadian Math Kelas sebab kelas ini bersifat private. 

Metoda java.lang.Math Kelas Metoda Math Kelas adalah statis dan dapat diakses seperti umumnyamethod—through statis nama kelas. Karena metoda ini disebut fdengan ormat yang umum seperti hasil= Math.Astaticmathmethod(); 
Bagian yang berikut menguraikan Math Metoda dan meliputi contoh bagaimana cara menggunakannya. 

abs() 

Abs() metoda kembali[kan nilai mutlak argument—for contoh, x= Math.Abs(99);// Keluaran adalah 99 x= Math.Abs(-99)// Keluaran 99 Metoda dimuati berlebihan untuk mengambil suatu int, suatu [panjang/lama], suatu pelampung, atau suatu argumentasi ganda. Dalam semua tetapi dua kasus, nilai yang dikembalikan adalah tidak negatif. Tandatangan abs() 

metoda sebagai berikut: 

statis publik int abs(int a) 

statis publik merindukan abs(long a) 

pelampung statis publik abs(float a) 

abs(double ganda statis publik a) 

ceil() 

Ceil() Metoda mengembalikan bilangan bulat yang paling kecil, sebagai ganda, yang adalah lebih besar dari atau sepadan dengan argumentasi tersebut dan sepadan dengan bilangan bulat yang paling dekat menghargai. Dengan kata lain, argumentasi dibulatkan kepada padanan bilangan bulat yang paling dekat. 

Sekarang perhatikan contoh beberapa kasus di bawah ini hanya untuk meyakinkan kamu menjadi terbiasa dengan konsep tersebut. Semua panggilan yang berikut ke Math.Ceil() mengembalikan nilai yang ganda 9.0: 

Math.Ceil(9.0) // Hasil 9.0 Math.Ceil(8.8) // naik untuk 9.0 Math.Ceil(8.02) // masih naik untuk 9.0 Angka-Angka negatif adalah serupa, hanya ingat bahwa – 9 adalah lebih besar dari – 10. 

Semua panggilan yang berikut ke Math.Ceil() mengembalikan nilai yang ganda - 9.0: 

Math.Ceil(-9.0) // Hasil adalah – 9.0 Math.Ceil(-9.4)/ / naik untuk – 9.0 Math.Ceil(-9.8) // masih naik untuk – 9.0 Ada hanya satu ceil() metoda dan [itu] mempunyai tandatangan yang berikut: 

ceil(double ganda statis publik a) 

Floor() 

Floor() Metoda mengembalikan nilai ganda yang paling besar yang kurang dari atau sepadan dengan argumentasi dan sepadan dengan bilangan bulat yang paling dekat dengan logika Metoda ini adalah lawan yang tepat ceil() metoda. 

Semua panggilan yang berikut ke Math.Floor() kembali[kan nilai yang ganda 9.0: 

Math.Floor(9.0)// Hasil 9.0 Math.Floor(9.4)// menetes jatuh untuk 9.0 Math.Floor(9.8)// masih menetes jatuh untuk 9.0 Sama dengan dulu, mengingat-ingat bahwa dengan angka-angka negatif, – 9 kurang dari – 8! Semua panggilan yang berikut ke Math.Floor() kembali[kan nilai yang ganda – 9.0: 

Math.Floor(-9.0)// Hasil adalah – 9.0 Math.Floor(-8.8)// menetes jatuh untuk – 9.0 Math.Floor(-8.1)// masih menetes jatuh untuk – 9.0 Tandatangan lantai() metoda sebagai berikut: 

floor(double ganda statis publik a) 

floor() dan ceil() metoda mengambil hanya ganda. Tidak ada metoda dimuati berlebihan untuk bilangan penuh, sebab metoda akan hanya berakhir mengembalikan bilangan penuh yang mereka telah dilalui. Keseluruhan titik floor() dan ceil() adalah untuk mengkonversi angka-angka titik-kambang ( ganda), ke bilangan bulat, berdasar pada ketentuan-ketentuan metoda [itu]. Mungkin nampak asing/aneh ( [itu] mengerjakan kepada [kita/kami]) [bahwa/yang] nilai-nilai bilangan bulat dikembalikan [adalah] suatu kontainer sized ganda, tetapi don’t biarkan lemparan itu [yang] kamu. 

max() 

Max() Metoda mengambil dua argumentasi klasifikasi dan kembali[kan semakin besar two—for contoh, x= Math.Max(1024, - 5000);// keluaran adalah 1024. 

Metoda ini dimuati berlebihan untuk menangani int, [panjang/lama], mengapung, atau argumentasi ganda. Jika parameter masukan adalah sama, max() kembali[kan suatu nilai sepadan dengan argumentasi keduanya. 

Tandatangan max() metoda sebagai berikut: 

statis publik int max(int a, int b) 

statis publik merindukan max(long a, merindukan b) 

pelampung statis publik max(float a, mengapung b) 

max(double ganda statis publik a, menggandakan b) 

min() 

Min() Metoda adalah lawan yang tepat max() metoda; [itu] mengambil dua argumentasi klasifikasi dan kembali[kan yang lebih sedikit untuk two—for contoh, x= Math.Min(0.5, 0.0);// keluaran 0.0 Metoda ini dimuati berlebihan untuk menangani int, [panjang/lama], mengapung, atau argumentasi ganda. Jika parameter masukan adalah sama, min() kembali[kan suatu nilai sepadan dengan argumentasi keduanya. 

Tandatangan min() metoda sebagai berikut: 

statis publik int min(int a, int b) 

statis publik merindukan min(long a, merindukan b) 

pelampung statis publik min(float a, mengapung b) 

min(double ganda statis publik a, menggandakan b)


LANGKAH-LANGKAH PRAKTIKUM

Manusia.java
//file manusia harus berada dalam folder makhlukhidup
package makhlukhidup;
public class manusia {
                public String nama="";
                public manusia(String nama) {
                                this.nama=nama;
                }
}
Hasil eksekusi


Tumbuhan.java
//file tumbuhan harus berada dalam folder makhlukhidup
package makhlukhidup;
public class tumbuhan {
                public String nama="";
                public tumbuhan(String nama) {
                                this.nama=nama;
                }
}
Hasil eksekusi


Burung.java
//file burung harus berada dalam folder makhlukhidup/hewan`
package makhlukhidup.hewan;
public class burung {
                public static final boolean bisaterbang=true;
                public  String nama="";
                public burung(String nama) {
                                this.nama=nama;
                                System.out.println("Nama burung: "+nama);
                }
}

Hasil Eksekusi


MainMakhlukHidup.java
//file mainmakhlukhidup harus berada dalam folder meet6
public class mainmakhlukhidup {
                public static void main(String [] args) {
                                makhlukhidup.manusia m= new makhlukhidup.manusia("Sayuti");
                                System.out.println("nama  : "+m.nama);

                                makhlukhidup.tumbuhan t = new makhlukhidup.tumbuhan("Palem");
                                System.out.println("nama  : "+t.nama);

                                System.out.println("Semua burung pasti bisa terbang?" +makhlukhidup.hewan.burung.bisaterbang);
                                makhlukhidup.hewan.burung b= new makhlukhidup.hewan.burung("Beo");
                }
}
Hasil Eksekusi


MainMakhlukhidupPakeImport
//file mainmakhlukhidup harus berada dalam folder meet6
import makhlukhidup.*;
import makhlukhidup.hewan.*;

public class mainmakhlukhiduppakeimport {
                public static void main(String [] args) {
                                                manusia m= new manusia("Sayuti");
                                                System.out.println("Nama   : "+m.nama);

                                                makhlukhidup.tumbuhan t = new makhlukhidup.tumbuhan("Palem");
                                                System.out.println("nama  : "+t.nama);

                                                System.out.println("Semua burung pasti bisa terbang?" +makhlukhidup.hewan.burung.bisaterbang);
                                                makhlukhidup.hewan.burung b= new makhlukhidup.hewan.burung("Beo");
                }
}
Hasil Eksekusi


Contoh String.java
public class contohstring {
                public static void main(String[] args) {
                                String kalimat="Selamat belajar JAVA";
                                System.out.println("toUpperCase     :" +kalimat.toUpperCase());
                                System.out.println("tolowerCase      :" +kalimat.toLowerCase());
                                System.out.println("Jumlah karakter  : "+kalimat.length());
                                System.out.println("Karakter index  ke 0 : " +kalimat.charAt(0));
                                System.out.println("Substing(16,20) :" +kalimat.substring(16,20));
                                System.out.println("Karakter index ke 0:  " +kalimat.trim());
}
}
Hasil eksekusi




OpMatematika
public class opmatematika{
                public static void main(String[]args) {
                                System.out.println("E             = " +Math.E);
                                System.out.println("PI            = " +Math.PI);
                                System.out.println("Ln 20         = " +Math.log(20.0));
                                System.out.println("ceil(-5.6)    = " +Math.ceil(-5.6));
                                System.out.println("floor(-5.6)   = " +Math.floor(-5.6));
                                System.out.println("round( -5.6)   = " +Math.round(-5.6));
                                System.out.println("sqrt(25)      = " +Math.sqrt(25));
                                System.out.println("pow(25,0.5)   = " +Math.pow(25,0.5));
}
}





Hasil eksekusi