Python - Argumen Baris Perintah

Halo, para pelopor yang berhasrat! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia argumen baris perintah di Python. Jangan khawatir jika kamu baru dalam pemrograman; saya akan memandu kamu melalui setiap langkah dengan kesabaran dan perhatian seperti seorang guru kaki lima. Mari kita wujudkan!

Python - Command-Line Arguments

Apa itu Argumen Baris Perintah?

Bayangkan jika kamu adalah seorang juru masak, dan bukannya selalu memasak jenis yang sama, kamu ingin dapat mengubah bahan-bahan berdasarkan permintaan pelanggan kamu. Dalam pemrograman, argumen baris perintah seperti permintaan khusus dari pelanggan. Mereka membolehkan kita untuk memberikan program Python kita input yang berbeda saat kita menjalankannya, membuat kode kita lebih fleksibel dan kuat.

Argumen Baris Perintah Python

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

import sys

print("Halo, saya adalah 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 output seperti ini:

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

Mari kita pecahkan ini:

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

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!

Mengirimkan 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 == 'add':
return num1 + num2
elif operation == 'subtract':
return num1 - num2
elif operation == 'multiply':
return num1 * num2
elif operation == 'divide':
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 angka yang valid")

Simpan sebagai calculator.py dan gunakan seperti ini:

python calculator.py add 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.

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('Input file adalah:', inputfile)
print('Output file 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:

Input file adalah: input.txt
Output file 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 lebih kompleks.

Perbandingan Metode

Berikut adalah perbandingan singkat dari metode yang kita diskusikan:

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

Ingat, metode terbaik bergantung pada kebutuhan kamu yang khusus. 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 dalam toolkit Python kamu. Mereka membolehkan 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 perangkat lunak yang menakjubkan. Selamat coding, dan semoga petualangan baris perintah kamu selalu menarik!

Credits: Image by storyset