DEV Community

andysaktia
andysaktia

Posted on • Updated on

Membuat Class Ucapan Otomatis dan Format Tanggal Indonesia

Mungkin ini bukan jalan yang terbaik, tapi sangat patut untuk dilihat alur logisnya. Mohon maaf code seada-adanya yaa.

Persiapan

  • Belajar dulu terkait penggunaan class pada php.
  • Penggunaan fungsi tanggal atau date
  • Penggunaan if else tentunya.

1. Deklarasi

Pada bagian ini di dalam fungsi kita perlu melakukan deklarasi item-item yang kita perlukan sebagai parameter ucapan otomatis. Parameter yang kita perlukan seperti; set lokasi, hari,tanggal, bulan dan tahun. Kita juga perlu memanggil kembali fungsi array yang pernah kita buat dalam bagian sebelumnya untuk mengubah fungsi inggris ke dalam bahasa Indonesia. Dalam case ini fungsi array tersimpan pada class DateTimeFormat. Lihat ini

class Greating
{

  public $f;
  public $D;
  public $d;
  public $m;
  public $y;
  public $w;
  function setTimeZone($location)
  {
    $f = new DateTimeFormat;
    date_default_timezone_set($location);
    $D = date('D'); // hari dalam 2 huruf
    $d = date('d'); // angka tanggal
    $m = date('m'); // angka bulan
    $y = date('Y'); // angka tahun
    $w = date('H'); // jam
    $this->f = $f;
    $this->D = $D;
    $this->d = $d;
    $this->m = $m;
    $this->y = $y;
    $this->w = $w;
  }
Enter fullscreen mode Exit fullscreen mode

Lihat tabel date()

2. Set Hari dan Bulan

Dalam hal ini saya memanggil Hari(D) dan Bulan (m). Untuk diubah dalam format Indonesia dengan memanfaatkan fungsi array yang tersimpan dalam class DateTimeFormat yang sudah di deklarasikan pada tahap 1.

 function getDay()
  {
    // deklarasi parameter yang dibutuhkan
    $f = $this->f;  
    $D = $this->D; 

    // set Hari dengan pemanggilan index array
    $arr_day = $f->getNamaHari();
    $ret = $arr_day[$D];
    return $ret;
  }


  function getDate()
  {
    // deklarasi parameter yang dibutuhkan
    $f = $this->f;
    $m = $this->m;


    // set Bulan dengan pemanggilan index array
    $arr_month = $f->getNamaBulan();
    $m = $arr_month[$m];

    // set Format penulisan
    $ret = $this->d . ' ' . $m . ' ' . $this->y;
    return $ret;
  }
Enter fullscreen mode Exit fullscreen mode

3. Fungsi Ucapan Otomatis

Setelah format hari dan tanggal telah kita dapat kita dapat melakukan tahap akhir dengan menggunakan parameter tanggal dan jam (w) untuk menentukan ucapan yang diperlukan.

function getUcapan()
  {
     $a = $this->w;  // deklarasi ulang var jam
     if (($a>=6) && ($a<=11)) {
      return " <b> Selamat Pagi !! </b>";
    } else if(($a>=11) && ($a<15)){
      return " <b> Selamat  Siang !! </b>";
    } elseif(($a>=15) && ($a<=18)){
      return " <b> Selamat Sore !! </b>";
    } else{
      return " <b> Selamat Malam !! </b>";
    }
  }
Enter fullscreen mode Exit fullscreen mode

Keseluruhan code

class Greating
{

  public $f;
  public $D;
  public $d;
  public $m;
  public $y;
  public $w;
  function setTimeZone($location)
  {
    $f = new DateTimeFormat;
    date_default_timezone_set($location);
    $D = date('D');
    $d = date('d');
    $m = date('m');
    $y = date('Y');
    $w = date('H');
    $this->f = $f;
    $this->D = $D;
    $this->d = $d;
    $this->m = $m;
    $this->y = $y;
    $this->w = $w;
  }
  function getDay()
  {
    $f = $this->f;
    $D = $this->D;
    $arr_day = $f->getNamaHari();
    $ret = $arr_day[$D];
    return $ret;
  }
  function getDate()
  {
    $f = $this->f;
    $m = $this->m;
    $arr_month = $f->getNamaBulan();
    $m = $arr_month[$m];
    $ret = $this->d . ' ' . $m . ' ' . $this->y;
    return $ret;
  }
  function getUcapan()
  {
     $a = $this->w;
     if (($a>=6) && ($a<=11)) {
      return " <b> Selamat Pagi !! </b>";
    } else if(($a>=11) && ($a<15)){
      return " <b> Selamat  Siang !! </b>";
    } elseif(($a>=15) && ($a<=18)){
      return " <b> Selamat Sore !! </b>";
    } else{
      return " <b> Selamat Malam !! </b>";
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

How to use

$ucapan = new Greating();
$ucapan->setTimeZone('Jakarta');
$format_hari = $ucapan->getDay();
$format_tgl = $ucapan->getDate();
$get_ucapaan = $ucapan->getUcapan();
Enter fullscreen mode Exit fullscreen mode

Top comments (0)