DEV Community

andysaktia
andysaktia

Posted on • Edited 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

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more