MODUL XVI,PBO 1

DATE AND TIME
 

TUJUAN:
Mahasiswa mampu menggunakan Fasilitas dalam java: Date and Time
TEORI SINGKAT:
Untuk menampilkan date and time terlah tersedia fungsi yang cukup banyak, referensinya dapat diambil dari java help.
PELAKSANAAN PRAKTIKUM:
Program di bawah ini adalah script yang digunakan untuk menampilkan tanggal dari kelas Date, sehingga kita harus melakukan import paket dari java.util.Date, karena kelas Date() berada dalam paket java.util. Baru kemudian kita dapat menciptakan suatu objek dari kelas Date() tersebut. Pada praktek di bawah kita menggunakan objek date yang kemudian dapat kita manfaatkan untuk melakukan pemanggilan terhadap method toString() 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 waktu dan  “2010” menunjukkan tahunnya.
Mengapa di bawah ini kita menggunakan method toString() yang diambilkan dari kelas string dan bisa langsung dipanggil tanpa kita mengimport. Karena klas String ini merupakan kelas di bawah objek yang telah include menjadi bagian dari java development sebagaimana halnya pada kelas math. Dan kita gunakan toString() karena data yang kita cetak harus dikonversikan 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 modifikasi pada kelas Date. Karena kelas Date ini juga terdapat dalam util. Pertama adalah dengan menciptakan objek dNow dari kelas date. Kemudian kita juga menciptakan objek ft dari kelas SimpleDateFormat yang terletak pada kelas java.text. Dengan objek tersebut kita dapat menampilkan data tanggal saat ini maupun data tanggal yang kita set/masukkan ke sistem atau suatu variabel. Objek ft yang diciptakan tersebut diformat dalambentuk “E” adalah menampilkan hari, tgl adalah string yang ditampilkan ‘dd-MM-yyy’ adalah format tampilan tanggal-bulan-tahun dalam angka. Kemudian jam adalah string yang ditampilkan dalam bentuk jam:menit:detik, sedangkan a adalah pembagian waktu dalam 12 jam yaitu AM atau PM. Dan yang terakhir zzz untuk menampilkan zone waktu yang diset di dalam komputer.
Maka yang perlu dituliskan untuk menampilkan data-data tersebut adalah ft.format(dNow) dimana ft adalah objek hasil instaniasi dari kelas Date(), format adalah suatu method dalam kelas SimpleDateFormat() dan dNow adalah objek hasil instaniasi dari kelas Date() yang berfungsi untuk menset data 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 sebagaimana fungsi-fungsi program di atas. Namun untuk menampilkan format yang berbeda kita harus menciptakan objek pemanggilan yang berbeda pula. Oleh karena itu kita menciptakan objek ht,ft dan jt. Objek ht untuk menciptakan tampilan berupa hari karena di dalamnya kita hanya menggunakan parameter E saja. Sedangkan objek ft adalah objek untuk menampilkan data tanggal sebagaimana format yang diterakan dalam parameter (“dd-MM-yyy”) dan jt digunakan untuk menamilkan data tanggal dengan adanya parameter (“hh:mm:ss a zzz”).
import java.util.*;
import java.text.*;
public class DateDemo2{
     public static void main(String[]args){
       Date dNow=new Date();
       SimpleDateFormat ht=
       new SimpleDateFormat(“E”);
       SimpleDateFormat ft=
       new SimpleDateFormat(“dd-mm-yyy “);
       SimpleDateFormat jt=
       new SimpleDateFormat(“hh:mm:ss a zzz”);
       System.out.println(“Sekarang hari    : “+ht.format(dNow));
       System.out.println(“Sekarang Tanggal : “+ft.format(dNow));
       System.out.println(“Sekarang jam     : “+jt.format(dNow));
     }
}
Dibawah ini contoh penggunaan fungsi GregorianCalendar untuk menampilkan data-data waktu. Lebih simpel dibandingkan program di atas yang menggunakan fungsi Date. Dengan GregorianCalendar kita cukup menciptakan satu objek, dan untuk menampilkan secara terpisah antara tahun, bulan, tanggal, hari, jam dan sebagainya bahkan sampai ke second. Cukup menggunakan sintakcal.get(Calender.[yang ditampilkan]);.
Sedangkan untuk menkonfersi bulan dalam bahasa Indonesia, maka kita perlu menciptakan array bulan[]. Array ini akan digunakan untuk mereferensi pemanggilan cal.get(Calender.MONTH) yang menghasilkan bilangan int sebagai simbul bulan bersangkutan. Bila hasil dari statemen itu menghasilkan 0 maka yang ditampilkan adalah “Januari”. Demikian seterusnya sampai pada bilangan ke 11, yang akan menampilkan “Desember”.
Di dalam GregorianCalendar terdapat method isLeapYear(tahun) yang akan mengidentifikasi suatu tahun apakah termasuk di dalam tahun kabisat atau tidak. Jika bilangan tersebut dapat dibagi 4 namun tidak dapat dibagi dengan 100 maka tahun tersebut adalah tahun kabisat. Kita tidak perlu membuat rumus tersebut, tinggal menggunakan fungsi yang sudah ada. Jika hasil dari fungsi cal.isLeapYear(tahun) menghasilkan true maka yang akan ditampilkan adalah “Sekarang adalah tahun kabisat”, jika bernilai false maka yang akan ditampilkan adalah “Sekarang bukan tahun kabisat”.
import java.util.*;
class GregorianCalendarDemo{
     public static void main(String args[]){
       String bulan[]={“Januari”,”Februari”,”Maret”,”April”,”Mei”,”Juni”,”Juli”,”Agustus”,”September”,”Oktober”,”Nopember”,”Desember”};
 int tahun;
 //Menciptakan Gregorian Kalender diinisialisasi
 //dengan tanggal dan jam sekarang dalam
 //lokal dan timezone default
 GregorianCalendar cal=new GregorianCalendar();
 //Tampilkan info 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));
     //Test apakah sekarang tahun kabisat
     if(cal.isLeapYear(tahun))
       System.out.println(“Sekarang adalah tahun kabisat”);
            else System.out.println(“Sekarang bukan tahun kabisat”);
     }
      }
      Hasil Tampilan:
     
Program ini akan membahas banyak hal yaitu untuk menampilkan waktu saat ini, waktu yang sudah diset, waktu yang dikenai roll up dan roll down serta mengetahui hasil operasi apabila suatu tanggal, bulan, atau tahun ditambah bilangan tertentu. Yang perlu diingat adalah paket-paket yang harus diimport sehingga semua fasilitas yang diperlukan sudah siap.
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Date;
public class DateUtility{
     public static final String DATE_FORMAT=”dd-mm-yyy”;
Perintah diatas digunakan untuk menciptakan variabel bernama DATE_FORMAT dengan isi default adalah format tanggal “dd-MM-yyy”.
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 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(“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(“===============================================”);
     }
Mengurangi Day/Month/Year ke Date.
roll() digunakan untuk mengurangi nilai ke objek Calandar. Kita tentukan field Calandar yang akan diubah (Calendar.YEAR, Calendar.MONTH, Calandar.DATE). Untuk menggurangi kita gunakan argumen negatif.
roll() ,emherkalam hal sama jika kita ingin melakukan roll up (menambah 1) atau roll down (mengurangi 1) ke filed Calendar tertentu.
Operasi ini hanya berlaku pada field tertentu saja, sementara add() mengatur field Calendar 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 2 Calendar\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 bulan tertentu\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 main(String[]args){
        tambahKeDate();
        kurangKeDate();
        jmlHariAntara2Date();
        jmlHariDlmSebulan();
     }
}
TUGAS: 1.
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.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 2 Calendar\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 bulan tertentu\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:
·         Dengan memanfaatkan kelas Date dapat kita gunakan untuk mencari besaran tahun atau usia seseorang, interval antara waktu, dll.
·         Dengan GregorianCalendar tampilan waktu yang kita inginkan lebih representatif, mudah dibaca dan difahami. Mudah dalam mengkonversinya menjadi bentuk format yang kita 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