Membuat Program Countdown Timer (Pomodoro) dengan Python
Waktu hitung mundur (countdown timer) sering kita temukan pada kehidupan sehari-hari.
Biasanya kita gunakan untuk menghitung mundur sesuatu yang penting, seperti: deadline, detik pergantian tahun, timer saat memasak, pomodoro, dll.
Nah, pada tutorial ini.. Kita akan belajar membuat program timer dengan Python dengan studi kasus Pomodoro Timer.
Sebenarnya tidak hanya bisa dipakai untuk Pomodoro saja sih, program ini juga nanti akan bisa digunakan untuk timer yang lainnya.
Oke kalau bagitu,
Mari kita mulai!
Apa itu Pomodoro?
Pomodoro artinya tomat.
Pomodoro adalah teknik yang memanfaatkan waktu 25 menit untuk fokus mengerjakan sesuatu. Teknik ini menggunakan timer.
Karena Timer yang digunakan adalah timer tomat—timer yang baisanya digunakan untuk memasak di dapur—maka teknik ini disebut Pomodoro.
Membuat Program Countdown Timer
Nah, sekarang mari kita mulai membuat programnya.
Silahkan buat program baru dengan nama pomodoro.py
atau terserah kamu. Bisa juga countdowntimer.py
.
Setelah itu, isi kode programnya seperti ini:
#!/usr/bin/python3
import time
def countdownTimer(start_minute, start_second):
total_second = start_minute * 60 + start_second
while total_second:
mins, secs = divmod(total_second, 60)
print(f'{mins:02d}:{secs:02d}', end='\r')
time.sleep(1)
total_second -= 1
print("Done!")
if __name__ == '__main__':
countdownTimer(25, 00) #pomodoro timer
Setelah itu, coba jalankan programnya.
Untuk mengetes, saya mengubah waktunya menjadi 10
detik.
Caranya, tinggal ganti saja 00
menjadi 00
dan 00
berikutnya menjadi 10
pada saat memanggil fungsi countdowntTimer()
.
countdownTimer(00, 10)
Penjelasan Program
Di bagian paling atas, melakukan impor modul time.
import time
Modul ini kita butuhkan karena kita akan menggunakan fungsi-fungsi waktu.
Berikutnya kita membuat fungsi countdownTimer()
dengan dua paramter. Parameter pertama untuk manit
awal dan parameter kedua untuk detik awal.
def countdownTimer(start_minute, start_second):
# ada kode di sini...
Jika mau ditambahkan paramter jam mulai juga bisa, tapi nanati akan berubah juga rumus untuk menghitung total detiknya.
Berikut ini kode untuk menghitung total detik dari timer:
total_second = start_minute * 60 + start_second
Jika mau ditambah jam, bisa jadi seperti ini:
total_second = start_hour * start_minute *60 + start_minute * 60 + start_second
Mengapa kita harus menghitung total detik?
Karena kita akan melakukan perulangan sebanyak detiknya.
while total_second:
mins, secs = divmod(total_second, 60)
print(f'{mins:02d}:{secs:02d}', end='\r')
time.sleep(1)
total_second -= 1
Fungsi divmod()
akan membagi total detik (total_second
) dengan 60
,
kemudian hasilnya akan disimpan ke dalam variabel mins
dan sisa baginya
akan disimpan ke dalam variabel secs
.
Berikutnya kita melakukan pinrt()
isi kedua variabel ini.
print(f'{mins:02d}:{secs:02d}', end='\r')
Simbol 02d
artinya kita ingin mencetak angka dalam dua digit.
Lalu \r
artinya teks yang dicetak akan ditindih atau ditulis ulang.
Berikutnya kita menunda waktu eksekusi selama satu
detik dengan fungsi sleep()
dari modul time
.
time.sleep(1)
Terakhir mengurangi total detik dengan 1
…
total_second -= 1
…dan perualgan akan berhenti ketika total detik mencapai 0
.
Gampang kan?
Akhir Kata…
Terimakasih sudah mengikuti tutorial ini, semoga bermanfaat.
Jika ada yang ditanyakan, silahkan sampaikan melalui komentar.