
Module dan Package di Python
Module dan package adalah dua konsep penting dalam pemrograman Python yang wajib kamu pahami jika ingin membuat program yang rapi, terstruktur, dan mudah dikembangkan.
Bekerja dengan tanggal dan waktu (date & time) adalah salah satu kebutuhan paling umum dalam pemrograman Python, baik untuk mencatat waktu transaksi, membuat laporan, atau sekadar menampilkan waktu saat ini. Namun, banyak pemula yang masih bingung bagaimana cara mengelola tanggal dan waktu dengan benar di Python.
Pada artikel ini, kamu akan belajar konsep dasar date & time di Python, cara membuat, memformat, dan memanipulasi tanggal/waktu, serta tips best practice agar kode kamu lebih rapi dan mudah dipahami.
Tanpa pemahaman yang baik, kamu bisa salah hitung waktu, salah format, atau bahkan error saat memproses data tanggal.
Python menyediakan beberapa modul untuk mengelola tanggal dan waktu, yang paling sering digunakan adalah:
datetime
: Modul utama untuk date & time (paling lengkap)time
: Untuk operasi waktu tingkat rendah (jarang dipakai langsung)calendar
: Untuk operasi kalender (misal, cek hari libur)dateutil
dan pytz
: Library pihak ketiga untuk timezone dan parsing lanjutanPada artikel ini, kita fokus pada datetime
karena paling sering digunakan dan sudah built-in di Python.
Untuk mendapatkan waktu saat ini, gunakan datetime.now()
:
from datetime import datetime
waktu_sekarang = datetime.now()
print(waktu_sekarang)
2025-04-18 18:45:12.345678
Penjelasan:
datetime.now()
mengembalikan objek datetime berisi tanggal dan waktu saat ini (sesuai waktu lokal komputer).YYYY-MM-DD HH:MM:SS.microsecond
Kamu bisa membuat objek tanggal (date
) atau waktu (time
) saja:
from datetime import date, time
tanggal = date(2025, 4, 18) # tahun, bulan, hari
waktu = time(14, 30, 0) # jam, menit, detik
print(tanggal)
print(waktu)
2025-04-18
14:30:00
Penjelasan:
date(YYYY, MM, DD)
untuk tanggal saja.time(HH, MM, SS)
untuk waktu saja.Objek datetime punya atribut yang bisa diakses langsung:
from datetime import datetime
now = datetime.now()
print("Tahun:", now.year)
print("Bulan:", now.month)
print("Hari:", now.day)
print("Jam:", now.hour)
print("Menit:", now.minute)
print("Detik:", now.second)
Tahun: 2025
Bulan: 4
Hari: 18
Jam: 18
Menit: 45
Detik: 12
Agar tanggal/waktu mudah dibaca atau sesuai kebutuhan user, gunakan strftime()
untuk mengubah format:
from datetime import datetime
now = datetime.now()
print(now.strftime("%d-%m-%Y %H:%M:%S")) # format: DD-MM-YYYY HH:MM:SS
print(now.strftime("%A, %d %B %Y")) # format: Hari, DD NamaBulan YYYY
18-04-2025 18:45:12
Friday, 18 April 2025
Penjelasan:
%d
= hari, %m
= bulan, %Y
= tahun, %H
= jam (24), %M
= menit, %S
= detik%A
= nama hari, %B
= nama bulanTips:
Gunakanstrftime
untuk menyesuaikan tampilan tanggal/waktu sesuai kebutuhan aplikasi atau user.
Jika kamu punya data tanggal dalam bentuk string (misal dari input user atau file), gunakan strptime()
untuk mengubahnya ke objek datetime:
from datetime import datetime
tanggal_str = "18-04-2025 14:30:00"
dt = datetime.strptime(tanggal_str, "%d-%m-%Y %H:%M:%S")
print(dt)
2025-04-18 14:30:00
Penjelasan:
strptime
.Untuk menghitung durasi atau selisih antara dua tanggal/waktu, gunakan timedelta
:
from datetime import datetime
mulai = datetime(2025, 4, 10)
selesai = datetime(2025, 4, 18)
selisih = selesai - mulai
print(f"Selisih hari: {selisih.days}")
Selisih hari: 8
Kamu juga bisa menambah/mengurangi waktu:
from datetime import datetime, timedelta
now = datetime.now()
besok = now + timedelta(days=1)
kemarin = now - timedelta(days=1)
print("Besok:", besok)
print("Kemarin:", kemarin)
Besok: 2025-04-19 18:45:12.345678
Kemarin: 2025-04-17 18:45:12.345678
Secara default, datetime di Python tidak menyimpan informasi zona waktu (naive). Untuk aplikasi global, gunakan modul pytz
atau zoneinfo
(Python 3.9+):
from datetime import datetime
import pytz
zona_jakarta = pytz.timezone("Asia/Jakarta")
now = datetime.now(zona_jakarta)
print(now)
2025-04-18 18:45:12.345678+07:00
Tips:
Jika aplikasi kamu butuh waktu global (misal, server, API), selalu gunakan UTC atau timezone-aware datetime.
Misal kamu ingin membuat program yang menghitung berapa hari lagi menuju deadline:
from datetime import datetime
deadline_str = input("Masukkan deadline (DD-MM-YYYY): ")
deadline = datetime.strptime(deadline_str, "%d-%m-%Y")
hari_ini = datetime.now()
selisih = deadline - hari_ini
if selisih.days > 0:
print(f"Sisa waktu: {selisih.days} hari lagi.")
elif selisih.days == 0:
print("Hari ini adalah deadline!")
else:
print("Deadline sudah lewat.")
Penjelasan:
DD-MM-YYYY
.No | Tips | Penjelasan |
---|---|---|
1 | Gunakan modul datetime untuk semua kebutuhan date & time |
Lebih lengkap dan mudah dibanding time |
2 | Selalu gunakan format ISO (YYYY-MM-DD ) untuk penyimpanan |
Standar internasional, mudah diproses |
3 | Gunakan strftime dan strptime untuk konversi format |
Agar fleksibel sesuai kebutuhan user |
4 | Untuk aplikasi global, gunakan timezone-aware datetime | Hindari error perbedaan zona waktu |
5 | Jangan simpan datetime sebagai string di database | Simpan sebagai tipe datetime, konversi saat tampilkan |
6 | Gunakan library pihak ketiga (dateutil , pytz ) untuk kebutuhan lanjutan |
Parsing natural language, timezone kompleks |
Penjelasan tambahan:
Kesalahan umum pemula adalah mengelola tanggal sebagai string, atau lupa menangani timezone. Biasakan selalu gunakan objek datetime dan konversi hanya saat input/output.
Q: Bagaimana cara mendapatkan timestamp (epoch time) di Python?
A: Gunakan datetime.timestamp()
untuk mendapatkan detik sejak 1 Januari 1970 (Unix epoch):
from datetime import datetime
now = datetime.now()
print(now.timestamp())
Q: Bagaimana cara mengubah timestamp ke datetime?
A: Gunakan datetime.fromtimestamp()
:
from datetime import datetime
dt = datetime.fromtimestamp(1713446400)
print(dt)
Q: Bagaimana cara mendapatkan nama hari dari tanggal tertentu?
A: Gunakan strftime("%A")
:
from datetime import datetime
dt = datetime(2025, 4, 18)
print(dt.strftime("%A")) # Output: Friday
Q: Bagaimana cara menambah bulan ke tanggal?
A: Gunakan library dateutil.relativedelta
:
from datetime import datetime
from dateutil.relativedelta import relativedelta
dt = datetime(2025, 4, 18)
dt_bulan_depan = dt + relativedelta(months=1)
print(dt_bulan_depan)
Mengelola tanggal dan waktu adalah skill wajib untuk setiap programmer Python. Dengan memahami konsep dasar, cara membuat, memformat, dan memanipulasi date & time, kamu bisa membuat aplikasi yang lebih profesional dan bebas error waktu. Selalu gunakan modul datetime
, biasakan konversi format hanya saat input/output, dan jangan lupa perhatikan timezone jika aplikasi kamu digunakan secara global.
Selamat mencoba dan happy coding!
Module dan package adalah dua konsep penting dalam pemrograman Python yang wajib kamu pahami jika ingin membuat program yang rapi, terstruktur, dan mudah dikembangkan.
Exception Handling adalah salah satu konsep penting dalam pemrograman Python yang wajib kamu kuasai, terutama jika ingin membuat program yang robust dan tidak mudah error.
Manipulasi file dan operasi I/O (Input/Output) adalah salah satu kemampuan penting yang harus dikuasai oleh setiap programmer Python, baik untuk membaca data dari file, menulis hasil ke file, atau memproses data eksternal.
Dictionary comprehension adalah salah satu fitur keren di Python yang memungkinkan kita membuat dictionary baru dengan sintaks yang singkat, jelas, dan efisien.