Belajar Java Bagi Pemula (Pengenalan dan Pembuatan Program Sederhana dan Class Sederhana)
Hai programmers......."Memulai lebih baik dari pada tidak sama sekali"
Pada Kesempatana kali ini saya akan menjelaskan secara singkat mengenai apa itu Java dan bagaimana penerapannya.
Apa itu Java?
Untuk link download BlueJ sendiri kalian bisa download link dibawah ini
https://bluej.org/
1. Fase-fase pengkodean dalam bahasa Java:
Sebelum pada kodingannya.Kita harus mengetahui fase fase dalam pengkodean bahasa Java.
Write - Pada dasarnya anda hanya perlu menulis kode program menggunakan text editor seperti notepad lalu menyimpan berkas tersebut dengan ekstensi
.java
.Compile - Setelah membuat dan menyimpan kode program, kompilasi file yang berisi kode program tersebut dengan menggunakan Java Compiler. Hasil dari kompilasi berupa berkas bytecode dengan ekstensi
.class
.Run - Berkas yang mengandung bytecode tersebut kemudian akan dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform.
Pada dasarnya aplikasi-aplikasi berbasis Java pada umumnya dikompilasi ke dalam p-code (bytecode) sehingga dapat dijalankan pada berbagai Java Virtual Machine (JVM).
Dari fase Java diatas, anda hanya perlu menulis dan mengkompilasi baris kode program sebanyak satu kali namun kita dapat menjalankan program dimanapun dengan JVM.
Penggunaan Java sendiri mampu berjalan di beberapa platform sistem operasi yang berbeda
2. Struktur Program
Memahami struktur dari Program Java tersebut.Berikut salah satu contoh dari Program awal Java:
/**
* Pembuatan Biodata.
*
* @author (Ricky S)
* @version (dasar1)
*/
public class biodata
{
public biodata()
{
System.out.println ("==============Biodata===========");
System.out.println (" \n ");
System.out.println ("Nama :Ricky Supriyanto");
System.out.println ("NRP :05111940000036");
System.out.println ("Alamat :Perum Megawon Indah Jl.Kapas1 no.2");
System.out.println ("TTL :Kudus, 20 Januari 2020");
System.out.println ("Motto :Belajar itu Penting");
}
}
public adalah sebuah keyword di Java yang menandakan bahwa objek, method, atau atribut dapat diakses dari class lain. Nanti kita akan belajar access modifier.
class adalah sebuah keyword di Java untuk membuat sebuah Kelas. Dalam contoh program diatas kita membuat kelas bernama Biodata.
main menunjukan bahwa blok tersebut merupakan program utama. Dan kita akan menggunakan public Biodata() untuk method main program java.
System.out.println() adalah sebuah method yang telah di-import otomatis untuk digunakan mencetak output di konsol.
Jadi dapat anda bayangkan bahwa program kita diatas akan membuat sebuah kelas bernama Biodata
yang akan mencetak kata mulai dari nama, nrp, alamat, TTL, dan motto hidup di konsol.
TIPS: Semua program java harus ditulis di dalam kelas atau class
.
3. Komentar
Komentar merupakan sebuah catatan biasa yang ditulis oleh programmer untuk sebagai pengingat atau penjelasan ketika membaca sebuah kode.
Hanya 1 Baris - tanda komentar satu baris, menggunakan tanda
//
Banyak Baris - komentar lebih dari satu bari, menggunakan tannda
/* ... */
import java.time.LocalDate;
/**
* Program Konversi Mata Uang
*
* @author Ricky S.
* @version (awal)
*/
public class konversi
{
private double rupiah;
private double dollar;
public void Rp_Dollar(double rp)
{
dollar = rp * 0.0001; //misalkan rp 15.000 = 1 dollar
}
public void Dollar_Rp(double dlr)
{
rupiah = dlr * 10000; //konversi dollar ke rupiah
}
public double getDollar()
{
return dollar;
}
public double getRupiah()
{
return rupiah;
}
}
Apa itu Class?
Time Class Case Study terdiri dari 2 class yaitu Time1 dan Time1Test. Class Time1Test pada contoh ini adalah class aplikasi dimana membuat satu objek kelas Time1 dan memanggil metodenya. Kelas kelas ini harus dideklarasikan dalam file terpisah karena keduanya adalah class Public. Hasil dari program ini adalah suatu program yang berisi private int variable Time1 jam, menit, dan detik. Program ini juga menunjukkan waktu dalam format universal. Ada juga Metode Public yang berisi setTime, toUniversalString, dan toString. Metode ini juga disebut layanan public yang diberikan class pada kliennya.
Berikut implementasi nya:
1.Time1.java
import java.time.LocalDate;
//Time1.java
public class Time1
{
private int hour;
private int minute;
private int second;
//set a new time value using universal time ; throw an
//exception if the hour , minute or second is invalid
public void setTime(int h, int m, int s)
{
//validasi jam, menit, detik
if((h>=0 && h<24) && (m>=0 && m<60) && (s>=0 && s<60))
{
hour=h;
minute=m;
second=s;
}//end if
else{
throw new IllegalArgumentException(
"hour, minute and/or second was out of range");
}//end method setTime
}
public String toUniversalString()
{
return String.format("%02d:%02d:%02d", hour, minute, second);
}
public String toString()
{
return String.format( "%d:%02d:%02d %s",
( (hour == 0 || hour == 12) ? 12 : hour % 12),
minute, second, (hour < 12 ? "AM" : "PM"));
}
}
2.Time1test.java
import java.time.LocalDate;
Time1Test.java
// Time1 object used in an application.
public class Time1Test
{
public static void main( String[] args )
{
// create and initialize a Time1 object
Time1 time= new Time1();
// output string representations of the time
System.out.print( "The initial universal time is: " );
System.out.println( time.toUniversalString() );
System.out.print( "The initial standard time is: " );
System.out.println( time.toString() );
System.out.println(); // output a blank line
// change time and output updated time
time.setTime(13, 27, 6);
System.out.print( "Universal time after setTime is: " );
System.out.println( time.toUniversalString() );
System.out.print( "Standard time after setTime is: " );
System.out.println( time.toString() );
System.out.println(); // output a blank line
// attempt to set time with invalid values
try
{
time.setTime(99, 99, 99);
} // end try
catch ( IllegalArgumentException e )
{
System.out.printf( "Exception: %s\n\n", e.getMessage() );
} // end catch
// display time after attempt to set invalid values
System.out.println( "After attempting invalid settings:" );
System.out.print( "Universal time: " );
System.out.println( time.toUniversalString() );
System.out.print( "Standard time: " );
System.out.println( time.toString() );
} // end main
} // end class Time1Test
3. Hasil ProgramB. Controlling Acces to Members
Ini adalah metode pengubah akses public dan private mengontrol akses ke variabel dan metode kelas. Tujuan utama dari public adalah menyajikan pandangan kepada klien class dari layanan yang disediakan class(antarmuka public class. Klien tidak perlu peduli bagaimana class menyelesaikan tugasnya.Karena alasan ini, variable privat dan metode privat class tidak dapat di akses oleh clien nya.
Untuk implementasi nya:
import java.time.LocalDate;
MemberAccessTest.java
// Private members of class Time1 are not accessible.
public class MemberAccessTest
{
public static void main( String[] args )
{
Time1 time = new Time1(); // create and initialize Time1 object
time.hour = 7; //error:hour has private acces in Time1
time.minute = 15; //error:minute has private acces in Time1
time.second = 30; //error: second has private acces in Time1
} // end main
} // end class MemberAccessTest
Untuk implementasi dapat digabungkan dengan Time Class Case Study.
Pada program MemberAccesTest akan terjadi error karena ada nya private acces pada Time1.java
C. Reffering To The Current Object's
Setiap object dapat mengakses referensi ke dirinya sendiri dengan kata kunci this.Ketika metode non-statis dipanggil untuk objek tertentu, isi metode secara implisit menggunakan kata kunci this untuk merujuk ke variabel instance object's dan metode lainnya. Kode class mampu mengetahui mana yang harus dimanipulasi. Pada contoh program yang diberikan dimana 2 claas yang berada dalam 1 file.Program ini untuk mendemonstrasikan kapan anda harus mengkompilasi file.java yang berisi lebih dari satu class, kompilator menghasilkan fie class dengan ekstensi.class yang setia class dikompilasi. Dalam hal ini, dua file yang terpisah diproduksi yaitu SimpleTime.class dan ThisTest.class . Ketika satu kode sumber berisi deklarasi kelas, kompilator menempatkan kedua file class untuk class tersebut di direktori yang sama. Pada program dijelaskan bahwa class ThisTest yang dinyatakan di public. Seuah file kode sumber hanya dapat berisi satu kelas public, jika tidak maka terjadi kesalahan. Kelas non-public hanya dapat digunakan oleh class lain dalam paket yang sama.Jadi, dalam hal ini misalnya kelas SimpleTest hanya bisa digunakan dalam kelas ThisClass.
Implementasi:
import java.time.LocalDate;
// Fig. 8.4: ThisTest.java
// this used implicitly and explicitly to refer to members of an object.
public class ThisTest
{
public static void main( String[] args )
{
SimpleTime time = new SimpleTime( 15, 30, 19 );
System.out.println( time.buildString() );
} // end main
} // end class ThisTest
// class SimpleTime demonstrates the "this" reference
class SimpleTime
{
private int hour; // 0-23
private int minute; // 0-59
private int second; // 0-59
// if the constructor uses parameter names identical to
// instance variable names the "this" reference is
// required to distinguish between the names
public SimpleTime( int hour, int minute, int second )
{
this.hour = hour; //set "this" object's hour
this.minute = minute; //set "this" object's minute
this.second = second; //set "this" object's second
} // end SimpleTime constructor
// use explicit and implicit "this" to call toUniversalString
public String buildString()
{
return String.format( "%24s: %s\n%24s: %s",
"this.toUniversalString()", this.toUniversalString(),
"toUniversalString()", toUniversalString() );
} // end method buildString
// convert to String in universal-time format (HH:MM:SS)
public String toUniversalString()
{
// "this" is not required here to access instance variables,
// because method does not have local variables with same
// names as instance variables
return String.format( "%02d:%02d:%02d",
this.hour, this.minute, this.second);
} // end method toUniversalString
} // end class SimpleTime
D. Time Class Case Study :Overloaded Construction
Anda dapat mendeklarasikan konstruktor anda sendiri untuk menentukan bagaimana object class seharusnya di inisialisasi. Selanjutnya, kami mendemostrasikan clas dengan beberapa konstruktor kelebihan beban yang memungkinkan object class tersebut diinisialisasi dengan cara berbeda.Untuk membebani konstruktor, cukup berikan beberapa deklarasi dengan signatures berbeda
Implementasi:
import java.time.LocalDate;
// Fig. 8.5:Time2.java
//Time2 Class declaration with constructors
public class Time2
{
private int hour;
private int minute;
private int second;
//Time2 no-argument construction
//initialize each instance variable to zero
public Time2()
{
this( 0, 0, 0); // invoke Time2 constructor with three arguments
}// end Time2 no-argument constructor
// Time2 constructor: hour supplied, minute and second defaulted to 0
public Time2(int h)
{
this(h, 0, 0);
}
public Time2(int h, int m)
{
this (h, m, 0);
}
public Time2( int h, int m, int s)
{
setTime (h, m ,s);
}
public Time2( Time2 time)
{
this(time.getHour(), time.getMinute(), time.getSecond());
}
//Set Methods
//Set a new time value using universal time
//validate the data
public void setTime( int h, int m, int s)
{
setHour(h);
setMinute(m);
setSecond(s);
}
//validate and set hour
public void setHour(int h)
{
if (h>=0 && h<24)
hour=h;
else
throw new IllegalArgumentException("hour must be 0-23");
}
public void setMinute(int m)
{
if(m>=0 && m<60)
minute=m;
else
throw new IllegalArgumentException("minute must be 0-59");
}
public void setSecond(int s)
{
if(s>=0 && s<60)
second = ( ( s>=0 &&s<60) ? s:0);
else
throw new IllegalArgumentException("second must be 0-59");
}
public int getHour()
{
return hour;
}
public int getMinute()
{
return minute;
}
public int getSecond()
{
return second;
}
public String toUniversalString()
{
return String.format(
"%02d:%02d:%02d", getHour(), getMinute(), getSecond() );
}
public String toString()
{
return String.format( "%d:%02d:%02d %s",
( (getHour() == 0 ||getHour() == 12) ?12 : getHour() %12),
getMinute(), getSecond(), ( getHour() <12 ? "AM" :"PM") );
}
}
Deklarasi untuk Time2Test.java
import java.time.LocalDate;
// Fig. 8.6 : Time2Test.java
//Overloaded constructors used to initialize Time2 object
public class Time2Test extends Time2
{
public static void main( String[] args )
{
Time2 t1 = new Time2();
Time2 t2 = new Time2(2);
Time2 t3 = new Time2( 21, 34);
Time2 t4 = new Time2( 12, 25, 42);
Time2 t5 =new Time2( t4 );
System.out.println( "Constructed with:" );
System.out.println( "t1: all arguments defaulted" );
System.out.printf( " %s\n", t1.toUniversalString() );
System.out.printf( " %s\n", t1.toString() );
System.out.println(
"t2: hour specified; minute and second defaulted" );
System.out.printf( " %s\n", t2.toUniversalString() );
System.out.printf( " %s\n", t2.toString() );
System.out.println(
"t3: hour and minute specified; second defaulted" );
System.out.printf( " %s\n", t3.toUniversalString() );
System.out.printf( " %s\n", t3.toString() );
System.out.println( "t4: hour, minute and second specified" );
System.out.printf( " %s\n", t4.toUniversalString() );
System.out.printf( " %s\n", t4.toString() );
System.out.println( "t5: Time2 object t4 specified" );
System.out.printf( " %s\n", t5.toUniversalString() );
System.out.printf( " %s\n", t5.toString() );
// attempt to initialize t6 with invalid values
try
{
Time2 t6 = new Time2( 27, 74, 99); //invalid values
} // end try
catch ( IllegalArgumentException e )
{
System.out.printf( "\nException while initializing t6: %s\n",
e.getMessage() );
} // end catch
} // end main
} // end class Time2Test
E. Default and No-Argument Construction
Setiap kelas harus memiliki setidaknya satu konstruktor. Jika Anda tidak menyediakan apa pun di deklarasi kelas, kompilator membuat konstruktor default yang tidak membutuhkan argumen saat dipanggil. Konstruktor default menginisialisasi variabel instance ke nilai awal
ditentukan dalam deklarasinya atau ke nilai defaultnya (nol untuk tipe numerik primitif, ditentukan dalam deklarasinya atau ke nilai defaultnya (nol untuk tipe numerik primitif,
false untuk nilai boolean dan null untuk referensi). Di Bagian 9.4.1, Anda akan mempelajari
bahwa konstruktor default melakukan tugas lain juga.Jika kelas Anda mendeklarasikan
konstruktor, kompilator tidak akan membuat konstruktor default.Dalam kasus ini, Anda harus
mendeklarasikan konstruktor tanpa argumen jika inisialisasi default adalah yangg dibutuhkan.
Seperti konstruktor default, konstruktor tanpa argumen dipanggil dengan kosong tanda kurung.
Konstruktor tanpa argumen Time2(baris 12-15 pada Gambar 8.5)secara eksplisit menginisialisasi
objek Time2 dengan meneruskan ke konstruktor tiga argumen 0 untuk setiap parameter.
Karena 0 adalah nilai default untuk variabel instans int, konstruktor tanpa argumen dalam
hal ini contoh sebenarnya bisa dideklarasikan dengan tubuh kosong. Dalam hal ini, setiap variabel instan akan menerima nilai defaultnya ketika konstruktor tanpa argumen dipanggil.
Jika kita hilangkan konstruktor tanpa argumen, klien kelas ini tidak akan dapat membuat Time2
objek dengan ekspresi Time2 () baru.
Komentar
Posting Komentar