This document is for an old version of Python that is no longer supported. You should upgrade and read the Dokumentasi Python untuk rilis stabil saat ini.

# 8. Komponen tingkat atas

Interpreter Python dapat memperoleh masukan dari sejumlah sumber: dari skrip yang diteruskan sebagai masukan standar atau sebagai argumen program, diketikkan secara interaktif, dari berkas sumber modul, dll. Bab ini memberikan sintaks yang digunakan dalam kasus-kasus tersebut.

## 8.1. Program Python lengkap

While a language specification need not prescribe how the language interpreter is invoked, it is useful to have a notion of a complete Python program. A complete Python program is executed in a minimally initialized environment: all built-in and standard modules are available, but none have been initialized, except for `sys` (various system services), `__builtin__` (built-in functions, exceptions and `None`) and `__main__`. The latter is used to provide the local and global namespace for execution of the complete program.

Sintaksis untuk program Python lengkap adalah untuk masukan berkas, dijelaskan pada bagian selanjutnya.

Interpreter juga dapat dipanggil dalam mode interaktif; dalam hal ini, ia tidak membaca dan menjalankan program yang lengkap tetapi membaca dan mengeksekusi satu pernyataan (mungkin digabungkan) pada suatu waktu. Lingkungan awal identik dengan program lengkap; setiap pernyataan dieksekusi di namespace `__main__`.

A complete program can be passed to the interpreter in three forms: with the `-c` string command line option, as a file passed as the first command line argument, or as standard input. If the file or standard input is a tty device, the interpreter enters interactive mode; otherwise, it executes the file as a complete program.

## 8.2. Masukan dari Berkas

Semua input yang dibaca dari berkas non-interaktif memiliki bentuk yang sama:

    file_input ::=  (NEWLINE | statement)*

Sintaks ini digunakan dalam situasi berikut:

- saat mengurai program Python lengkap (dari berkas atau dari string);

- ketika mengurai sebuah modul;

- when parsing a string passed to the `exec` statement;

## 8.3. Masukan interaktif

Input dalam mode interaktif diuraikan menggunakan tata bahasa berikut:

    interactive_input ::=  [stmt_list] NEWLINE | compound_stmt NEWLINE

Perhatikan bahwa pernyataan gabungan (tingkat atas) harus diikuti oleh baris kosong dalam mode interaktif; ini diperlukan untuk membantu parser mendeteksi akhir masukan.

## 8.4. Masukan ekspresi

There are two forms of expression input. Both ignore leading whitespace. The string argument to `eval()` must have the following form:

    eval_input ::=  expression_list NEWLINE*

The input line read by `input()` must have the following form:

    input_input ::=  expression_list NEWLINE

Note: to read 'raw' input line without interpretation, you can use the built-in function `raw_input()` or the `readline()` method of file objects.