Senin, 12 Desember 2011
HUKUM MOORE LAW
Hukum Moore's Law menggambarkan tren jangka panjang dalam sejarah perangkat keras komputer.
Jumlah transistor yang dapat ditempatkan pada sebuah sirkuit terpadu ganda kira-kira setiap dua tahun periode dan sering dikutip sebagai "18 bulan" karena Daud House, seorang eksekutif Intel, yang memprediksi bahwa periode dua kali lipat dalam kinerja chip.
Kemampuan dari banyak perangkat elektronik digital sangat terkait dengan Hukum Moore's Law kecepatan pemrosesan, kapasitas memori, sensor dan bahkan jumlah dan ukuran piksel dalam kamera digital. Semua ini meningkatkan di (sekitar) harga eksponensial juga Peningkatan eksponensial telah secara dramatis meningkatkan dampak dari elektronika digital dalam hampir setiap segmen ekonomi dunia. hukum Moore menggambarkan kekuatan pendorong perubahan teknologi dan sosial di akhir abad ke-21 ke-20.
Hukum ini dinamai Intel co-founder E. Gordon Moore, yang menggambarkan tren di tahun 1965. mencatat bahwa jumlah komponen dalam sirkuit terpadu telah dua kali lipat setiap tahun dari penemuan dari sirkuit terpadu pada tahun 1958 sampai tahun 1965 dan memperkirakan bahwa kecenderungan akan terus "untuk setidaknya sepuluh tahun" prediksi-Nya telah terbukti secara luar biasa akurat, sebagian karena hukum yang sekarang digunakan dalam industri semikonduktor untuk membimbing panjang jangka perencanaan dan menetapkan target untuk penelitian dan pengembangan
Jumlah transistor yang dapat ditempatkan pada sebuah sirkuit terpadu ganda kira-kira setiap dua tahun periode dan sering dikutip sebagai "18 bulan" karena Daud House, seorang eksekutif Intel, yang memprediksi bahwa periode dua kali lipat dalam kinerja chip.
Kemampuan dari banyak perangkat elektronik digital sangat terkait dengan Hukum Moore's Law kecepatan pemrosesan, kapasitas memori, sensor dan bahkan jumlah dan ukuran piksel dalam kamera digital. Semua ini meningkatkan di (sekitar) harga eksponensial juga Peningkatan eksponensial telah secara dramatis meningkatkan dampak dari elektronika digital dalam hampir setiap segmen ekonomi dunia. hukum Moore menggambarkan kekuatan pendorong perubahan teknologi dan sosial di akhir abad ke-21 ke-20.
Hukum ini dinamai Intel co-founder E. Gordon Moore, yang menggambarkan tren di tahun 1965. mencatat bahwa jumlah komponen dalam sirkuit terpadu telah dua kali lipat setiap tahun dari penemuan dari sirkuit terpadu pada tahun 1958 sampai tahun 1965 dan memperkirakan bahwa kecenderungan akan terus "untuk setidaknya sepuluh tahun" prediksi-Nya telah terbukti secara luar biasa akurat, sebagian karena hukum yang sekarang digunakan dalam industri semikonduktor untuk membimbing panjang jangka perencanaan dan menetapkan target untuk penelitian dan pengembangan
Selasa, 06 Desember 2011
Ό Cara kerja piranti I/O
cara kerja piranti I/O dalam pemindahan data dari peripheral ke CPU melalui sebuah modul I/O
º permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O
º modul I/O memberi jawaban atas permintaan CPU
º apabila perangkat eksternal udah siap untuk transfer data maka CPU akan
mengirimkan perintah ke modul I/O
º modul I/O akan menerima paket data dengan panjang tertentu dari peripheral
º selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan
kecepatan transfer oleh modul I/O sehingga paket-paket data dapat di terima CPU
dengan baik.
Contoh-contoh piranti I/O
Piranti input langsung » yaitu input yang dimasukkan langsung diproses oleh alat
pemroses.
Contohnya : keyboard, mouse, touch screen, light pen, digitizer graphics tablet, scanner.
Piranti input tidak langsung » input yang melalui media tertentu sebelum suatu input diproses oleh alat pemroses.
Contohnya : punched card, disket, harddisk.
cara kerja piranti I/O dalam pemindahan data dari peripheral ke CPU melalui sebuah modul I/O
º permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O
º modul I/O memberi jawaban atas permintaan CPU
º apabila perangkat eksternal udah siap untuk transfer data maka CPU akan
mengirimkan perintah ke modul I/O
º modul I/O akan menerima paket data dengan panjang tertentu dari peripheral
º selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan
kecepatan transfer oleh modul I/O sehingga paket-paket data dapat di terima CPU
dengan baik.
Contoh-contoh piranti I/O
Piranti input langsung » yaitu input yang dimasukkan langsung diproses oleh alat
pemroses.
Contohnya : keyboard, mouse, touch screen, light pen, digitizer graphics tablet, scanner.
Piranti input tidak langsung » input yang melalui media tertentu sebelum suatu input diproses oleh alat pemroses.
Contohnya : punched card, disket, harddisk.
Minggu, 04 Desember 2011
Sabtu, 03 Desember 2011
<>Jenis-Jenis Piranti I/O
Paralel : LPT, ISA, EISA, PCI, AGP, PCIxpress, dll
Serial : RS232, RS485, RS422, USB, IrDA, dll
<>Blog diagram
Paralel : LPT, ISA, EISA, PCI, AGP, PCIxpress, dll
Serial : RS232, RS485, RS422, USB, IrDA, dll
<>Blog diagram
Penjelasan :
Piranti I/O (Input/Output) dihubungkan ke sistem komputer lewat I/O bus dan memiliki
fungsi khusus untuk memberi masukkan data atau mengolah data atau mengolah data
keluaran dari komputer.
Rabu, 11 Mei 2011
Faktorial
public class faktorial
{
public static void main(String[] args)
{
int f;
int n;
Scanner input=new Scanner(System.in);
System.out.print("masukkan nilai f: ");
f=input.nextInt();
System.out.print("masukkan nilai n: ");
n=input.nextInt();
for (int i=1 ; i<=n ; i++) f*=i;
System.out.println(n+"! ="+f);
}
}
array 2 dimensi kamus
public class array_2_dimensi
{public static void main (String[] args)
{ Scanner input=new Scanner(System.in);
String [][] kata={
{"one","satu"},{"cow","sapi"},{"run","lari"},{"red","merah"},{"man","orang"}
};
String katadicari;
System.out.print("Kata Yang Di Cari = ");
katadicari=input.nextLine();
int i,k;k=-1;
for (i=0;i<5;i++)
{
if(kata[i][0].equals(katadicari))
{
k=i;
}
}
if (k==-1)
{System.out.println ("kata yang di cari tidak ditemukan");
}
else
{
System.out.println("terjemahan = "+kata [k][1]);
}
}
}
Rabu, 23 Maret 2011
Menghitung Luas Segitiga
import java.util.Scanner;
public class LuasSegitiga
{
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
int a, t;
double luas;
System.out.print("Nilai Alas = "); a = input.nextInt();
System.out.print("Nilai Tinggi = "); t = input.nextInt();
luas = (a*t)/2;
System.out.printf("Luas Segitiga = " +luas);
}
}
public class LuasSegitiga
{
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
int a, t;
double luas;
System.out.print("Nilai Alas = "); a = input.nextInt();
System.out.print("Nilai Tinggi = "); t = input.nextInt();
luas = (a*t)/2;
System.out.printf("Luas Segitiga = " +luas);
}
}
Rabu, 16 Maret 2011
program java luas lingkaran
Menghitung Luas Lingkaran
Package lingkaran;
import java.util.Scanner;
public class luaslingkaran
{
public static void main (String args [] )
{
Scanner masuk=new Scanner (System.in);
double phi =3.14;
int r;
double luas;
System.out.println(“Nama : handy agustian”);
System.out.println(“input jari-jari lingkaran:”);
r=masuk.nextInt();
luas=phi * r * r;
System.out.println(“luas lingkaran: “ +luas);
}
}
kita dapat jalankan dari menu run->run file ( tombol Shift+F6)
Program yang telah dijalankan
Kesimpulan
Apa yang kita lakukan pada latihan ini, sama persis dengan latihan kita sebelumnya
, perbedaannya hanya pada implementasi rumus matematik saja. Sehingga kita bisa simpulkan untuk inti dari pelajaran ini adalah :
1. Bagaimana membuat variabel di java
2. Bagaimana melakukan perhitungan di java
Beberapa hal yang juga perlu diperhatikan :
1. Bagaimana cara menulis komentar dengan menggunakan tanda //
2. Bagaimana menulis ke layar dengan menggunakan System.out.println();
Yah!, memang belum banyak yang kita dapat, tapi ingat dengan semangat untuk memulai hal yang kecil maka yang besar akan dapat dicapai. Happy Programming!
double pi = 3.14;
int jari = 10; //
double luaslingkaran = pi*(jari*jari);
//print out ke layar
System.out.println("Luas lingkaran : " + luaslingkaran);
Pengertian Class dan Object
Pengertian Class dan Object
Didalam Java kita mengenal yang namanya Object Oriented Programming (OOP). Java adalah bahasa yang murni berorientasi object sehingga kita tidak bisa mendefinisikan object diluar class atau memakai class itu secara langsung.
Mungkin Anda pernah mendengar kata class sebelumnya dalam bahasa pemrograman.Class diumpamakan seperti cetakan yang berguna untuk mencetak suatu object. Contoh dari sebuah cetakan/class tersebut misalnya cetakan dari sebuah mobil sedan. Mobil sedan tentunya mempunyai konsep. Konsep inilah yang akan dipakai untuk membentuk/mencetak hingga menjadi mobil sedan. Oleh karena itu konsep bisa berarti class atau cetakan.
Contoh cetakan/class/konsep dari mobil sedan adalah sebagai berikut :
Mempunyai mesin
Mempunyai roda sebanyak 4 yaitu 2 didepan dan 2 dibelakang
Mempunyai setir
Mempunyai body atau kerangka dengan panjang, lebar dan tinggi
Mempunyai warna
Mempunyai perseneling
Mempunyai knalpot
Sampai akhirnya didalam pabrik, cetakan/class/konsep tersebut dapat digunakan untuk membuat banyak object baru tentunya dengan berbeda nama/merk.
Class juga bisa diilustrasikan atau diumpamakan dengan makhluk hidup. Contohnya adalah hewan mamalia yaitu kucing. Didalam ilmu biologi, kucing tergolong dalam class hewan pemakan daging atau karnivora dan tentunya mempunyai bentuk atau konsep. Tuhan Yang Maha Kuasa sudah sudah menentukan bentuk daripada class kucing tersebut.
Class Dog mempunyai konsep sebagai berikut :
Mempunyai kaki sebanyak 4 yaitu 2 didepan dan 2 dibelakang
Mempunyai suara yaitu“gug...gug...”
Mempunyai golongan/family yaitu hewan bertulang belakang atau vertebrata dan termasuk golongan mamalia pemakan daging atau karnivora
Nah didalam Java, class mempunyai makna yang sama dengan ilustrasi diatas. Didalam Java kita tidak bisa sembarangan membuat, menciptakan atau mewujudkan suatu object tanpa didasarkan pada konsep/cetakan/class. Oleh karena itu Java adalah bahasa pemrograman yang murni berorientasi object atau dengan kata lain semua pekerjaan yang dikerjakan menggunakan bahasa Java harus dilakukan didalam class.
JAVA CLASS DAN OBJECT
4.1 Mendefinisikan Class
Sebelum menulis class, pertama pertimbangkan dimana akan menggunakan class
dan bagaimana class tersebut akan digunakan. Pertimbangkan pula nama yang tepat
dan tuliskan seluruh informasi atau properti yang ingin diisikan pada class. Jangan
sampai terlupa untuk menuliskan secara urut method yang akan digunakan dalam
class.
Dalam pendefinisian class, dituliskan :
class {
*
*
*
}
dimana :
adalah sebuah access modifier, yang dapat dikombinasikan dengan tipe
modifier lain.
Pada bagian ini, kita akan membuat sebuah class yang berisi record dari siswa. Jika
kita telah mengidentifikasikan tujuan dari pembuatan kelas, maka dapat dilakukan
pemberian nama yang sesuai. Nama yang tepat pada class ini adalah StudentRecord.
Untuk mendefinisikan class, kita tuliskan :
public class StudentRecord
{
//area penulisan kode selanjutnya
}
dimana,
Public - Class ini dapat diakses dari luar package
Class - Keyword yang digunakan di pembuatan class Java
StudentRecord - Identifier yang menjelaskan class
4.2 Deklarasi Atribut
Dalam pendeklarasian atribut, kita tuliskan :
[= ];
Langkah selanjutnya adalah mengurutkan atribut yang akan diisikan pada class.
Untuk setiap informasi, urutkan juga tipe data yang yang tepat untuk digunakan.
Contohnya, tidak mungkin menginginkan untuk menggunakan tipe data integer
untuk nama siswa, atau tipe data string pada nilai siswa.
Berikut ini adalah contoh informasi yang akan diisikan pada class StudentRecord :
name - String
address - String
age -Int
math grade - double
english grade - double
science grade - double
average grade – double
4.3 Instance Variable
Jika kita telah menuliskan seluruh atribut yang akan diisikan pada class, selanjutnya
kita akan menuliskannya pada kode. Jika kita menginginkan bahwa atribut – atribut
tersebut adalah unik untuk setiap object (dalam hal ini untuk setiap siswa), maka kita
harus mendeklarasikannya sebagai instance variable :
Sebagai contoh :
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
//area penulisan kode selanjutnya
}
dimana,
private disini menjelaskan bahwa variabel tersebut hanya dapat diakses oleh class itu
sendiri. Object lain tidak dapat menggunakan variabel tersebut secara langsung.
4.4 Class Variable atau Static Variables
Disamping instance variable, kita juga dapat mendeklarasikan class variable atau
variabel yang dimiliki class sepenuhnya. Nilai pada variabel ini sama pada semua
object di class yang sama. Anggaplah kita menginginkan jumlah dari siswa yang
dimiliki dari seluruh kelas, kita dapat mendeklarasiakan satu static variable yang
akan menampung nilai tersebut. Kita beri nama variabel tersebut dengan nama
studentCount.
Berikut penulisan static variable :
public class StudentRecord
{
//area deklarasi instance variables
private static int studentCount;
//area penulisan kode selanjutnya
}
Kita gunakan keyword : ’static’ untuk mendeklarasikan bahwa variabel tersebut
adalah static.
Maka keseluruhan kode yang dibuat terlihat sebagai berikut :
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;
//area penulisan kode selanjutnya
}
4.5 Deklarasi Methods
Sebelum kita membahas method apa yang akan dipakai pada class, mari kita
perhatikan penulisan method secara umum.
Dalam pendeklarasian method, kita tuliskan :
(*) {
*
}
dimana,
dapat menggunakan beberapa modifier yang berbeda
dapat berupa seluruh tipe data, termasuk void
identifier atas class
::= [,]
4.6 Accessor Methods
Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang
object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari
class sebagai private. Namun, ada kalanya dimana kita menginginkan object lain
untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods.
Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa
instance maupun static. Sebuah accessor method umumnya dimulai dengan
penulisan get. Method ini juga mempunyai sebuah return
value.
Sebagai contoh, kita ingin menggunakan accessor method untuk dapat membaca
nama, alamat, nilai bahasa Inggris, Matematika, dan ilmu pasti dari siswa.
Mari kita perhatikan salah satu contoh implementasi accessor method.
public class StudentRecord
{
private String name;
::
public String getName(){
return name;
}
}
dimana,
public - Menjelaskan bahwa method tersebut dapat diakses object luar kelas
String - Tipe data return value dari method tersebut
getName - Nama dari method
() - Menjelaskan bahwa method tidak memiliki parameter apapun
Pernyataan berikut, return name; dalam program kita menandakan akan ada
pengembalian nilai dari instance variable name pada pemanggilan method.
Perhatikan bahwa return type dari method harus sama dengan tipe data terhadap data
pada pernyataan return. Akana didapatkan pesan kesalahan sebagai berikut bila tipe
data yang digunakan tidak sama :
StudentRecord.java:14: incompatible types
found : int
required: java.lang.String
return age;
^
1 error
Contoh lain dari penggunaan accessor method adalah getAverage,
public class StudentRecord
{
private String name;
::
public double getAverage(){
double result = 0;
result = ( mathGrade+englishGrade+scienceGrade )/3;
return result;
}
}
Method getAverage() menghitung rata – rata dari 3 nilai siswa dan menghasilkan
nilai return value dengan nama result.
4.7 Mutator Methods
Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita
lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable
dalam class, baik itu berupa instance maupun static. Method semacam ini disebut
dengan mutator methods. Sebuah mutator method umumnya tertulis set
.
Mari kita perhatikan salah satu dari implementasi mutator method :
public class StudentRecord
{
private String name;
::
public void setName( String temp ){
name = temp;
}
}
dimana,
public - Menjelaskan bahwa method ini dapat dipanggil object luar kelas
void - Method ini tidak menghasilkan return value
setName - Nama dari method
(String temp) - Parameter yang akan digunakan pada method
Pernyataan berikut :
name = temp; mengidentifikasi nilai dari temp sama dengan name dan
mengubah data pada instance variable name.
Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi
beberapa argumen dari program yang akan digunakan oleh method.
4.8 Multiple Return Statements
Sebuah method dapat mempunyai banyak return values selama tidak pada blok
program yang sama. Dapat juga menggunakan konstanta disamping variabel sebagai
return value.
Sebagai contoh, perhatikan method berikut ini :
public String getNumberInWords( int num ){
String defaultNum = "zero";
if( num == 1 ){
return "one"; //mengembalikan sebuah konstanta
}
else if( num == 2){
return "two"; //mengembalikan sebuah konstanta
}
// mengembalikan sebuah variabel
return defaultNum;
}
4.9 Static Methods
Kita menggunakan static method untuk mengakses static variable studentCount.
public class StudentRecord
{
private static int studentCount;
public static int getStudentCount(){
return studentCount;
}
}
dimana,
public - Menjelaskan bahwa method ini dapat diakses object luar kelas
static - Method ini adalah static dan pemanggilannya menggunakan [namaKelas].
[namaMethod].
Sebagai contoh :
studentRecord.getStudentCount
Int - Tipe return dari method. Mengindikasikan method tersebut harus mempunyai
return value berupa integer
getStudentCount - Nama dari method
public - Menjelaskan bahwa method ini dapat diakses object luar kelas
( ) - Method ini tidak memiliki parameter apapun
Pada deklarasi di atas, method getStudentCount() akan selalu menghasilkan return
value 0 jika kita tidak mengubah apapun pada kode program untuk mengatur
nilainya. Kita akan membahas pengubahan nilai dari studentCount pada pembahasan
constructor.
Berikut ini adalah kode untuk class StudentRecord :
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;
/**
* Menghasilkan nama dari Siswa
*/
public String getName(){
return name;
} /**
* Mengubah nama siswa
*/
public void setName( String temp ){
name = temp;
} // area penulisan kode lain
/**
* Menghitung rata – rata nilai Matematik, Bahasa Inggris, * * Ilmu Pasti
*/
public double getAverage(){
double result = 0;
result = ( mathGrade+englishGrade+scienceGrade )/3;
return result;
} /**
* Menghasilkan jumlah instance StudentRecord
*/
public static int getStudentCount(){
return studentCount;
}
}
Berikut ini contoh kode dari class yang mengimplementasikan class StudentRecord :
public class StudentRecordExample
{
public static void main( String[] args ){
//membuat 3 object StudentRecord
StudentRecord annaRecord = new StudentRecord();
StudentRecord beahRecord = new StudentRecord();
StudentRecord crisRecord = new StudentRecord();
//Memberi nama siswa
annaRecord.setName("Anna");
beahRecord.setName("Beah");
crisRecord.setName("Cris");
//Menampilkan nama siswa “Anna”
System.out.println( annaRecord.getName() );
//Menampilkan jumlah siswa
System.out.println("Count="+StudentRecord.getStudentCount());
}
}
Output dari program adalah sebagai berikut :
Anna
Student Count = 0
4.10 Referensi this
Referensi this digunakan untuk mengakses instance variable yang dibiaskan oleh
parameter. Untuk pemahaman lebih lanjut, mari kita perhatikan contoh pada method
setAge. Asumsikan kita mempunyai kode deklarasi berikut pada method setAge.
public void setAge( int age ){
age = age; //SALAH!!!
}
Nama parameter pada deklarasi ini adalah age, yang memiliki penamaan yang sama
dengan instance variable age. Parameter age adalah deklarasi terdekat dari method,
sehingga nilai dari parameter tersebut akan digunakan. Maka pada pernyataan :
age = age;
kita telah mengidentifikasi nilai dari parameter age kepada parameter itu sendiri. Hal
ini sangat tidak kita hendaki pada kode program kita. Untuk menghindari kesalahan
semacam ini, kita gunakan metode referensi this. Untuk menggunakan tipe referensi
ini, kita tuliskan :
this.
Sebagai contoh, kita dapat menulis ulang kode hingga tampak sebagai berikut :
public void setAge( int age ){
this.age = age;
}
Method ini akan mereferensikan nilai dari parameter age kepada instance variable
dari object StudentRecord.
4.11 Overloading Methods
Dalam class yang kita buat, kadangkala kita menginginkan untuk membuat method
dengan nama yang sama namun mempunyai fungsi yang berbeda menurut parameter
yang digunakan. Kemampuan ini dimungkinkan dalam pemrograman Java, dan
dikenal sebagai overloading method.
Overloading method mengijinkan sebuah method dengan nama yang sama namun
memiliki parameter yang berbeda sehingga mempunyai implementasi dan return
value yang berbeda pula. Daripada memberikan nama yang berbeda pada setiap
pembuatan method, overloading method dapat digunakan pada operasi yang sama
namun berbeda dalam implementasinya.
Sebagai contoh, pada class StudentRecord kita menginginkan sebuah method yang
akan menampilkan informasi tentang siswa. Namun kita juga menginginkan operasi
penampilan data tersebut menghasilkan output yang berbeda menurut parameter yang
digunakan. Jika pada saat kita memberikan sebuah parameter berupa string, hasil
yang ditampilkan adalah nama, alamat dan umur dari siswa, sedang pada saat kita
memberikan 3 nilai dengan tipe double, kita menginginkan method tersebut untuk
menampilkan nama dan nilai dari siswa. Untuk mendapatkan hasil yang sesuai, kita
gunakan overloading method di dalam deklarasi class StudentRecord.
38
public void print( String temp ){
System.out.println("Name:" + name);
System.out.println("Address:" + address);
System.out.println("Age:" + age);
}
public void print(double eGrade, double mGrade, double sGrade){
System.out.println("Name:" + name);
System.out.println("Math Grade:" + mGrade);
System.out.println("English Grade:" + eGrade);
System.out.println("Science Grade:" + sGrade);
}
Jika kita panggil pada method utama (main) :
public static void main( String[] args )
{
StudentRecord annaRecord = new StudentRecord();
annaRecord.setName("Anna");
annaRecord.setAddress("Philippines");
annaRecord.setAge(15);
annaRecord.setMathGrade(80);
annaRecord.setEnglishGrade(95.5);
annaRecord.setScienceGrade(100);
//overloaded methods
annaRecord.print( annaRecord.getName() );
annaRecord.print( annaRecord.getEnglishGrade(),
annaRecord.getMathGrade(),
annaRecord.getScienceGrade());
}
Kita akan mendapatkan output pada panggilan pertama sebagai berikut :
Name:Anna
Address:Philippines
Age:15
Kemudian akan dihasilkan output sebagai berikut pada panggilan kedua :
Name:Anna
Math Grade:80.0
English Grade:95.5
Science Grade:100.0
Jangan dilupakan bahwa overloaded method memiliki property sebagai berikut :
1. Nama yang sama
2. Parameter yang berbeda
3. Nilai kembalian (return) bisa sama ataupun berbeda
4.12 Deklarasi Constructor
Telah tersirat pada pembahasan sebelumnya, Constructor sangatlah penting pada
pembentukan sebuah object. Constructor adalah method dimana seluruh inisialisasi
object ditempatkan.
Berikut ini adalah property dari Constructor :
1. Constructor memiliki nama yang sama dengan class
2. Sebuah Constructor mirip dengan method pada umumnya, namun hanya
informasi –informasi berikut yang dapat ditempatkan pada header sebuah
constructor, scope atau identifikasi pengaksesan (misal: public), nama dari
konstuktor dan parameter.
3. Constructor tidak memiliki return value
4. Constructor tidak dapat dipanggil secara langsung, namun harus dipanggil
dengan menggunakan operator new pada pembentukan sebuah class.
Untuk mendeklarasikan constructor, kita tulis,
(*) {
*
}
4.12.1 Default Constructor
Setiap kelas memiliki default constructor. Sebuah default constructor adalah
constructor yang tidak memiliki parameter apapun. Jika sebuah class tidak memiliki
constructor apapun, maka sebuah default constructor akan terbuat secara implisit :
Sebagai contoh, pada class StudentRecord, bentuk default constructor akan terlihat
seperti dibawah ini :
public StudentRecord()
{
//area penulisan kode
}
4.12.2 Overloading Constructor
Seperti telah kita bahas sebelumnya, sebuah constructor juga dapat dibentuk menjadi
overloaded. Dapat dilihat pada 4 contoh sebagai berikut :
public StudentRecord(){
//area inisialisasi kode;
}
public StudentRecord(String temp){
this.name = temp;
}
public StudentRecord(String name, String address){
this.name = name;
this.address = address;
}
public StudentRecord(double mGrade, double eGrade, double sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
}
4.12.3 Menggunakan Constructor
Untuk menggunakan constructor, kita gunakan kode – kode sebagai berikut :
public static void main( String[] args )
{
//membuat 3 objek
StudentRecord annaRecord=new StudentRecord("Anna");
StudentRecord beahRecord=new StudentRecord("Beah","Philippines");
StudentRecord crisRecord=new StudentRecord(80,90,100);
//area penulisan kode selanjtunya
}
Sebelum kita lanjutkan, mari kita perhatikan kembali deklarasi static variable
studentCount yang telah dibuat sebelumnya. Tujuan deklarasi studentCount adalah
untuk menghitung jumlah object yang dibentuk pada class StudentRecord. Jadi, apa
yang akan kita lakukan selanjutnya adalah menambahkan nilai dari studentCount
setiap kali setiap pembentukan object pada class StudentRecord. Lokasi yang tepat
untuk memodifikasi dan menambahkan nilai studentCount terletak pada constructornya,
karena selalu dipanggil setiap kali objek terbentuk. Sebagai contoh :
public StudentRecord(){
//letak kode inisialisasi
studentCount++; //menambah student
}
public StudentRecord(String temp){
this.name = temp;
studentCount++; //menambah student
}
public StudentRecord(String name, String address){
this.name = name;
this.address = address;
studentCount++; //menambah student
}
public StudentRecord(double mGrade, double eGrade, double sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
studentCount++; //menambah student
}
4.12.4 Pemanggilan Constructor Dengan this()
Pemanggilan constructor dapat dilakukan secara berangkai, dalam arti dapat
memanggil constructor di dalam constructor lain. Pemanggilan dapat dilakukan
dengan referensi this(). Perhatikan contoh kode sebagai berikut :
1: public StudentRecord(){
2: this("some string");
3:
4: }
5:
6: public StudentRecord(String temp){
7: this.name = temp;
8: }
9:
10: public static void main( String[] args )
11: {
12:
13: StudentRecord annaRecord = new StudentRecord();
14: }
Dari contoh kode diatas, pada saat baris ke 13 dipanggil akan memanggil constructor
dasar pada baris pertama. Pada saat baris kedua dijalankan, baris tersebut akan
menjalankan constructor yang memiliki parameter String pada baris ke-6.
Beberapa hal yang patut diperhatikan pada penggunaan this() :
1. Harus dituliskan pada baris pertama pada sebuah constructor
2. Hanya dapat digunakan pada satu definisi constructor. Kemudian metode ini dapat
diikuti dengan kode – kode berikutnya yang relevan
4.13 Access Modifiers
Pada saat membuat, mengatur properties dan class methods, kita ingin untuk
mengimplementasikan beberapa macam larangan untuk mengakses data. Sebagai
contoh, jika diinginkan beberapa atribut hanya dapat diubah hanya dengan method
tertentu, jika diinginkan menyembunyikannya dari object lain pada class. Di JAVA,
implementasi tersebut disebut dengan access modifiers.
Terdapat 4 macam access modifiers di JAVA, yaitu : public, private, protected dan
default. 3 tipe akses pertama tertulis secara ekplisit pada kode untuk
mengindikasikan tipe akses, sedangkan yang keempat yang merupakan tipe default,
tidak diperlukan penulisan keyword atas tipe.
4.13.1 Akses Default (Package Accessibility)
Tipe ini mempersyaratkan bahwa hanya class dalam package yang sama yang
memiliki hak akses terhadap variabel dan methods dalam class. Tidak terdapat
keyword pada tipe ini.
Sebagai contoh :
public class StudentRecord
{
//akses dasar terhadap variabel
int name;
//akses dasar terhadap metode
String getName(){
return name;
}
}
Pada contoh diatas, variabel nama dan method getName() dapat diakses dari object
lain selama object tersebut berada pada package yang sama dengan letak dari file
StudentRecord.
4.13.2 Akses Public
Tipe ini mengijinkan seluruh class member untuk diakses baik dari dalam dan luar
class. Object apapun yang memiliki interaksi pada class memiliki akses penuh
terhadap member dari tipe ini. Sebagai contoh :
public class StudentRecord
{
//akses dasar terhadap variabel
public int name;
//akses dasar terhadap metode
public String getName(){
return name;
}
}
Dalam contoh ini, variabel name dan method getName() dapat diakses dari object
lain.
4.13.3 Akses Protected
Tipe ini hanya mengijinkan class member untuk diakses oleh method dalam class
tersebut dan elemen – elemen subclass. Sebagai contoh :
public class StudentRecord
{
//akses pada variabel
protected int name;
//akses pada metode
protected String getName(){
return name;
}
}
Pada contoh diatas, variabel name dan method getName() hanya dapat diakses oleh
method internal class dan subclass dari class StudentRecord. Definisi subclass akan
dibahas pada bab selanjutnya.
4.13.4 Akses Private
Tipe ini mengijinkan pengaksesan class hanya dapat diakses oleh class dimana tipe
ini dibuat. Sebagai contoh :
public class StudentRecord
{
//akses dasar terhadap variabel
private int name;
//akses dasar terhadap metode
private String getName(){
return name;
}
}
Pada contoh diatas, variabel name dan method getName() hanya dapat diakses oleh
method internal class tersebut.
Menghitung Luas Lingkaran
Package lingkaran;
import java.util.Scanner;
public class luaslingkaran
{
public static void main (String args [] )
{
Scanner masuk=new Scanner (System.in);
double phi =3.14;
int r;
double luas;
System.out.println(“Nama : handy agustian”);
System.out.println(“input jari-jari lingkaran:”);
r=masuk.nextInt();
luas=phi * r * r;
System.out.println(“luas lingkaran: “ +luas);
}
}
kita dapat jalankan dari menu run->run file ( tombol Shift+F6)
Program yang telah dijalankan
Kesimpulan
Apa yang kita lakukan pada latihan ini, sama persis dengan latihan kita sebelumnya
, perbedaannya hanya pada implementasi rumus matematik saja. Sehingga kita bisa simpulkan untuk inti dari pelajaran ini adalah :
1. Bagaimana membuat variabel di java
2. Bagaimana melakukan perhitungan di java
Beberapa hal yang juga perlu diperhatikan :
1. Bagaimana cara menulis komentar dengan menggunakan tanda //
2. Bagaimana menulis ke layar dengan menggunakan System.out.println();
Yah!, memang belum banyak yang kita dapat, tapi ingat dengan semangat untuk memulai hal yang kecil maka yang besar akan dapat dicapai. Happy Programming!
double pi = 3.14;
int jari = 10; //
double luaslingkaran = pi*(jari*jari);
//print out ke layar
System.out.println("Luas lingkaran : " + luaslingkaran);
Pengertian Class dan Object
Pengertian Class dan Object
Didalam Java kita mengenal yang namanya Object Oriented Programming (OOP). Java adalah bahasa yang murni berorientasi object sehingga kita tidak bisa mendefinisikan object diluar class atau memakai class itu secara langsung.
Mungkin Anda pernah mendengar kata class sebelumnya dalam bahasa pemrograman.Class diumpamakan seperti cetakan yang berguna untuk mencetak suatu object. Contoh dari sebuah cetakan/class tersebut misalnya cetakan dari sebuah mobil sedan. Mobil sedan tentunya mempunyai konsep. Konsep inilah yang akan dipakai untuk membentuk/mencetak hingga menjadi mobil sedan. Oleh karena itu konsep bisa berarti class atau cetakan.
Contoh cetakan/class/konsep dari mobil sedan adalah sebagai berikut :
Mempunyai mesin
Mempunyai roda sebanyak 4 yaitu 2 didepan dan 2 dibelakang
Mempunyai setir
Mempunyai body atau kerangka dengan panjang, lebar dan tinggi
Mempunyai warna
Mempunyai perseneling
Mempunyai knalpot
Sampai akhirnya didalam pabrik, cetakan/class/konsep tersebut dapat digunakan untuk membuat banyak object baru tentunya dengan berbeda nama/merk.
Class juga bisa diilustrasikan atau diumpamakan dengan makhluk hidup. Contohnya adalah hewan mamalia yaitu kucing. Didalam ilmu biologi, kucing tergolong dalam class hewan pemakan daging atau karnivora dan tentunya mempunyai bentuk atau konsep. Tuhan Yang Maha Kuasa sudah sudah menentukan bentuk daripada class kucing tersebut.
Class Dog mempunyai konsep sebagai berikut :
Mempunyai kaki sebanyak 4 yaitu 2 didepan dan 2 dibelakang
Mempunyai suara yaitu“gug...gug...”
Mempunyai golongan/family yaitu hewan bertulang belakang atau vertebrata dan termasuk golongan mamalia pemakan daging atau karnivora
Nah didalam Java, class mempunyai makna yang sama dengan ilustrasi diatas. Didalam Java kita tidak bisa sembarangan membuat, menciptakan atau mewujudkan suatu object tanpa didasarkan pada konsep/cetakan/class. Oleh karena itu Java adalah bahasa pemrograman yang murni berorientasi object atau dengan kata lain semua pekerjaan yang dikerjakan menggunakan bahasa Java harus dilakukan didalam class.
JAVA CLASS DAN OBJECT
4.1 Mendefinisikan Class
Sebelum menulis class, pertama pertimbangkan dimana akan menggunakan class
dan bagaimana class tersebut akan digunakan. Pertimbangkan pula nama yang tepat
dan tuliskan seluruh informasi atau properti yang ingin diisikan pada class. Jangan
sampai terlupa untuk menuliskan secara urut method yang akan digunakan dalam
class.
Dalam pendefinisian class, dituliskan :
class {
*
*
*
}
dimana :
adalah sebuah access modifier, yang dapat dikombinasikan dengan tipe
modifier lain.
Pada bagian ini, kita akan membuat sebuah class yang berisi record dari siswa. Jika
kita telah mengidentifikasikan tujuan dari pembuatan kelas, maka dapat dilakukan
pemberian nama yang sesuai. Nama yang tepat pada class ini adalah StudentRecord.
Untuk mendefinisikan class, kita tuliskan :
public class StudentRecord
{
//area penulisan kode selanjutnya
}
dimana,
Public - Class ini dapat diakses dari luar package
Class - Keyword yang digunakan di pembuatan class Java
StudentRecord - Identifier yang menjelaskan class
4.2 Deklarasi Atribut
Dalam pendeklarasian atribut, kita tuliskan :
[= ];
Langkah selanjutnya adalah mengurutkan atribut yang akan diisikan pada class.
Untuk setiap informasi, urutkan juga tipe data yang yang tepat untuk digunakan.
Contohnya, tidak mungkin menginginkan untuk menggunakan tipe data integer
untuk nama siswa, atau tipe data string pada nilai siswa.
Berikut ini adalah contoh informasi yang akan diisikan pada class StudentRecord :
name - String
address - String
age -Int
math grade - double
english grade - double
science grade - double
average grade – double
4.3 Instance Variable
Jika kita telah menuliskan seluruh atribut yang akan diisikan pada class, selanjutnya
kita akan menuliskannya pada kode. Jika kita menginginkan bahwa atribut – atribut
tersebut adalah unik untuk setiap object (dalam hal ini untuk setiap siswa), maka kita
harus mendeklarasikannya sebagai instance variable :
Sebagai contoh :
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
//area penulisan kode selanjutnya
}
dimana,
private disini menjelaskan bahwa variabel tersebut hanya dapat diakses oleh class itu
sendiri. Object lain tidak dapat menggunakan variabel tersebut secara langsung.
4.4 Class Variable atau Static Variables
Disamping instance variable, kita juga dapat mendeklarasikan class variable atau
variabel yang dimiliki class sepenuhnya. Nilai pada variabel ini sama pada semua
object di class yang sama. Anggaplah kita menginginkan jumlah dari siswa yang
dimiliki dari seluruh kelas, kita dapat mendeklarasiakan satu static variable yang
akan menampung nilai tersebut. Kita beri nama variabel tersebut dengan nama
studentCount.
Berikut penulisan static variable :
public class StudentRecord
{
//area deklarasi instance variables
private static int studentCount;
//area penulisan kode selanjutnya
}
Kita gunakan keyword : ’static’ untuk mendeklarasikan bahwa variabel tersebut
adalah static.
Maka keseluruhan kode yang dibuat terlihat sebagai berikut :
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;
//area penulisan kode selanjutnya
}
4.5 Deklarasi Methods
Sebelum kita membahas method apa yang akan dipakai pada class, mari kita
perhatikan penulisan method secara umum.
Dalam pendeklarasian method, kita tuliskan :
(*) {
*
}
dimana,
dapat menggunakan beberapa modifier yang berbeda
dapat berupa seluruh tipe data, termasuk void
identifier atas class
::= [,]
4.6 Accessor Methods
Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang
object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari
class sebagai private. Namun, ada kalanya dimana kita menginginkan object lain
untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods.
Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa
instance maupun static. Sebuah accessor method umumnya dimulai dengan
penulisan get. Method ini juga mempunyai sebuah return
value.
Sebagai contoh, kita ingin menggunakan accessor method untuk dapat membaca
nama, alamat, nilai bahasa Inggris, Matematika, dan ilmu pasti dari siswa.
Mari kita perhatikan salah satu contoh implementasi accessor method.
public class StudentRecord
{
private String name;
::
public String getName(){
return name;
}
}
dimana,
public - Menjelaskan bahwa method tersebut dapat diakses object luar kelas
String - Tipe data return value dari method tersebut
getName - Nama dari method
() - Menjelaskan bahwa method tidak memiliki parameter apapun
Pernyataan berikut, return name; dalam program kita menandakan akan ada
pengembalian nilai dari instance variable name pada pemanggilan method.
Perhatikan bahwa return type dari method harus sama dengan tipe data terhadap data
pada pernyataan return. Akana didapatkan pesan kesalahan sebagai berikut bila tipe
data yang digunakan tidak sama :
StudentRecord.java:14: incompatible types
found : int
required: java.lang.String
return age;
^
1 error
Contoh lain dari penggunaan accessor method adalah getAverage,
public class StudentRecord
{
private String name;
::
public double getAverage(){
double result = 0;
result = ( mathGrade+englishGrade+scienceGrade )/3;
return result;
}
}
Method getAverage() menghitung rata – rata dari 3 nilai siswa dan menghasilkan
nilai return value dengan nama result.
4.7 Mutator Methods
Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita
lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable
dalam class, baik itu berupa instance maupun static. Method semacam ini disebut
dengan mutator methods. Sebuah mutator method umumnya tertulis set
.
Mari kita perhatikan salah satu dari implementasi mutator method :
public class StudentRecord
{
private String name;
::
public void setName( String temp ){
name = temp;
}
}
dimana,
public - Menjelaskan bahwa method ini dapat dipanggil object luar kelas
void - Method ini tidak menghasilkan return value
setName - Nama dari method
(String temp) - Parameter yang akan digunakan pada method
Pernyataan berikut :
name = temp; mengidentifikasi nilai dari temp sama dengan name dan
mengubah data pada instance variable name.
Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi
beberapa argumen dari program yang akan digunakan oleh method.
4.8 Multiple Return Statements
Sebuah method dapat mempunyai banyak return values selama tidak pada blok
program yang sama. Dapat juga menggunakan konstanta disamping variabel sebagai
return value.
Sebagai contoh, perhatikan method berikut ini :
public String getNumberInWords( int num ){
String defaultNum = "zero";
if( num == 1 ){
return "one"; //mengembalikan sebuah konstanta
}
else if( num == 2){
return "two"; //mengembalikan sebuah konstanta
}
// mengembalikan sebuah variabel
return defaultNum;
}
4.9 Static Methods
Kita menggunakan static method untuk mengakses static variable studentCount.
public class StudentRecord
{
private static int studentCount;
public static int getStudentCount(){
return studentCount;
}
}
dimana,
public - Menjelaskan bahwa method ini dapat diakses object luar kelas
static - Method ini adalah static dan pemanggilannya menggunakan [namaKelas].
[namaMethod].
Sebagai contoh :
studentRecord.getStudentCount
Int - Tipe return dari method. Mengindikasikan method tersebut harus mempunyai
return value berupa integer
getStudentCount - Nama dari method
public - Menjelaskan bahwa method ini dapat diakses object luar kelas
( ) - Method ini tidak memiliki parameter apapun
Pada deklarasi di atas, method getStudentCount() akan selalu menghasilkan return
value 0 jika kita tidak mengubah apapun pada kode program untuk mengatur
nilainya. Kita akan membahas pengubahan nilai dari studentCount pada pembahasan
constructor.
Berikut ini adalah kode untuk class StudentRecord :
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;
/**
* Menghasilkan nama dari Siswa
*/
public String getName(){
return name;
} /**
* Mengubah nama siswa
*/
public void setName( String temp ){
name = temp;
} // area penulisan kode lain
/**
* Menghitung rata – rata nilai Matematik, Bahasa Inggris, * * Ilmu Pasti
*/
public double getAverage(){
double result = 0;
result = ( mathGrade+englishGrade+scienceGrade )/3;
return result;
} /**
* Menghasilkan jumlah instance StudentRecord
*/
public static int getStudentCount(){
return studentCount;
}
}
Berikut ini contoh kode dari class yang mengimplementasikan class StudentRecord :
public class StudentRecordExample
{
public static void main( String[] args ){
//membuat 3 object StudentRecord
StudentRecord annaRecord = new StudentRecord();
StudentRecord beahRecord = new StudentRecord();
StudentRecord crisRecord = new StudentRecord();
//Memberi nama siswa
annaRecord.setName("Anna");
beahRecord.setName("Beah");
crisRecord.setName("Cris");
//Menampilkan nama siswa “Anna”
System.out.println( annaRecord.getName() );
//Menampilkan jumlah siswa
System.out.println("Count="+StudentRecord.getStudentCount());
}
}
Output dari program adalah sebagai berikut :
Anna
Student Count = 0
4.10 Referensi this
Referensi this digunakan untuk mengakses instance variable yang dibiaskan oleh
parameter. Untuk pemahaman lebih lanjut, mari kita perhatikan contoh pada method
setAge. Asumsikan kita mempunyai kode deklarasi berikut pada method setAge.
public void setAge( int age ){
age = age; //SALAH!!!
}
Nama parameter pada deklarasi ini adalah age, yang memiliki penamaan yang sama
dengan instance variable age. Parameter age adalah deklarasi terdekat dari method,
sehingga nilai dari parameter tersebut akan digunakan. Maka pada pernyataan :
age = age;
kita telah mengidentifikasi nilai dari parameter age kepada parameter itu sendiri. Hal
ini sangat tidak kita hendaki pada kode program kita. Untuk menghindari kesalahan
semacam ini, kita gunakan metode referensi this. Untuk menggunakan tipe referensi
ini, kita tuliskan :
this.
Sebagai contoh, kita dapat menulis ulang kode hingga tampak sebagai berikut :
public void setAge( int age ){
this.age = age;
}
Method ini akan mereferensikan nilai dari parameter age kepada instance variable
dari object StudentRecord.
4.11 Overloading Methods
Dalam class yang kita buat, kadangkala kita menginginkan untuk membuat method
dengan nama yang sama namun mempunyai fungsi yang berbeda menurut parameter
yang digunakan. Kemampuan ini dimungkinkan dalam pemrograman Java, dan
dikenal sebagai overloading method.
Overloading method mengijinkan sebuah method dengan nama yang sama namun
memiliki parameter yang berbeda sehingga mempunyai implementasi dan return
value yang berbeda pula. Daripada memberikan nama yang berbeda pada setiap
pembuatan method, overloading method dapat digunakan pada operasi yang sama
namun berbeda dalam implementasinya.
Sebagai contoh, pada class StudentRecord kita menginginkan sebuah method yang
akan menampilkan informasi tentang siswa. Namun kita juga menginginkan operasi
penampilan data tersebut menghasilkan output yang berbeda menurut parameter yang
digunakan. Jika pada saat kita memberikan sebuah parameter berupa string, hasil
yang ditampilkan adalah nama, alamat dan umur dari siswa, sedang pada saat kita
memberikan 3 nilai dengan tipe double, kita menginginkan method tersebut untuk
menampilkan nama dan nilai dari siswa. Untuk mendapatkan hasil yang sesuai, kita
gunakan overloading method di dalam deklarasi class StudentRecord.
38
public void print( String temp ){
System.out.println("Name:" + name);
System.out.println("Address:" + address);
System.out.println("Age:" + age);
}
public void print(double eGrade, double mGrade, double sGrade){
System.out.println("Name:" + name);
System.out.println("Math Grade:" + mGrade);
System.out.println("English Grade:" + eGrade);
System.out.println("Science Grade:" + sGrade);
}
Jika kita panggil pada method utama (main) :
public static void main( String[] args )
{
StudentRecord annaRecord = new StudentRecord();
annaRecord.setName("Anna");
annaRecord.setAddress("Philippines");
annaRecord.setAge(15);
annaRecord.setMathGrade(80);
annaRecord.setEnglishGrade(95.5);
annaRecord.setScienceGrade(100);
//overloaded methods
annaRecord.print( annaRecord.getName() );
annaRecord.print( annaRecord.getEnglishGrade(),
annaRecord.getMathGrade(),
annaRecord.getScienceGrade());
}
Kita akan mendapatkan output pada panggilan pertama sebagai berikut :
Name:Anna
Address:Philippines
Age:15
Kemudian akan dihasilkan output sebagai berikut pada panggilan kedua :
Name:Anna
Math Grade:80.0
English Grade:95.5
Science Grade:100.0
Jangan dilupakan bahwa overloaded method memiliki property sebagai berikut :
1. Nama yang sama
2. Parameter yang berbeda
3. Nilai kembalian (return) bisa sama ataupun berbeda
4.12 Deklarasi Constructor
Telah tersirat pada pembahasan sebelumnya, Constructor sangatlah penting pada
pembentukan sebuah object. Constructor adalah method dimana seluruh inisialisasi
object ditempatkan.
Berikut ini adalah property dari Constructor :
1. Constructor memiliki nama yang sama dengan class
2. Sebuah Constructor mirip dengan method pada umumnya, namun hanya
informasi –informasi berikut yang dapat ditempatkan pada header sebuah
constructor, scope atau identifikasi pengaksesan (misal: public), nama dari
konstuktor dan parameter.
3. Constructor tidak memiliki return value
4. Constructor tidak dapat dipanggil secara langsung, namun harus dipanggil
dengan menggunakan operator new pada pembentukan sebuah class.
Untuk mendeklarasikan constructor, kita tulis,
(*) {
*
}
4.12.1 Default Constructor
Setiap kelas memiliki default constructor. Sebuah default constructor adalah
constructor yang tidak memiliki parameter apapun. Jika sebuah class tidak memiliki
constructor apapun, maka sebuah default constructor akan terbuat secara implisit :
Sebagai contoh, pada class StudentRecord, bentuk default constructor akan terlihat
seperti dibawah ini :
public StudentRecord()
{
//area penulisan kode
}
4.12.2 Overloading Constructor
Seperti telah kita bahas sebelumnya, sebuah constructor juga dapat dibentuk menjadi
overloaded. Dapat dilihat pada 4 contoh sebagai berikut :
public StudentRecord(){
//area inisialisasi kode;
}
public StudentRecord(String temp){
this.name = temp;
}
public StudentRecord(String name, String address){
this.name = name;
this.address = address;
}
public StudentRecord(double mGrade, double eGrade, double sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
}
4.12.3 Menggunakan Constructor
Untuk menggunakan constructor, kita gunakan kode – kode sebagai berikut :
public static void main( String[] args )
{
//membuat 3 objek
StudentRecord annaRecord=new StudentRecord("Anna");
StudentRecord beahRecord=new StudentRecord("Beah","Philippines");
StudentRecord crisRecord=new StudentRecord(80,90,100);
//area penulisan kode selanjtunya
}
Sebelum kita lanjutkan, mari kita perhatikan kembali deklarasi static variable
studentCount yang telah dibuat sebelumnya. Tujuan deklarasi studentCount adalah
untuk menghitung jumlah object yang dibentuk pada class StudentRecord. Jadi, apa
yang akan kita lakukan selanjutnya adalah menambahkan nilai dari studentCount
setiap kali setiap pembentukan object pada class StudentRecord. Lokasi yang tepat
untuk memodifikasi dan menambahkan nilai studentCount terletak pada constructornya,
karena selalu dipanggil setiap kali objek terbentuk. Sebagai contoh :
public StudentRecord(){
//letak kode inisialisasi
studentCount++; //menambah student
}
public StudentRecord(String temp){
this.name = temp;
studentCount++; //menambah student
}
public StudentRecord(String name, String address){
this.name = name;
this.address = address;
studentCount++; //menambah student
}
public StudentRecord(double mGrade, double eGrade, double sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
studentCount++; //menambah student
}
4.12.4 Pemanggilan Constructor Dengan this()
Pemanggilan constructor dapat dilakukan secara berangkai, dalam arti dapat
memanggil constructor di dalam constructor lain. Pemanggilan dapat dilakukan
dengan referensi this(). Perhatikan contoh kode sebagai berikut :
1: public StudentRecord(){
2: this("some string");
3:
4: }
5:
6: public StudentRecord(String temp){
7: this.name = temp;
8: }
9:
10: public static void main( String[] args )
11: {
12:
13: StudentRecord annaRecord = new StudentRecord();
14: }
Dari contoh kode diatas, pada saat baris ke 13 dipanggil akan memanggil constructor
dasar pada baris pertama. Pada saat baris kedua dijalankan, baris tersebut akan
menjalankan constructor yang memiliki parameter String pada baris ke-6.
Beberapa hal yang patut diperhatikan pada penggunaan this() :
1. Harus dituliskan pada baris pertama pada sebuah constructor
2. Hanya dapat digunakan pada satu definisi constructor. Kemudian metode ini dapat
diikuti dengan kode – kode berikutnya yang relevan
4.13 Access Modifiers
Pada saat membuat, mengatur properties dan class methods, kita ingin untuk
mengimplementasikan beberapa macam larangan untuk mengakses data. Sebagai
contoh, jika diinginkan beberapa atribut hanya dapat diubah hanya dengan method
tertentu, jika diinginkan menyembunyikannya dari object lain pada class. Di JAVA,
implementasi tersebut disebut dengan access modifiers.
Terdapat 4 macam access modifiers di JAVA, yaitu : public, private, protected dan
default. 3 tipe akses pertama tertulis secara ekplisit pada kode untuk
mengindikasikan tipe akses, sedangkan yang keempat yang merupakan tipe default,
tidak diperlukan penulisan keyword atas tipe.
4.13.1 Akses Default (Package Accessibility)
Tipe ini mempersyaratkan bahwa hanya class dalam package yang sama yang
memiliki hak akses terhadap variabel dan methods dalam class. Tidak terdapat
keyword pada tipe ini.
Sebagai contoh :
public class StudentRecord
{
//akses dasar terhadap variabel
int name;
//akses dasar terhadap metode
String getName(){
return name;
}
}
Pada contoh diatas, variabel nama dan method getName() dapat diakses dari object
lain selama object tersebut berada pada package yang sama dengan letak dari file
StudentRecord.
4.13.2 Akses Public
Tipe ini mengijinkan seluruh class member untuk diakses baik dari dalam dan luar
class. Object apapun yang memiliki interaksi pada class memiliki akses penuh
terhadap member dari tipe ini. Sebagai contoh :
public class StudentRecord
{
//akses dasar terhadap variabel
public int name;
//akses dasar terhadap metode
public String getName(){
return name;
}
}
Dalam contoh ini, variabel name dan method getName() dapat diakses dari object
lain.
4.13.3 Akses Protected
Tipe ini hanya mengijinkan class member untuk diakses oleh method dalam class
tersebut dan elemen – elemen subclass. Sebagai contoh :
public class StudentRecord
{
//akses pada variabel
protected int name;
//akses pada metode
protected String getName(){
return name;
}
}
Pada contoh diatas, variabel name dan method getName() hanya dapat diakses oleh
method internal class dan subclass dari class StudentRecord. Definisi subclass akan
dibahas pada bab selanjutnya.
4.13.4 Akses Private
Tipe ini mengijinkan pengaksesan class hanya dapat diakses oleh class dimana tipe
ini dibuat. Sebagai contoh :
public class StudentRecord
{
//akses dasar terhadap variabel
private int name;
//akses dasar terhadap metode
private String getName(){
return name;
}
}
Pada contoh diatas, variabel name dan method getName() hanya dapat diakses oleh
method internal class tersebut.
Rabu, 02 Maret 2011
c. Switch-case
Bentuk umumnya adalah sebagai berikut:
Switch (expression ) {
case value1:
statement;
break;
case value2:
statement2;
break;
case valueN:
statement;
break;
default:
statement default;
}
Nilai expression dibandingkan dengan setiap nilai pada pernyataan case (value). Jika ada yang cocok, maka urutan statement yang ada di belakang pernyataan case akan dieksekusi. Jika tidak menuliskan break, maka eksekusi akan dilanjutkan ke case selanjutnya.
Contoh Coding
Class praktek2
{
Public static void main (String args []);
{
Int nilai;
Nilai = 6;
System.out.println("======================");
System.out.println(“Nama : Helena Peacecraft”);
System.out.println(“Nilai : “ + nilai );
switch (nilai) {
case 10:
case 9 :
System.out.println(“Ket : Istimewa” );
breal;
case 8 :
case 7 :
System.out.println(“Ket : Bagoess”);
break;
case 6 :
System.out.println(“Ket : Cukup”);
break;
default :
System.out.println (“Ket : Kurang”);
}
System.out.println (“========================”);
}
d. Return
Return menyebabkan eksekusi menyabang kembali ke pemanggil method. Contoh pemakaian return berikut menyebabkan eksekusi kembali ke pemanggilnya, dalam hal ini adalah runtime java.
class ReturnDemo {
public static main void (String args[] ) {
boolean t=true;
System.out.println (“Sebelum return”);
If (t)
return;
System.out.println (“ Pernyataan ini tidak akan pernah dieksekusi”);
}
}
Bentuk umumnya adalah sebagai berikut:
Switch (expression ) {
case value1:
statement;
break;
case value2:
statement2;
break;
case valueN:
statement;
break;
default:
statement default;
}
Nilai expression dibandingkan dengan setiap nilai pada pernyataan case (value). Jika ada yang cocok, maka urutan statement yang ada di belakang pernyataan case akan dieksekusi. Jika tidak menuliskan break, maka eksekusi akan dilanjutkan ke case selanjutnya.
Contoh Coding
Class praktek2
{
Public static void main (String args []);
{
Int nilai;
Nilai = 6;
System.out.println("======================");
System.out.println(“Nama : Helena Peacecraft”);
System.out.println(“Nilai : “ + nilai );
switch (nilai) {
case 10:
case 9 :
System.out.println(“Ket : Istimewa” );
breal;
case 8 :
case 7 :
System.out.println(“Ket : Bagoess”);
break;
case 6 :
System.out.println(“Ket : Cukup”);
break;
default :
System.out.println (“Ket : Kurang”);
}
System.out.println (“========================”);
}
d. Return
Return menyebabkan eksekusi menyabang kembali ke pemanggil method. Contoh pemakaian return berikut menyebabkan eksekusi kembali ke pemanggilnya, dalam hal ini adalah runtime java.
class ReturnDemo {
public static main void (String args[] ) {
boolean t=true;
System.out.println (“Sebelum return”);
If (t)
return;
System.out.println (“ Pernyataan ini tidak akan pernah dieksekusi”);
}
}
1.Pencabangan
a. If-else
Bentuk umumnya sebagai berikut:
If (Boolean-expression) statement1; [else statement2;]
Klausa else boleh ditulis boleh tidak. Setiap statement dapat berupa kumpulan pernyataan yang dibatasi dengan kurung-kurawal. Biasanya, untuk amannya, kurung-kurawal ini tetap digunakan, Walaupun hanya ada satu statement. Berikut contoh pemakaian:
Int dataTersedia;
// …
If (dataTersedia > 0) {
ProsesData ();
DataTersedia -= n;
} else {
TungguDataBerikut ();
}
Contoh coding :
Class praktek1
{
public static void main (String args[] )
{
Int nilai
Nilai = 70;
System.out.println(“=====================”);
System.out.println(“Nama : Duo Maxwell “);
System.out.println(“Nilai : “ + nilai );
If (nilai > 90 )
System.out.println(“ Ket : Istimewa euy ! “);
else
System.out.println(“ Ket : Tidak Istimewa “);
System.out.println(“===================”);
}
}
b. Break
Proses break memerintahkan runtime untuk menjalankan program di belakang blok tertentu. Untuk dapat ditunjuk, sebuah blok diberi nama, dan java bentuk label untuk menyatakan nama suatu blok. Berikut contoh penggunaannya:
Class Break {
Public static void main (String args [] ) {
Boolean t=true;
a : {
b : {
c : {
System.out.println (“Pernyataan ini tidak akan pernah dieksekusi”);
}
System.out.println(“Ini juga tidak akan pernah dieksekusi”);
}
System.out.println(“Ini setelah b”);
}
}
}
Sebagai catatan, break juga dapat digunakan tanpa label untuk keluar dari suatu loop.
a. If-else
Bentuk umumnya sebagai berikut:
If (Boolean-expression) statement1; [else statement2;]
Klausa else boleh ditulis boleh tidak. Setiap statement dapat berupa kumpulan pernyataan yang dibatasi dengan kurung-kurawal. Biasanya, untuk amannya, kurung-kurawal ini tetap digunakan, Walaupun hanya ada satu statement. Berikut contoh pemakaian:
Int dataTersedia;
// …
If (dataTersedia > 0) {
ProsesData ();
DataTersedia -= n;
} else {
TungguDataBerikut ();
}
Contoh coding :
Class praktek1
{
public static void main (String args[] )
{
Int nilai
Nilai = 70;
System.out.println(“=====================”);
System.out.println(“Nama : Duo Maxwell “);
System.out.println(“Nilai : “ + nilai );
If (nilai > 90 )
System.out.println(“ Ket : Istimewa euy ! “);
else
System.out.println(“ Ket : Tidak Istimewa “);
System.out.println(“===================”);
}
}
b. Break
Proses break memerintahkan runtime untuk menjalankan program di belakang blok tertentu. Untuk dapat ditunjuk, sebuah blok diberi nama, dan java bentuk label untuk menyatakan nama suatu blok. Berikut contoh penggunaannya:
Class Break {
Public static void main (String args [] ) {
Boolean t=true;
a : {
b : {
c : {
System.out.println (“Pernyataan ini tidak akan pernah dieksekusi”);
}
System.out.println(“Ini juga tidak akan pernah dieksekusi”);
}
System.out.println(“Ini setelah b”);
}
}
}
Sebagai catatan, break juga dapat digunakan tanpa label untuk keluar dari suatu loop.
switch case
public static void main(String[] args) {
int Point;
Point = 3;
System.out.println("====================");
System.out.println("Nama : Handy agustian saputra");
System.out.println("Point : " + Point);
switch (Point){
case 1:
System.out.println("ket : Perunggu");
break;
case 2:
System.out.println("ket : Perak");
break;
case 3:
System.out.println("ket : emas");
break;
default:
System.out.println("=====================");
// TODO code application logic here
}
}
}
public static void main(String[] args) {
int Point;
Point = 3;
System.out.println("====================");
System.out.println("Nama : Handy agustian saputra");
System.out.println("Point : " + Point);
switch (Point){
case 1:
System.out.println("ket : Perunggu");
break;
case 2:
System.out.println("ket : Perak");
break;
case 3:
System.out.println("ket : emas");
break;
default:
System.out.println("=====================");
// TODO code application logic here
}
}
}
if else
public static void main(String[] args) {
int point;
point=3;
System.out.println("===================");
System.out.println("Nama : Handy agustian saputra");
System.out.println("Point :"+ point);
if(point >= 3)
System.out.println(" Ket : dapat medali EMAS");
else if (point >= 2)
System.out.println("Ket : dapat medali PERAK");
else if (point >= 1)
System.out.println("Ket : dapat medali PERUNGGU");
else
System.out.println("Ket : tidak dapat medali");
System.out.println("===========================");
}
// TODO code application logic here
}
public static void main(String[] args) {
int point;
point=3;
System.out.println("===================");
System.out.println("Nama : Handy agustian saputra");
System.out.println("Point :"+ point);
if(point >= 3)
System.out.println(" Ket : dapat medali EMAS");
else if (point >= 2)
System.out.println("Ket : dapat medali PERAK");
else if (point >= 1)
System.out.println("Ket : dapat medali PERUNGGU");
else
System.out.println("Ket : tidak dapat medali");
System.out.println("===========================");
}
// TODO code application logic here
}
Rabu, 23 Februari 2011
Pengenalan Java
A.Memulihkan Pemograman Java
Untuk membuat program java,seperti telah disebutkn sebelum nya,anda membutuhkan JDK.JDK tersebut sangat mudah dan tidak membutuhkan pengetahuan tertentu.namun untuk menggunakannya anda perlu melakukan beberapa penyesuaian dengan system operasi anda.yang perlu anda lakukan adalah memasukan path ke direktori JDK anda ke setting path system operasi anda.
Misalkan direktori JDK anda adalah C:\jdkl.4 maka pada windows 98 Anda cukup menambahkan baris perintah SET PATH=C : \ jdkl.4 \bin pada file autoexec.bat anda.
Caranya:klik kanan ikon MY Computer,pilih properties.kemudian pilih tab Advanced.lalu klik tombol Environment Variabel,cari variabel path kemudian tambahkan baris perintah SET CLASSPATH=(direktori jdk anda )ke file profile anda.Untuk mencoba JDK,(atau DOS Command prompt).Urutan langkah-langkah yang harus anda lakukan untuk membuat sebuah program java sederhana adalah :
1. Membuat source code program dengan editor teks apapun.ingat,file tersebut berekstensi.java dan case sensitive.
2. Mengkompile source code dengan perintah javac.misalnya: javac helloworld.java.jika berhasil,hasilnya adalah file bytecode berakhiran.class.
3. Mengeksekusi bytecode dengan perintah java.Parameter dari perintah ini adalah nama file hasil komplikasi tanpa ekstensi.class.contoh:java helloworld.
B.SOURCE CODE
Berikut kode untuk helloworld java:
Public class HelloWorld
{
Public static void main(string [] args)
{
System.out.println(“apa kabar dunia?”);
}
Perlu di ingat bahwa bahasa java bersifat case sensitive.sehingga anda harus memperhatikan penggunaan huruf besar dan kecil.selain itu penulisan source code program tidak harus memperhatikan bentuk tertentu,sehingga anda bisa saja menuliskan semua baris source code tersebut dalam satu baris asal anda tidak lupa membubuhkan tanda titik koma (;),atau menuliskan tiap kata dalam satubaris tersendiri.
C.KOMPILASI
Setelah itu simpan/save syntax tersebut dengan nama Helloword.Java (sesuai dengan nama class).kemudian kita akan meng-compile syntax program tersebut dengan perintah,
Contoh ny: prompt> javac Helloword.java
D.Sintaks Program
Sekarang kita akan mencoba membahas elemen-elemen dalam source code tersebut
Ø Public class adalah pernyataan pembukaan class.kelas sendiri di gunakan untuk menciptakan objek. Ingat bahwa java berorientasi objek.
Ø Public static void main (String[ ] args).perintah ini merupakan pernyataan pembuka sebuah metode.metode sendiri adalah kumpulan pertanyaan untuk melakukan sesuatu tugas tertentu dalam kelas.Dalam setiap aplikasi harus ada sebuah metode yang bernama main yang akan dieksekuasi pertama kali saat program tersebut dieksekuasi kan.
Ø Pada kata static pada pernyataan pembuka metode main.hal ini berarti metode main tidak mengubah atau menggunakan objek yang di ciptakan oleh kelas tersebut,sehingga dapat dikatakan berdiri sendiri dan tidak terkait dengan objek
Ø Tentu nya dapat kita perhatikan bahwa untuk memanggil sebuah metode diperlukan tiga komponen yaitu
Ø 1.Objek yang ingin kita pakai.Dalam hal objek system.out
Ø 2.Nama metode yang ingin kita pakai.Dalam hal ini println
Ø 3.Sepasang tanda kurung yang berisi informasi tambahan yang diperlukan oleh metode yang dipanggil,yaitu parameter
E.Tipe Data Primitive dan String
Pada Java, terdapat tipe data sederhana dan tipe data array. Tipe data sederhana terdiri dari : tipe Boolean, dan tipe data numeric terdiri dari byte, short ,int, long, char, float dan double. Boolean adalah tipe data untuk besaran logika, hanya memiliki dua kemungkinan nilai, true atau false.
Tipe data numeric
Data Type | Size/Format | Range |
Byte | 8-bit | -128 to +127 if signed(-27 to 27-1) 0 to 255 if unsigned |
Short | 16-bit | -32768 to +32768 (-215 to 215-1) |
Int | 32-bit | -231 to 231-1 |
Long | 64-bit | -263 to 263-1 |
Float | 32-bit | +/- about 231 |
Double | 64-bit | +/- about 263 |
Char | 16-bit | Sebuah karakter |
boolean | 1-bit | Nilai Boolean (true dan False) |
Selain adanya variable-variable di atas, java API juga menyediakan kelas-kelas untuk tipe-tipe variable tersebut, yaitu Byte, Short, Integer, Long, Character, Float, Double. Kelas-kelas ini secara default di-impor saat kompilasi, namun dapat juga secara eksplisit di-impor dari package java.lang.
Java menyediakan String untuk menampung data lebih dari satu karakter. Sebetulnya String bukan tipe data, melainkan objek yang berisi kumpulan karakter (Char). Penggunaan String, tidak beda dengan penggunaan tipe data yang lain.
Array adalah kumpulan variable dengan tipe sejenis dengan nama yang sama. Pada java Array mempunyai pengertian yang kurang lebih sama dengan array pada bahasa pemrograman pada umumnya.
Contoh pendeklarasian dari variable dengan tipe “array of int” :
Int vektor [];
index array dimulai dari 0 (nol). Contoh berikut untuk mengalokasikan 5 buah integer ke dalam array :
vektor = new int [5];
selanjutnya untuk mengisi elemen-elemen array adalah sebagai berikut :
vektor[0] = 4;
vektor[1] = 3;
vektor[2] = 7;
vektor[3] = 5;
vektor[4] = 4;
cara yang lebih singkatnya adalah :
int vektor[] = {4,3,7,5,4};
F.Operator dalam Java
Java mempunyai 44 operator, yang terbagi delam 4 jenis dasar. Yaitu : Operator Aritmetik, Bitwise, Relasi dan Logika.
1. Operator Aritmatik
· Digunakan untuk proses matematis (aljabar),
· berupa tipe numeric,
· tidak dapat digunakan untuk tipe Boolean, tapi dapat digunakan untuk tipe Char, karena Char adalah anggota himpunan int.
Operator | Artinya |
+ | Penjumlahan |
+= | Persamaan Penjumlahan |
- | Pengurangan (juga untuk Unary Minus) |
-= | Persamaan Pengurangan |
* | Perkalian |
*= | Persamaan Perkalian |
/ | Pembagian |
/= | Persamaan Pembagian |
% | Modulus (sisa Pembagian) |
%= | Persamaan Modulus |
++ | Penambahan |
-- | Pengurangan |
2. Operator Bitwise
Tipe numeric integer, long, int, short, char, dan byte mempunyai kumpulan operator tambahan yang sama yang dapat memodifikasi dan memeriksa bit-bit yang menyusun nilainya.
Operator | Artinya |
~ | Unary NOT |
& | AND |
| | OR |
^ | Exclusive OR |
>> | Shift Kanan |
>>> | Shift Kanan. Isi dengan Nol |
<< | Shift Kiri |
&= | Pernyataan AND |
|= | Pernyataan OR |
^= | Pernyataan Exclusive Or |
>>= | Pernyataan shift Kanan |
>>>= | Pernyataan shift kanan, isi dengan nol |
<<= | Pernyataan shift kiri |
3. Opertor Relasi
Untuk membandingkan dua nilai, java memiliki kumpulan operator relasi berikut ini untuk menyatakan kesamaan dan urutan.
Operator | Artinya |
== | Sama dengan |
!= | Tidak sama dengan |
> | Lebih dari |
< | Kurang dari |
>= | Lebih dari atau sama dengan |
<= | Kurang dari atau sama dengan |
4. Operator Logika
Operator logika Boolean pada table ini di bawah ini berfungsi hanya pada operator Boolean. Semua operator ini mengkombinasikan dua besaran Boolean untuk menghasilkan bearan Boolean.
Operator | Artinya |
& | Logika AND |
| | Logika OR |
^ | Logika XOR |
|| | Hubungan-singkat OR |
&& | Hubungan-singkat AND |
! | Hubungan-singkat NOT |
&= | Pernyataan AND |
|= | Pernyataan OR |
^= | Pernyataan XOR |
== | Sama dengan |
!= | Tidak sama dengan |
?: | Operator ternary if-then-else |
Contoh Syntax dengan Menggunakan Tipe Data
A. Tipe Data
class contohinteger
{ public static void main(string agrs[]) { int nilai; nilai = 95; System.out.println(“Nilai : “ + nilai); } } |
B. String
class contohstring
{ public static void main ( string agrs[ ] ) { String nama; nama = “STIKOM BALI”; System.out.println ( “ Nama : “ + nama ); } } |
C. Contoh Penggunaan Operator
class contohOpl
{ public static void main ( String agrs [ ] ) { String nama,nim; int nilai nama = “Lutung Kasarung”; nim = “040010350”; nilai = 95; nilai += 5; System.out.println( “ ============== ” ); System.out.println ( “ Nama : “ + nama ); System.out.println ( “ NIM : “ + nim ; System.out.println ( “ Nilai: “ + nilai); System.out.println ( “ ============== ” ); } } |
Dari contoh di atas, nilai yang akan tampil akan berubah manjadi 100. Karena, nilai 95 mengalami penambahan 5 angka. Yaitu, nilai +=5 atau nilai = nilai+5. Output yang dihasilkan adalah :
============================
Nama : Lutung kasarung
NIM : 040010350
Nilai : 100
============================
Langganan:
Postingan (Atom)