author Ahmad Muhardian

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.

Pomodoro Timer

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.

Demo program countdownt timer dengan Python

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.