Eksperimen di REPL lenyap begitu sesi ditutup. Program sungguhan — yang dapat dijalankan ulang, dibagikan, dan diperbaiki — hidup di dalam file. Pada Chapter ini kita mengambil langkah tersebut: membuat file Python pertama, menjalankannya dari terminal, lalu sedikit memolesnya agar dapat dieksekusi tanpa menyebut python3 di depannya.
Membuat File Python #
File Python hanyalah file teks biasa dengan akhiran .py. Buat file bernama halo.py berisi kode berikut:
#!/usr/bin/env python3
print("Halo dari file Python!")
nama_bahasa = "Python"
print("Bahasa yang sedang kita pelajari:", nama_bahasa)Baris pertama #!/usr/bin/env python3 disebut shebang: penanda bagi sistem Unix mengenai interpreter yang harus dipakai bila file dieksekusi langsung. Shebang tidak wajib, tetapi kebiasaan yang baik dan akan kita pakai sebentar lagi.
Menjalankan File dari Terminal #
Buka terminal, pindah ke direktori tempat file berada, lalu jalankan:
python3 halo.pyOutput yang Dihasilkan:
Halo dari file Python!
Bahasa yang sedang kita pelajari: PythonMari kita telaah isi filenya:
- Baris 1 (
#!/usr/bin/env python3): shebang meminta sistem mencaripython3di PATH lalu menjalankan file dengannya. Perintahenvmencari lokasipython3secara otomatis, lebih portabel daripada menuliskan lokasi tetap. - Baris 3 (
print("Halo dari file Python!")): dicetak begitu interpreter mencapainya. - Baris 5-6 (
nama_bahasa = "Python",print(...)): variable dibuat lalu dipakai dalam cetakan — persis perilaku yang sudah kita kenal dari REPL, kali ini tersimpan permanen di file.
Interpreter mengeksekusi file baris demi baris dari atas ke bawah; tidak ada titik masuk khusus seperti main() pada bahasa lain. Ketika file habis, program selesai.
Menjalankan Tanpa Menyebut python3 #
Pada Linux dan macOS, file dengan shebang dapat dijalankan langsung setelah diberi izin eksekusi:
chmod +x halo.py
./halo.pyOutput yang Dihasilkan:
Halo dari file Python!
Bahasa yang sedang kita pelajari: PythonPerintah chmod +x memberi tanda “boleh dieksekusi” pada file, cukup sekali seumur hidup file. Setelahnya, ./halo.py menjalankan file lewat shebang — hasilnya identik dengan python3 halo.py. Pada Windows, mekanisme ini tidak berlaku; double-click pada file .py menjalankannya lewat asosiasi file ke interpreter yang terpasang.
Direktori Kerja dan Lokasi File #
Terminal selalu berada di satu direktori kerja, dan perintah menjalankan file mencarinya relatif dari titik tersebut. Kalau kita mengetik python3 halo.py dari direktori yang salah, interpreter menjawab dengan jalur lengkap lokasi yang dicarinya (di sini ditulis dengan rumah folder contoh):
python3: can't open file '/home/budi/latihan/halo.py': [Errno 2] No such file or directoryPesan tersebut bukan error Python, melainkan laporan bahwa interpreter tidak menemukan filenya. Solusinya: pindah dulu ke direktori file menggunakan cd (perintah navigasi terminal dibahas tuntas di Chapter Menggunakan Terminal), atau sebut jalur lengkapnya, misalnya python3 latihan/halo.py.
Ketika File Berisi Error #
File yang mengandung kesalahan tetap dijalankan — sampai batas tertentu. Perilakunya bergantung pada jenis kesalahannya, dan membedakan keduanya menyehatkan intuisi kita tentang dua fase kerja Python (materi Chapter Bagaimana Python Bekerja).
Kesalahan sintaks ditangkap fase kompilasi, sebelum satu baris pun dieksekusi. Buat file contoh_error.py dengan kondisi if yang kehilangan titik dua:
print("Baris pertama berjalan")
if 5 > 3
print("besar")Jalankan filenya:
File "/home/budi/latihan/contoh_error.py", line 3
if 5 > 3
^
SyntaxError: expected ':'Perhatikan: tidak ada satu pun baris output dari program, padahal baris pertama hanya print(). Kompiler menolak seluruh file lebih dulu, dan pesan SyntaxError: expected ':' menunjuk tepat ke posisi titik dua yang hilang — ditandai simbol ^.
Sebaliknya, kesalahan runtime baru muncul ketika baris bermasalah dieksekusi; baris-baris sebelumnya sudah telanjur berjalan. Jika print(1 / 0) diletakkan di baris ketiga sebuah file, dua baris pertama tetap tercetak sebelum ZeroDivisionError menghentikan program. Membaca laporan error semacam ini akan kita latih tuntas pada Chapter Membaca Traceback.
File yang berisi kode dan dapat dijalankan hanyalah separuh persamaan produktivitas; separuh lainnya adalah tempat menulisnya. Chapter berikutnya membahas cara memilih code editor yang tepat untuk pekerjaan ini.