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 :
/**
* 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 ");
}
}
view raw BiodataNafi' hosted with ❤ by GitHub

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 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: 

Pengaturan yang telah kira buat akan dirubah menjadi jam versi Universal. Untuk koding dari Time1 ini sebagai berikut:
/**
* 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
view raw Time1 hosted with ❤ by GitHub

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.
/**
* 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
}
view raw Time1Test hosted with ❤ by GitHub
 
    Karena dalam class ada pemanggilan fungsi yang terdapat pada Time1 maka Time1Test akan mengarah ke Time1 seperti gambar berikut :


    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 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
view raw ThisTest hosted with ❤ by GitHub
Untuk hasilnya sebagai berikut :

8.5 Time2
    
    Selanjutnya kita akan membuat class baru lagi dengan nama Class Time2 disini sama seperti Time1 tetapi dengan hasil yang berbeda berikut koding dari Time2:

/**
* 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
view raw Time2 hosted with ❤ by GitHub

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:

/**
* 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
view raw Time2Test hosted with ❤ by GitHub

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.













Komentar

Posting Komentar

Postingan populer dari blog ini

SupportSystem dan Dokumentasi Program (Barokah OnlineShop)

ETS (Transaksi Transfer dengan Menggunakan Mesin ATM)

Membuat Text Editor Menggunakan Blue J