Belajar bahasa pemrograman sering terasa sulit bukan karena sintaksnya selalu rumit, melainkan karena banyak konsep baru harus dipahami pada waktu yang sama. Python membantu mengurangi beban awal itu dengan sintaks yang relatif ringkas dan mudah dibaca. Namun, kode yang terlihat sederhana tetap perlu dipahami dengan benar agar tidak berhenti pada sekadar menyalin contoh.
Tutorial ini membahas Python dari program pertama hingga fondasi yang diperlukan untuk menulis program kecil secara mandiri. Fokusnya bukan menghafal seluruh sintaks, melainkan memahami bagaimana program menerima data, menyimpan nilai, mengambil keputusan, mengulang pekerjaan, dan memecah logika ke dalam fungsi.
Menyiapkan Python dan cara menjalankan kode
Python dapat dijalankan melalui dua cara umum: secara interaktif menggunakan interpreter atau dari sebuah berkas berekstensi .py. Mode interaktif berguna untuk mencoba ekspresi pendek. Berkas Python lebih sesuai ketika kode mulai memiliki beberapa langkah dan perlu dijalankan kembali.
Setelah Python terpasang, periksa instalasinya melalui terminal atau command prompt dengan perintah berikut:
python --versionPada sebagian sistem, perintah yang digunakan adalah python3:
python3 --versionNama perintah dapat berbeda bergantung pada sistem operasi dan cara instalasi. Jika perintah tidak dikenali, periksa kembali instalasi Python atau konfigurasi PATH, yaitu daftar lokasi yang dicari sistem ketika menjalankan perintah.
Buat berkas bernama hello.py, lalu isi dengan kode berikut:
print("Hello, World!")Jalankan dari direktori tempat berkas tersebut disimpan:
python hello.pyFungsi print() menampilkan nilai ke keluaran standar, biasanya terminal. Teks di dalam tanda kutip disebut string. Tanda kutip bukan bagian dari teks yang ditampilkan; tanda tersebut memberi tahu Python bahwa isi di dalamnya adalah data bertipe teks.
Program pertama tidak perlu mengesankan. Tujuannya adalah memastikan Anda memahami hubungan antara kode yang ditulis, cara program dijalankan, dan keluaran yang dihasilkan.
Memahami sintaks dan indentasi
Python menggunakan indentasi untuk menandai blok kode. Indentasi biasanya dibuat dengan spasi. Konsistensi lebih penting daripada jumlah spasi tertentu, tetapi kode dalam satu blok harus memiliki tingkat indentasi yang sesuai.
Perhatikan contoh berikut:
umur = 20
if umur >= 18:
print("Dewasa")Titik dua setelah kondisi menandai bahwa akan ada blok kode. Baris print() menjorok ke dalam sehingga menjadi bagian dari blok if. Jika indentasi dihapus atau tidak konsisten, Python dapat menghasilkan kesalahan sintaks atau kesalahan indentasi.
Python juga mendukung komentar satu baris. Komentar dimulai dengan tanda pagar dan tidak dieksekusi sebagai instruksi:
# Menampilkan pesan kepada pengguna
print("Halo")Gunakan komentar untuk menjelaskan alasan atau konteks yang belum jelas dari kode. Komentar yang hanya mengulang isi kode, seperti total = total + 1 # menambah total, biasanya tidak banyak membantu.
Variabel dan tipe data
Variabel adalah nama yang merujuk pada sebuah nilai. Dalam Python, Anda tidak perlu mendeklarasikan tipe variabel secara terpisah sebelum memberi nilai. Tipe ditentukan dari nilai yang diberikan pada saat program berjalan.
nama = "Rina"
umur = 21
aktif = TrueContoh tersebut menggunakan tiga tipe data dasar: str untuk teks, int untuk bilangan bulat, dan bool untuk nilai benar atau salah. Python juga memiliki tipe float untuk bilangan desimal.
harga = 12500
suhu = 27.5
tersedia = FalseFungsi type() dapat digunakan untuk memeriksa tipe sebuah nilai:
print(type(nama))
print(type(umur))
print(type(suhu))Nama variabel sebaiknya menjelaskan data yang disimpannya. Gunakan jumlah_produk daripada nama singkat seperti x jika variabel tersebut menyimpan jumlah produk. Python membedakan huruf besar dan kecil, sehingga nama dan Nama adalah dua nama yang berbeda.
Operasi dasar
Operator aritmetika digunakan untuk melakukan perhitungan. Operator yang umum adalah penjumlahan +, pengurangan -, perkalian *, pembagian /, pembagian bulat //, sisa bagi %, dan perpangkatan **.
a = 10
b = 3
print(a + b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)Operator pembanding menghasilkan nilai boolean. Contohnya adalah == untuk membandingkan kesamaan, != untuk ketidaksamaan, >, <, >=, dan <=. Perhatikan bahwa = digunakan untuk memberi nilai, sedangkan == digunakan untuk membandingkan nilai.
nilai = 75
lulus = nilai >= 70
print(lulus)Kesalahan memakai = ketika ingin membandingkan adalah salah satu kesalahan awal yang umum. Biasakan membaca operator sesuai perannya sebelum menjalankan program.
Menggabungkan dan memformat teks
String dapat digabungkan dengan operator +, tetapi cara tersebut kurang nyaman ketika banyak nilai perlu dimasukkan ke dalam kalimat. Python menyediakan f-string untuk menyisipkan ekspresi ke dalam teks.
nama = "Dito"
umur = 19
pesan = f"Nama saya {nama} dan umur saya {umur} tahun."
print(pesan)F-string diawali huruf f sebelum tanda kutip. Bagian di dalam kurung kurawal dievaluasi sebagai ekspresi. Teknik ini berguna untuk menampilkan hasil perhitungan, status, atau informasi dari variabel.
String memiliki operasi dan metode bawaan, misalnya:
teks = " Python Dasar "
print(teks.strip())
print(teks.lower())
print(teks.upper())
print(teks.replace("Dasar", "Pemrograman"))Metode strip() menghapus spasi di awal dan akhir, sedangkan lower() dan upper() mengubah kapitalisasi. Pemanggilan metode menghasilkan nilai baru; pada contoh tersebut, nilai variabel teks tidak berubah karena hasilnya tidak disimpan kembali.
Menerima input dari pengguna
Fungsi input() membaca masukan dari pengguna melalui terminal. Nilai yang dikembalikan oleh input() selalu berupa string, termasuk ketika pengguna mengetik angka.
nama = input("Masukkan nama: ")
print(f"Halo, {nama}!")Jika masukan perlu digunakan sebagai angka, konversikan secara eksplisit:
umur = int(input("Masukkan umur: "))
print(umur + 1)Konversi dengan int() akan gagal jika teks yang dimasukkan bukan representasi bilangan bulat. Untuk bilangan desimal, gunakan float(). Program yang menerima masukan dari pengguna sebaiknya mengantisipasi masukan yang tidak sesuai, terutama ketika program mulai dipakai di luar latihan.
Mengatur alur dengan kondisi
Struktur if, elif, dan else digunakan ketika program perlu memilih tindakan berdasarkan kondisi. elif berarti kondisi alternatif yang diperiksa jika kondisi sebelumnya tidak terpenuhi.
nilai = 82
if nilai >= 80:
predikat = "A"
elif nilai >= 70:
predikat = "B"
else:
predikat = "C"
print(predikat)Kondisi dapat digabungkan menggunakan and, or, dan not. Gunakan tanda kurung jika susunan kondisi menjadi panjang agar maksud kode lebih mudah dibaca.
umur = 25
memiliki_kartu = True
if umur >= 18 and memiliki_kartu:
print("Akses diberikan")
else:
print("Akses ditolak")Nilai tertentu juga dapat diperlakukan sebagai benar atau salah dalam konteks kondisi. Namun, untuk kode pemula, perbandingan eksplisit sering lebih mudah dipahami daripada mengandalkan perilaku tersebut secara tidak sengaja.
Perulangan dengan for dan while
Perulangan digunakan ketika instruksi perlu dijalankan berulang. Perulangan for sering digunakan untuk memproses setiap elemen dari sebuah koleksi atau rentang angka.
for angka in range(1, 4):
print(angka)Fungsi range(1, 4) menghasilkan urutan yang dimulai dari 1 dan berhenti sebelum 4, sehingga angka yang dicetak adalah 1, 2, dan 3. Batas akhir yang tidak termasuk sering menjadi sumber kesalahan bagi pemula.
Perulangan while berjalan selama kondisinya bernilai benar:
hitung = 3
while hitung > 0:
print(hitung)
hitung -= 1
print("Selesai")Pastikan nilai yang digunakan dalam kondisi while dapat berubah. Jika kondisi selalu benar dan tidak ada instruksi break, program dapat berjalan tanpa berhenti.
break menghentikan perulangan, sedangkan continue melewati sisa instruksi pada iterasi saat ini dan melanjutkan ke iterasi berikutnya.
for angka in range(1, 6):
if angka == 3:
continue
print(angka)Struktur data dasar
List
List menyimpan kumpulan nilai dalam urutan tertentu dan ditulis menggunakan kurung siku. List dapat diubah setelah dibuat.
buah = ["apel", "mangga", "jeruk"]
print(buah[0])
buah.append("pisang")
print(len(buah))Indeks dimulai dari 0, sehingga elemen pertama berada pada indeks 0. Fungsi len() mengembalikan jumlah elemen. Metode append() menambahkan elemen ke akhir list.
List dapat diproses dengan perulangan:
harga = [10000, 15000, 12000]
total = 0
for nilai in harga:
total += nilai
print(total)Tuple
Tuple mirip dengan list, tetapi umumnya digunakan untuk sekumpulan nilai yang tidak perlu diubah. Tuple ditulis menggunakan tanda kurung.
koordinat = (10, 20)
print(koordinat[0])Pilihan antara list dan tuple sebaiknya mengikuti kebutuhan program. Jika data perlu ditambah atau dihapus, list lebih sesuai. Jika data dimaksudkan tetap, tuple dapat menyatakan maksud tersebut dengan lebih jelas.
Dictionary
Dictionary menyimpan pasangan kunci dan nilai. Struktur ini cocok ketika data perlu diakses berdasarkan nama atribut, bukan posisi.
pengguna = {
"nama": "Sari",
"umur": 24,
"aktif": True
}
print(pengguna["nama"])
pengguna["umur"] = 25Akses menggunakan kunci yang tidak tersedia dapat menghasilkan KeyError. Metode get() dapat digunakan ketika nilai bawaan diperlukan jika kunci belum ada:
email = pengguna.get("email", "belum diisi")
print(email)Set
Set menyimpan nilai unik dan berguna ketika keanggotaan atau penghapusan duplikasi lebih penting daripada urutan.
kategori = {"python", "linux", "python"}
print(kategori)Jangan mengandalkan set untuk kebutuhan yang memerlukan urutan elemen tertentu. Gunakan struktur data yang sesuai dengan kebutuhan data dan operasi yang akan dilakukan.
Membuat fungsi
Fungsi mengelompokkan instruksi yang memiliki tujuan tertentu. Fungsi membantu menghindari pengulangan kode dan membuat program lebih mudah diuji secara terpisah.
def sapa(nama):
return f"Halo, {nama}!"
pesan = sapa("Bima")
print(pesan)Kata kunci def digunakan untuk mendefinisikan fungsi. Parameter nama menerima nilai dari pemanggil. Pernyataan return mengembalikan hasil. Fungsi tanpa return secara implisit mengembalikan nilai None.
Fungsi dapat memiliki nilai bawaan:
def tampilkan_status(nama, aktif=True):
if aktif:
return f"{nama} aktif"
return f"{nama} tidak aktif"
print(tampilkan_status("Nadia"))
print(tampilkan_status("Nadia", False))Usahakan satu fungsi memiliki tanggung jawab yang jelas. Fungsi yang sekaligus membaca input, melakukan banyak perhitungan, menulis berkas, dan mencetak hasil akan lebih sulit dipahami dibanding beberapa fungsi kecil dengan peran yang terpisah.
Menangani error dengan try dan except
Kesalahan saat program berjalan disebut exception. Contohnya, konversi teks yang bukan angka ke int dapat menimbulkan ValueError. Blok try dan except memungkinkan program menangani kondisi tersebut secara terkendali.
teks = input("Masukkan angka: ")
try:
angka = int(teks)
print(f"Hasil: {angka * 2}")
except ValueError:
print("Masukan harus berupa angka bulat.")Tangkap jenis exception yang memang dapat ditangani. Menggunakan except Exception untuk semua kasus dapat menyembunyikan kesalahan pemrograman dan menyulitkan pencarian akar masalah.
Penanganan error bukan berarti semua kesalahan harus diabaikan. Pesan error sebaiknya memberi informasi yang dapat ditindaklanjuti, sedangkan detail teknis dapat dicatat dengan mekanisme logging ketika program sudah lebih besar.
Mengimpor modul dan membagi kode
Modul adalah berkas Python yang dapat digunakan dari berkas lain. Python menyediakan modul bawaan untuk berbagai kebutuhan umum. Sebagai contoh, modul math menyediakan fungsi dan konstanta matematika.
import math
print(math.sqrt(25))Dengan import, nama modul diakses melalui prefiks modul. Anda juga dapat memberikan alias untuk nama yang panjang, tetapi gunakan alias yang mudah dikenali dan tidak membingungkan pembaca.
Membagi program ke beberapa modul membuat setiap berkas lebih terfokus. Hindari menjalankan logika utama secara otomatis ketika sebuah modul hanya dimaksudkan untuk menyediakan fungsi. Pola berikut memisahkan definisi fungsi dari bagian yang dijalankan ketika berkas tersebut dieksekusi langsung:
def main():
print("Program dijalankan")
if __name__ == "__main__":
main()Kondisi tersebut membedakan dua situasi: berkas dijalankan langsung atau diimpor oleh berkas lain. Pemahaman ini akan berguna ketika latihan mulai berkembang menjadi proyek dengan beberapa berkas.
Lingkup variabel dan kebiasaan menulis kode
Variabel yang dibuat di dalam fungsi biasanya hanya tersedia di dalam fungsi tersebut. Ini disebut lingkup lokal. Variabel di luar fungsi berada pada lingkup yang berbeda. Membatasi perubahan terhadap variabel global membantu mengurangi hubungan tersembunyi antarbagian program.
def hitung_luas(panjang, lebar):
luas = panjang * lebar
return luas
hasil = hitung_luas(5, 4)
print(hasil)Dalam contoh tersebut, luas adalah variabel lokal. Pemanggil fungsi tidak perlu mengetahui bagaimana nilai itu dihitung; ia hanya perlu memberikan parameter dan menerima hasil.
Gunakan nama yang jelas, pertahankan fungsi tetap berukuran wajar, dan jalankan kode sesering mungkin saat menambah perubahan. Kesalahan yang ditemukan segera biasanya lebih mudah dilacak daripada kesalahan yang baru muncul setelah banyak bagian ditulis.
Untuk latihan awal, buat program kecil yang memiliki input, pemrosesan, dan output. Contoh ilustratifnya adalah program yang menerima daftar nilai, menghitung total, lalu menampilkan rata-rata. Saat mengerjakannya, pecah masalah menjadi fungsi seperti membaca data, menghitung total, dan menampilkan hasil. Jangan menyalin solusi sebelum mencoba menulis alurnya sendiri.
Urutan belajar setelah dasar Python
Setelah memahami konsep di atas, lanjutkan dengan membaca dan menulis berkas, penggunaan lingkungan virtual, pengujian sederhana, pemrograman berorientasi objek, serta pengelolaan dependensi. Pelajari setiap topik melalui program kecil, bukan hanya melalui definisi.
Ketika menemukan error, baca baris terakhir pesan error terlebih dahulu, lalu periksa baris kode yang ditunjukkan. Tanyakan tiga hal: nilai apa yang masuk, tipe data apa yang digunakan, dan pada langkah mana hasil mulai berbeda dari yang diharapkan. Kebiasaan ini membangun kemampuan debugging yang berlaku di banyak bahasa pemrograman.
Praktik yang dapat langsung dilakukan adalah membuat satu berkas latihan per konsep, menulis ulang contoh tanpa melihat referensi, lalu mengubah satu bagian untuk menguji pemahaman. Misalnya, ubah kondisi nilai kelulusan, tambahkan validasi input, atau gunakan dictionary untuk menyimpan data. Perubahan kecil semacam itu memaksa Anda memahami kode, bukan sekadar mengingat bentuknya.
Ambil satu masalah sederhana yang dekat dengan pekerjaan atau rutinitas Anda, lalu tulis spesifikasinya dalam kalimat pendek. Tentukan input, output, aturan kondisi, dan kemungkinan kesalahan sebelum membuat kode. Setelah program berjalan, rapikan nama variabel dan pindahkan logika berulang ke fungsi. Dengan alur tersebut, Hello World berubah menjadi latihan berpikir komputasional yang dapat dikembangkan secara bertahap.




