π Bangun Dashboard CLI Cantik di Python dengan pyfiglet + rich!!!
Selamat datang! Di posting blog ini, kita akan menjelajahi cara membangun dashboard CLI yang menawan dan informatif menggunakan Python, pyfiglet, dan rich. Kombinasi kuat ini memungkinkan Anda membuat antarmuka baris perintah yang tidak hanya fungsional tetapi juga estetis. Kita akan membahas setiap langkah secara mendalam, mulai dari pengaturan lingkungan hingga penyesuaian tampilan dashboard Anda. Bersiaplah untuk mengubah pengalaman CLI Anda!
Daftar Isi
- Pendahuluan
- Apa itu Dashboard CLI?
- Mengapa menggunakan pyfiglet dan rich?
- Tinjauan singkat tentang apa yang akan kita bangun
- Persiapan Lingkungan
- Memastikan Python terinstal
- Membuat lingkungan virtual (opsional, tetapi disarankan)
- Menginstal pyfiglet dan rich
- Dasar-Dasar pyfiglet
- Apa itu pyfiglet?
- Menghasilkan teks ASCII Art sederhana
- Mengubah font dan lebar
- Dasar-Dasar rich
- Apa itu rich?
- Mencetak teks berwarna dan bergaya
- Menggunakan panel, tabel, dan progress bar
- Membangun Dashboard CLI Sederhana
- Menampilkan header dengan pyfiglet
- Menambahkan informasi sistem dasar (CPU, Memori, dll.) dengan rich
- Mengatur tata letak dengan panel
- Menambahkan Lebih Banyak Fitur
- Menampilkan log atau status real-time
- Membuat progress bar untuk tugas-tugas yang sedang berjalan
- Menambahkan interaktivitas (membuat menu)
- Penyesuaian dan Gaya
- Memilih skema warna yang tepat
- Bereksperimen dengan font pyfiglet yang berbeda
- Menyesuaikan tata letak panel
- Praktik Terbaik
- Menjaga kode tetap bersih dan terstruktur
- Menangani kesalahan dengan baik
- Mendokumentasikan kode Anda
- Contoh Kode Lengkap
- Kode yang dapat disalin dan ditempel untuk dashboard CLI yang lengkap
- Kesimpulan
- Ringkasan apa yang telah dipelajari
- Langkah selanjutnya dan sumber daya tambahan
1. Pendahuluan
Apa itu Dashboard CLI?
Dashboard CLI (Command Line Interface) adalah antarmuka berbasis teks yang menyediakan tampilan ringkas dan terorganisir dari informasi penting. Alih-alih antarmuka grafis (GUI), dashboard CLI menggunakan teks untuk menampilkan data, status, dan kontrol. Dashboard ini sering digunakan untuk memantau sistem, menjalankan tugas administratif, dan memberikan umpan balik langsung kepada pengguna.
Mengapa menggunakan pyfiglet dan rich?
- pyfiglet: Pustaka ini memungkinkan Anda menghasilkan teks ASCII art dari teks biasa. Ini ideal untuk menambahkan header yang menarik secara visual ke dashboard CLI Anda.
- rich: rich adalah pustaka Python yang memungkinkan Anda menambahkan format warna, gaya, dan tata letak yang kaya ke output terminal Anda. Ini menyediakan alat untuk membuat panel, tabel, progress bar, dan banyak lagi, menjadikannya sempurna untuk membangun dashboard CLI yang informatif dan menarik.
Tinjauan singkat tentang apa yang akan kita bangun
Dalam posting blog ini, kita akan membangun dashboard CLI sederhana yang menampilkan:
- Header yang menarik menggunakan pyfiglet
- Informasi sistem dasar (misalnya, penggunaan CPU, penggunaan memori) menggunakan rich
- Tata letak yang terstruktur menggunakan panel rich
2. Persiapan Lingkungan
Memastikan Python terinstal
Pertama, pastikan Anda telah menginstal Python di sistem Anda. Anda dapat mengunduh versi terbaru dari situs web Python. Setelah diinstal, verifikasi dengan membuka terminal atau command prompt dan menjalankan:
python --version
Anda akan melihat versi Python yang terinstal.
Membuat lingkungan virtual (opsional, tetapi disarankan)
Disarankan untuk menggunakan lingkungan virtual untuk mengisolasi dependensi proyek Anda. Untuk membuat lingkungan virtual, jalankan perintah berikut:
python -m venv myenv
Ini akan membuat direktori bernama myenv
yang berisi lingkungan virtual. Untuk mengaktifkannya:
- Di Windows:
myenv\Scripts\activate
source myenv/bin/activate
Setelah lingkungan virtual diaktifkan, Anda akan melihat nama lingkungan di prompt terminal Anda.
Menginstal pyfiglet dan rich
Sekarang, instal pyfiglet dan rich menggunakan pip:
pip install pyfiglet rich
Ini akan mengunduh dan menginstal pustaka yang diperlukan untuk proyek kita.
3. Dasar-Dasar pyfiglet
Apa itu pyfiglet?
pyfiglet adalah pustaka Python yang mengambil teks dan mengubahnya menjadi teks ASCII art menggunakan berbagai font. Ini memungkinkan Anda menambahkan sentuhan visual ke aplikasi baris perintah Anda dengan menampilkan teks dengan cara yang mencolok dan menarik.
Menghasilkan teks ASCII Art sederhana
Berikut adalah contoh sederhana tentang cara menggunakan pyfiglet:
import pyfiglet
result = pyfiglet.figlet_format("Hello, CLI!")
print(result)
Ini akan menghasilkan:
_ _ _ _____ _
| | | | | | / ___| | |
| | | | _ _| |__ \ `--. ___ ___| | _____ _ __
| | | | | | | | '_ \ `--. \ / _ \/ __| |/ / _ \ '__|
| |_| | | |_| | |_) |/\__/ /| __/ (__| < __/ |
\___/ \__,_|_.__/ \____/ \___|\___|_|\_\___|_|
Mengubah font dan lebar
pyfiglet memungkinkan Anda mengubah font dan lebar teks yang dihasilkan. Berikut adalah contohnya:
import pyfiglet
result = pyfiglet.figlet_format("Awesome!", font="slant", width=80)
print(result)
Ini akan menghasilkan teks ASCII art menggunakan font "slant" dengan lebar maksimum 80 karakter.
4. Dasar-Dasar rich
Apa itu rich?
rich adalah pustaka Python yang menyediakan format output terminal yang kaya. Ini memungkinkan Anda menambahkan warna, gaya, panel, tabel, progress bar, dan banyak lagi ke aplikasi baris perintah Anda. Ini membuat output terminal Anda lebih mudah dibaca dan menarik secara visual.
Mencetak teks berwarna dan bergaya
Berikut adalah contoh sederhana tentang cara mencetak teks berwarna menggunakan rich:
from rich import print
print("[bold red]Error:[/] Something went wrong!")
print("[cyan]Info:[/] Processing data...")
Ini akan mencetak pesan kesalahan berwarna merah dan pesan informasi berwarna cyan.
Menggunakan panel, tabel, dan progress bar
rich menyediakan berbagai komponen seperti panel, tabel, dan progress bar untuk menyusun dan menampilkan informasi. Berikut adalah beberapa contoh:
- Panel:
from rich.panel import Panel
from rich import print
print(Panel("This is a panel!", title="My Panel"))
from rich.console import Console
from rich.table import Table
console = Console()
table = Table(title="My Table")
table.add_column("Header 1", justify="right", style="cyan", no_wrap=True)
table.add_column("Header 2", style="magenta")
table.add_column("Header 3", justify="center", style="green")
table.add_row("Data 1", "Data 2", "Data 3")
table.add_row("Data 4", "Data 5", "Data 6")
console.print(table)
from rich.progress import track
import time
for i in track(range(10), description="Processing..."):
time.sleep(0.5)
5. Membangun Dashboard CLI Sederhana
Menampilkan header dengan pyfiglet
Mari mulai dengan menampilkan header menggunakan pyfiglet di dashboard CLI kita:
import pyfiglet
from rich import print
header = pyfiglet.figlet_format("My CLI Dashboard", font="banner3")
print(f"[bold blue]{header}[/]")
Ini akan menghasilkan header yang menarik secara visual di bagian atas dashboard kita.
Menambahkan informasi sistem dasar (CPU, Memori, dll.) dengan rich
Selanjutnya, mari tambahkan beberapa informasi sistem dasar menggunakan rich. Kita akan menggunakan pustaka psutil
untuk mendapatkan informasi ini. Jika Anda belum menginstalnya, instal dengan:
pip install psutil
Kemudian, tambahkan kode berikut:
import psutil
from rich import print
cpu_usage = psutil.cpu_percent()
memory_usage = psutil.virtual_memory().percent
print(f"[bold green]CPU Usage:[/] {cpu_usage}%")
print(f"[bold green]Memory Usage:[/] {memory_usage}%")
Ini akan menampilkan penggunaan CPU dan memori saat ini.
Mengatur tata letak dengan panel
Sekarang, mari gunakan panel rich untuk mengatur tata letak dashboard kita:
import pyfiglet
import psutil
from rich import print
from rich.panel import Panel
header = pyfiglet.figlet_format("My CLI Dashboard", font="banner3")
cpu_usage = psutil.cpu_percent()
memory_usage = psutil.virtual_memory().percent
cpu_panel = Panel(f"[bold green]CPU Usage:[/] {cpu_usage}%", title="CPU")
memory_panel = Panel(f"[bold green]Memory Usage:[/] {memory_usage}%", title="Memory")
print(f"[bold blue]{header}[/]")
print(cpu_panel)
print(memory_panel)
Ini akan menampilkan header dan informasi CPU/memori dalam panel terpisah.
6. Menambahkan Lebih Banyak Fitur
Menampilkan log atau status real-time
Anda dapat menambahkan kemampuan untuk menampilkan log atau status real-time di dashboard Anda. rich menyediakan konsol logging yang memungkinkan Anda menampilkan pesan log dengan warna dan gaya:
from rich.console import Console
from rich.logging import RichHandler
import logging
console = Console()
logging.basicConfig(
level="NOTSET", format="%(message)s", datefmt="[%X]", handlers=[RichHandler(console=console)]
)
log = logging.getLogger("rich")
log.debug("Debugging information")
log.info("Information message")
log.warning("Warning message")
log.error("Error message")
log.critical("Critical message")
Membuat progress bar untuk tugas-tugas yang sedang berjalan
Anda dapat menggunakan progress bar rich untuk menunjukkan kemajuan tugas-tugas yang sedang berjalan:
from rich.progress import track
import time
for i in track(range(100), description="Processing..."):
time.sleep(0.05)
Menambahkan interaktivitas (membuat menu)
Anda dapat menambahkan interaktivitas ke dashboard Anda dengan membuat menu menggunakan pustaka seperti inquirer
atau dengan menerima input pengguna secara langsung:
import inquirer
questions = [
inquirer.List(
"action",
message="What do you want to do?",
choices=["View System Info", "Run Diagnostic", "Exit"],
),
]
answers = inquirer.prompt(questions)
print(f"You selected: {answers['action']}")
Anda perlu menginstal inquirer
: pip install inquirer
7. Penyesuaian dan Gaya
Memilih skema warna yang tepat
rich menyediakan berbagai pilihan warna yang dapat Anda gunakan untuk menyesuaikan tampilan dashboard Anda. Bereksperimen dengan warna yang berbeda untuk menemukan skema yang paling sesuai dengan preferensi Anda dan memastikan keterbacaan.
Bereksperimen dengan font pyfiglet yang berbeda
pyfiglet mendukung berbagai font yang dapat Anda gunakan untuk membuat header yang unik dan menarik. Jelajahi opsi font yang berbeda untuk menemukan yang paling cocok dengan estetika dashboard Anda.
Menyesuaikan tata letak panel
Anda dapat menyesuaikan tata letak panel rich dengan menyesuaikan ukuran, judul, dan gaya. Pertimbangkan untuk menggunakan panel bersarang untuk mengatur informasi dengan lebih efektif.
8. Praktik Terbaik
Menjaga kode tetap bersih dan terstruktur
Penting untuk menjaga kode Anda tetap bersih dan terstruktur untuk memastikan kemudahan pemeliharaan dan keterbacaan. Gunakan nama variabel dan fungsi yang deskriptif, dan pisahkan kode Anda menjadi modul logis.
Menangani kesalahan dengan baik
Pastikan untuk menangani kesalahan dengan baik dalam kode Anda untuk mencegah crash yang tidak terduga. Gunakan blok try-except
untuk menangkap pengecualian dan memberikan pesan kesalahan yang bermakna kepada pengguna.
Mendokumentasikan kode Anda
Dokumentasikan kode Anda dengan jelas untuk membuatnya lebih mudah dipahami dan digunakan oleh orang lain (dan Anda sendiri di masa mendatang). Gunakan docstring untuk menjelaskan tujuan dan penggunaan fungsi dan kelas Anda.
9. Contoh Kode Lengkap
Berikut adalah contoh kode lengkap untuk dashboard CLI sederhana yang menggabungkan semua konsep yang telah kita bahas:
import pyfiglet
import psutil
from rich import print
from rich.panel import Panel
from rich.console import Console
from rich.table import Table
from rich.progress import track
import time
import logging
from rich.logging import RichHandler
import inquirer
# Konfigurasi logging
console = Console()
logging.basicConfig(
level="NOTSET", format="%(message)s", datefmt="[%X]", handlers=[RichHandler(console=console)]
)
log = logging.getLogger("rich")
def get_system_info():
"""Mendapatkan informasi sistem dasar."""
cpu_usage = psutil.cpu_percent()
memory_usage = psutil.virtual_memory().percent
return cpu_usage, memory_usage
def display_system_info(cpu_usage, memory_usage):
"""Menampilkan informasi sistem dalam panel."""
cpu_panel = Panel(f"[bold green]CPU Usage:[/] {cpu_usage}%", title="CPU")
memory_panel = Panel(f"[bold green]Memory Usage:[/] {memory_usage}%", title="Memory")
print(cpu_panel)
print(memory_panel)
def run_diagnostic():
"""Mensimulasikan proses diagnostik dengan progress bar."""
for i in track(range(100), description="Running Diagnostic..."):
time.sleep(0.02)
print("[bold green]Diagnostic completed successfully![/]")
def main():
"""Fungsi utama untuk menjalankan dashboard CLI."""
header = pyfiglet.figlet_format("CLI Dashboard", font="banner3")
print(f"[bold blue]{header}[/]")
while True:
cpu_usage, memory_usage = get_system_info()
display_system_info(cpu_usage, memory_usage)
questions = [
inquirer.List(
"action",
message="What do you want to do?",
choices=["View System Info", "Run Diagnostic", "Exit"],
),
]
answers = inquirer.prompt(questions)
if answers['action'] == "View System Info":
log.info("Viewing system information...")
elif answers['action'] == "Run Diagnostic":
log.info("Running diagnostic...")
run_diagnostic()
elif answers['action'] == "Exit":
log.info("Exiting dashboard...")
break
if __name__ == "__main__":
main()
Salin kode ini ke file Python (misalnya, dashboard.py
) dan jalankan dengan python dashboard.py
.
10. Kesimpulan
Ringkasan apa yang telah dipelajari
Dalam posting blog ini, kita telah mempelajari cara membangun dashboard CLI yang cantik dan informatif menggunakan Python, pyfiglet, dan rich. Kita membahas dasar-dasar pyfiglet untuk menghasilkan teks ASCII art, dasar-dasar rich untuk memformat output terminal, dan cara menggabungkan keduanya untuk membuat dashboard yang menarik secara visual dan fungsional. Kita juga menjelajahi fitur-fitur lanjutan seperti menampilkan log, membuat progress bar, dan menambahkan interaktivitas.
Langkah selanjutnya dan sumber daya tambahan
Sekarang setelah Anda memiliki dasar yang kuat, Anda dapat terus menjelajahi lebih banyak fitur rich dan pyfiglet. Berikut adalah beberapa sumber daya tambahan:
Selamat membangun dashboard CLI yang luar biasa!
```