Python - Argumen Baris Perintah

Halo, pemrogram berprestasi! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia argumen baris perintah di Python. Jangan khawatir jika kamu masih baru di dunia pemrograman; saya akan membimbingmu melalui setiap langkah dengan penuh kesabaran dan perhatian seperti seorang guru berpengalaman. Mari kita mulai!

Python - Command-Line Arguments

Apa itu Argumen Baris Perintah?

Bayangkan jika kamu adalah seorang juru masak, dan bukannya selalu memasak makanan yang sama, kamu ingin dapat mengubah bahan-bahan berdasarkan permintaan pelanggan. Di pemrograman, argumen baris perintah seperti permintaan khusus dari pelanggan. Argumen ini memungkinkan kita untuk memberikan input berbeda ke program Python kita ketika menjalankannya, membuat kode kita lebih fleksibel dan kuat.

Argumen Baris Perintah di Python

Di Python, kita dapat dengan mudah mengakses argumen baris perintah menggunakan modul sys. Mari kita mulai dengan contoh sederhana:

import sys

print("Halo, saya program Python pertama kamu!")
print("Jumlah argumen:", len(sys.argv))
print("Argumen:", str(sys.argv))

Simpan sebagai hello_args.py dan jalankan dari baris perintah seperti ini:

python hello_args.py arg1 arg2 arg3

Kamu akan melihat keluaran seperti ini:

Halo, saya program Python pertama kamu!
Jumlah argumen: 4
Argumen: ['hello_args.py', 'arg1', 'arg2', 'arg3']

Ayo kita pecahkan ini:

  • sys.argv adalah daftar yang berisi argumen baris perintah.
  • Item pertama (sys.argv[0]) adalah nama skrip itu sendiri.
  • Item yang tersisa adalah argumen yang kita kirim.

Mengakses Argumen Tertentu

Sekarang, mari kita buat program yang menggunakan argumen ini:

import sys

if len(sys.argv) < 2:
print("Silakan berikan nama kamu sebagai argumen!")
else:
name = sys.argv[1]
print(f"Halo, {name}! Selamat datang di dunia argumen baris perintah!")

Simpan sebagai greet.py dan jalankan:

python greet.py Alice

Output:

Halo, Alice! Selamat datang di dunia argumen baris perintah!

Jika kamu menjalankannya tanpa argumen:

python greet.py

Output:

Silakan berikan nama kamu sebagai argumen!

Contoh ini menunjukkan bagaimana kita dapat membuat program kita interaktif dan ramah pengguna!

Mengirim Argumen Pada Waktu Eksekusi

Mari kita buat contoh yang lebih praktis. Kita akan membuat kalkulator sederhana:

import sys

def calculator(operation, num1, num2):
if operation == 'tambah':
return num1 + num2
elif operation == 'kurang':
return num1 - num2
elif operation == 'kali':
return num1 * num2
elif operation == 'bagi':
return num1 / num2 if num2 != 0 else "Error: Pembagian oleh nol"
else:
return "Operasi tidak valid"

if len(sys.argv) != 4:
print("Penggunaan: python calculator.py <operation> <num1> <num2>")
else:
operation = sys.argv[1]
try:
num1 = float(sys.argv[2])
num2 = float(sys.argv[3])
result = calculator(operation, num1, num2)
print(f"Hasil: {result}")
except ValueError:
print("Error: Silakan berikan nomor yang valid")

Simpan sebagai calculator.py dan gunakan seperti ini:

python calculator.py tambah 5 3

Output:

Hasil: 8.0

Contoh kalkulator ini menunjukkan bagaimana kita dapat membuat alat yang kuat yang mengambil input berbeda dan melakukan operasi berbagai macam.

Modul getopt Python

Untuk antarmuka baris perintah yang lebih kompleks, Python menyediakan modul getopt. Ini seperti memiliki asisten yang terampil untuk membantu mengurutkan semua pilihan dan argumen yang mungkin diberikan pengguna kamu.

Berikut adalah contoh:

import sys
import getopt

def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print('test.py -i <inputfile> -o <outputfile>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print('test.py -i <inputfile> -o <outputfile>')
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print('File input adalah:', inputfile)
print('File output adalah:', outputfile)

if __name__ == "__main__":
main(sys.argv[1:])

Simpan sebagai file_processor.py dan jalankan:

python file_processor.py -i input.txt -o output.txt

Output:

File input adalah: input.txt
File output adalah: output.txt

Modul getopt membantu kita menangani pilihan pendek (-i, -o) dan pilihan panjang (--ifile, --ofile), membuat program kita lebih ramah pengguna.

Modul argparse Python

Untuk antarmuka baris perintah yang lebih sophisticated, Python menawarkan modul argparse. Ini seperti memiliki restoran penuh layanan untuk kebutuhan baris perintah kamu!

Berikut adalah contoh:

import argparse

parser = argparse.ArgumentParser(description='Proses beberapa integer.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='sebuah integer untuk akumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='jumlahkan integer (default: cari maks)')

args = parser.parse_args()
print(args.accumulate(args.integers))

Simpan sebagai integer_processor.py dan gunakan seperti ini:

python integer_processor.py 1 2 3 4

Output:

4

Atau dengan pilihan --sum:

python integer_processor.py 1 2 3 4 --sum

Output:

10

Modul argparse secara otomatis menghasilkan pesan bantuan, menangani kesalahan, dan memungkinkan struktur argumen yang kompleks.

Perbandingan Metode

Berikut adalah perbandingan singkat dari metode yang telah kita diskusikan:

Metode Kompleksitas kasus Penggunaan
sys.argv Simple Pemilihan argumen dasar
getopt Sedang Pilihan pendek dan panjang
argparse Tinggi Antarmuka CLI kompleks dengan bantuan otomatis

Ingat, metode terbaik tergantung pada kebutuhan kamu yang spesifik. Mulai dengan sederhana menggunakan sys.argv, dan saat program kamu menjadi lebih kompleks, pertimbangkan untuk berpindah ke getopt atau argparse.

Dalam kesimpulan, argumen baris perintah adalah alat yang kuat di atas rak peralat kamu di Python. Argumen ini memungkinkan kamu untuk membuat program yang fleksibel dan interaktif yang dapat menyesuaikan dengan input dan kebutuhan pengguna yang berbeda. Sebagai kamu melanjutkan perjalanan Python kamu, kamu akan menemukan banyak cara untuk menggunakan teknik ini untuk membangun software yang menakjubkan. Selamat coding, dan semoga perjalanan baris perintah kamu selalu menarik!

Credits: Image by storyset