Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program

Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program

id8 min read • 255 views

Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program

Dalam praktik pemrograman nyata, jarang sekali kita hanya membutuhkan satu jenis delay yang sama sepanjang program berjalan. Kadang kita butuh jeda setengah detik, lalu 0,1 detik, lalu 2 detik. Nah, di sinilah fleksibilitas time.sleep() benar-benar terasa. Fungsi ini memungkinkan kita menentukan durasi delay yang berbeda-beda, termasuk menggunakan angka desimal untuk kontrol waktu yang lebih presisi.

Karena time.sleep() menerima nilai integer maupun floating-point, kamu bisa dengan mudah mengatur tempo program sesuai kebutuhan. Ini sangat berguna untuk skenario seperti retry bertahap (misalnya menunggu lebih lama setiap kali gagal), animasi terminal, atau sinkronisasi proses yang memiliki interval berbeda.

Menggunakan Durasi Sleep yang Berbeda dalam Loop

Coba perhatikan contoh berikut:

import time


for i in [0.5, 0.1, 1, 2]:
    print(f"Waiting for {i} seconds")
    time.sleep(i)

Dalam kode ini, kita menggunakan list berisi beberapa nilai waktu yang berbeda: 0.5 detik, 0.1 detik, 1 detik, dan 2 detik. Setiap kali loop berjalan, nilai tersebut dikirim ke time.sleep(i).

Ketika dijalankan, program akan:

  • Berhenti 0.5 detik
  • Lalu 0.1 detik
  • Lalu 1 detik
  • Lalu 2 detik

Artinya, jeda yang terjadi tidak selalu sama. Teknik ini sering dipakai dalam:

  • Sistem retry dengan exponential backoff
  • Pengaturan polling dinamis
  • Kontrol tempo animasi sederhana
  • Simulasi sistem real-time

Fleksibilitas ini membuat time.sleep() sangat cocok untuk kebutuhan delay yang tidak seragam.

Baca Juga

 

Dramatic Printing Menggunakan sleep()

Selain untuk logika waktu, time.sleep() juga sering digunakan untuk efek visual. Salah satu trik klasik adalah mencetak teks secara perlahan agar terlihat dramatis atau penuh suspense.

Berikut contohnya:

import time


message = "Hi!!! I am trying to create suspense"


for i in message:
    print(i)
    time.sleep(0.3)

Kode ini mencetak setiap karakter dengan jeda 0,3 detik. Jadi alih-alih seluruh kalimat muncul sekaligus, huruf demi huruf akan tampil secara bertahap.

Efek ini sering digunakan dalam:

  • CLI game sederhana
  • Demo presentasi
  • Simulasi chatbot
  • Animasi teks di terminal

Kalau mau lebih rapi (tanpa pindah baris setiap huruf), kamu bisa modifikasi sedikit:

import time


message = "Loading..."


for char in message:
    print(char, end="", flush=True)
    time.sleep(0.3)


print()

Di sini:

  • end=""→ supaya tidak pindah baris
  • flush=True→ supaya langsung tampil tanpa buffering

Namun perlu diingat, teknik ini memperlambat total eksekusi program. Jadi jangan digunakan di sistem yang sensitif terhadap performa tinggi.

 

Python Thread Sleep dalam Multithreading

Sekarang kita masuk ke topik yang lebih serius: multithreading.

Dalam program yang menggunakan banyak thread, time.sleep() hanya akan menghentikan thread tempat ia dipanggil. Thread lain tetap berjalan normal.

Perhatikan contoh berikut:

import time
from threading import Thread


class Worker(Thread):
    def run(self):
        for x in range(11):
            print(x)
            time.sleep(1)


class Waiter(Thread):
    def run(self):
        for x in range(100, 103):
            print(x)
            time.sleep(5)


print("Starting Worker thread")
Worker().start()


print("Starting Waiter thread")
Waiter().start()


print("Main thread finished")

Di sini kita punya:

  • Worker thread → delay 1 detik
  • Waiter thread → delay 5 detik

Outputnya akan terlihat saling berseling (interleaving), karena kedua thread berjalan bersamaan. Ketika satu thread tidur, thread lain tetap aktif.

Inilah bukti bahwa time.sleep() tidak menghentikan seluruh program, hanya menghentikan thread yang memanggilnya.

Ini sangat penting dalam:

  • Server aplikasi
  • Background task
  • Sistem paralel
  • Program concurrent

Memahami perilaku ini membantu kamu menghindari kesalahan desain dalam aplikasi multitasking.

 

Kapan Sebaiknya Menggunakan time.sleep()?

time.sleep() adalah operasi synchronous dan blocking. Artinya, selama sleep berlangsung, thread tersebut tidak melakukan apa-apa.

Beberapa use case ideal:

  • Memberi delay tetap antar proses
  • Simulasi waktu tunggu
  • Membuat countdown timer
  • Delay sebelum retry
  • Polling dengan interval tetap

Contoh sederhana simulasi delay:

import time


print("Starting operation...")
time.sleep(5)
print("Operation completed.")

Selama 5 detik itu, tidak ada baris lain dalam thread tersebut yang berjalan.

 

Kenapa Harus Hati-Hati Menggunakan time.sleep()?

Menggunakan time.sleep() memang terlihat sederhana dan praktis, tetapi kita harus berhati-hati karena sifatnya blocking. Artinya, ketika fungsi ini dijalankan, thread tersebut benar-benar berhenti melakukan apa pun selama durasi yang ditentukan. Tidak ada baris kode lain dalam thread yang dieksekusi sampai waktu tunggu selesai. Dalam program kecil atau script sederhana mungkin ini tidak terasa dampaknya. Namun, dalam aplikasi yang lebih kompleks, perilaku blocking ini bisa menyebabkan program terasa lambat, tersendat, atau bahkan seperti “freeze” dari sudut pandang pengguna.

Masalah menjadi lebih serius ketika time.sleep() digunakan di lingkungan yang menuntut respons cepat. Pada aplikasi GUI (Graphical User Interface), misalnya, jika sleep dipanggil di thread utama, tampilan bisa menjadi tidak responsif tombol tidak bisa diklik dan jendela terlihat macet. Dalam web server, penggunaan sleep pada thread yang menangani request dapat menghambat permintaan lain, sehingga performa server menurun. Pada sistem berbasis event loop seperti aplikasi asynchronous, time.sleep() bisa memblokir seluruh loop, menghentikan semua tugas lain yang seharusnya berjalan secara bersamaan.

Karena itu, jika responsivitas adalah prioritas seperti pada aplikasi interaktif, sistem real-time, atau layanan jaringan pendekatan non-blocking jauh lebih disarankan. Alternatif seperti asyncio.sleep() dalam program asynchronous atau mekanisme concurrency lain memungkinkan penundaan tanpa menghentikan seluruh sistem. Dengan memahami kapan time.sleep() aman digunakan dan kapan harus menghindarinya, kita bisa merancang aplikasi yang tetap efisien, responsif, dan stabil.

 

Alternatif: asyncio.sleep() untuk Asynchronous Programming

Dalam dunia asynchronous programming, time.sleep() tidak boleh digunakan karena akan memblokir seluruh event loop. Padahal tujuan async adalah memungkinkan banyak tugas berjalan secara efisien dalam satu thread.

Sebagai gantinya, gunakan asyncio.sleep().

Contohnya:

import asyncio


async def my_task():
    print("Starting operation...")
    await asyncio.sleep(5)
    print("Operation completed.")


asyncio.run(my_task())

Perbedaannya sangat penting:

  • sleep()→ memblokir thread
  • sleep()→ tidak memblokir event loop

Dengan await asyncio.sleep(5), coroutine berhenti sementara, tetapi event loop tetap bisa menjalankan coroutine lain.

Ini sangat cocok untuk:

  • Aplikasi jaringan
  • Web scraping async
  • Chat server
  • API service
  • Sistem concurrent modern

 

Perbandingan Singkat: time.sleep() vs asyncio.sleep()

Fitur

time.sleep()

asyncio.sleep()

Blocking

Ya

Tidak

Cocok untuk

Script sederhana

Async application

Multithread

Pause 1 thread

N/A (coroutine based)

Event loop

Memblokir

Tidak memblokir

Kalau kamu sedang belajar dasar Python, time.sleep() sudah cukup. Tapi kalau masuk ke backend modern atau concurrency, memahami asyncio adalah langkah berikutnya.

 

Kesimpulan

time.sleep() bukan sekadar fungsi delay biasa. Ia fleksibel, bisa menerima durasi berbeda, mendukung angka desimal, bisa digunakan dalam loop, bahkan berperan penting dalam multithreading.

Kita sudah membahas:

  • Mengatur delay berbeda dalam satu loop
  • Membuat dramatic printing
  • Penggunaan dalam multithread
  • Kapan waktu yang tepat menggunakannya
  • Kapan harus menghindarinya
  • Alternatif async dengan sleep()

Walaupun sederhana, memahami perilaku blocking dan non-blocking dari fungsi ini adalah fondasi penting untuk naik level ke pemrograman concurrent dan asynchronous yang lebih kompleks.

Series: Python
  1. Pengertian dan Kegunaan Bahasa Pemrograman Python
  2. Phyton 1 : Tutorial Pengenalan Dasar
  3. Phyton 2 : Macam Penulisan Sintaks
  4. Phyton 3 : Konsep Variabel dan Data
  5. Phyton 4 - Cara Mengambil Input dan Output
  6. Phyton 5 : Jenis-jenis Operator
  7. Phyton 6 - Percabangan
  8. Phyton 7 - Perulangan
  9. Phyton 8 - Struktur Data List
  10. 4 Variasi Fungsi Print () Pada Phyton
  11. Tutorial Python: Struktur Data Dictionary
  12. Phyton 9 - Struktur Data Tuple
  13. Phyton 9 : Struktur Data Tuple Part 2
  14. 5 Variasi Coding Python dengan Fungsi Concatenate, Yuk, Coba
  15. PyScript: Masa Depan Python di Browser ?
  16. 7 Hal Dasar yang Harus Diketahui Tentang Dictionary pada Python
  17. Memahami Fungsi dan Prosedur pada Python
  18. 6 Proyek Coding Python untuk Meningkatkan Portofolio Anda
  19. Tutorial Python: Membaca dan Menulis File dengan Lebih Mendalam
  20. Cara Baca Dan Parse File CSV di Python
  21. 7 Teknik Membuat Dictionary di Python dengan Data dari Berbagai Sumber
  22. 5 Kesalahan Umum dalam Menggunakan Dictionary di Python dan Cara Menghindarinya
  23. Belajar Python: Proses Data JSON dari File dan API Web
  24. Belajar Python: Buat Fungsi Dengan Lambda Expression
  25. Apa Maksud dari *args dan kwargs pada Python?
  26. Tutorial Membuat 3 Jenis Kalkulator Dengan Python
  27. Panduan Lengkap: Cara Menghapus Item di List Python Tanpa Drama
  28. Cara Bangun Dashboard di Jupyter Pakai Solara
  29. 6 Perintah pip yang Harus Diketahui Setiap Developer Python
  30. Panduan Lengkap Menggunakan pip: Manajer Paket Python yang Wajib Dikuasai
  31. Rekomendasi 6 Framework Terbaik untuk Python: Dari Santai Sampai Superhero!
  32. Benar Nggak Sih Python Ramah untuk Programmer Pemula?
  33. Optimasi Performa Perbandingan Dokumen di Python: Ketika CPU Lo Kerja Rodi!
  34. Mengupas Tuntas Cara Mengiterasi Dictionary di Python: Panduan Lengkap yang Gak Bikin Pusing!
  35. 5 Proyek AI Seru yang Bisa Lo Bangun Weekend Ini dengan Python
  36. Rust vs Python: Duel Sengit Bahasa Pemrograman! Mana yang Cocok Buat Lo?
  37. 6 Trik Python Terbaru 2025 yang Wajib Dicoba Programmer
  38. Tutorial Lengkap Membuat News Aggregator Menggunakan Python
  39. Stop Nulis Function Python Kayak Gini, Bro!
  40. 7 Python Decorators yang Bikin Kode Lo Makin Canggih
  41. Trik Python debugging yang wajib lo coba.
  42. Membangun List di Python: Filosofi, Teknik, dan Tips Anti-Kudet
  43. DERET FAKTORIAL: SI "BAHAN VIRAL" MATEMATIKA YANG BIKIN KODE LO NAIK LEVEL!
  44. Project Python Seru: Bikin Script Otomatisasi Pengorganisir File (Biar Folder Download Nggak Kayak Gudang)
  45. Automating Email Sending Via Phyton – Biar Jempol Lo Pensiun Dini
  46. Project 2: Automating Web Scraping for Data Collection dengan Python
  47. Automatisasi Tugas GUI dengan PyAutoGUI
  48. Cara Lama vs Cara Kekinian: Belajar dataclass Python
  49. Automatisasi Laporan PDF dengan Python
  50. Membongkar Rahasia field() di Python: Kendali Penuh atas Dataclass
  51. Praktik Lanjutan Menulis Kode Python yang Bersih dan Ramah Pemula
  52. Python Function Annotations: Fitur Keren yang Sering Diremehkan, Padahal Bikin Kamu Terlihat Programmer Cerdas
  53. Python Keyword Arguments: Panduan Bad Boy Buat Programmer Biar Nggak Salah Urus Function
  54. Belajar Fungsi Tanpa Parameter Python dari Nol: Panduan Lengkap Buat Pemula Sampai Nyantol di Kepala
  55. Tutorial Coding: Keluar dari Plateau of False Competence di Python
  56. Plotting Graph Menggunakan Seaborn di Python
  57. Mutable vs Immutable Objects di Python: Konsep Dasar yang Sering Diremehkan
  58. Python time.sleep() – Cara Mudah Memberi Jeda pada Program Kamu
  59. Mengapa Saya Berhenti Menggunakan Class di Python (Dan Apa yang Saya Gunakan Sebagai Gantinya)
  60. Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program
  61. Mengenal Python math Module: Panduan Lengkap untuk Operasi Matematika di Python
Published on May 16, 2026
Last updated on June 03, 2026

If you like this post and want to support us, you can support us via buymeacoffee or trakteer.