Catatan Kuliah: Membuat Pola Hati Kreatif dengan Nama di Dalamnya Menggunakan Bash Scripting
Setelah di artikel-artikel sebelumnya kita berkutat dengan administrasi server yang cukup serius seperti manajemen memori, backup, hingga simulasi penjadwalan CPU, kali ini kita akan rehat sejenak dengan membuat proyek scripting yang interaktif dan kreatif.
Pernahkah Anda terpikir untuk mengekspresikan kreativitas (atau bahkan membuat kejutan kecil untuk orang terdekat) langsung dari terminal Linux? Di artikel kali ini, kita akan membuat skrip otomatis untuk menggambar Pola Hati menggunakan karakter bintang (*) dengan teks nama khusus tepat di tengahnya.
Melalui proyek ini, kita akan mempraktikkan cara kerja manipulasi string, perhitungan aritmatika dinamis, dan nested loop (perulangan bersenang) tingkat lanjut. Yuk, langsung kita bedah!
1. Kode Lengkap Bash Script: pola_hati.sh
Salin kode kreatif di bawah ini ke dalam file baru di terminal Anda, misalnya dengan mengetik nano pola_hati.sh:
#!/bin/bash
# Input Nama
read -p "Masukkan Nama Doi: " nama
# Input Jumlah Baris
read -p "Masukkan Jumlah Baris : " n
len=${#nama}
# — BAGIAN ATAS HATI —
for ((i=n/2; i<=n; i+=2)); do
# Spasi sisi kiri luar
for ((j=1; j<n-i; j+=2)); do
echo -n " "
done
# Bintang sisi kiri
for ((j=1; j<=i; j++)); do
echo -n "*"
done
# Spasi di antara dua lengkungan
for ((j=1; j<=n-i; j++)); do
echo -n " "
done
# Bintang sisi kanan
for ((j=1; j<=i; j++)); do
echo -n "*"
done
echo ""
done
# — BAGIAN TENGAH (DENGAN NAMA) ---
total_lebar=$(( (n * 2) + 1 ))
bintang_samping=$(( (total_lebar - len) / 2 ))
# Bintang kiri sebelum nama
for ((i=0; i<bintang_samping; i++)); do
echo -n "*"
done
echo -n "$nama"
# Bintang kanan setelah nama (menyesuaikan sisa lebar)
sisa_bintang=$(( total_lebar - len - bintang_samping ))
for ((i=0; i<sisa_bintang; i++)); do
echo -n "*"
done
echo ""
# — BAGIAN BAWAH (SEGITIGA TERBALIK) —
for ((i=total_lebar; i>=1; i-=2)); do
# Spasi agar membentuk kerucut ke bawah
for ((j=i; j<total_lebar; j+=2)); do
echo -n " "
done
# Bintang
for ((j=1; j<=i; j++)); do
echo -n "*"
done
echo ""
done
Jangan lupa memberikan izin eksekusi sebelum menjalankannya:
chmod +x pola_hati.sh
./pola_hati.sh
2. Bedah Logika & Cara Kerja Skrip
Skrip di atas secara cerdas membagi tugas penggambaran karakter menjadi tiga bagian utama agar simetris:
A. Konfigurasi Awal & Input Dinamis
Skrip dimulai dengan meminta dua buah input dari pengguna lewat perintah read -p: nama yang ingin dimasukkan dan jumlah ukuran baris hati (n). Baris len=${#nama} adalah perintah bawaan Bash yang berfungsi untuk menghitung panjang karakter (jumlah huruf) dari nama yang diketikkan secara otomatis.
B. Membuat Bagian Atas Hati (Dua Lengkungan)
Untuk membuat dua buah lengkungan atas hati secara sejajar, digunakan perulangan bersenang (nested loop).
- Loop terluar mengontrol baris, sedangkan loop di dalamnya membagi ruang terminal menjadi 4 zona horizontal secara berurutan: spasi kiri luar –> bintang lengkungan kiri –>spasi pemisah tengah –>bintang lengkungan kanan.
- Penggunaan
echo -nmemastikan bahwa karakter bintang atau spasi dicetak berjajar ke samping, bukan membuat baris baru ke bawah.
C. Menyisipkan Nama di Bagian Tengah
Agar posisi nama bisa tepat berada di tengah-tengah rentang baris, skrip melakukan kalkulasi matematika dinamis:
total_lebar: Menghitung lebar maksimal pola berdasarkan input ukurann.bintang_samping: Menghitung berapa jumlah bintang yang harus dicetak di sisi kiri sebelum nama tampil. Rumusnya: (total_lebar - panjang_nama) / 2.- Setelah mencetak nama, skrip menghitung sisa ruang melalui variabel
sisa_bintangagar jumlah bintang di sisi kanan tetap presisi dan menutup baris dengan sempurna.
D. Membuat Bagian Bawah Hati (Segitiga Terbalik)
Bagian paling bawah diarsir dengan pola segitiga terbalik yang mengerucut. Tekniknya adalah menggunakan loop mundur (i-=2). Setiap baris berjalan ke bawah, jumlah spasi di sisi kiri luar akan bertambah, sedangkan jumlah bintang yang dicetak akan semakin berkurang hingga menyisakan satu bintang lancip di ujung paling bawah.
Contoh Hasil Output Program
Berikut adalah visualisasi terminal jika Anda memasukkan nama "LINUX" dengan jumlah baris 6:
Masukkan Nama Doi: LINUX
Masukkan Jumlah Baris : 6

Kesimpulan
Belajar pemrograman Bash tidak selalu harus kaku dan membosankan. Melalui studi kasus pembuatan pola hati ini, kita bisa melatih logika berpikir matematis untuk mengontrol koordinat karakter di terminal secara dinamis. Parameter perhitungan lebar yang otomatis menyesuaikan panjang string nama membuktikan bahwa Bash Scripting memiliki fleksibilitas logika yang mumpuni.
Bagaimana? Menarik sekali, bukan? Coba praktikkan sekarang di VPS atau terminal Ubuntu Anda sendiri, lalu pamerkan hasilnya ke grup komunitas Anda!