Python Cheatsheet — UTS Pemrograman 2
library · file handling · regex · try-except
1. Library — import os & re
Cara import
import os # impor seluruh modul os
import re # impor seluruh modul re
from os import path # impor fungsi spesifik saja
Fungsi os yang sering keluar
[Link]('folder') # True/False — cek folder/file ada?
[Link]('folder') # buat folder baru
[Link]('folder','[Link]') # gabung path → 'folder/[Link]'
[Link]() # path direktori sekarang
✓ [Link]() lebih aman dari nulis 'folder/[Link]' manual — works di Windows & Linux
Pola umum pakai os
folder = 'data_user'
if not [Link](folder):
[Link](folder)
path = [Link](folder, '[Link]')
2. File Handling
Mode file
Mode Kalau file belum ada Kalau file sudah ada
"r" baca ERROR FileNotFoundError Baca isi file
"w" tulis ulang Buat file baru HAPUS semua isi, tulis ulang
"a" append Buat file baru Tambah di bawah, isi lama aman
! Untuk tambah data → selalu pakai 'a', bukan 'w'
Baca file — readlines()
with open(path, 'r') as f:
baris = [Link]() # list, tiap elemen = 1 baris + \n
# readlines vs readline vs read:
[Link]() # → list semua baris: ['Andi|TI\n', 'Budi|SI\n']
[Link]() # → 1 baris saja (string): 'Andi|TI\n'
[Link]() # → seluruh isi file jadi 1 string
! Selalu .strip() dulu sebelum .split() — kalau tidak, \n ikut masuk ke variabel terakhir
Unpack data dari baris file
# Isi baris: 'Andi|TI|85\n'
# Cara 1 — unpack langsung (paling clean)
nama, jurusan, nilai = [Link]().split('|')
# Cara 2 — pakai index
data = [Link]().split('|')
nama = data[0]
jurusan = data[1]
nilai = data[2]
# Cara 3 — loop enumerate (banyak baris)
for i, b in enumerate(baris, start=1):
nama, jurusan, nilai = [Link]().split('|')
print(i, nama, jurusan, nilai)
Tampilkan rapi dengan f-string
print(f"{'No':<4} {'Nama':<12} {'Jurusan':<10} {'Nilai'}")
print('-' * 35)
for i, b in enumerate(baris, start=1):
nama, jurusan, nilai = [Link]().split('|')
print(f"{i:<4} {nama:<12} {jurusan:<10} {nilai}")
# f"{teks:<N}" → rata kiri lebar N karakter
Tulis / append ke file
with open(path, 'a') as f:
[Link](f'Nama: {nama} | HP: {hp}\n')
# Tulis banyak sekaligus
with open(path, 'a') as f:
[Link]([f'{a}|{b}\n' for a, b in data_list])
! Jangan lupa \n di akhir [Link]() — kalau tidak, data berikutnya nyambung 1 baris
3. Regex — re module
Fungsi-fungsi re
Fungsi Kegunaan Contoh
[Link](p, s) Cocokkan dari AWAL string → paling sering [Link](r'^\d+$',
validasi input '123')
[Link](p, s) Cari pola di MANA SAJA dalam string → cocok untuk
[Link](r'\d+',
cari dalam teks
'kodepanjang
42 ok')
[Link](p, s) Ambil SEMUA kemunculan, return list → cocok untuk
[Link](r'\d+',
ekstrak data 'a1 b2 c3')
[Link](p, r, s) Ganti semua yang cocok dengan string lain [Link](r'\s+', '-', 'hello world')
[Link](p,s) Seluruh string harus cocok (seperti match + $ otomatis)
[Link](r'\d{3}', '123')
Contoh penggunaan tiap fungsi
import re
# [Link]() — validasi dari awal
hasil = [Link](r'^[A-Za-z ]{3,}$', 'Andi Saputra')
print(bool(hasil)) # True
# [Link]() — cari angka di dalam kalimat
hasil = [Link](r'\d+', 'NIM saya adalah 2201012')
print([Link]()) # '2201012'
# [Link]() — ambil semua angka
angka = [Link](r'\d+', 'nilai: 85, 90, 78')
print(angka) # ['85', '90', '78']
# [Link]() — ganti spasi ganda dengan 1 spasi
bersih = [Link](r'\s+', ' ', 'Andi Saputra')
print(bersih) # 'Andi Saputra'
x Argumen [Link]() selalu: POLA dulu, STRING belakangan. Jangan kebalik!
Simbol regex yang wajib hafal
Simbol Arti Contoh
\d Angka (0-9) \d{10} = tepat 10 angka
\w Huruf, angka, atau _ \w+ = satu kata
\s Spasi / tab / newline \s+ = satu atau lebih spasi
[A-Za-z] Huruf a-z (huruf saja) [A-Za-z ]{3,} = huruf & spasi min 3
^ Awal string ^08 = harus diawali 08
$ Akhir string \d$ = diakhiri angka
{3,} Minimal 3 kali {3,10} = antara 3 sampai 10
+ 1 atau lebih \d+ = minimal 1 angka
* 0 atau lebih \d* = boleh tidak ada angka
. Karakter apapun a.b = a + apapun + b
✓ Selalu pakai r'...' (raw string) biar backslash tidak bentrok dengan Python
Pola yang sering keluar di soal
r'^[A-Za-z ]{3,}$' # hanya huruf & spasi, min 3
r'^08[0-9]{9,11}$' # nomor HP Indonesia
r'^[\w\.-]+@[\w\.-]+\.\w{2,}$' # email umum
r'^\d{10}$' # tepat 10 digit angka (NIM/NRP)
r'^[A-Z]{2}\d{3}$' # 2 huruf kapital + 3 angka
4. Try-Except
Struktur dasar
try:
# kode yang mungkin error
nilai = int(input('Masukkan angka: '))
except ValueError:
print('Bukan angka!') # tangkap error spesifik
except FileNotFoundError:
print('File tidak ditemukan!') # tangkap error spesifik lain
except Exception as e:
print(f'Error: {e}') # tangkap semua error lain
finally:
print('Blok ini selalu jalan') # ada error atau tidak
✓ Urutan except: yang SPESIFIK dulu, Exception paling bawah
Error yang sering dipakai
Error Kapan terjadi
FileNotFoundError File tidak ditemukan saat dibuka mode 'r'
ValueError Konversi tipe gagal, misal int('abc')
IOError Gagal baca/tulis file
Exception Parent dari semua error — tangkap semuanya
raise — lempar error manual dari fungsi
def validasi_nama(nama):
pola = r'^[A-Za-z ]{3,}$'
if not [Link](pola, nama):
raise Exception('Nama tidak valid!') # lempar error
return nama
# Di main(), raise ditangkap oleh except:
try:
validasi_nama('A') # raise terjadi di sini
except Exception as e:
print(e) # output: Nama tidak valid!
✓ raise di dalam fungsi → error melompat keluar dan ditangkap except di pemanggil fungsi
Try-except per input — POLA YANG BENAR
# SALAH — semua input dalam 1 try
# error di email → semua diulang dari nama
try:
nama = input('Nama: '); validasi_nama(nama)
email = input('Email: '); validasi_email(email)
except Exception as e:
print(e)
# BENAR — try-except terpisah per input
while True:
try:
nama = input('Nama: ')
validasi_nama(nama)
except Exception as e:
print(e); continue # ulang dari nama saja
try:
email = input('Email: ')
validasi_email(email)
except Exception as e:
print(e); continue # ulang dari email saja
simpan_data(nama, email)
if input('Lanjut? (y/n): ') != 'y':
break
5. Kalau Digabung — Urutan Ngerjain Soal
Urutan dari nol
Langkah Yang dikerjain Materi
1 import re, os di baris paling atas Library
2 Buat fungsi validasi tiap field — [Link]() + raise Exception Regex
3 Buat fungsi simpan — cek/buat folder, [Link](), open 'a', [Link]()
File handling + os
4 Buat fungsi baca (kalau diminta) — open 'r', readlines(), strip().split(),
File handling
tampilkan rapi
5 Buat fungsi main — while True, try-except TERPISAH per input, Try-except
panggil validasi & simpan, break
6 Panggil main() di baris paling bawah —
Hubungan antar materi
import re, os # (1) Library: sediain alatnya
def validasi(x): # (2) Regex: cek format input
[Link](pola, x)
raise Exception()
def simpan(x): # (3) File handling: simpan ke disk
[Link](...)
open(path, 'a')
def main(): # (4) Try-except: tangkap raise & error file
try:
validasi(x) # Library = fondasi
except Exception as e: # Regex + File = isi fungsi
print(e) # Try-except = pelindung di main()
Jebakan yang sering bikin salah
Jebakan Yang Benar
Lupa .strip() sebelum .split() [Link]().split('|') — strip dulu selalu
Pakai 'w' bukan 'a' Mode 'a' untuk append, 'w' hapus semua
Argumen [Link] kebalik [Link](POLA, STRING) — pola selalu duluan
Spasi di {3, } Tulis {3,} tanpa spasi
Lupa \n di [Link]() [Link](f'{data}\n')
Semua input dalam 1 try try-except terpisah per input
Lupa panggil simpan_data() Pastikan dipanggil setelah semua validasi lolos
Lupa break di while True if lanjut != 'y': break
Semangat UTS! — cheatsheet ini cukup, yang penting paham alurnya