Python & AI Tutorials Logo
Pemrograman Python

2. Program Python Pertamamu

Di Bab 1, kamu telah belajar cara menginstal Python, menggunakan interactive shell (REPL), dan menjalankan file skrip sederhana. Kamu juga sudah pertama kali melihat error dan traceback. Sekarang saatnya menulis program Python pertamamu yang benar-benar “nyata”—program yang menampilkan informasi, menerima input dari pengguna, dan menghasilkan hasil yang bermakna.

Bab ini memperkenalkan blok bangunan dasar yang akan kamu gunakan di hampir setiap program Python yang kamu tulis: fungsi print() untuk menampilkan output, komentar untuk mendokumentasikan kode, variabel untuk menyimpan data, dan fungsi input() untuk mendapatkan informasi dari pengguna. Di akhir bab ini, kamu akan mampu membuat program interaktif yang sederhana namun lengkap yang mengikuti pola klasik input-process-output.

2.1) Mencetak Teks dengan Fungsi print()

Fungsi print() adalah salah satu alat paling penting di Python. Fungsi ini menampilkan teks (dan informasi lain) ke layar, sehingga programmu bisa berkomunikasi dengan pengguna. Kamu sudah melihat print() sekilas di Bab 1, tetapi sekarang kita akan membahasnya lebih dalam.

2.1.1) Pencetakan Dasar

Dalam bentuk paling sederhana, print() menampilkan teks yang diapit oleh tanda kutip. Mari buat sebuah file skrip untuk melihat bagaimana cara kerjanya:

python
# hello.py
print("Hello, World!")

Saat kamu menjalankan skrip ini, Python menampilkan:

Hello, World!

Teks di dalam tanda kutip—"Hello, World!"—disebut string. String adalah urutan karakter (huruf, angka, simbol, spasi) yang diperlakukan Python sebagai teks. Kita akan membahas string jauh lebih detail di Bab 5, tetapi untuk sekarang, anggap saja string sebagai cara kamu merepresentasikan teks di Python.

Kamu bisa mencetak teks apa pun yang kamu mau dengan menempatkannya di dalam tanda kutip:

python
# greetings.py
print("Welcome to Python programming!")
print("This is your first real program.")
print("Python makes programming fun and accessible.")

Output:

Welcome to Python programming!
This is your first real program.
Python makes programming fun and accessible.

Perhatikan bahwa setiap pernyataan print() menghasilkan output pada baris terpisah. Python secara otomatis menambahkan pemisah baris (newline) setelah setiap pemanggilan print(), memindahkan kursor ke baris berikutnya.

2.1.2) Mencetak Beberapa Item

Fungsi print() dapat menampilkan beberapa item dalam satu pemanggilan dengan memisahkannya menggunakan koma:

python
# multiple_items.py
print("Python", "is", "awesome!")
print("I", "am", "learning", "to", "code")

Output:

Python is awesome!
I am learning to code

Ketika kamu memisahkan item dengan koma, print() secara otomatis menyisipkan satu spasi di antara item-item tersebut. Ini memudahkan untuk menggabungkan beberapa potongan teks tanpa harus menambahkan spasi secara manual.

Kamu juga bisa mencampur berbagai tipe data. Misalnya, kamu bisa mencetak teks dan angka sekaligus:

python
# mixed_output.py
print("The answer is", 42)
print("Python version", 3.12, "is powerful")

Output:

The answer is 42
Python version 3.12 is powerful

Python secara otomatis mengonversi angka menjadi teks saat mencetaknya, sehingga kamu belum perlu khawatir tentang detail teknisnya. Kita akan mempelajari lebih banyak tentang berbagai tipe data di Bab 3.

2.1.3) Tanda Kutip Tunggal vs Ganda

Python menerima tanda kutip tunggal (') maupun tanda kutip ganda (") untuk string. Keduanya sepenuhnya dapat saling menggantikan untuk teks sederhana:

python
# quotes.py
print("This uses double quotes")
print('This uses single quotes')
print("Both work exactly the same way")

Output:

This uses double quotes
This uses single quotes
Both work exactly the same way

Namun, tanda kutip menjadi penting ketika teksmu berisi apostrof atau tanda kutip. Jika teksmu berisi apostrof (yang merupakan karakter yang sama dengan tanda kutip tunggal), gunakan tanda kutip ganda untuk mengapitnya:

python
# apostrophes.py
print("It's a beautiful day!")
print("Python's syntax is clean")

Output:

It's a beautiful day!
Python's syntax is clean

Jika kamu mencoba menggunakan tanda kutip tunggal di sini, Python akan bingung:

python
# This causes an error:
print('It's a beautiful day!')  # Error! Python sees three separate quotes

Error terjadi karena Python menganggap apostrof pada kata "It's" sebagai akhir dari string, sehingga menyisakan "s a beautiful day!" sebagai kode yang tidak valid.

Demikian pula, jika teksmu berisi tanda kutip ganda, gunakan tanda kutip tunggal untuk mengapitnya:

python
# quotations.py
print('She said, "Hello!"')
print('The book is called "Python Basics"')

Output:

She said, "Hello!"
The book is called "Python Basics"

Panduan praktis: Pilih satu gaya (tanda kutip tunggal atau ganda) dan gunakan secara konsisten di seluruh kode. Kebanyakan programmer Python lebih suka tanda kutip ganda untuk string biasa, tetapi pilihan mana pun boleh. Beralihlah ke gaya lain hanya ketika teksmu berisi karakter tanda kutip yang biasanya kamu gunakan.

2.1.4) Mencetak Baris Kosong

Terkadang kamu ingin menambahkan baris kosong ke output agar lebih mudah dibaca. Kamu bisa melakukan ini dengan memanggil print() tanpa argumen:

python
# spacing.py
print("First section of output")
print("More information here")
print()  # Empty line
print("Second section of output")
print("This is separated from the first section")

Output:

First section of output
More information here
 
Second section of output
This is separated from the first section

Pemanggilan print() yang kosong membuat satu baris kosong, sehingga output lebih mudah dibaca dengan memisahkan bagian-bagian yang berbeda secara visual.

2.1.5) Karakter Khusus di Dalam String

Terkadang kamu perlu menyertakan karakter khusus di output yang tidak bisa kamu ketik secara langsung atau yang memiliki makna khusus di Python. Misalnya, bagaimana cara membuat pemisah baris di tengah string? Atau menyertakan tab untuk perataan? Python menyediakan escape sequences—kombinasi dua karakter khusus yang diawali dengan backslash (\)—untuk merepresentasikan karakter-karakter ini.

Escape sequence ini sangat berguna ketika kamu perlu memformat output dengan cara tertentu—membuat pesan multi-baris, merapikan kolom data, atau bekerja dengan file path di Windows. Kamu akan sering menggunakan \n saat menulis lebih banyak program.

Escape sequence yang paling umum adalah \n, yang merepresentasikan newline (pemisah baris):

python
# newlines.py
print("First line\nSecond line\nThird line")

Output:

First line
Second line
Third line

\n memberi tahu Python untuk pindah ke baris baru pada titik tersebut di dalam string. Ini berguna ketika kamu ingin membuat beberapa baris output dengan satu pernyataan print().

Escape sequence lain yang berguna adalah \t, yang merepresentasikan tab (spasi horizontal):

python
# tabs.py
print("Name:\tJohn")
print("Age:\t25")
print("City:\tNew York")

Output:

Name:	John
Age:	25
City:	New York

\t membuat spasi yang konsisten, merapikan nilai-nilai dalam format mirip kolom.

Jika kamu perlu menyertakan backslash asli di output, gunakan \\:

python
# backslash.py
print("The file path is C:\\Users\\Documents")

Output:

The file path is C:\Users\Documents

Kita akan membahas escape sequence dan penanganan string jauh lebih dalam di Bab 5. Untuk sekarang, cukup ketahui bahwa \n membuat baris baru dan \t membuat tab.

2.2) Menggunakan Komentar untuk Menjelaskan Kode

Seiring programmu menjadi lebih kompleks, semakin penting untuk menjelaskan apa yang dilakukan kode—baik untuk orang lain yang mungkin membacanya maupun untuk dirimu sendiri di masa depan. Python menyediakan komentar untuk tujuan ini: catatan di dalam kode yang sepenuhnya diabaikan Python saat menjalankan program.

2.2.1) Komentar Satu Baris

Di Python, teks apa pun setelah simbol # pada sebuah baris adalah komentar. Python mengabaikan semua yang ada dari # hingga akhir baris tersebut:

python
# comment_example.py
# This is a comment. Python ignores this line completely.
print("This line runs")  # This comment explains the print statement
# print("This line does NOT run because it's commented out")
print("This line also runs")

Output:

This line runs
This line also runs

Perhatikan bahwa pemanggilan print() kedua tidak dieksekusi karena seluruh baris dikomentari. Ini berguna ketika kamu ingin menonaktifkan kode sementara tanpa menghapusnya.

Komentar bisa muncul pada barisnya sendiri atau di akhir sebuah baris kode. Kedua gaya ini umum digunakan:

python
# display_info.py
# Display a welcome message to the user
print("Welcome to the program!")
 
print("Processing data...")  # Inform the user of progress

2.2.2) Kapan dan Bagaimana Menulis Komentar yang Baik

Komentar sebaiknya menjelaskan mengapa kamu melakukan sesuatu, bukan hanya apa yang dilakukan kode. Berikut contoh komentar yang buruk:

python
# Bad comment - just repeats what the code obviously does
print("Hello")  # Print "Hello"

Komentar ini tidak menambah nilai apa pun karena siapa pun yang membaca kode sudah bisa melihat bahwa baris tersebut mencetak "Hello".

Berikut pendekatan yang lebih baik:

python
# Good comment - explains the purpose or context
# Greet the user before requesting their information
print("Hello")

Komentar ini menjelaskan mengapa kita mencetak "Hello"—ini adalah bagian dari interaksi yang lebih besar dengan pengguna.

Panduan untuk menulis komentar yang membantu:

  1. Jelaskan tujuan: Mengapa kode ini ada? Masalah apa yang diselesaikan?
  2. Perjelas logika yang rumit: Jika sesuatu tidak langsung jelas, jelaskan
  3. Catat keputusan penting: Jelaskan mengapa kamu memilih satu pendekatan dibanding yang lain
  4. Peringatkan hal-hal yang menjebak: Tunjukkan hal-hal yang mungkin membingungkan atau tidak terduga
  5. Jaga agar tetap terbaru: Perbarui komentar ketika kamu mengubah kode

Berikut contoh yang menunjukkan komentar yang efektif:

python
# temperature_converter.py
# This program converts temperatures from Fahrenheit to Celsius
# Formula: C = (F - 32) × 5/9
 
# Display program title
print("Temperature Converter")
print("Fahrenheit to Celsius")
print()
 
# We'll learn how to get user input in section 2.4
# For now, we'll use a fixed temperature value
fahrenheit = 75  # Temperature in Fahrenheit to convert
 
# Perform the conversion using the standard formula
# Subtract 32 first (order matters due to the formula)
celsius = (fahrenheit - 32) * 5 / 9
 
# Display the result
print("Temperature:", fahrenheit, "°F =", celsius, "°C")

Output:

Temperature Converter
Fahrenheit to Celsius
 
Temperature: 75 °F = 23.88888888888889 °C

Perhatikan bagaimana komentar menjelaskan tujuan program, rumus yang digunakan, dan logika di balik perhitungan. Komentar-komentar ini membuat kode jauh lebih mudah dipahami, terutama bagi seseorang yang baru pertama kali melihatnya.

2.2.3) Komentar Multi-Baris dan Docstring

Untuk penjelasan yang lebih panjang, kamu bisa menggunakan beberapa komentar satu baris:

python
# multi_line_comments.py
# This program demonstrates a longer explanation
# that spans multiple lines. Each line starts
# with a # symbol.
print("Program starts here")

Python tidak memiliki sintaks khusus komentar multi-baris seperti beberapa bahasa lain. Namun, ada pendekatan alternatif menggunakan string dengan tiga tanda kutip (triple-quoted string). Kita akan mempelajari ini lebih lanjut di Bab 19 ketika membahas docstring (string dokumentasi untuk fungsi), tetapi berikut pratinjau singkatnya:

python
# docstring_preview.py
"""
This is a multi-line string that can serve as a comment.
It's not technically a comment—it's a string that Python
creates but doesn't use. However, it's often used for
longer explanations at the beginning of files.
"""
print("Program starts here")

Untuk sekarang, tetap gunakan # untuk komentar. Kita akan membahas triple-quoted string dan penggunaan yang tepat di bab-bab berikutnya.

2.2.4) Mengomentari Kode untuk Pengujian

Komentar juga berguna untuk sementara menonaktifkan kode saat pengujian:

python
# testing.py
print("This always runs")
# print("This is disabled for testing")
print("This also always runs")

Teknik ini disebut "commenting out" kode. Ini membantu ketika kamu ingin menguji bagaimana program berperilaku tanpa baris tertentu, tetapi kamu tidak ingin menghapus baris-baris tersebut secara permanen.

2.3) Pengenalan Variabel dan Assignment (Pratinjau)

Program menjadi jauh lebih berguna ketika mereka dapat menyimpan dan memanipulasi data. Variabel adalah wadah bernama yang menyimpan nilai. Bayangkan variabel sebagai kotak berlabel tempat kamu bisa menyimpan informasi dan mengambilnya kembali nanti.

Catatan penting: Bagian ini memberikan pratinjau tentang variabel untuk membantumu memahami contoh-contoh di bab ini. Kita akan membahas variabel secara lengkap di Bab 3, termasuk aturan penamaan, tipe data, dan bagaimana Python menangani variabel secara internal. Untuk sekarang, kita akan fokus pada konsep dasar dan penggunaannya.

2.3.1) Membuat Variabel dengan Assignment

Kamu membuat variabel menggunakan operator assignment (=). Pola dasarnya adalah:

variable_name = value

Nama variabel berada di sebelah kiri, nilai di sebelah kanan, dan = menghubungkan keduanya:

python
# variables_basic.py
message = "Hello, Python!"
print(message)

Output:

Hello, Python!

Berikut yang terjadi:

  1. Python membuat variabel bernama message
  2. Python menyimpan string "Hello, Python!" di variabel tersebut
  3. Ketika kita menggunakan message dalam fungsi print(), Python mengambil nilai yang tersimpan dan menampilkannya

Variabel dapat menyimpan berbagai tipe data. Berikut beberapa contohnya:

python
# variable_types.py
greeting = "Welcome!"  # A string (text)
age = 25  # A number (integer)
price = 19.99  # A number with a decimal point (float)
is_student = True  # A boolean (True or False)
 
print(greeting)
print(age)
print(price)
print(is_student)

Output:

Welcome!
25
19.99
True

Kita akan mempelajari berbagai tipe data ini (string, integer, float, boolean) di Bab 3. Untuk sekarang, cukup pahami bahwa variabel dapat menyimpan berbagai jenis informasi.

2.3.2) Mengapa Variabel Berguna

Variabel membuat kode lebih fleksibel dan lebih mudah dirawat. Bandingkan dua pendekatan berikut:

Tanpa variabel:

python
# no_variables.py
print("Welcome, John!")
print("John, your account balance is $1000")
print("Thank you for banking with us, John!")

Dengan variabel:

python
# with_variables.py
name = "John"
balance = 1000
 
print("Welcome,", name + "!")
print(name, "your account balance is $", balance)
print("Thank you for banking with us,", name + "!")

Kedua program menghasilkan output yang mirip, tetapi versi dengan variabel memiliki beberapa keuntungan penting:

  1. Mudah diperbarui: Untuk mengubah nama, kamu hanya perlu mengubah satu baris (name = "John") alih-alih tiga
  2. Lebih sedikit error: Kamu tidak akan salah ketik nama di salah satu tempat
  3. Lebih fleksibel: Kamu nantinya bisa mengubah cara name mendapatkan nilainya (misalnya dengan menanyakannya ke pengguna)

2.3.3) Mengubah Nilai Variabel (Reassignment)

Variabel dapat mengubah nilainya selama eksekusi program. Ini disebut reassignment:

python
# reassignment.py
score = 0
print("Initial score:", score)
 
score = 10
print("After first update:", score)
 
score = 25
print("After second update:", score)

Output:

Initial score: 0
After first update: 10
After second update: 25

Setiap kali kamu memberikan nilai baru ke sebuah variabel, Python mengganti nilai lama dengan yang baru. Nilai sebelumnya dibuang.

Kamu bahkan bisa menggunakan nilai saat ini dari sebuah variabel untuk menghitung nilai barunya:

python
# updating_values.py
count = 5
print("Starting count:", count)
 
count = count + 1  # Add 1 to count
print("After adding 1:", count)
 
count = count + 10  # Add 10 to count
print("After adding 10:", count)

Output:

Starting count: 5
After adding 1: 6
After adding 10: 16

Pola ini—count = count + 1—sangat umum dalam pemrograman. Artinya "ambil nilai saat ini dari count, tambahkan 1, lalu simpan hasilnya kembali ke count." Kita akan mempelajari bentuk singkatnya (count += 1) di Bab 4.

2.3.4) Pratinjau Penamaan Variabel

Nama variabel di Python harus mengikuti aturan tertentu:

  • Boleh berisi huruf, angka, dan underscore (_)
  • Harus diawali huruf atau underscore (bukan angka)
  • Tidak boleh mengandung spasi atau karakter khusus seperti @, $, %, dll.
  • Tidak boleh berupa keyword Python (kata cadangan seperti print, if, for, dll.)

Berikut beberapa nama variabel yang valid:

python
# valid_names.py
user_name = "Alice"
age2 = 30
_private_value = 42
totalPrice = 99.99

Dan beberapa nama yang tidak valid:

python
# These cause errors:
# 2age = 30  # Cannot start with a number
# user-name = "Alice"  # Cannot contain hyphens
# total price = 99.99  # Cannot contain spaces
# print = "Hello"  # Cannot use Python keywords

Praktik terbaik: Gunakan nama yang deskriptif dan menjelaskan apa yang diwakili variabel tersebut. user_age lebih baik daripada a, dan total_price lebih baik daripada tp. Kita akan membahas konvensi penamaan secara detail di Bab 3.

2.3.5) Variabel Membuat Program Menjadi Dinamis

Kekuatan nyata variabel menjadi jelas ketika kamu menggunakannya untuk membuat program lebih dinamis:

python
# dynamic_greeting.py
name = "Alice"
age = 28
city = "Seattle"
 
print("Personal Information")
print("====================")
print("Name:", name)
print("Age:", age)
print("City:", city)
print()
print("Summary:", name, "is", age, "years old and lives in", city)

Output:

Personal Information
====================
Name: Alice
Age: 28
City: Seattle
 
Summary: Alice is 28 years old and lives in Seattle

Dengan mengubah nilai name, age, dan city di bagian atas program, kamu bisa menyesuaikan seluruh output tanpa memodifikasi pernyataan print(). Pemisahan antara data dan logika seperti ini adalah prinsip dasar dari pemrograman yang baik.

Melihat ke depan: Di Bab 3, kita akan mengeksplorasi variabel secara menyeluruh, termasuk tipe data, konversi tipe, aturan penamaan, dan bagaimana Python mengelola variabel secara internal. Untuk sekarang, kamu sudah memiliki pemahaman yang cukup untuk menggunakan variabel di program sederhana.

2.4) Membaca Input dari Keyboard dengan input()

Sejauh ini, semua data dalam program kita masih hardcoded—ditulis langsung di dalam kode. Namun, program nyata sering kali perlu berinteraksi dengan pengguna, menerima informasi yang mereka berikan. Fungsi input() milik Python memungkinkan hal ini.

2.4.1) Input Dasar

Fungsi input() menampilkan sebuah pesan (disebut prompt) dan menunggu pengguna mengetik sesuatu lalu menekan Enter. Berikut pola dasarnya:

python
# basic_input.py
name = input("What is your name? ")
print("Hello,", name + "!")

Saat kamu menjalankan program ini, berikut yang terjadi:

What is your name? Alice
Hello, Alice!

Mari kita uraikan:

  1. Python mengeksekusi input("What is your name? ")
  2. Python menampilkan prompt: What is your name?
  3. Program berhenti sejenak dan menunggu pengguna mengetik sesuatu
  4. Pengguna mengetik Alice lalu menekan Enter
  5. Python menyimpan teks "Alice" di variabel name
  6. Program berlanjut, mencetak sapaan

Teks yang kamu berikan ke input() adalah prompt—apa yang dilihat pengguna sebelum mengetik. Selalu sertakan satu spasi di akhir prompt (perhatikan spasi setelah tanda tanya) untuk memisahkan prompt dari input pengguna, sehingga lebih mudah dibaca.

2.4.2) Input Selalu Mengembalikan String

Hal ini sangat penting untuk dipahami: input() selalu mengembalikan string, bahkan jika pengguna mengetik angka:

python
# input_as_string.py
age = input("How old are you? ")
print("You entered:", age)
print("The type is:", type(age))

Ketika kamu menjalankan ini dan memasukkan 25:

How old are you? 25
You entered: 25
The type is: <class 'str'>

Meskipun pengguna mengetik 25, Python menyimpannya sebagai string "25", bukan sebagai angka 25. Fungsi type() mengonfirmasi hal ini—ia menunjukkan bahwa age adalah string (str), bukan integer.

Ini penting ketika kamu ingin melakukan perhitungan. Kamu tidak dapat langsung melakukan operasi matematika dengan string:

python
# This causes an error:
age = input("How old are you? ")
next_year_age = age + 1  # Error! Can't add a number to a string

Ini menghasilkan error karena Python tidak tahu bagaimana menambahkan angka 1 ke string "25".

2.4.3) Mengonversi Input Menjadi Angka

Untuk menggunakan input sebagai angka, kamu harus secara eksplisit mengonversinya menggunakan int() (untuk bilangan bulat) atau float() (untuk bilangan desimal):

python
# input_conversion.py
age_string = input("How old are you? ")
age = int(age_string)  # Convert string to integer
 
next_year = age + 1
print("Next year, you will be", next_year, "years old")

Ketika kamu menjalankan ini dan memasukkan 25:

How old are you? 25
Next year, you will be 26 years old

Kamu juga bisa menggabungkan input dan konversi dalam satu baris:

python
# input_conversion_compact.py
age = int(input("How old are you? "))
next_year = age + 1
print("Next year, you will be", next_year, "years old")

Ini lebih ringkas dan merupakan gaya yang paling sering kamu lihat. Cara kerjanya dari dalam ke luar:

  1. input("How old are you? ") mengambil input pengguna sebagai string
  2. int(...) mengonversi string tersebut menjadi integer
  3. Integer disimpan di variabel age

Berikut contoh penggunaan float() untuk bilangan desimal:

python
# float_input.py
price = float(input("Enter the price: $"))
tax_rate = 0.08
tax = price * tax_rate
total = price + tax
 
print("Price: $", price)
print("Tax: $", tax)
print("Total: $", total)

Saat kamu menjalankan ini dan memasukkan 19.99:

Enter the price: $19.99
Price: $ 19.99
Tax: $ 1.5992
Total: $ 21.5892

Penting: Jika pengguna memasukkan teks yang tidak dapat dikonversi menjadi angka, Python akan memunculkan error. Misalnya, jika kamu menggunakan int(input("Enter a number: ")) dan pengguna mengetik "hello", Python tidak dapat mengonversi "hello" menjadi integer dan akan menampilkan pesan error. Kita akan belajar bagaimana menangani situasi seperti ini dengan baik di Bab 27 ketika mempelajari exception handling.

2.4.4) Beberapa Input

Program sering kali membutuhkan beberapa potong informasi dari pengguna. Cukup panggil input() beberapa kali:

python
# multiple_inputs.py
print("Please enter your information:")
print()
 
first_name = input("First name: ")
last_name = input("Last name: ")
age = int(input("Age: "))
city = input("City: ")
 
print()
print("Summary")
print("=======")
print("Name:", first_name, last_name)
print("Age:", age)
print("Location:", city)

Contoh interaksi:

Please enter your information:
 
First name: John
Last name: Smith
Age: 30
City: Boston
 
Summary
=======
Name: John Smith
Age: 30
Location: Boston

Perhatikan bagaimana program memberikan prompt untuk setiap potong informasi secara terpisah. Ini membuat pengguna jelas tentang apa yang perlu mereka masukkan dan dalam urutan apa.

2.4.5) Membuat Prompt yang Informatif

Prompt yang baik membuat programmu lebih mudah digunakan. Berikut beberapa panduan:

Jelas tentang apa yang kamu minta:

python
# Good prompts
name = input("Enter your full name: ")
temperature = float(input("Enter temperature in Fahrenheit: "))
quantity = int(input("How many items do you want to purchase? "))

Sertakan format atau satuan yang diharapkan:

python
# format_prompts.py
date = input("Enter date (MM/DD/YYYY): ")
phone = input("Enter phone number (XXX-XXX-XXXX): ")
price = float(input("Enter price in dollars (without $): "))

Gunakan bahasa yang jelas dan ramah:

python
# friendly_prompts.py
print("Welcome to the Temperature Converter!")
print()
temp = float(input("Please enter a temperature in Fahrenheit: "))

Prompt yang jelas mengurangi kebingungan pengguna dan membuat programmu terlihat lebih profesional.

2.5) Program Sederhana dengan Pola Input-Process-Output

Sebagian besar program mengikuti pola umum yang disebut Input-Process-Output (IPO):

  1. Input: Mengambil data dari pengguna atau sumber lain
  2. Process: Melakukan perhitungan atau transformasi pada data
  3. Output: Menampilkan hasil

Pola ini sangat mendasar sehingga akan kamu gunakan di tak terhitung banyaknya program sepanjang perjalanan belajarmu. Mari kita jelajahi dengan beberapa contoh lengkap.

Input
Get data from user

Process
Calculate or transform

Output
Display results

2.5.1) Contoh: Konverter Suhu

Mari kita buat program lengkap yang mengonversi suhu dari Fahrenheit ke Celsius:

python
# temperature_converter.py
# This program converts a temperature from Fahrenheit to Celsius
# Formula: C = (F - 32) × 5/9
 
print("Temperature Converter")
print("Fahrenheit to Celsius")
print("=" * 30)  # Print a line of equal signs
print()
 
# INPUT: Get temperature from user
fahrenheit = float(input("Enter temperature in Fahrenheit: "))
 
# PROCESS: Convert using the formula
celsius = (fahrenheit - 32) * 5 / 9
 
# OUTPUT: Display the result
print()
print("Result:", fahrenheit, "°F =", celsius, "°C")

Contoh interaksi:

Temperature Converter
Fahrenheit to Celsius
==============================
 
Enter temperature in Fahrenheit: 75
 
Result: 75.0 °F = 23.88888888888889 °C

Perhatikan bagaimana program dengan jelas mengikuti pola IPO:

  • Input: Mengambil suhu Fahrenheit
  • Process: Menerapkan rumus konversi
  • Output: Menampilkan hasil Celsius

Komentar di dalam kode secara eksplisit memberi tanda tiga bagian ini, sehingga struktur program menjadi jelas.

2.5.2) Contoh: Kalkulator Luas Persegi Panjang

Berikut contoh IPO lain yang menghitung luas persegi panjang:

python
# rectangle_area.py
# Calculate the area of a rectangle
# Formula: Area = length × width
 
print("Rectangle Area Calculator")
print("=" * 30)
print()
 
# INPUT: Get dimensions from user
length = float(input("Enter the length: "))
width = float(input("Enter the width: "))
 
# PROCESS: Calculate area
area = length * width
 
# OUTPUT: Display the result
print()
print("A rectangle with length", length, "and width", width)
print("has an area of", area, "square units")

Contoh interaksi:

Rectangle Area Calculator
==============================
 
Enter the length: 5.5
Enter the width: 3.2
 
A rectangle with length 5.5 and width 3.2
has an area of 17.6 square units

2.5.3) Contoh: Kalkulator Total Belanja

Contoh ini menghitung total belanja beserta pajak:

python
# shopping_total.py
# Calculate total cost including tax
 
print("Shopping Total Calculator")
print("=" * 30)
print()
 
# INPUT: Get price and tax rate
price = float(input("Enter item price: $"))
tax_rate = float(input("Enter tax rate (as decimal, e.g., 0.08 for 8%): "))
 
# PROCESS: Calculate tax and total
tax_amount = price * tax_rate
total = price + tax_amount
 
# OUTPUT: Display itemized breakdown
# Note: Comma in print() adds a space after $
print()
print("Purchase Summary")
print("-" * 30)
print("Item price:    $", price)
print("Tax rate:      ", tax_rate * 100, "%")
print("Tax amount:    $", tax_amount)
print("-" * 30)
print("Total:         $", total)

Contoh interaksi:

Shopping Total Calculator
==============================
 
Enter item price: $49.99
Enter tax rate (as decimal, e.g., 0.08 for 8%): 0.08
 
Purchase Summary
------------------------------
Item price:    $ 49.99
Tax rate:       8.0 %
Tax amount:    $ 3.9992
------------------------------
Total:         $ 53.9892

2.6) Debugging Dasar dengan Membaca Pesan Error Sederhana

Bahkan programmer berpengalaman pun membuat kesalahan. Mempelajari cara membaca dan memahami pesan error adalah keterampilan penting yang akan menghemat banyak jam frustrasi. Pesan error Python sebenarnya cukup membantu—mereka memberi tahu apa yang salah dan di mana masalah terjadi.

Istilah "error message" dan "traceback" saling berkaitan tetapi sedikit berbeda: traceback adalah laporan lengkap yang ditampilkan Python ketika error terjadi, termasuk tipe error, deskripsi, dan jalur melalui kode yang mengarah ke error. Error message adalah baris terakhir dari traceback yang menjelaskan apa yang salah. Dalam percakapan sehari-hari, programmer sering menggunakan istilah "error message" untuk menyebut seluruh traceback.

2.6.1) Memahami Pesan Error

Ketika Python menemukan error, ia menampilkan traceback—laporan terperinci tentang apa yang salah. Mari kita lihat contoh sederhana:

python
# error_example.py
print("Starting the program")
print("This line works fine"
print("This line might not be reached")

Ketika kamu mencoba menjalankan ini, Python menampilkan:

  File "error_example.py", line 2
    print("This line works fine"
                                ^
SyntaxError: '(' was never closed

Mari kita uraikan apa yang disampaikan pesan error ini:

  1. Nama file: error_example.py - File tempat error terjadi
  2. Nomor baris: line 2 - Lokasi Python mendeteksi masalah
  3. Cuplikan kode: Menampilkan baris bermasalah dengan tanda ^ yang menunjuk ke lokasi Python menyadari ada masalah
  4. Tipe error: SyntaxError - Jenis error yang terjadi
  5. Deskripsi: '(' was never closed - Penjelasan yang bisa dibaca manusia

Error terjadi karena kita lupa menutup tanda kurung di baris 2. Python mencoba membaca baris berikutnya sebagai bagian dari pernyataan print() yang sama dan menjadi bingung.

2.6.2) Tipe Error Umum bagi Pemula

Mari kita bahas error-error paling umum yang akan kamu temui sebagai pemula dan cara memperbaikinya.

SyntaxError: Invalid Syntax

Ini adalah error yang paling sering muncul bagi pemula. Artinya Python tidak dapat memahami kodenya karena tidak mengikuti aturan grammar Python.

Kurang titik dua:

python
# missing_colon.py
name = input("What is your name? ")
if name == "Alice"  # Missing colon
    print("Hello, Alice!")

Error:

  File "missing_colon.py", line 2
    if name == "Alice"
                     ^
SyntaxError: expected ':'

Catatan: Kita belum mempelajari pernyataan if—ini akan dibahas di Bab 8. Contoh ini hanya menunjukkan seperti apa error-nya.

Tanda kutip tidak berpasangan:

python
# mismatched_quotes.py
message = "Hello, world!'
print(message)

Error:

  File "mismatched_quotes.py", line 1
    message = "Hello, world!'
              ^
SyntaxError: unterminated string literal (detected at line 1)

Error terjadi karena string dimulai dengan tanda kutip ganda (") tetapi diakhiri dengan tanda kutip tunggal ('). Python mengharapkan tipe tanda kutip yang sama di kedua ujung string.

NameError: Name Not Defined

Error ini terjadi ketika kamu mencoba menggunakan variabel yang tidak ada:

python
# name_error.py
print("Starting calculation")
result = total + 10  # 'total' was never created
print(result)

Error:

Traceback (most recent call last):
  File "name_error.py", line 2, in <module>
    result = total + 10
             ^^^^^
NameError: name 'total' is not defined

Python memberi tahu bahwa ia tidak tahu apa itu total karena kamu tidak pernah membuat variabel tersebut. Solusinya adalah mendefinisikan total sebelum menggunakannya:

python
# name_error_fixed.py
print("Starting calculation")
total = 0  # Define the variable first
result = total + 10
print(result)

Penyebab umum NameError:

  • Salah ketik nama variabel (totla alih-alih total)
  • Menggunakan variabel sebelum memberinya nilai
  • Lupa membuat variabel sama sekali

TypeError: Unsupported Operand Type(s)

Error ini terjadi ketika kamu mencoba melakukan operasi pada tipe data yang tidak kompatibel:

python
# type_error.py
age = input("How old are you? ")
next_year = age + 1  # Can't add a number to a string
print("Next year:", next_year)

Error:

Traceback (most recent call last):
  File "type_error.py", line 2, in <module>
    next_year = age + 1
                ~~~~^~~
TypeError: can only concatenate str (not "int") to str

Python memberi tahu bahwa age adalah string (karena input() mengembalikan string), dan kamu tidak bisa menambahkan angka ke string. Solusinya adalah mengonversi input menjadi integer:

python
# type_error_fixed.py
age = int(input("How old are you? "))  # Convert to integer
next_year = age + 1
print("Next year:", next_year)

ValueError: Invalid Literal

Error ini terjadi ketika kamu mencoba mengonversi string menjadi angka, tetapi string tersebut tidak merepresentasikan angka yang valid:

python
# value_error.py
age = int(input("How old are you? "))
print("You are", age, "years old")

Jika pengguna memasukkan teks alih-alih angka:

How old are you? twenty
Traceback (most recent call last):
  File "value_error.py", line 1, in <module>
    age = int(input("How old are you? "))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'twenty'

Python memberi tahu bahwa ia tidak dapat mengonversi string "twenty" menjadi integer. Pengguna harus memasukkan angka seperti 20.

Penting: Saat ini, jika pengguna memasukkan input yang tidak valid, programmu akan crash dengan error. Ini normal untuk program pemula. Di Bab 27, kita akan belajar bagaimana menangani situasi ini dengan baik menggunakan exception handling, sehingga program dapat pulih dari error dan meminta pengguna mencoba lagi.

2.6.3) Membaca Traceback dengan Teliti

Ketika error terjadi, Python menampilkan traceback yang menelusuri error kembali melalui kode. Untuk program sederhana, traceback biasanya pendek:

python
# simple_traceback.py
print("Starting program")
name = input("Enter your name: ")
age = int(input("Enter your age: "))
print("Hello,", name)
print("Next year you'll be", age + 1)

Jika pengguna memasukkan input yang tidak valid untuk age:

Starting program
Enter your name: Alice
Enter your age: abc
Traceback (most recent call last):
  File "simple_traceback.py", line 3, in <module>
    age = int(input("Enter your age: "))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'abc'

Traceback menunjukkan:

  1. Nama file dan nomor baris tempat error terjadi
  2. Baris kode yang menyebabkan masalah
  3. Tipe error dan deskripsinya

Strategi membaca: Mulailah dari bagian bawah traceback dan naik ke atas. Baris terakhir memberi tahu apa yang salah. Baris-baris di atas menunjukkan di mana di dalam kode error itu terjadi.

2.6.4) Strategi Debugging Umum

Ketika kamu menemui error, ikuti langkah-langkah berikut:

1. Baca pesan error dengan saksama

Jangan panik! Pesan error berusaha membantumu. Bacalah dengan lengkap dan coba pahami maksudnya.

2. Perhatikan nomor baris

Pesan error memberi tahu baris mana yang menurut Python bermasalah. Namun, terkadang kesalahan sebenarnya ada di baris sebelumnya. Misalnya, tanda kurung penutup yang hilang di baris 2 mungkin baru terdeteksi saat Python membaca baris 3.

3. Periksa kesalahan umum

  • Tanda kutip hilang atau tidak berpasangan
  • Tanda kurung atau bracket penutup hilang
  • Titik dua hilang (untuk pernyataan yang akan kita pelajari nanti seperti if, for, while)
  • Salah ketik nama variabel
  • Lupa mengonversi input menjadi angka

4. Gunakan print() untuk memeriksa nilai

Jika kamu tidak yakin apa yang salah, tambahkan pernyataan print() untuk melihat nilai variabelmu:

python
# debugging_with_print.py
price = input("Enter price: ")
print("DEBUG: price =", price, "type =", type(price))  # Debugging line
 
tax = price * 0.08  # This will cause an error
print("Tax:", tax)

Baris debug menunjukkan bahwa price adalah string, bukan angka, membantumu menemukan masalah.

5. Comment out kode untuk mengisolasi masalah

Jika kamu memiliki banyak baris dan tidak yakin baris mana yang menyebabkan error, komentari beberapa baris sampai error hilang:

python
# isolating_error.py
name = input("Enter name: ")
# age = int(input("Enter age: "))  # Commented out for testing
# city = input("Enter city: ")  # Commented out for testing
print("Name:", name)

Setelah error hilang, kamu tahu masalah ada di salah satu baris yang dikomentari.

6. Mulai dari versi sederhana

Jika programmu tidak berjalan, sederhanakan ke versi paling dasar:

python
# simplified_version.py
# Start with just the basic structure
print("Program starting")
# Add one feature at a time and test

Setelah versi sederhana berfungsi, tambahkan fitur satu per satu, uji setiap kali menambahkan.

2.6.5) Mencegah Error

Selain debugging, mencegah error sejak awal tentu lebih baik:

Tulis kode secara bertahap (incremental)

Jangan menulis seluruh program lalu baru menjalankannya pertama kali. Tulis beberapa baris, jalankan program, pastikan baris-baris tersebut bekerja, lalu tambahkan lagi. Dengan cara ini, ketika error muncul, kamu tahu error tersebut ada di kode yang baru saja ditambahkan.

python
# incremental_development.py
# Step 1: Get input and test
name = input("Enter name: ")
print("DEBUG: Got name:", name)
 
# Step 2: Add more input and test
# age = int(input("Enter age: "))
# print("DEBUG: Got age:", age)
 
# Step 3: Add processing and test
# ... and so on

Gunakan nama variabel yang deskriptif

Nama variabel yang jelas membantumu menghindari kesalahan:

python
# Clear variable names make errors less likely
user_age = int(input("Enter your age: "))
next_year_age = user_age + 1

Tambahkan komentar untuk menjelaskan logika

Komentar membantumu (dan orang lain) memahami apa yang seharusnya dilakukan kode, sehingga lebih mudah melihat ketika kode melakukan hal yang berbeda:

python
# temperature_with_comments.py
# Get temperature in Fahrenheit from user
fahrenheit = float(input("Enter temperature in Fahrenheit: "))
 
# Convert to Celsius using the standard formula: C = (F - 32) × 5/9
celsius = (fahrenheit - 32) * 5 / 9
 
# Display the result
print(fahrenheit, "°F =", celsius, "°C")

Uji dengan berbagai input

Jangan hanya menguji program sekali. Cobalah berbagai input, termasuk kasus tepi (edge case):

  • Nilai normal: 25, 100
  • Nol: 0
  • Bilangan negatif: -10
  • Bilangan desimal: 3.14
  • Bilangan sangat besar: 1000000

Ini membantumu menemukan masalah sebelum dialami pengguna.

2.6.6) Kapan Harus Meminta Bantuan

Terkadang kamu akan menemui error yang tidak bisa kamu selesaikan sendiri. Sebelum meminta bantuan:

  1. Baca pesan error dengan teliti - Pastikan kamu mengerti apa yang dikatakannya
  2. Cari error tersebut - Salin pesan error (tanpa nama variabel spesifikmu) dan cari secara online. Banyak error yang sudah pernah dialami dan diselesaikan orang lain
  3. Periksa kode dengan saksama - Cari salah ketik, tanda baca yang hilang, dan kesalahan umum
  4. Buat contoh minimal - Sederhanakan kode menjadi versi sekecil mungkin yang masih menghasilkan error

Saat kamu meminta bantuan, sertakan:

  • Pesan error lengkap
  • Kode yang menghasilkan error
  • Apa yang kamu harapkan terjadi
  • Apa yang benar-benar terjadi
  • Apa saja yang sudah kamu coba

Ingat: Error adalah bagian normal dari pemrograman. Setiap programmer, dari pemula sampai ahli, menemui error setiap hari. Bedanya, programmer berpengalaman telah belajar membaca pesan error dengan efisien dan mengenali solusi umum. Kamu akan mengembangkan keterampilan ini seiring latihan.


Kamu sekarang telah mempelajari blok bangunan fundamental pemrograman Python: menampilkan output dengan print(), mendokumentasikan kode dengan komentar, menyimpan data di variabel, mendapatkan input pengguna dengan input(), mengikuti pola input-process-output, dan melakukan debugging terhadap error sederhana.

Konsep-konsep ini menjadi fondasi bagi semua hal lain yang akan kamu pelajari di Python. Di bab berikutnya, kita akan menyelami variabel lebih dalam dan mengeksplorasi tipe data dasar Python, sehingga kamu mendapat pemahaman yang lebih lengkap tentang bagaimana Python menyimpan dan memanipulasi berbagai jenis informasi.

Ringkasan penting dari bab ini:

  • Gunakan print() untuk menampilkan teks dan informasi lain ke pengguna
  • Gunakan komentar (#) untuk menjelaskan kode dan mendokumentasikan pemikiranmu
  • Simpan data di variabel menggunakan assignment (=)
  • Dapatkan input pengguna dengan input() dan konversi ke angka jika diperlukan
  • Susun program menggunakan pola input-process-output
  • Baca pesan error dengan saksama—pesan tersebut berusaha membantumu memperbaiki masalah
  • Tulis kode secara bertahap dan uji sering-sering untuk menangkap error sedini mungkin

Dengan keterampilan ini, kamu sekarang dapat menulis program interaktif yang sederhana namun lengkap. Seiring kamu terus belajar, kamu akan membangun di atas fondasi ini untuk membuat aplikasi yang semakin canggih.

© 2025. Primesoft Co., Ltd.
support@primesoft.ai