Sangat Mudaah !!! Pemrograman Berbasis Objek , Menggunakan BlueJ
Selamat datang di blog pribadi saya, saya Abdun Nafi' NRP 05111940000066. Disini saya akan melanjutkan tugas kedua saya dalam mata kuliah PBO (Pemrograman Berbasis Objek). untuk tugas kedua saya adalah membuat project baru tentang biodata diri dan tugas yang ada di buku panduan Deitel latihan 8.1 sampai latihan 8.6
oke langsung saja kita eksekusi untuk tugas pertama yaitu membuat projek biodata diri. untuk hasil program dari class biodata diri seperti berikut.
Untuk kode program dari project tersebuat sebagai berikut :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Berisi tentang Biodata Diri | |
* | |
* @author Abdun Nafi' | |
* @version 0.1 08102020 | |
*/ | |
public class Biodata | |
{ | |
public Biodata () { | |
System.out.println (" Biodata Diri "); | |
System.out.println (" ========================= "); | |
System.out.println ("Nama : Abdun Nafi'"); | |
System.out.println ("Umur : 19 Tahun "); | |
System.out.println ("Alamat : Dusun Krajan Rt/Rw 005/002 Alastengah Paiton "); | |
System.out.println ("Jurusan : Teknik Informatika "); | |
System.out.println ("No Hp : 082245513236 "); | |
} | |
} |
Untuk tugas selanjutnya adalah mencoba program 8.1 sampai 8.6 di buku deitel.
8.1 Time1
Membuat class dengan nama class Time1 maka tampilan project akan seperti berikut:
Untuk hasilnya sebagai berikut :
Tetapi di Time 2 ini tidak kita bisa jalankan jadi hasilnya akan muncul ketika ada yang mengetest untuk program class Time2
Untuk hasil dari Time2Test sebagai berikut :
Jadi Time2Test akan memanggil ke class Time2. Maka akan ada tanda panah ketika terdapat fungsi yang terpanggil. maka dari semua tugas yang telah saya kerjakan dalam project class ini hasil dari papan penghubung sebagai berikut :
Baik sekian dari pembahasan mengenai tugas PBO yang ke-2 yang telah saya kerjakan. Kurang lebihnya mohon maaf. Semoga Bermanfaat.
Untuk memodelkan dan mengetahui hasil dari program yang kita jalankan maka kita klik kanan pada kotak coklat dan membuat new Time1. lalu kita klik kotak merah untuk menjalankan model class yang kita buat.
Karna disini kita buat class dengan tujuan merubah set Time maka setelah kita jalankan akan ada perintah untuk memasukkan nilai yang kita ingin rubah dengan range
jam integer 0-23, menit 0-59, dan detik 0-59. maka hasil program sebagai berikut.
Masukkan nilai int sesuai yang kita inginkan. setelah itu kita CLOSE setela di close kita pilih fungsi yang ada di new Time1 (kotak merah kecil ) lalu mengklik kanan disana akan ada dua fungsi . Pertama kita pilih fungsi void setTime(int h, int m, int s) maka akan keluar pop up sebagai berikut:
Nilai yang kita masukkan tadi sudah muncul di fungsi setTime selanjutnya kita klik kanan lagi kotak merah ( new Time1 ) untuk menjalan perintah yang kita buat dalam program class set Time maka akan muncul sebagai berikut:
Karena dalam class ada pemanggilan fungsi yang terdapat pada Time1 maka Time1Test akan mengarah ke Time1 seperti gambar berikut :
Pengaturan yang telah kira buat akan dirubah menjadi jam versi Universal. Untuk koding dari Time1 ini sebagai berikut:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Declaration maintains the time in 24-hour format | |
* | |
* @author Abdun Nafi' | |
* @version 0.1 08102020 | |
*/ | |
public class Time1 | |
{ | |
private int hour; //0 - 23 | |
private int minute; //0 - 59 | |
private int second; //0 - 59 | |
//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 ){ | |
//validate hour, minute, and second is valid | |
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 nd was out of range"); | |
} //end methods setTimeseco | |
//convert to string in universal-time format (HH:MM:SS) | |
public String toUniversalString() | |
{ | |
return String.format( "%02d:%02d:%02d", hour, minute, second ); | |
} //end method toUniversalString | |
public String toString() | |
{ | |
return String.format( "%d:%02d:%02d %s", | |
( ( hour == 0 || hour == 12 ) ? 12 : hour % 12 ), | |
minute, second, ( hour < 12 ? "AM" : "PM" ) ); | |
} // end method toString | |
} //end class Time1 | |
8.2 Time1Test
Untuk selanjutnya kita akan membuat konfigurasi antara Time1 dan Time1Test. Hal yang pertama kita buat dahulu class Time1Test dengan kodingan sebagai berikut.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* to test the Time1Test set | |
* | |
* @author Abdun Nafi' | |
* @version 0.1 13102020 | |
*/ | |
public class Time1Test | |
{ | |
public static void main( String[] args ) | |
{ | |
// create and initialize a Time1 object | |
Time1 time = new Time1(); // invokes Time1 constructor | |
// 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 ); // all values out of range | |
} // 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 | |
} |
Untuk menjalakan dari Timetest1 kita klik kanan lalu pilih fungsi void dan ketika ada pop up dengan tulisan kurung kurawa( { } ) kira tekan Ok, maka hasil dari program class Time1Test sebagai berikut :
8.3 MemberAccesTest
Untuk tugas 8.3 yaitu membuat class dengan nama MemberAccesTest dimana class ini akan mengetes apakah variable yang bersifat private akan bisa terpanggil dengan time 1 dan berikut hasilnnya:
Pada kotak MemberAccesTest kotak terdapat garis silang berwarna merah dikarenakan dalam class MemberAccesTest terdapat suatu fungsi yang memanggil variabel di kotak Time1 yaitu variabel private(hour, minute, dan second); dalam kodingannya pun tidak bisa di compile karna terdapat private variable yang tidak bisa dipanggil dan ini tampilan kodingan yang error:
8.4 ThisTest
Untuk tugas yang 8.4 yaitu kita diperintahkan untuk membuat class baru dengan nama class ThisTest. Pada class ini tidak konfigurasi terhapat kelas lain dan hanya membuat fungsi tersendiri dalam progrmanya maka tidak akan ada arah kepada kelas lain . tetapi ketika dijalankan seperti Time1Test maka akan muncul hasil sesuai dengan isi kodingan berikut kodingan untuk class Thist Test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* this used implicitly and explicitly to refer to members of an object. | |
* | |
* @author Abdun Nafi' | |
* @version 0.1 14102020 | |
*/ | |
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 contructor uses parameter names idential to | |
// instance variable names the "this" reference is | |
// required to distinguish between 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 contructor | |
// use explicit and impicit "this" to call toUniversalString | |
public String buildString() | |
{ | |
return String.format("%24s: %s\n%24s: %s", | |
"this.toUniversalString()", this.toUniversalString(), | |
"toUniversalString()", toUniversalString() ); | |
} // end method buildSting | |
//convert to String in unuversal-time format (HH:MM:SS) | |
public String toUniversalString() | |
{ | |
// "this" is not required here to acces instance variables, | |
// because method does not have local variable with same | |
// names as istance variables | |
return String.format( "%02d:%02d:%02d" , | |
this.hour, this.minute, this.second ); | |
} // end method toUniversalString | |
} //end class SimpleTime |
Selanjutnya kita akan membuat class baru lagi dengan nama Class Time2 disini sama seperti Time1 tetapi dengan hasil yang berbeda berikut koding dari Time2:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Time2 class declaration with overloaded constructors. | |
* | |
* @author Abdun Nafi' | |
* @version 0.1 14102020 | |
*/ | |
public class Time2 | |
{ | |
private int hour; // 0 -23 | |
private int minute; // 0 - 59 | |
private int second; // 0 - 59 | |
// Time2 no-argument contructor: | |
// initializes each instance variable to zero | |
public Time2() | |
{ | |
this(0, 0, 0); // invoke Time2 contructor with three arguments | |
} // end Time2 no-argument contructpr | |
// Time2 contructor: hour supplied, minute and second defaulted to 0 | |
public Time2 ( int h ) | |
{ | |
this( h, 0, 0); // invoke Time2 contructor with three arguments | |
} // end Time2 one-argument contructor | |
// Time2 contructor: hour and minute supplied,second defaulted to 0 | |
public Time2( int h, int m) | |
{ | |
this( h, m, 0); // invoke Time2 contructor with three arguments | |
} // end Time2 two-arguments contructor | |
// Time2 contructor: our, minute, and second supplied | |
public Time2( int h, int m, int s ) | |
{ | |
setTime( h, m, s); // invoke setTime to validate time | |
} // end Time2 three-argument contructor | |
//Time2 contructor ; another Time2 object supplied . | |
public Time2( Time2 time ) | |
{ | |
// invoke Time2 three-argument contructor | |
this( time.getHour(), time.getMinute() , time.getSecond() ); | |
} // end Time2 contructor with a Time2 object argument | |
// Set Methods | |
// set a new time value using universal time; | |
// validate the data | |
public void setTime( int h, int m, int s) | |
{ | |
setHour( h ); // set the hour | |
setMinute( m ); // set the minute | |
setSecond( s ); // set the second | |
} // end method setTime | |
//validate and set houur | |
public void setHour(int h) | |
{ | |
if ( h>= 0 && h < 24 ) | |
hour = h; | |
else | |
throw new IllegalArgumentException( "hour must be 0-23" ); | |
} // end method setHour | |
// validate and set minute | |
public void setMinute( int m ) | |
{ | |
if ( m >= 0 && m < 60 ) | |
minute = m; | |
else | |
throw new IllegalArgumentException( "minute must be 0-59" ); | |
} // end method setMinute | |
//validate and set second | |
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"); | |
} // end method setSecond | |
// Get Methods | |
// get hour value | |
public int getHour() | |
{ | |
return hour; | |
} // end method getHour | |
public int getMinute() | |
{ | |
return minute; | |
} // end method getMinute | |
// get second value | |
public int getSecond() | |
{ | |
return second; | |
} // end method getSecond | |
// convert to String in universal-time format (HH:MM:SS) | |
public String toUniversalString() | |
{ | |
return String.format( | |
"%02d:%02d:%02d", getHour(), getMinute(), getSecond() ); | |
} // end method toUniversalString | |
// convert to String in standard-time format (H:MM:SS AM or PM) | |
public String toString() | |
{ | |
return String.format( "%d:%02d:%02d %s", | |
( (getHour() == 0 || getHour() == 12) ? 12 : getHour() % 12 ), | |
getMinute(), getSecond(), ( getHour() < 12 ? "AM" : "PM" ) ); | |
} // end method toString | |
} // end class Time2 | |
Tetapi di Time 2 ini tidak kita bisa jalankan jadi hasilnya akan muncul ketika ada yang mengetest untuk program class Time2
8.6 Time2Test
Untuk selanjutnya kita membuat class Time2Test untuk mengetes apakah method yang terdapat dalam 8.5 berjalan dengan membuat konfigurasi pada class Time2Test. Berikut kodingan dari Time2Test:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Overload contructor used to initialize Time2 objects. | |
* | |
* @author Abdun Nafi' | |
* @version 14102020 | |
*/ | |
public class Time2Test | |
{ | |
public static void main( String [] args ) | |
{ | |
Time2 t1 = new Time2(); // 00:00:00 | |
Time2 t2 = new Time2( 2 ); // 02:00:00 | |
Time2 t3 = new Time2( 21, 34 ); // 21:34:00 | |
Time2 t4 = new Time2( 12, 25, 42); // 12:25:42 | |
Time2 t5 = new Time2(t4); //12:25:42 | |
System.out.println( "Contructed 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 specified; minute, and 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 |
Untuk hasil dari Time2Test sebagai berikut :
Jadi Time2Test akan memanggil ke class Time2. Maka akan ada tanda panah ketika terdapat fungsi yang terpanggil. maka dari semua tugas yang telah saya kerjakan dalam project class ini hasil dari papan penghubung sebagai berikut :
Keren penjelasanmu, Fi'. Aku jadi lebih paham.
BalasHapusTerimakasih mas zidan
Hapus