MODUL XVI,PBO 1

DATE AND TIME
 

TUJUAN:
Mahasiswa mampu menggunakan Fasilitasdalam java: Date and Time
TEORI SINGKAT:
Untukmenampilkan date and time terlah tersedia fungsi yang cukup banyak,referensinya dapat diambil dari java help.
PELAKSANAAN PRAKTIKUM:
Program di bawah ini adalah script yangdigunakan untuk menampilkan tanggal dari kelas Date, sehingga kita harusmelakukan import paket dari java.util.Date, karena kelas Date() berada dalampaket java.util. Baru kemudian kita dapat menciptakan suatu objek dari kelasDate() tersebut. Pada praktek di bawah kita menggunakan objek date yangkemudian dapat kita manfaatkan untuk melakukan pemanggilan terhadap methodtoString() sehingga menghasilkan kondisi waktu yang berisi keternagna “Mon”yaitu menunjukkan hari Senin, “May” adalah bahwa saat ini adalah bulan Mei,“17” merupakan tanggal saat ini (saat dicetak), “08:10:12” menunjukkan jam 8,lewat 10 menit dan 12 detik, sedangkan “ICT” merupakan kode klasifikasi waktudan  “2010” menunjukkan tahunnya.
Mengapa di bawah ini kita menggunakanmethod toString() yang diambilkan dari kelas string dan bisa langsung dipanggiltanpa kita mengimport. Karena klas String ini merupakan kelas di bawah objekyang telah include menjadi bagian dari java development sebagaimana halnya padakelas math. Dan kita gunakan toString() karena data yang kita cetak harusdikonversikan dari bilangan menjadi data string.
import java.util.Date;
public class DateDemo{
      public static void main(String[]args){
            //Membuat objek Date diisi tanggal dan wajtu sekarang
            Date date=new Date();
            //Menampilkan waktu dan taggal menggunakan toString
            System.out.println(date.toString());
      }
}
Menggunakan klas java util dan text untuk melakukan modifikasipada kelas Date. Karena kelas Date ini juga terdapat dalam util. Pertama adalahdengan menciptakan objek dNow dari kelas date. Kemudian kita juga menciptakanobjek ft dari kelas SimpleDateFormat yang terletak pada kelas java.text. Denganobjek tersebut kita dapat menampilkan data tanggal saat ini maupun data tanggalyang kita set/masukkan ke sistem atau suatu variabel. Objek ft yang diciptakantersebut diformat dalambentuk “E” adalah menampilkan hari, tgl adalah stringyang ditampilkan ‘dd-MM-yyy’ adalah format tampilan tanggal-bulan-tahun dalamangka. Kemudian jam adalah string yang ditampilkan dalam bentukjam:menit:detik, sedangkan a adalah pembagian waktu dalam 12 jam yaitu AM atauPM. Dan yang terakhir zzz untuk menampilkan zone waktu yang diset di dalamkomputer.
Maka yang perlu dituliskan untuk menampilkan data-data tersebutadalah ft.format(dNow) dimana ft adalah objek hasil instaniasi dari kelasDate(), format adalah suatu method dalam kelas SimpleDateFormat() dan dNowadalah objek hasil instaniasi dari kelas Date() yang berfungsi untuk mensetdata saat ini.
import java.util.*;
import java.text.*;
public class DateDemo2{
      public static void main(String[]args){
            Date dNow=new Date();
            SimpleDateFormat ft=
            new SimpleDateFormat(“E ‘tgl : ‘ dd-mm-yyy ‘ jam ‘hh:mm:ss a zzz”);
            System.out.println(“Sekaranng hari :”+ft.format(dNow));
      }
      }
Program di bawah ini adalah modifikasi tampilan sebagaimanafungsi-fungsi program di atas. Namun untuk menampilkan format yang berbeda kitaharus menciptakan objek pemanggilan yang berbeda pula. Oleh karena itu kitamenciptakan objek ht,ft dan jt. Objek ht untuk menciptakan tampilan berupa harikarena di dalamnya kita hanya menggunakan parameter E saja. Sedangkan objek ftadalah objek untuk menampilkan data tanggal sebagaimana format yang diterakandalam parameter (“dd-MM-yyy”) dan jt digunakan untuk menamilkan data tanggaldengan adanya parameter (“hh:mm:ss a zzz”).
import java.util.*;
import java.text.*;
public class DateDemo2{
     publicstatic void main(String[]args){
       DatedNow=new Date();
       SimpleDateFormatht=
       newSimpleDateFormat(“E”);
       SimpleDateFormatft=
       newSimpleDateFormat(“dd-mm-yyy “);
       SimpleDateFormatjt=
       newSimpleDateFormat(“hh:mm:ss a zzz”);
       System.out.println(“Sekaranghari    : “+ht.format(dNow));
       System.out.println(“SekarangTanggal : “+ft.format(dNow));
       System.out.println(“Sekarangjam     : “+jt.format(dNow));
     }
}
Dibawahini contoh penggunaan fungsi GregorianCalendar untuk menampilkan data-datawaktu. Lebih simpel dibandingkan program di atas yang menggunakan fungsi Date.Dengan GregorianCalendar kita cukup menciptakan satu objek, dan untukmenampilkan secara terpisah antara tahun, bulan, tanggal, hari, jam dansebagainya bahkan sampai ke second. Cukup menggunakansintakcal.get(Calender.[yang ditampilkan]);.
Sedangkanuntuk menkonfersi bulan dalam bahasa Indonesia, maka kita perlu menciptakanarray bulan[]. Array ini akan digunakan untuk mereferensi pemanggilancal.get(Calender.MONTH) yang menghasilkan bilangan int sebagai simbul bulanbersangkutan. Bila hasil dari statemen itu menghasilkan 0 maka yang ditampilkanadalah “Januari”. Demikian seterusnya sampai pada bilangan ke 11, yang akanmenampilkan “Desember”.
Di dalamGregorianCalendar terdapat method isLeapYear(tahun) yang akan mengidentifikasisuatu tahun apakah termasuk di dalam tahun kabisat atau tidak. Jika bilangantersebut dapat dibagi 4 namun tidak dapat dibagi dengan 100 maka tahun tersebutadalah tahun kabisat. Kita tidak perlu membuat rumus tersebut, tinggalmenggunakan fungsi yang sudah ada. Jika hasil dari fungsi cal.isLeapYear(tahun)menghasilkan true maka yang akan ditampilkan adalah “Sekarang adalah tahunkabisat”, jika bernilai false maka yang akan ditampilkan adalah “Sekarang bukantahun kabisat”.
import java.util.*;
class GregorianCalendarDemo{
     publicstatic void main(String args[]){
       Stringbulan[]={“Januari”,”Februari”,”Maret”,”April”,”Mei”,”Juni”,”Juli”,”Agustus”,”September”,”Oktober”,”Nopember”,”Desember”};
 int tahun;
 //Menciptakan Gregorian Kalenderdiinisialisasi
 //dengantanggal dan jam sekarang dalam
 //lokal dantimezone default
 GregorianCalendar cal=new GregorianCalendar();
 //Tampilkaninfo tangal dan jam sekarang.
 System.out.print(“Tanggal: “);
 System.out.print(cal.get(Calendar.DATE)+””);
 System.out.print(bulan[cal.get(Calendar.MONTH)]+””);
 System.out.println(tahun =cal.get(Calendar.YEAR));
 System.out.print(“jam   :”);
 System.out.print(cal.get(Calendar.HOUR)+”: “);
 System.out.print(cal.get(Calendar.MINUTE)+”: “);
 System.out.println(cal.get(Calendar.SECOND));
     //Testapakah sekarang tahun kabisat
     if(cal.isLeapYear(tahun))
       System.out.println(“Sekarangadalah tahun kabisat”);
            elseSystem.out.println(“Sekarang bukan tahun kabisat”);
     }
      }
      HasilTampilan:
     
Program ini akan membahas banyak hal yaitu untuk menampilkanwaktu saat ini, waktu yang sudah diset, waktu yang dikenai roll up dan rolldown serta mengetahui hasil operasi apabila suatu tanggal, bulan, atau tahunditambah bilangan tertentu. Yang perlu diingat adalah paket-paket yang harusdiimport sehingga semua fasilitas yang diperlukan sudah siap.
importjava.text.DateFormat;
import java.text.ParseException;
importjava.text.SimpleDateFormat;
import java.util.Calendar;
importjava.util.GregorianCalendar;
import java.util.Date;
public class DateUtility{
     public static final String DATE_FORMAT=”dd-mm-yyy”;
Perintah diatas digunakan untuk menciptakanvariabel bernama DATE_FORMAT dengan isi default adalah format tanggal“dd-MM-yyy”.
MenambahDay/Month/year ke Date add() digunakan untuk menambah nilak ek objek Calendar. Andadapat menentukan field Calendar tertentu untuk dilakukan suatu opeasi (Calendar.YEAR,Calendar.MONTH, Calendar.DATE);
     public static void tambahKeDate(){
        System.out.println(“1. Tambah ke Date\n”);
        SimpleDateFormat sdf=new SimpleDateFormat(DATE_FORMAT);
Membuat kalender menggunakan default timezone dan lokal
        Calendar c1=Calendar.getInstance();
        Date d1=new Date();
        System.out.println(“cl.getTime() : “+c1.getTime());
        System.out.println(“cl.get(Calendar.YEAR) :”+c1.get(Calendar.YEAR));
        System.out.println(“Tanggal Sekarang dalam format Date :”+d1);
Mengubah isi calendar (year, month, date) :20-jan-2010                                    
        c1.set(2010,0,20);
        System.out.println(“cl.set(2010,0,20) :”+c1.getTime());
        c1.add(Calendar.DATE, 20);
        System.out.println(“cl + 20 hari adalah :”+sdf.format(c1.getTime()));
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
MengurangiDay/Month/Year ke Date.
roll()digunakan untuk mengurangi nilai ke objek Calandar. Kita tentukan fieldCalandar yang akan diubah (Calendar.YEAR, Calendar.MONTH, Calandar.DATE). Untukmenggurangi kita gunakan argumen negatif.
roll(),emherkalam hal sama jika kita ingin melakukan roll up (menambah 1) atau rolldown (mengurangi 1) ke filed Calendar tertentu.
Operasiini hanya berlaku pada field tertentu saja, sementara add() mengatur fieldCalendar lainnya.
Contoh,roll() membuat Januari mengulang ke Desember dalam tahun sama, sementara add()mengurangi field YEAR sehingga memberi hasil benar.
     public static void kurangKeDate(){
        System.out.println(“2. Kurang ke Date\n”);
        SimpleDateFormat sdf=new SimpleDateFormat(DATE_FORMAT);
        Calendar c1=Calendar.getInstance();
        c1.set(2010,0,20);
        System.out.println(“Kalender adalah :”+sdf.format(c1.getTime()));
//roll Down, kurangi 1 bula
        c1.roll(Calendar.MONTH,false);
        System.out.println(“Kalender roll down 1 bulan :”+sdf.format(c1.getTime()));
        c1.set(2010, 0, 20);
        System.out.println(“Kalender adalah :”+sdf.format(c1.getTime()));
        c1.add(Calendar.MONTH, -1);
//Kurangi 1 bulan
        System.out.println(“Klendaer kurang 1 bulan : “+sdf.format(c1.getTime()));
        c1.set(2010,0,20);
        //set Kalender lagi
        //roll up tambah 1 bulan
        c1.roll(Calendar.MONTH, true);
        System.out.println(“Kalender roll up 1 bulan :”+sdf.format(c1.getTime()));
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void jmlHariAntara2Date(){
        System.out.println(“3. Jumlah hari aatra 2Calendar\n”);
        Calendar c1=Calendar.getInstance();//new GregorianCalendar();
        Calendar c2=Calendar.getInstance();//new GregorianCalendar();
        c1.set(2010,0,18);
        c2.set(2010,0,22);
        System.out.println(“Antara “+c1.getTime());
        System.out.println(“Dan”);
        System.out.println(c2.getTime()+” adalah : “);
        System.out.println((c2.getTime().getTime() – c1.getTime().getTime())/(24*3600*1000)+”hari”);
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void jmlHariDlmSebulan(){
        System.out.println(“4. Jumlah hari dalam bulantertentu\n”);
        GregorianCalendar c1=new GregorianCalendar();
        c1.set(2004,1,20);//20februari 2004
        int tahun=c1.get(Calendar.YEAR);
        int bulan=c1.get(Calendar.MONTH);
        int[] hariDlmSebulan={31,28,31,30,31,30,31,31,30,31,30,31};
        hariDlmSebulan[1]+=c1.isLeapYear(tahun) ? 1: 0;
        System.out.println(“Bulan ke “+(bulan+1)+”tahun “+tahun+” selama”+hariDlmSebulan[c1.get(Calendar.MONTH)]+”Hari”);
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void main(String[]args){
        tambahKeDate();
        kurangKeDate();
        jmlHariAntara2Date();
        jmlHariDlmSebulan();
     }
}
TUGAS: 1.
importjava.text.DateFormat;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
import java.util.Calendar;
importjava.util.GregorianCalendar;
import java.util.Date;
public class DateUtility{
     /*Menambah Day/Month/year ke DAte
     add() digunakan untuk menambah nilak ek objek Calendar.
     Anda dapat menentukan field Calendar tertentu untuk dilakukan
     suatu opeasi
     (Calendar.YEAR, Calendar.MONTH, Calendar.DATE);.
     */
     public static final String DATE_FORMAT=”dd-MM-yyyy”;
     public static void tambahKeDate(){
        System.out.println(“1. Tambah ke Date\n”);
        SimpleDateFormat sdf=new SimpleDateFormat(DATE_FORMAT);
        //Membuat kalender menggunakan default time zone dan lokal
        Calendar c1=Calendar.getInstance();
        Date d1=new Date();
        System.out.println(“cl.getTime()                 : “+c1.getTime());
        System.out.println(“cl.get(Calendar.YEAR)        : “+c1.get(Calendar.YEAR));
        System.out.println(“Tgl Sekarang dlm format Date :”+d1);
        //Mengubah isi calendar (year, month, date) : 20-jan-2010
        c1.set(2010,0,20);
        System.out.println(“cl.set(2010,0,20)            : “+c1.getTime());
        c1.add(Calendar.DATE, 20);
        //y1.add(Calendar.YEAR, 2);
        System.out.println(“cl + 20 hari adalah          : “+sdf.format(c1.getTime()));
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     /*Mengurangi Day/Month/Year ke Date
     roll() digunakan untuk mengurangi nilai ke…
     */
     public static void kurangKeDate(){
        System.out.println(“2. Kurang ke Date\n”);
        SimpleDateFormat sdf=new SimpleDateFormat(DATE_FORMAT);
        //Membuat kalender menggunakan default time zone dan lokal
        Calendar c1=Calendar.getInstance();
        c1.set(2010,0,20);
        System.out.println(“Kalender adalah            : “+sdf.format(c1.getTime()));
        //roll Down, kurangi 1 bulan
        c1.roll(Calendar.MONTH,false);
        System.out.println(“Kalender roll down 1 bulan :”+sdf.format(c1.getTime()));
        c1.set(2010, 0, 20);
        System.out.println(“Kalender adalah            : “+sdf.format(c1.getTime()));
        c1.add(Calendar.MONTH, -1);
        //Kurangi 1 bulan
        System.out.println(“Kalender kurang 1 bulan    : “+sdf.format(c1.getTime()));
        c1.set(2010,0,20);
        //set Kalender lagi
        //roll up tambah 1 bulan
        c1.roll(Calendar.MONTH, true);
        System.out.println(“Kalender roll up 1 bulan   : “+sdf.format(c1.getTime()));
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void jmlHariAntara2Date(){
        System.out.println(“3. Jumlah hari aatra 2Calendar\n”);
        Calendar c1=Calendar.getInstance();//new GregorianCalendar();
        Calendar c2=Calendar.getInstance();//new GregorianCalendar();
        c1.set(2010,0,18);
        c2.set(2010,0,22);
        System.out.print(“Antara “+c1.getTime());
        System.out.println(” Dan “);
        System.out.print(c2.getTime()+” adalah : “);
        System.out.println((c2.getTime().getTime() -c1.getTime().getTime())/(24*3600*1000)+” hari”);
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void jmlHariDlmSebulan(){
        System.out.println(“4. Jumlah hari dalam bulantertentu\n”);
        GregorianCalendar c1=new GregorianCalendar();
        c1.set(2004,1,20);//20 februari 2004
        int tahun=c1.get(Calendar.YEAR);
        int bulan=c1.get(Calendar.MONTH);
        int[] hariDlmSebulan={31,28,31,30,31,30,31,31,30,31,30,31};
        hariDlmSebulan[1]+=c1.isLeapYear(tahun) ? 1: 0;
        System.out.println(“Bulan ke “+(bulan+1)+”tahun “+tahun+” selama”+hariDlmSebulan[c1.get(Calendar.MONTH)]+” Hari”);
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void rollHariDanTahun(){
        System.out.println(“5. Roll Hari dan Tahun”);
        SimpleDateFormat sdf=new SimpleDateFormat(DATE_FORMAT);
        //Membuat kalender menggunakan default time zone dan lokal
        Calendar c1=Calendar.getInstance();
        Calendar d1=Calendar.getInstance();
        c1.set(2010,0,20);
        d1.set(2010,0,20);
        System.out.println(“Kalender adalah           : “+sdf.format(c1.getTime()));
        //roll Down, kurangi 1 Tahun
        c1.roll(Calendar.DATE,false);
        d1.roll(Calendar.YEAR,false);
        System.out.println(“Kalender roll down 1 hari :”+sdf.format(c1.getTime()));
        System.out.println(“Kalender roll down 1 tahun:”+sdf.format(d1.getTime()));
        System.out.println(“Kalender adalah           : “+sdf.format(c1.getTime()));
        System.out.println(“Kalender adalah           : “+sdf.format(d1.getTime()));
        c1.add(Calendar.DATE, -1);
        d1.add(Calendar.YEAR, -1);
        //Kurangi 1 bulan
        System.out.println(“Kalender kurang 1 hari    : “+sdf.format(c1.getTime()));
        System.out.println(“Kalender kurang 1 tahun   : “+sdf.format(d1.getTime()));
        c1.set(2010,0,20);
        //set Kalender lagi
        //roll up tambah 1 hari dan Tahun
        c1.roll(Calendar.DATE, true);
        d1.roll(Calendar.YEAR, true);
        System.out.println(“Kalender roll up 1 hari   : “+sdf.format(c1.getTime()));
        System.out.println(“Kalender roll up 1 tahun  : “+sdf.format(d1.getTime()));
        System.out.println(“”);
        System.out.println(“===============================================”);
     }
     public static void main(String[]args){
        tambahKeDate();
        kurangKeDate();
        jmlHariAntara2Date();
        jmlHariDlmSebulan();
        rollHariDanTahun();
     }
}
Hasil Running Program:
TUGAS: 2.
KESIMPULAN:
·        Denganmemanfaatkan kelas Date dapat kita gunakan untuk mencari besaran tahun atauusia seseorang, interval antara waktu, dll.
·        DenganGregorianCalendar tampilan waktu yang kita inginkan lebih representatif, mudahdibaca dan difahami. Mudah dalam mengkonversinya menjadi bentuk format yangkita inginkan.
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s