Selasa, 28 Februari 2017

PBO Classes and Objects (tugas 2)

Classes and Objects 8.1 - 8.6

8.1. Time1 class declaration maintains the time in 24-hour format

/**
 * Time1
 * Monica I H
 * PBO
 */
public class Time1
{
   private int hour;
   private int minute;
   private int second;
   
   public void setTime(int h, int m, int s)
   {
       if((h >= 0 && h < 24) && (m >= 0 && m <60) && (s >= 0 && s < 60))
       {
           hour = h;
           minute = m;
           second = s;
        }
        else
            throw new IllegalArgumentException("hour, minute, and/or second was out range");
    }
    
    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"));
    }
}


8.2. Time1 object used in an application

/**
 * Time1Test
 * Monica I H
 * PBO
 */
public class Time1Test
{
    public static void main(String [] args)
    {
    Time1 time = new Time1();
    
    System.out.print("The initial universal time is: ");
    System.out.println( time.toUniversalString() );
    System.out.print("The initial standart time is: ");
    System.out.println( time.toString ());
    System.out.println();
    
    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();
    
    try
    {
        time.setTime( 99, 99, 99);
    }
    
    catch(IllegalArgumentException e)
    {
        System.out.printf( "Exception: %s\n\n", e.getMessage());
    }
    
    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());
}
}

8.3. Private members of class Time1 are not accessible

/**
 * MemberAccessTest
 * Monica I H
 * PBO
 */
public class MemberAccessTest
{
    public static void main(String[] args)
    {
        Time1 time = new Time1();
        
        time.hour = 7;
        time.minute = 15;
        time.second = 30;
    }
}


8.4. This used implicity and explicity to refer to members of an object

/**
 * ThisTest
 * Monica I H
 * PBO
 */
public class ThisTest
{
   public static void main(String[] args)
   {
       SimpleTime time = new SimpleTime(15,30,19);
       System.out.println(time.buildString());
   }
}

class SimpleTime
{
    private int hour;
    private int minute;
    private int second;
    
    public SimpleTime (int hour, int minute, int second)
    {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
    }
    
    public String buildString()
    {
        return String.format("%24s: %s\n%24s: %s",
            "this.toUniversalString()",this.toUniversalString(),
            "toUniversalString()",toUniversalString());
    }
    
    public String toUniversalString()
    {
        return String.format("%02d:%02d:%02d",
            this.hour, this.minute, this.second);
    }
}

8.5. Time2 class with overloaded constructors

/**
 * Time2
 * Monica I H
 * PBO
 */
public class Time2
{
    private int hour;
    private int minute;
    private int second;
    
    public Time2()
    {
        this(0,0,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());
    }
    
    public void setTime (int h, int m, int s)
    {
        setHour(h);
        setMinute(m);
        setSecond(s);
    }
    
    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"));
    }
}

8.6. Overloaded constructors used to initialize Time2 objects

/**
 * Time2
 * Monica I H
 * PBO
 */
public class Time2Test
{
    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("tl: 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());
        
        try
        {
            Time2 t6 = new Time2(27,74,99);
        }
        
        catch(IllegalArgumentException e)
        {
            System.out.printf("\nException while initializing t6: %s\n",
                e.getMessage());
        }
    }
}

PBO Latihan Konsep Object (tugas 1)

Konsep Object


1. Class

Class merupakan suatu “blueprint” atau “cetakan” untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain, Class itu bisa dikatakan sebagai kategori, Class juga bisa diilustrasikan atau diumpamakan dengan makhluk hidup. Singkatnya class adalah template untuk penciptaan objek-objek
Contoh : Class person, vehicle, fruit, animal dll. Misalkan hewan mamalia yaitu kucing. Didalam ilmu biologi, kucing tergolong dalam class hewan pemakan daging atau karnivora dan tentunya mempunyai bentuk atau konsep.


2. Object

Objek merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Contoh: dari class vehicle kita bisa membuat object motor, mobil.


3. Property

Properties adalah atribbut-atribut yang melekat pada sebuah object yang biasanya merupakan karakteristik penampilannya seperti warna, jenis huruf, ukuran dan sebagainya. Properti sebuah objek dapat diubah saat memprogram atau pada saat program dijalankan. Contoh: property dari televisi yakni merk, tipe, ukuran layar, dll.


4. State

State merupakan atribut yang dimiliki oleh sebuah obyek. Contoh object motor memiliki atribut (state) : sadel, roda, jeruji, warna, stang.


5. Method

Method pada dasarnya adalah function yang berada di dalam class. Seluruh fungsi dan sifat function bisa diterapkan kedalam method, seperti argumen/parameter, mengembalikan nilai (dengan keyword return), dan lain-lain. Method adalah tindakan yang bisa dilakukan didalam class. Jika menggunakan analogi class laptop kita. Contoh method adalah : menghidupkan tv, mematikan tv, dll.


6. Behavior

Behavior / tingkah laku adalah hal – hal yang bisa dilakukan oleh obyek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu obyek, menerima informasi dari obyek lain, dan mengirim informasi ke obyek lain untuk melakukan suatu task.

Senin, 20 Februari 2017

Manajemen Proyek Perangkat Lunak (tugas 1)

      Apa itu Manajemen Proyek Perangkat Lunak (MPPL)? Untuk dapat memahami maksudnya, mari kita bahas pengertian per katanya terlebih dahulu. MPPL terdiri dari 3 (tiga) kata: Manajemen, Proyek, dan Perangkat Lunak.
  • Manajemen
    Manajemen adalah seni menyelesaikan pekerjaan melalui orang lain. Definisi Mary Parker Follet ini berarti bahwa seorang manajer bertugas mengatur dan mengarahkan orang lain untuk mencapai tujuan organisasi. Ricky W. Griffin mendefinisikan manajemen sebagai sebuah proses perencanaan, pengorganisasian, pengkoordinasian, dan pengontrolan sumber daya untuk mencapai sasaran secara efektif dan efesien. Efektif berarti bahwa tujuan dapat dicapai sesuai dengan perencanaan, sementara efisien berarti bahwa tugas yang ada dilaksanakan secara benar, terorganisir, dan sesuai dengan jadwal. Manajemen belum memiliki definisi yang mapan dan diterima secara universal. (sumber: Wikipedia)
    Menurut saya sendiri dapat disimpulkan bahwa manajemen diartikan sebagai pengkoordinasian, pengontrolan, pengaturan yang dilakukan untuk menyelesaikan pekerjaan.
  • Proyek
    Proyek adalah sebuah kegiatan yang bersifat sementara yang telah ditetapkan awal pekerjaannya dan waktu selesainya (dan biasanya selalu dibatasi oleh waktu, dan seringkali juga dibatasi oleh sumber pendanaan), untuk mencapai tujuan dan hasil yang spesifik dan unik, dan pada umumnya untuk menghasilkan sebuah perubahan yang bermanfaat atau yang mempunyai nilai tambah. (sumber Wikipedia)
  • Perangkat Lunak
    Perangkat lunak (bahasa Inggris: software) adalah istilah khusus untuk data yang diformat, dan disimpan secara digital, termasuk program komputer, dokumentasinya, dan berbagai informasi yang bisa dibaca, dan ditulis oleh komputer.
Jadi dapat kita tarik kesimpulan yang dimaksud dengan Manajemen Proyek Perangkat Lunak adalah pengkoordinasian, pengontrolan, pengaturan dalam tim kerja yang dilakukan guna menyelesaikan pengadaan suatu perangkat lunak.

Stakeholder Proyek:
  • Client
    Adalah pemesan software atau pemberi proyek.
  • Project manager
    Adalah ketua dari team proyek yang bertanggung jawab untuk mengelola sumber daya yang ada untuk mencapai tujuan proyek.
  • Engineer
    Adalah pihak yang membangun perangkat lunak dari spesifikasi yang ditentukan.
  • Designer
    Adalah pihak yang merancang desain perangkat lunak yang akan dibangun.
  • End user
    Adalah pihak yang akan menggunakan perangkat lunak yang telah dibangun.
  • Analyst
    Adalah pihak yang memastikan persyaratan dari client ditangkap dengan benar sebelum solusi dibangun.
  • Investor
    Adalah pihak yang mendanai jalannya proyek.

Contoh Proyek:  
Proyek Pembuatan Aplikasi Pengendalian Internal - Kegiatan Pengembangan Layanan Informasi Administrasi Kepegawaian di Jawa Tengah

Deskripsi: 
      Di dalam anggaran perubahan tahun 2015 ini Badan Kepegawaian Daerah Provinsi Jawa tengah mengalokasikan anggaran untuk pembuatan Sistem Informasi Manajemen Program Kerja pada BKD Prov. Jateng yang bisa di integrasikan dengan Sistem e-Budgeting/SIMDA 2016 yang dikelola oleh Biro Keuangan Setda Provinsi Jawa Tengah. Sistem informasi ini berbasis data Program, Kegiatan dari Sistem Penganggaran e-budgeting.
      Kegiatan Pembuatan Aplikasi Pengendalian Internal pada Badan Kepegawaian Daerah Provinsi Jawa Tengah ini dilaksanakan dalam bentuk pembuatan modul-modul aplikasi berbasis web melalui tahap-tahap analisis, desain, koding, uji coba dan implementasi.

Yang terlibat dalam proyek:
1. Tenaga Ketua Tim (Team Leader), bertugas memimpin tim, bertanggung jawab atas koordinasi tim serta integrator sistem meliputi aplikasi dan jaringan komputer.
2. Tenaga Ahli Sistem Analis, bertugas sebagai perancang desain input, desain proses serta desain output.
3. Tenaga Ahli Database Specialist, bertugas membuatdesain database.
4. Tenaga Ahli Programmer/ Application Development, bertugas sebagai penerjemah rancangan kedalam script/ coding bahasa pemrograman.
5.Tenaga Ahli Jaringan Komputer, bertugas implementasi jaringan pada sistem
6. Tenaga Penguji (Tester), bertugas untuk melakukan pengujian sistem.
7. Tenaga Administrasi, bertugas menyusun dan menyiapkan segala keperluan administrasi kantor dalam pelaksanaan pekerjaan Pembuatan Aplikasi Pengendalian Internal.
8. Tenaga Pelatih (Trainer), bertugas untuk melatih user pengguna sistem.
9. Pemerintah Jawa Tengah, sebagai investor proyek.
10. Badan Kepegawaian Daerah Prov. Jawa Tengah, sebagai client.

Kebutuhan Biaya:
-Biaya langsung personil:
      1. Tim Ahli: Rp 20.000.000,00
      2. Tenaga Penunjang: Rp 3.000.000,00
-Biaya langsung non personil:
      1. ATK: Rp 500.000,00
      2. Pelatihan: Rp 100.000,00
      3. Laporan: Rp 400.000,00