Memahami Cara Mendapatkan Tanggal dan Waktu Saat Ini dalam Python
Tanggal dan waktu merupakan bagian penting dalam pengembangan program komputer. Berbagai aplikasi membutuhkan informasi tersebut untuk mencatat aktivitas pengguna, mengatur jadwal, menghitung durasi, menyusun laporan, hingga menentukan batas waktu suatu pekerjaan. Aplikasi kehadiran, sistem pemesanan, pengelolaan keuangan, pencatatan transaksi, dan layanan pengingat merupakan contoh program yang memerlukan pengelolaan tanggal dan waktu secara tepat.
Sebelum mempelajari materi tentang cara Memahami Cara Mendapatkan Tanggal dan Waktu Saat Ini dalam Python, terlebih dahulu pelajari materi tentang: Memahami Date dan Time dalam Python, Memahami Fungsi `strftime()` dalam Python untuk Memformat Tanggal dan Waktu, dan Fungsi `strptime()` Python untuk Mengubah Teks Menjadi Objek Tanggal dan Waktu.
Sebelum mempelajari materi tentang cara Memahami Cara Mendapatkan Tanggal dan Waktu Saat Ini dalam Python, terlebih dahulu pelajari materi tentang: Memahami Date dan Time dalam Python, Memahami Fungsi `strftime()` dalam Python untuk Memformat Tanggal dan Waktu, dan Fungsi `strptime()` Python untuk Mengubah Teks Menjadi Objek Tanggal dan Waktu.
Dalam bahasa pemrograman Python, informasi tanggal dan waktu dapat diperoleh melalui modul `datetime`. Modul ini menyediakan berbagai kelas dan metode untuk mengambil, menyimpan, mengolah, membandingkan, serta menampilkan informasi waktu. Salah satu kebutuhan yang paling mendasar adalah memperoleh tanggal dan waktu saat program dijalankan. Informasi tersebut dapat digunakan secara langsung atau diolah lebih lanjut sesuai kebutuhan aplikasi.
Python menyediakan metode `datetime.now()` untuk memperoleh tanggal dan waktu lokal saat ini. Selain itu, terdapat metode `date.today()` yang berfokus pada tanggal, tanpa menyertakan jam, menit, dan detik. Keduanya memiliki kegunaan berbeda sehingga pemilihan metode perlu disesuaikan dengan tujuan program.
Pemahaman mengenai pengambilan tanggal dan waktu tidak cukup berhenti pada penulisan satu baris kode. Pengembang juga perlu memahami cara mengimpor modul, membaca hasil keluaran, menentukan format tampilan, memperhitungkan zona waktu, dan menghindari kesalahan dalam pencatatan waktu. Dengan memahami konsep-konsep tersebut, program dapat menghasilkan informasi waktu yang lebih konsisten dan dapat diandalkan.
Modul tersebut memiliki beberapa kelas utama, yaitu `date`, `time`, `datetime`, `timedelta`, dan `timezone`. Setiap kelas mempunyai fungsi tersendiri. Kelas `date` digunakan untuk merepresentasikan tanggal, sedangkan `time` menyimpan informasi jam, menit, detik, dan mikrodetik. Kelas `datetime` menggabungkan informasi tanggal dan waktu dalam satu objek.
Kelas `timedelta` digunakan untuk menyatakan selisih atau durasi waktu. Sementara itu, `timezone` membantu merepresentasikan zona waktu dengan perbedaan waktu tertentu terhadap Waktu Universal Terkoordinasi atau UTC.
Untuk memperoleh tanggal dan waktu saat ini, kelas `datetime` menjadi pilihan yang praktis karena mampu menyediakan informasi secara lengkap. Sebelum digunakan, kelas tersebut perlu diimpor dari modul yang sesuai.
Contoh penulisan programnya sebagai berikut:
from datetime import datetime
waktu_sekarang = datetime.now()
print(waktu_sekarang)
Pada contoh tersebut, pernyataan `from datetime import datetime` mengambil kelas `datetime` dari modul `datetime`. Selanjutnya, `datetime.now()` dipanggil untuk memperoleh tanggal dan waktu lokal ketika program dijalankan. Hasilnya disimpan dalam variabel `waktu_sekarang`, kemudian ditampilkan menggunakan fungsi `print()`.
Keluaran program bergantung pada tanggal, jam, dan zona waktu komputer atau lingkungan tempat program dijalankan. Oleh karena itu, hasil yang muncul pada setiap perangkat tidak selalu sama.
Perhatikan contoh berikut:
from datetime import datetime
sekarang = datetime.now()
print("Tanggal dan waktu:", sekarang)
print("Tahun:", sekarang.year)
print("Bulan:", sekarang.month)
print("Tanggal:", sekarang.day)
print("Jam:", sekarang.hour)
print("Menit:", sekarang.minute)
print("Detik:", sekarang.second)
Variabel `sekarang` menyimpan objek yang berisi informasi tanggal dan waktu. Informasi tersebut dapat diakses melalui atribut yang tersedia. Atribut `year` menunjukkan tahun, `month` menunjukkan bulan, dan `day` menunjukkan tanggal. Sementara itu, atribut `hour`, `minute`, dan `second` digunakan untuk memperoleh jam, menit, serta detik.
Sebagai ilustrasi, apabila program dijalankan pada 27 Oktober 2026 pukul 21.05.30 waktu setempat, nilai atributnya dapat menunjukkan tahun 2026, bulan 10, tanggal 27, jam 21, menit 5, dan detik 30. Nilai tersebut hanya ilustrasi; hasil sebenarnya mengikuti waktu ketika program dijalankan.
Penggunaan atribut membuat pengolahan data waktu lebih mudah karena setiap komponen dapat digunakan secara terpisah. Misalnya, program dapat memeriksa apakah saat ini sudah melewati jam tertentu atau menentukan apakah tanggal sekarang berada dalam bulan yang sama dengan tanggal transaksi.
Untuk kebutuhan tersebut, Python menyediakan metode `date.today()`. Metode ini menghasilkan objek `date` yang berisi tahun, bulan, dan tanggal berdasarkan waktu lokal sistem.
Contoh program:
from datetime import date
tanggal_sekarang = date.today()
print("Tanggal hari ini:", tanggal_sekarang)
print("Tahun:", tanggal_sekarang.year)
print("Bulan:", tanggal_sekarang.month)
print("Tanggal:", tanggal_sekarang.day)
Keluaran dapat berbentuk `2026-10-27`, bergantung pada tanggal ketika program dijalankan. Format tersebut menampilkan tahun, bulan, dan tanggal dengan urutan yang mudah dibaca mesin.
Perbedaan utama antara `date.today()` dan `datetime.now()` terletak pada kelengkapan informasi yang dikembalikan. Metode pertama hanya menghasilkan tanggal, sedangkan metode kedua menyediakan tanggal sekaligus waktu.
Pemilihan keduanya perlu mempertimbangkan kebutuhan program. Jika pencatatan hanya membutuhkan hari, bulan, dan tahun, penggunaan `date.today()` sudah memadai. Namun, apabila program harus mencatat waktu terjadinya suatu peristiwa secara lebih terperinci, `datetime.now()` lebih sesuai.
Perlu diperhatikan bahwa objek `date` dan `datetime` tidak dapat selalu dipertukarkan secara langsung dalam operasi perbandingan. Program yang membandingkan keduanya perlu menyamakan jenis data atau mengambil komponen tanggal yang sesuai.
Misalnya, atribut `date()` pada objek `datetime` dapat digunakan untuk memperoleh bagian tanggalnya saja.
from datetime import datetime, date
waktu_sekarang = datetime.now()
tanggal_saja = waktu_sekarang.date()
tanggal_hari_ini = date.today()
print(tanggal_saja)
print(tanggal_hari_ini)
print(tanggal_saja == tanggal_hari_ini)
Contoh tersebut memperlihatkan bahwa tanggal dari objek `datetime` dapat dibandingkan dengan objek `date`. Hasil perbandingan bernilai benar apabila keduanya menunjukkan tanggal yang sama.
Python menyediakan metode `strftime()` untuk mengubah objek tanggal atau waktu menjadi teks dengan pola format tertentu. Nama metode tersebut berasal dari konsep pemformatan waktu menjadi rangkaian karakter.
Contoh penggunaan:
from datetime import datetime
sekarang = datetime.now()
tanggal_format = sekarang.strftime("%d-%m-%Y")
waktu_format = sekarang.strftime("%H:%M:%S")
print("Tanggal:", tanggal_format)
print("Waktu:", waktu_format)
Kode `%d` mewakili tanggal dalam bulan, `%m` mewakili bulan dalam bentuk angka, dan `%Y` mewakili tahun dengan empat digit. Adapun `%H`, `%M`, dan `%S` masing-masing digunakan untuk jam dalam format 24 jam, menit, dan detik.
Berikut beberapa kode format yang sering digunakan:
Nama hari dan bulan yang ditampilkan bergantung pada pengaturan lokal yang didukung sistem. Oleh sebab itu, contoh nama berbahasa Inggris tidak selalu berubah menjadi bahasa Indonesia secara otomatis. Jika aplikasi membutuhkan nama hari dalam bahasa Indonesia, pengembang dapat menentukan padanan nama hari dan bulan secara eksplisit.
Contoh berikut menunjukkan cara membuat format tanggal sederhana dengan nama bulan berbahasa Indonesia:
from datetime import datetime
sekarang = datetime.now()
Python menyediakan metode `datetime.now()` untuk memperoleh tanggal dan waktu lokal saat ini. Selain itu, terdapat metode `date.today()` yang berfokus pada tanggal, tanpa menyertakan jam, menit, dan detik. Keduanya memiliki kegunaan berbeda sehingga pemilihan metode perlu disesuaikan dengan tujuan program.
Pemahaman mengenai pengambilan tanggal dan waktu tidak cukup berhenti pada penulisan satu baris kode. Pengembang juga perlu memahami cara mengimpor modul, membaca hasil keluaran, menentukan format tampilan, memperhitungkan zona waktu, dan menghindari kesalahan dalam pencatatan waktu. Dengan memahami konsep-konsep tersebut, program dapat menghasilkan informasi waktu yang lebih konsisten dan dapat diandalkan.
Mengenal Modul `datetime`
Modul `datetime` merupakan bagian dari pustaka standar Python yang menyediakan fasilitas pengelolaan tanggal dan waktu. Karena sudah tersedia dalam instalasi Python, modul ini dapat digunakan tanpa perlu memasang pustaka tambahan.Modul tersebut memiliki beberapa kelas utama, yaitu `date`, `time`, `datetime`, `timedelta`, dan `timezone`. Setiap kelas mempunyai fungsi tersendiri. Kelas `date` digunakan untuk merepresentasikan tanggal, sedangkan `time` menyimpan informasi jam, menit, detik, dan mikrodetik. Kelas `datetime` menggabungkan informasi tanggal dan waktu dalam satu objek.
Kelas `timedelta` digunakan untuk menyatakan selisih atau durasi waktu. Sementara itu, `timezone` membantu merepresentasikan zona waktu dengan perbedaan waktu tertentu terhadap Waktu Universal Terkoordinasi atau UTC.
Untuk memperoleh tanggal dan waktu saat ini, kelas `datetime` menjadi pilihan yang praktis karena mampu menyediakan informasi secara lengkap. Sebelum digunakan, kelas tersebut perlu diimpor dari modul yang sesuai.
Contoh penulisan programnya sebagai berikut:
from datetime import datetime
waktu_sekarang = datetime.now()
print(waktu_sekarang)
Pada contoh tersebut, pernyataan `from datetime import datetime` mengambil kelas `datetime` dari modul `datetime`. Selanjutnya, `datetime.now()` dipanggil untuk memperoleh tanggal dan waktu lokal ketika program dijalankan. Hasilnya disimpan dalam variabel `waktu_sekarang`, kemudian ditampilkan menggunakan fungsi `print()`.
Keluaran program bergantung pada tanggal, jam, dan zona waktu komputer atau lingkungan tempat program dijalankan. Oleh karena itu, hasil yang muncul pada setiap perangkat tidak selalu sama.
Menggunakan `datetime.now()` untuk Mendapatkan Waktu Saat Ini
Metode `datetime.now()` merupakan salah satu cara utama untuk mendapatkan tanggal dan waktu saat ini. Jika dipanggil tanpa argumen, metode tersebut mengembalikan informasi waktu lokal berdasarkan pengaturan sistem.Perhatikan contoh berikut:
from datetime import datetime
sekarang = datetime.now()
print("Tanggal dan waktu:", sekarang)
print("Tahun:", sekarang.year)
print("Bulan:", sekarang.month)
print("Tanggal:", sekarang.day)
print("Jam:", sekarang.hour)
print("Menit:", sekarang.minute)
print("Detik:", sekarang.second)
Variabel `sekarang` menyimpan objek yang berisi informasi tanggal dan waktu. Informasi tersebut dapat diakses melalui atribut yang tersedia. Atribut `year` menunjukkan tahun, `month` menunjukkan bulan, dan `day` menunjukkan tanggal. Sementara itu, atribut `hour`, `minute`, dan `second` digunakan untuk memperoleh jam, menit, serta detik.
Sebagai ilustrasi, apabila program dijalankan pada 27 Oktober 2026 pukul 21.05.30 waktu setempat, nilai atributnya dapat menunjukkan tahun 2026, bulan 10, tanggal 27, jam 21, menit 5, dan detik 30. Nilai tersebut hanya ilustrasi; hasil sebenarnya mengikuti waktu ketika program dijalankan.
Penggunaan atribut membuat pengolahan data waktu lebih mudah karena setiap komponen dapat digunakan secara terpisah. Misalnya, program dapat memeriksa apakah saat ini sudah melewati jam tertentu atau menentukan apakah tanggal sekarang berada dalam bulan yang sama dengan tanggal transaksi.
Menggunakan `date.today()` untuk Mendapatkan Tanggal
Tidak semua aplikasi membutuhkan informasi jam, menit, dan detik. Sebuah program mungkin hanya perlu mengetahui tanggal hari ini, misalnya untuk mencatat tanggal pendaftaran, menampilkan tanggal laporan, atau menentukan tanggal pengisian formulir.Untuk kebutuhan tersebut, Python menyediakan metode `date.today()`. Metode ini menghasilkan objek `date` yang berisi tahun, bulan, dan tanggal berdasarkan waktu lokal sistem.
Contoh program:
from datetime import date
tanggal_sekarang = date.today()
print("Tanggal hari ini:", tanggal_sekarang)
print("Tahun:", tanggal_sekarang.year)
print("Bulan:", tanggal_sekarang.month)
print("Tanggal:", tanggal_sekarang.day)
Keluaran dapat berbentuk `2026-10-27`, bergantung pada tanggal ketika program dijalankan. Format tersebut menampilkan tahun, bulan, dan tanggal dengan urutan yang mudah dibaca mesin.
Perbedaan utama antara `date.today()` dan `datetime.now()` terletak pada kelengkapan informasi yang dikembalikan. Metode pertama hanya menghasilkan tanggal, sedangkan metode kedua menyediakan tanggal sekaligus waktu.
Pemilihan keduanya perlu mempertimbangkan kebutuhan program. Jika pencatatan hanya membutuhkan hari, bulan, dan tahun, penggunaan `date.today()` sudah memadai. Namun, apabila program harus mencatat waktu terjadinya suatu peristiwa secara lebih terperinci, `datetime.now()` lebih sesuai.
Perbedaan `date.today()` dan `datetime.now()`
Kedua metode tersebut sama-sama digunakan untuk memperoleh informasi waktu terkini, tetapi menghasilkan jenis objek yang berbeda. Memahami perbedaan ini membantu pengembang memilih metode yang tepat dan mencegah kesalahan ketika data diolah lebih lanjut.Aspek |
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Perlu diperhatikan bahwa objek `date` dan `datetime` tidak dapat selalu dipertukarkan secara langsung dalam operasi perbandingan. Program yang membandingkan keduanya perlu menyamakan jenis data atau mengambil komponen tanggal yang sesuai.
Misalnya, atribut `date()` pada objek `datetime` dapat digunakan untuk memperoleh bagian tanggalnya saja.
from datetime import datetime, date
waktu_sekarang = datetime.now()
tanggal_saja = waktu_sekarang.date()
tanggal_hari_ini = date.today()
print(tanggal_saja)
print(tanggal_hari_ini)
print(tanggal_saja == tanggal_hari_ini)
Contoh tersebut memperlihatkan bahwa tanggal dari objek `datetime` dapat dibandingkan dengan objek `date`. Hasil perbandingan bernilai benar apabila keduanya menunjukkan tanggal yang sama.
Mengatur Format Tampilan dengan `strftime()`
Hasil dari `datetime.now()` secara bawaan ditampilkan menggunakan format yang menyertakan tanggal dan waktu. Akan tetapi, kebutuhan pengguna sering kali berbeda-beda. Sebuah aplikasi mungkin membutuhkan format `27-10-2026`, sedangkan aplikasi lain memerlukan `27 Oktober 2026` atau `21:05:30`.Python menyediakan metode `strftime()` untuk mengubah objek tanggal atau waktu menjadi teks dengan pola format tertentu. Nama metode tersebut berasal dari konsep pemformatan waktu menjadi rangkaian karakter.
Contoh penggunaan:
from datetime import datetime
sekarang = datetime.now()
tanggal_format = sekarang.strftime("%d-%m-%Y")
waktu_format = sekarang.strftime("%H:%M:%S")
print("Tanggal:", tanggal_format)
print("Waktu:", waktu_format)
Kode `%d` mewakili tanggal dalam bulan, `%m` mewakili bulan dalam bentuk angka, dan `%Y` mewakili tahun dengan empat digit. Adapun `%H`, `%M`, dan `%S` masing-masing digunakan untuk jam dalam format 24 jam, menit, dan detik.
Berikut beberapa kode format yang sering digunakan:
Kode | Makna | Contoh |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nama hari dan bulan yang ditampilkan bergantung pada pengaturan lokal yang didukung sistem. Oleh sebab itu, contoh nama berbahasa Inggris tidak selalu berubah menjadi bahasa Indonesia secara otomatis. Jika aplikasi membutuhkan nama hari dalam bahasa Indonesia, pengembang dapat menentukan padanan nama hari dan bulan secara eksplisit.
Menampilkan Tanggal dan Waktu dalam Bahasa Indonesia
Dalam aplikasi yang digunakan oleh masyarakat Indonesia, format tanggal sebaiknya mudah dipahami dan sesuai dengan kebiasaan pembaca. Penulisan tanggal dengan nama bulan dapat mengurangi kemungkinan salah tafsir, terutama ketika informasi digunakan dalam laporan atau dokumen.Contoh berikut menunjukkan cara membuat format tanggal sederhana dengan nama bulan berbahasa Indonesia:
from datetime import datetime
sekarang = datetime.now()
nama_bulan = [
"Januari", "Februari", "Maret", "April",
"Mei", "Juni", "Juli", "Agustus",
"September", "Oktober", "November", "Desember"
]
Pemanggilan `datetime.now()` tanpa argumen menggunakan waktu lokal sistem. Artinya, hasilnya dipengaruhi oleh konfigurasi zona waktu pada komputer atau lingkungan tempat program berjalan. Jika program dijalankan pada peladen yang menggunakan UTC, hasilnya dapat berbeda dari waktu lokal pengguna di Indonesia.
Untuk mendapatkan waktu dengan informasi zona waktu UTC, Python menyediakan kelas `timezone`:
from datetime import datetime, timezone
waktu_utc = datetime.now(timezone.utc)
print(waktu_utc)
print("Zona waktu:", waktu_utc.tzinfo)
Hasilnya berupa objek `datetime` yang memiliki informasi zona waktu UTC. Objek seperti ini disebut *aware datetime*, yaitu objek tanggal dan waktu yang memiliki informasi zona waktu yang dapat digunakan untuk menentukan acuan waktunya.
Sebaliknya, objek yang tidak memiliki informasi zona waktu disebut *naive datetime*. Objek hasil pemanggilan `datetime.now()` tanpa argumen termasuk kategori ini. Objek tersebut tetap dapat digunakan untuk kebutuhan lokal sederhana, tetapi berpotensi menimbulkan kerancuan apabila dibandingkan dengan waktu dari wilayah lain.
Untuk aplikasi yang melibatkan banyak wilayah, pencatatan waktu dalam UTC sering menjadi pilihan yang baik. Waktu kemudian dapat dikonversi ke zona waktu pengguna ketika ditampilkan. Cara tersebut membantu menjaga konsistensi pencatatan dan mengurangi kekeliruan akibat perbedaan zona waktu.
Kesalahan lain adalah mencampurkan objek tanggal dan waktu dengan teks. Misalnya, hasil `strftime()` merupakan teks bertipe `str`, bukan lagi objek `datetime`. Teks tersebut tidak memiliki atribut seperti `year` atau `hour` sebelum diuraikan kembali menjadi objek tanggal dan waktu.
Perhatikan contoh berikut:
from datetime import datetime
sekarang = datetime.now()
teks_waktu = sekarang.strftime("%Y-%m-%d")
print(type(sekarang))
print(type(teks_waktu))
Baris pertama menunjukkan tipe objek `datetime`, sedangkan baris kedua menunjukkan tipe `str`. Perbedaan tipe tersebut penting ketika program melakukan perhitungan, perbandingan, atau pengurutan data.
Pengembang juga perlu menghindari pembuatan tanggal secara manual ketika tujuan sebenarnya adalah mengambil waktu saat ini. Penulisan tanggal tetap seperti `datetime(2026, 10, 27)` menghasilkan tanggal yang ditentukan dalam kode, bukan tanggal yang berubah mengikuti waktu pelaksanaan program.
Selain itu, hasil pemanggilan `datetime.now()` tidak harus berbeda pada setiap pemanggilan. Dalam kondisi tertentu, ketelitian jam sistem dapat menyebabkan dua pemanggilan berurutan menghasilkan nilai yang sama. Oleh karena itu, metode ini tidak tepat digunakan sebagai satu-satunya sumber untuk mengukur durasi proses yang sangat singkat. Untuk pengukuran durasi, modul `time` menyediakan fungsi seperti `perf_counter()` yang dirancang untuk pengukuran kinerja.
Informasi waktu yang diperoleh dapat diakses melalui atribut, diubah menjadi teks dengan `strftime()`, atau digunakan untuk mendukung pencatatan aktivitas dan pengelolaan jadwal. Untuk aplikasi yang melibatkan wilayah berbeda, pemahaman mengenai zona waktu dan perbedaan antara objek *aware* dan *naive* menjadi bagian penting dalam menjaga konsistensi data.
Penggunaan tanggal dan waktu yang tepat tidak hanya berkaitan dengan penulisan sintaks, tetapi juga dengan pemilihan tipe data, kebutuhan aplikasi, dan keandalan lingkungan pelaksanaan program. Dengan memahami prinsip-prinsip tersebut, pengembang dapat menyusun program yang lebih terstruktur, mudah dipelihara, serta mampu mengelola informasi waktu secara lebih akurat.
"Januari", "Februari", "Maret", "April",
"Mei", "Juni", "Juli", "Agustus",
"September", "Oktober", "November", "Desember"
]
tanggal = (
f"{sekarang.day} "
f"{nama_bulan[sekarang.month - 1]} "
f"{sekarang.year}"
)
f"{sekarang.day} "
f"{nama_bulan[sekarang.month - 1]} "
f"{sekarang.year}"
)
print("Tanggal hari ini:", tanggal)
Daftar `nama_bulan` berisi dua belas nama bulan dalam bahasa Indonesia. Indeks daftar Python dimulai dari angka nol, sedangkan nomor bulan pada objek `datetime` dimulai dari angka satu. Karena itu, indeks yang digunakan adalah `sekarang.month - 1`.
Jika program dijalankan pada tanggal 27 Oktober 2026, hasilnya berupa `27 Oktober 2026`. Format ini lebih alami untuk dokumen atau tampilan aplikasi berbahasa Indonesia.
Pendekatan serupa dapat diterapkan untuk nama hari. Namun, pengembang perlu memperhatikan urutan hari dan menyesuaikannya dengan indeks yang dihasilkan metode `weekday()` atau `isoweekday()`. Kesalahan menentukan indeks dapat menyebabkan nama hari tidak sesuai dengan tanggal yang ditampilkan.
Contohnya, aplikasi sederhana dapat mencatat waktu ketika pengguna melakukan proses masuk:
from datetime import datetime
nama_pengguna = "Budi"
waktu_masuk = datetime.now()
print("Pengguna:", nama_pengguna)
print("Waktu masuk:", waktu_masuk.strftime("%d-%m-%Y %H:%M:%S"))
Pada contoh tersebut, waktu masuk disimpan sebagai objek `datetime`, kemudian diubah menjadi teks ketika ditampilkan. Pemisahan penyimpanan data dan format tampilan merupakan praktik yang bermanfaat karena data dapat diolah kembali tanpa harus menguraikan teks yang sudah diformat.
Konsep ini juga berlaku pada sistem transaksi, pencatatan peminjaman buku, pengumpulan tugas, dan pengelolaan inventaris. Waktu kejadian membantu menyusun urutan aktivitas serta menyediakan informasi untuk proses evaluasi.
Meskipun demikian, pencatatan waktu saja tidak otomatis menjamin keakuratan suatu sistem. Pengaturan jam perangkat dapat keliru, dan waktu lokal dari beberapa komputer mungkin tidak seragam. Sistem yang memerlukan pencatatan penting perlu mempertimbangkan sinkronisasi jam dan penyimpanan informasi zona waktu.
Daftar `nama_bulan` berisi dua belas nama bulan dalam bahasa Indonesia. Indeks daftar Python dimulai dari angka nol, sedangkan nomor bulan pada objek `datetime` dimulai dari angka satu. Karena itu, indeks yang digunakan adalah `sekarang.month - 1`.
Jika program dijalankan pada tanggal 27 Oktober 2026, hasilnya berupa `27 Oktober 2026`. Format ini lebih alami untuk dokumen atau tampilan aplikasi berbahasa Indonesia.
Pendekatan serupa dapat diterapkan untuk nama hari. Namun, pengembang perlu memperhatikan urutan hari dan menyesuaikannya dengan indeks yang dihasilkan metode `weekday()` atau `isoweekday()`. Kesalahan menentukan indeks dapat menyebabkan nama hari tidak sesuai dengan tanggal yang ditampilkan.
Menggunakan Waktu untuk Pencatatan Aktivitas
Pengambilan waktu saat ini memiliki manfaat yang luas dalam pengembangan perangkat lunak. Salah satunya adalah pencatatan waktu ketika suatu aktivitas berlangsung. Informasi tersebut membantu program membangun riwayat aktivitas dan memudahkan penelusuran apabila terjadi masalah.Contohnya, aplikasi sederhana dapat mencatat waktu ketika pengguna melakukan proses masuk:
from datetime import datetime
nama_pengguna = "Budi"
waktu_masuk = datetime.now()
print("Pengguna:", nama_pengguna)
print("Waktu masuk:", waktu_masuk.strftime("%d-%m-%Y %H:%M:%S"))
Pada contoh tersebut, waktu masuk disimpan sebagai objek `datetime`, kemudian diubah menjadi teks ketika ditampilkan. Pemisahan penyimpanan data dan format tampilan merupakan praktik yang bermanfaat karena data dapat diolah kembali tanpa harus menguraikan teks yang sudah diformat.
Konsep ini juga berlaku pada sistem transaksi, pencatatan peminjaman buku, pengumpulan tugas, dan pengelolaan inventaris. Waktu kejadian membantu menyusun urutan aktivitas serta menyediakan informasi untuk proses evaluasi.
Meskipun demikian, pencatatan waktu saja tidak otomatis menjamin keakuratan suatu sistem. Pengaturan jam perangkat dapat keliru, dan waktu lokal dari beberapa komputer mungkin tidak seragam. Sistem yang memerlukan pencatatan penting perlu mempertimbangkan sinkronisasi jam dan penyimpanan informasi zona waktu.
Memahami Zona Waktu
Zona waktu menentukan hubungan antara waktu suatu wilayah dan UTC. Indonesia menggunakan tiga zona waktu utama, yaitu Waktu Indonesia Barat (UTC+7), Waktu Indonesia Tengah (UTC+8), dan Waktu Indonesia Timur (UTC+9). Perbedaan tersebut penting ketika aplikasi melayani pengguna dari wilayah yang berbeda.Pemanggilan `datetime.now()` tanpa argumen menggunakan waktu lokal sistem. Artinya, hasilnya dipengaruhi oleh konfigurasi zona waktu pada komputer atau lingkungan tempat program berjalan. Jika program dijalankan pada peladen yang menggunakan UTC, hasilnya dapat berbeda dari waktu lokal pengguna di Indonesia.
Untuk mendapatkan waktu dengan informasi zona waktu UTC, Python menyediakan kelas `timezone`:
from datetime import datetime, timezone
waktu_utc = datetime.now(timezone.utc)
print(waktu_utc)
print("Zona waktu:", waktu_utc.tzinfo)
Hasilnya berupa objek `datetime` yang memiliki informasi zona waktu UTC. Objek seperti ini disebut *aware datetime*, yaitu objek tanggal dan waktu yang memiliki informasi zona waktu yang dapat digunakan untuk menentukan acuan waktunya.
Sebaliknya, objek yang tidak memiliki informasi zona waktu disebut *naive datetime*. Objek hasil pemanggilan `datetime.now()` tanpa argumen termasuk kategori ini. Objek tersebut tetap dapat digunakan untuk kebutuhan lokal sederhana, tetapi berpotensi menimbulkan kerancuan apabila dibandingkan dengan waktu dari wilayah lain.
Untuk aplikasi yang melibatkan banyak wilayah, pencatatan waktu dalam UTC sering menjadi pilihan yang baik. Waktu kemudian dapat dikonversi ke zona waktu pengguna ketika ditampilkan. Cara tersebut membantu menjaga konsistensi pencatatan dan mengurangi kekeliruan akibat perbedaan zona waktu.
Menghindari Kesalahan dalam Penggunaan Waktu
Salah satu kesalahan yang sering terjadi adalah menganggap waktu yang diperoleh dari komputer selalu benar. Padahal, jam sistem dapat berbeda dari waktu sebenarnya apabila tidak disinkronkan dengan sumber waktu yang tepat. Dalam aplikasi yang sensitif terhadap waktu, ketidaksesuaian beberapa menit atau detik dapat memengaruhi hasil proses.Kesalahan lain adalah mencampurkan objek tanggal dan waktu dengan teks. Misalnya, hasil `strftime()` merupakan teks bertipe `str`, bukan lagi objek `datetime`. Teks tersebut tidak memiliki atribut seperti `year` atau `hour` sebelum diuraikan kembali menjadi objek tanggal dan waktu.
Perhatikan contoh berikut:
from datetime import datetime
sekarang = datetime.now()
teks_waktu = sekarang.strftime("%Y-%m-%d")
print(type(sekarang))
print(type(teks_waktu))
Baris pertama menunjukkan tipe objek `datetime`, sedangkan baris kedua menunjukkan tipe `str`. Perbedaan tipe tersebut penting ketika program melakukan perhitungan, perbandingan, atau pengurutan data.
Pengembang juga perlu menghindari pembuatan tanggal secara manual ketika tujuan sebenarnya adalah mengambil waktu saat ini. Penulisan tanggal tetap seperti `datetime(2026, 10, 27)` menghasilkan tanggal yang ditentukan dalam kode, bukan tanggal yang berubah mengikuti waktu pelaksanaan program.
Selain itu, hasil pemanggilan `datetime.now()` tidak harus berbeda pada setiap pemanggilan. Dalam kondisi tertentu, ketelitian jam sistem dapat menyebabkan dua pemanggilan berurutan menghasilkan nilai yang sama. Oleh karena itu, metode ini tidak tepat digunakan sebagai satu-satunya sumber untuk mengukur durasi proses yang sangat singkat. Untuk pengukuran durasi, modul `time` menyediakan fungsi seperti `perf_counter()` yang dirancang untuk pengukuran kinerja.
Kesimpulan
Mendapatkan tanggal dan waktu saat ini merupakan keterampilan dasar yang penting dalam pemrograman Python. Modul `datetime` menyediakan metode yang praktis untuk memenuhi kebutuhan tersebut, terutama melalui `datetime.now()` dan `date.today()`. Metode pertama menghasilkan informasi tanggal sekaligus waktu, sedangkan metode kedua berfokus pada tanggal.Informasi waktu yang diperoleh dapat diakses melalui atribut, diubah menjadi teks dengan `strftime()`, atau digunakan untuk mendukung pencatatan aktivitas dan pengelolaan jadwal. Untuk aplikasi yang melibatkan wilayah berbeda, pemahaman mengenai zona waktu dan perbedaan antara objek *aware* dan *naive* menjadi bagian penting dalam menjaga konsistensi data.
Penggunaan tanggal dan waktu yang tepat tidak hanya berkaitan dengan penulisan sintaks, tetapi juga dengan pemilihan tipe data, kebutuhan aplikasi, dan keandalan lingkungan pelaksanaan program. Dengan memahami prinsip-prinsip tersebut, pengembang dapat menyusun program yang lebih terstruktur, mudah dipelihara, serta mampu mengelola informasi waktu secara lebih akurat.
Artikel ini akan dibaca oleh: Ivandra Wahyu Fauraya, Jarot Ribut Wahyudi, Ken Bagus Yuniarta Zelig, Kevin Ferdi Wahyudi, dan Kholilatur Rahmah.
5 komentar untuk "Memahami Cara Mendapatkan Tanggal dan Waktu Saat Ini dalam Python"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
Teori perkembangan kognitif Jean Piaget menunjukkan bahwa anak-anak dapat berkembang melalui empat tahapan perkembangan mental yang berbeda. Teori ini tidak hanya berfokus pada pemahaman bagaimana seorang anak memperoleh pengetahuan, melainkan juga pada pemahaman hakikat dari kecerdasan itu sendiri.
BalasHapusSecara sederhana sebutkan empat tahapan perkembangan kognitif menurut Jean Piaget?
BalasHapus1. Sensorimotor
Hapus2. Preoperasional
3. Konkret Operasional
4. Formal Operasional
Apakah teori perkembangan kognitif dari Piaget masih sesuai untuk diterapkan pada kurikulum pembelajaran saat ini?
BalasHapusSecara umum teori Piaget merupakan teori yang masih relevan untuk digunakan dalam perencanaan kurikulum pendidikan untuk para peserta didik disekolah. Para pengajar dapat mengajarkan hal-hal yang sangat abstrak seperti pelajaran sosial ataupun pemikiran metafisika untuk anak-anak dibawah 10 tahun. Sekolah juga dapat merencanakan pengajaran sepanjang tahap perkembangan yang sifatnya umum, dan tidak memerlukan materi-materi yang tidak sesuai dengan tahap perkembangan anak atau peserta didik. Tentunya tahapan perkembangan individu juga harus tetap diperhatikan saat seorang anak atau peserta didik sudah mulai bersekolah.
HapusHal yang menarik dari teori Piaget, adalah teori ini dikembangkan oleh Piaget berdasarkan kecintaannya terhadap anak-anak. Piaget menggambarkan anak-anak dengan penuh kehangantan dan melihat mereka sebagai kekuatan yang dapat mengubah masyarakat. Piaget juga menggambarkan perkembangan moral dengan cukup hangat.
Hal yang juga tidak kalah penting untuk penelitian selanjutnya adalah idenya tentang akomodasi dan asimilasi sebagai model pembelajaran hal-hal baru dan peran pemikiran dalam perkembangan seorang anak.
Piaget tidak pernah melihat seorang bayi yang berpikir seperti halnya model penelitian modern: Piaget melihat anak-anak tersebut sebagai pembelajar yang aktif, tetapi dia tidak mengetahui tentang asumsi awal yang dimiliki oleh seorang bayi tentang lingkungan mereka seperti kemapuan dalam hal fisika dan berhitung. Piaget juga tidak melihat tanda-tanda pertama dari pemikiran logis yang mendasari perilaku anak dan tidak pula benar-benar mempelajari empati pada anak-anak, baik itu anak laki-laki ataupun anak perempuan. Egosentris pada anak sebagian besar adalah tentang keterampilan mengambil perspektif, bukan tentang kurangnya perhatian pada orang lain oleh anak tersebut.
Piaget juga tidak pernah benar-benar mempelajari peran budaya, bahasa, ataupun lingkungan orang dewasa yang mendukung dalam proses belajar, karena piaget lebih menekankan pada proses pendewasaan biologis. Tidak diketahui pula apakah Piaget memiliki penjelasan tentang fakta bahwa tidak semua orang sampai pada tahap pemikiran operasional formal pada tahap perkembangannya. Namun, dijamannya sendiri, Piaget melakukan pekerjaannya dengan sangat baik dan eksperimennya pun masih tetap digunakan hingga saat ini.