Setiap baris kode Python tersusun dari dua jenis unit dasar: statement, yaitu instruksi lengkap yang menyuruh interpreter melakukan sesuatu, dan expression, yaitu potongan kode yang menghasilkan sebuah nilai. Pemula sering mengalami kebingungan khas akibat tidak membedakan keduanya: mengetik 2 + 3 di REPL memunculkan 5, tetapi baris yang sama di dalam file tidak mencetak apa pun. Chapter ini membedah kedua konsep tersebut dan menjelaskan mengapa perilakunya berbeda di REPL dan di file.
Expression: Kode yang Menghasilkan Nilai #
Expression adalah kode yang “bernilai” — ia berakhir menjadi sebuah objek setelah dievaluasi interpreter. Beberapa contohnya:
- literal seperti
2atau"Budi" - operasi seperti
2 + 3,"Budi".upper(), ataulen("Halo") - nama variabel seperti
nama, yang mengevaluasi ke nilai yang sedang disimpannya
Di REPL, setiap expression yang kita ketik langsung dievaluasi dan hasilnya digemakan kembali:
>>> 2 + 3
5
>>> "Budi".upper()
'BUDI'
>>> len("Halo")
4Tiga baris tersebut adalah tiga expression: 2 + 3 mengevaluasi ke integer 5, "Budi".upper() mengevaluasi ke string baru 'BUDI', dan len("Halo") mengevaluasi ke integer 4. Perilaku menggemakan hasil ini adalah fasilitas khusus REPL yang sudah kita kenal pada Chapter Menggunakan Python REPL.
Statement: Instruksi Lengkap #
Statement adalah unit eksekusi terkecil — sebuah langkah instruksi yang utuh. Contoh statement yang paling sering kita tulis adalah penugasan (assignment):
hasil = 2 + 3
print(hasil)Output yang Dihasilkan:
5Mari kita telaah urutan kerjanya:
- Baris 1 (
hasil = 2 + 3): interpreter mengevaluasi expression di sisi kanan tanda sama dengan terlebih dahulu (2 + 3menjadi5), lalu mengikat nilai tersebut ke namahasil. - Baris 2 (
print(hasil)): pemanggilanprint()mengevaluasihasilmenjadi5, lalu mencetaknya.
Perhatikan urutan pada baris pertama: sisi kanan selalu dievaluasi sebelum penugasan terjadi. Baris ini sekaligus memperlihatkan bahwa statement dan expression saling bekerja sama — expression adalah bahan bakunya, statement adalah aksinya. Contoh statement lain yang akan kita temui di sepanjang course ini: if, for, def, import, dan return.
Perilaku Berbeda: REPL vs File #
Kini kita bisa menjawab teka-teki di awal Chapter. Simpan program berikut ke dalam file dan jalankan:
2 + 3
"Budi".upper()
print("Program selesai.")Output yang Dihasilkan:
Program selesai.Tidak ada 5, tidak ada 'BUDI'. Di dalam file, 2 + 3 dan "Budi".upper() adalah expression statement — statement yang seluruh isinya hanya sebuah expression. Interpreter mengevaluasi keduanya, lalu membuang hasilnya karena tidak ada yang memakainya. REPL menggemakan nilai expression demi kenyamanan eksplorasi; file program tidak melakukannya. Jika hasil ingin dilihat, ia harus dikirim ke print() atau disimpan ke variabel.
Perbandingan Singkat #
| Aspek | Expression | Statement |
|---|---|---|
| Hasil akhir | menghasilkan nilai | menjalankan sebuah aksi |
| Contoh | 2 + 3, len("Halo"), nama | hasil = 2 + 3, if, for, import |
| Di REPL | nilai langsung digemakan | dijalankan tanpa digemakan |
| Di file | nilai dibuang kecuali dipakai | dieksekusi berurutan |
Pemahaman ini menjadi fondasi ketika kita mulai menyusun output program dengan lebih terkontrol. Chapter berikutnya membedah function print() — cara utama menampilkan nilai keluar dari sebuah file program.