Search

Python adalah bahasa pemrograman yang powerful dan fleksibel. Di tingkat menengah, kita akan mempelajari konsep-konsep yang lebih advanced untuk meningkatkan skill pemrogramanmu. Berikut penjelasan detail untuk setiap materi:


1. Pemahaman Mendalam tentang List Comprehension dan Generator
List Comprehension

List comprehension adalah cara singkat dan elegan untuk membuat list di Python. Ini menggantikan penggunaan loop for yang panjang dengan sintaks yang lebih ringkas.

Contoh:

# Membuat list kuadrat dari 1 sampai 5
numbers = [1, 2, 3, 4, 5]
squared = [x**2 for x in numbers]
print(squared)  # Output: [1, 4, 9, 16, 25]

Penjelasan:

  • x**2 adalah ekspresi yang dieksekusi untuk setiap elemen x dalam numbers.

  • for x in numbers adalah loop yang mengiterasi setiap elemen dalam numbers.

Keuntungan:

  • Kode lebih ringkas dan mudah dibaca.

  • Performa lebih cepat dibanding menggunakan loop for biasa.


Generator

Generator mirip dengan list comprehension, tetapi menggunakan tanda kurung () dan bersifat lazy evaluation (hanya menghasilkan nilai saat dibutuhkan). Ini sangat berguna untuk menghemat memori saat bekerja dengan data besar.

Contoh:

# Membuat generator untuk kuadrat dari 1 sampai 5
squared_gen = (x**2 for x in numbers)
for num in squared_gen:
    print(num)  # Output: 1, 4, 9, 16, 25

Penjelasan:

  • Generator tidak menyimpan semua nilai di memori sekaligus, melainkan menghasilkan nilai satu per satu saat diiterasi.

  • Cocok untuk data yang besar atau infinite sequences.


2. Manipulasi String: Metode dan Fungsi String yang Berguna

String adalah tipe data yang sangat sering digunakan. Python menyediakan banyak metode bawaan untuk memanipulasi string.

Contoh Metode String:

text = "  Hello, World!  "
# Menghapus spasi di awal dan akhir
print(text.strip())  # Output: "Hello, World!"
# Mengubah ke huruf kecil
print(text.lower())  # Output: "  hello, world!  "
# Mengganti substring
print(text.replace("H", "J"))  # Output: "  Jello, World!  "
# Memisahkan string berdasarkan delimiter
print(text.split(","))  # Output: ["  Hello", " World!  "]

Fungsi String yang Berguna:

  • len(): Menghitung panjang string.

  • str(): Mengubah objek lain menjadi string.

  • join(): Menggabungkan list string menjadi satu string.


3. Bekerja dengan Library Standar Python

Python memiliki banyak library standar yang siap digunakan. Berikut beberapa yang sering dipakai:

os

Library os digunakan untuk berinteraksi dengan sistem operasi.

import os
print(os.getcwd())  # Menampilkan direktori kerja saat ini
sys

Library sys memberikan akses ke variabel dan fungsi yang berhubungan dengan interpreter Python.

import sys
print(sys.version)  # Menampilkan versi Python
datetime

Library datetime digunakan untuk mengelola tanggal dan waktu.

from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # Format tanggal dan waktu
math

Library math menyediakan fungsi matematika tingkat lanjut.

import math
print(math.sqrt(16))  # Output: 4.0

4. Pemrograman Berorientasi Objek (OOP) di Python

OOP adalah paradigma pemrograman yang menggunakan objek dan class untuk mengorganisasi kode.

Class dan Object

Class adalah blueprint untuk membuat objek. Objek adalah instance dari class.

class Dog:
    def __init__(self, name):
        self.name = name
    def bark(self):
        return "Woof!"

my_dog = Dog("Buddy")
print(my_dog.bark())  # Output: Woof!
Inheritance

Inheritance memungkinkan class baru (child class) mewarisi atribut dan metode dari class lain (parent class).

class Bulldog(Dog):
    def run(self):
        return "Running slowly!"

my_bulldog = Bulldog("Max")
print(my_bulldog.bark())  # Output: Woof!
print(my_bulldog.run())   # Output: Running slowly!
Polymorphism

Polymorphism memungkinkan objek berbeda merespon metode yang sama dengan cara yang berbeda.

def animal_sound(animal):
    print(animal.bark())

animal_sound(my_dog)  # Output: Woof!

5. Pengenalan ke Regular Expression (Regex) di Python

Regex digunakan untuk pencocokan pola dalam teks. Library re di Python menyediakan fungsi untuk bekerja dengan regex.

Contoh:

import re
text = "Python 3.10 was released on October 4, 2021"
pattern = r"\d+"  # Mencari semua digit
matches = re.findall(pattern, text)
print(matches)  # Output: ['3', '10', '4', '2021']

6. Bekerja dengan JSON

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan.

Parsing JSON

Mengubah string JSON menjadi objek Python.

import json
data = '{"name": "John", "age": 30}'
parsed = json.loads(data)
print(parsed["name"])  # Output: John
Serialisasi ke JSON

Mengubah objek Python menjadi string JSON.

data = {"name": "John", "age": 30}
json_data = json.dumps(data)
print(json_data)  # Output: {"name": "John", "age": 30}

7. Membuat dan Mengelola Virtual Environment

Virtual environment memungkinkan kamu mengisolasi dependencies proyek.

Cara Membuat:

python -m venv myenv

Cara Mengaktifkan:

  • Windows: myenv\Scripts\activate

  • macOS/Linux: source myenv/bin/activate

Cara Nonaktifkan:

deactivate

8. Pengenalan ke Unit Testing

Unit testing memastikan kode berfungsi dengan benar.

unittest
import unittest
def add(a, b):
    return a + b

class TestMath(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)

unittest.main()
pytest

Install pytest:

pip install pytest

Buat file test_sample.py:

def test_add():
    assert add(2, 3) == 5

Jalankan:

pytest test_sample.py

9. Manajemen Package dengan Pip
  • Install package: pip install requests

  • Update package: pip install --upgrade requests

  • Hapus package: pip uninstall requests


10. Menggunakan Lambda, Map, Filter, dan Reduce
Lambda

Fungsi anonim yang bisa didefinisikan dalam satu baris.

square = lambda x: x**2
print(square(5))  # Output: 25
Map

Menerapkan fungsi ke setiap item dalam iterable.

numbers = [1, 2, 3]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # Output: [1, 4, 9]
Filter

Menyaring item dalam iterable berdasarkan kondisi.

evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # Output: [2]
Reduce

Mengurangi iterable menjadi satu nilai.

from functools import reduce
total = reduce(lambda x, y: x + y, numbers)
print(total)  # Output: 6