Aplikasi Performa Tinggi dan Multiguna menggunakan Python/Django 🐍

Modul buku panduan untuk CPPD (Certified Profesional Python and Django)

Deadline mepet? Butuh performa tinggi? Hemat resource? Kemudahan development dan onboarding? Python/Django bisa jadi pilihan.

Edisi: 30 Oktober 2024

Requirement

Hardware

Software

Pengantar Pengembangan Web

Domain of Service

Session State Management

Source Code Management

Git SCM

Dasar Git

Git Clone

Git Checkout

Git Add

Git Commit

Git Push

Git Pull

Merge/Pull Request

Git Rebase

Git Cherry Pick

Pengantar Web Development: HTML, CSS, dan JavaScript

Dalam pengembangan web, terdapat tiga teknologi utama yang digunakan untuk membuat halaman web menjadi dinamis dan interaktif: HTML, CSS, dan JavaScript.

HTML (HyperText Markup Language)

HTML adalah fondasi dari setiap halaman web. Fungsinya adalah untuk menyusun struktur dan konten halaman, seperti:

  • Teks
  • Gambar
  • Tautan
  • Tabel
  • Berbagai elemen lainnya

Ibaratnya, HTML adalah kerangka atau tulang dari sebuah website yang membentuk pondasi dasar bagaimana konten ditampilkan.

CSS (Cascading Style Sheets)

CSS berfungsi untuk mengatur tampilan atau gaya visual dari halaman web yang sudah dibangun dengan HTML. Dengan CSS, kita bisa mengubah:

  • Warna elemen
  • Tata letak halaman
  • Ukuran dan font teks
  • Elemen visual lainnya

Jika HTML adalah kerangka, CSS adalah pakaian yang membuat tampilan website menjadi lebih menarik dan estetis.

JavaScript

JavaScript adalah bahasa pemrograman yang menambahkan interaktivitas pada halaman web. Dengan JavaScript, kita bisa:

  • Membuat tombol interaktif
  • Menambahkan animasi yang hidup
  • Melakukan validasi form
  • Mengambil dan menampilkan data secara dinamis tanpa perlu memuat ulang halaman

JavaScript memberi kehidupan pada website, memungkinkan pengguna untuk berinteraksi dengan elemen-elemen di dalamnya.

Analogi Web Development

Berikut adalah analogi sederhana untuk memahami hubungan antara HTML, CSS, dan JavaScript dalam pengembangan web:

analogi

Dalam analogi ini:

  • HTML digambarkan sebagai kerangka tulang.
  • CSS sebagai tampilan luar yang memperindah.
  • JavaScript sebagai otak dan saraf yang memberikan fungsionalitas.

Apa itu HTML?

HTML (HyperText Markup Language) adalah bahasa markup yang digunakan untuk membuat struktur halaman web. HTML bukanlah bahasa pemrograman, melainkan bahasa yang digunakan untuk memberikan struktur dan identifikasi pada elemen-elemen halaman web.

Struktur Dasar HTML

Dokumen HTML selalu dimulai dengan deklarasi , diikuti dengan elemen-elemen dasar berikut:

<!DOCTYPE html>
<html>
  <head>
    <title>Judul Halaman</title>
  </head>
  <body>
    <h1>Selamat Datang di HTML</h1>
    <p>Ini adalah paragraf pertama di halaman web saya.</p>
  </body>
</html>

Penjelasan Struktur:

  • <!DOCTYPE html>: Menandakan bahwa dokumen ini menggunakan HTML5.
  • <html>: Elemen utama yang membungkus seluruh isi halaman.
  • <head>: Bagian yang berisi informasi meta, link ke file eksternal (CSS, JavaScript), dan judul halaman yang muncul di tab browser.
  • <title>: Judul yang muncul di tab browser.
  • <body>: Berisi konten utama yang akan ditampilkan di halaman web seperti teks, gambar, tautan, dan lain-lain.

Elemen Dasar HTML

Berikut adalah beberapa elemen HTML dasar yang sering digunakan:

  • Heading Heading digunakan untuk membuat judul atau subjudul pada halaman. Tersedia enam tingkat heading, dari <h1> (paling penting) hingga <h6> (paling kecil).
<h1>Judul Utama</h1>
<h2>Subjudul</h2>
<h3>Sub-subjudul</h3>
  • Paragraf Paragraf dalam HTML dibuat menggunakan elemen <p>.
<p>Ini adalah contoh paragraf di HTML.</p>
  • Tautan (Link) Tautan dibuat menggunakan elemen <a>. Atribut href menentukan URL tujuan.
<a href="https://www.example.com">Kunjungi Example</a>
  • Gambar Untuk menambahkan gambar, gunakan elemen <img> dengan atribut src untuk menentukan lokasi gambar, dan alt sebagai teks alternatif jika gambar tidak bisa ditampilkan.
<img src="gambar.jpg" alt="Deskripsi gambar">
  • list HTML menyediakan dua jenis list:

Daftar berurutan menggunakan <ol> (ordered list). Daftar tidak berurutan menggunakan <ul> (unordered list).

<!-- Daftar berurutan -->
<ol>
  <li>Item pertama</li>
  <li>Item kedua</li>
</ol>

<!-- Daftar tidak berurutan -->
<ul>
  <li>Item pertama</li>
  <li>Item kedua</li>
</ul>
  • Tabel HTML juga mendukung pembuatan tabel menggunakan elemen <table>, <tr> (baris), <th> (header), dan <td> (data).
<table>
  <tr>
    <th>Nama</th>
    <th>Umur</th>
  </tr>
  <tr>
    <td>Ana</td>
    <td>23</td>
  </tr>
  <tr>
    <td>Budi</td>
    <td>30</td>
  </tr>
</table>

Atribut HTML

Setiap elemen HTML bisa memiliki atribut yang memberikan informasi tambahan. Beberapa atribut umum adalah:

<p id="paragraf1" class="paragraf-utama">Ini adalah paragraf dengan id dan class.</p>

Komentar di HTML

Komentar digunakan untuk menambahkan catatan atau deskripsi pada kode HTML tanpa ditampilkan di browser.

<!-- Ini adalah komentar -->

Form

HTML juga memungkinkan pembuatan formulir untuk mengumpulkan input pengguna. Formulir menggunakan elemen <form>, dan elemen-elemen input seperti <input>, <textarea>, dan <button>.

<form action="/submit" method="POST">
  <label for="nama">Nama:</label>
  <input type="text" id="nama" name="nama">
  
  <label for="email">Email:</label>
  <input type="email" id="email" name="email">

  <button type="submit">Kirim</button>
</form>

Apa itu CSS?

CSS (Cascading Style Sheets) adalah bahasa yang digunakan untuk mengatur tampilan dan tata letak dari halaman web. CSS bekerja bersama dengan HTML untuk memperindah elemen-elemen yang sudah dibentuk, seperti warna, ukuran, posisi, dan tipografi. Dengan CSS, Anda dapat membuat halaman web yang lebih menarik, teratur, dan mudah dibaca.

Cara Menggunakan CSS

Ada tiga cara untuk menyisipkan CSS ke dalam dokumen HTML:

  • Inline CSS

    CSS dapat ditambahkan langsung ke dalam elemen HTML menggunakan atribut style. Ini adalah cara yang paling sederhana, tetapi tidak disarankan untuk proyek besar karena sulit dikelola.

    <p style="color: red;">Ini adalah teks berwarna merah.</p>
    
  • Internal CSS

    Internal CSS ditulis di dalam elemen <style> yang ditempatkan di dalam bagian <head> dari dokumen HTML. Ini biasanya digunakan jika gaya hanya diterapkan pada satu halaman.

    <head>
        <style>
            p {
                color: blue;
            }
        </style>
    </head>
    
  • External CSS

    External CSS ditulis dalam file terpisah dengan ekstensi .css, dan dihubungkan ke dokumen HTML menggunakan elemen <link>. Ini adalah cara terbaik karena memisahkan konten HTML dan desain, sehingga lebih mudah dikelola.

    <head>
        <link rel="stylesheet" href="styles.css">
    </head>
    

Selektor CSS

Selektor digunakan untuk memilih elemen HTML yang akan diberi gaya. Beberapa selektor umum adalah:

  • Selektor Elemen Memilih elemen berdasarkan tag-nya.

    p {
        color: green;
    }
    
  • Selektor ID Memilih elemen berdasarkan atribut id. Selektor ID diawali dengan tanda #.

    #judul {
        font-size: 24px;
        font-weight: bold;
    }
    
    <h1 id="judul">Selamat Datang!</h1>
    
  • Selektor class Memilih elemen berdasarkan atribut class. Selektor kelas diawali dengan tanda ..

    .teks-besar {
        font-size: 18px;
    }
    
    <p class="teks-besar">Ini adalah paragraf dengan teks besar.</p>
    
  • Nama warna

    h1 {
        color: red;
    }
    
  • Kode hexadecimal

    h1 {
        color: #ff0000;
    }
    
  • RGB (Red, Green, Blue) Karena warna dasar red, green, Blue

    h1 {
        color: rgb(255, 0, 0);
    }
    
  • HSL (Hue, Saturation, Lightness)

    • Hue (H) – Hue atau rona adalah warna utama yang ditentukan dalam derajat, dengan rentang 0–360. Setiap nilai hue mewakili warna yang berbeda, misalnya:

      • 0° adalah merah,
      • 120° adalah hijau,
      • 240° adalah biru.
    • Saturation (S) – Saturasi adalah intensitas warna, dinyatakan dalam persentase (0% hingga 100%). Semakin tinggi nilai saturasi, semakin “hidup” atau jenuh warna tersebut. Saturasi 0% menghasilkan warna abu-abu, sedangkan 100% memberikan warna penuh.

    • Lightness (L) – Lightness atau kecerahan adalah seberapa terang atau gelap warna, juga dalam persentase (0% hingga 100%). Nilai 0% memberikan warna hitam, 50% memberikan warna asli, dan 100% menghasilkan warna putih.

    color: hsl(240, 100%, 50%);
    
  1. font-family

    Menentukan jenis font yang akan digunakan, misalnya:

    font-family: 'Arial', sans-serif;
    
  2. font-size

    Menetapkan ukuran teks. Contoh penggunaan

    font-size: 16px;
    
  3. font-weight

    Menentukan ketebalan font, seperti normal, bold, atau nilai numerik (100 hingga 900). Misalnya:

    font-weight: bold;
    
  4. font-style

    Mengatur gaya font seperti miring (italic) atau normal (normal):

    font-style: italic;
    
  5. text-transform

    Mengontrol perubahan huruf besar-kecil, seperti uppercase, lowercase, atau capitalize:

    text-transform: uppercase;
    
  6. letter-spacing dan word-spacing

    Mengatur jarak antar huruf atau kata:

    letter-spacing: 1px;
    word-spacing: 2px;
    
  7. line-height

    Mengatur jarak antar baris teks, yang penting untuk keterbacaan:

    line-height: 1.5;
    
  1. text-align

    Menentukan perataan teks, seperti:

    • left: rata kiri
    • right: rata kanan
    • center: rata tengah
    • justify: meratakan teks ke kiri dan kanan
    text-align: center;
    
  2. text-decoration

    Menambahkan garis pada teks, misalnya:

    • underline: garis bawah
    • line-through: garis tengah
    • overline: garis di atas teks
    • none: tanpa garis
    text-decoration: underline;
    
  3. text-indent

    Mengatur jarak indentasi (tab) pada awal paragraf pertama:

    text-indent: 20px;
    
  1. background-color

    Menentukan warna latar belakang elemen. Bisa menggunakan nilai warna seperti nama warna, kode hex, RGB, atau HSL.

    background-color: #f0f0f0;
    
  2. background-image

    Menambahkan gambar sebagai latar belakang. Gunakan URL gambar dalam fungsi url():

    background-image: url('image.jpg');
    
  3. background-repeat

    Menentukan apakah gambar latar akan diulang:

    • repeat: gambar diulang di seluruh elemen
    • no-repeat: gambar ditampilkan sekali saja
    • repeat-x: gambar diulang hanya secara horizontal
    • repeat-y: gambar diulang hanya secara vertikal
    background-repeat: no-repeat;
    
  4. background-position

    Menentukan posisi gambar latar di dalam elemen. Posisi bisa diatur dengan kata kunci (seperti top, center, bottom) atau dengan nilai persentase/piksel.

    background-position: center;
    
  5. background-size

    Mengatur ukuran gambar latar:

    • cover: gambar menutupi seluruh elemen
    • contain: gambar menyesuaikan dengan elemen tanpa terpotong
    • Nilai khusus (misalnya 100px 200px) untuk menentukan lebar dan tinggi gambar
    background-size: cover;
    
  6. background-attachment

    Menentukan apakah background akan tetap atau bergulir dengan konten:

    • scroll: background bergerak saat pengguna menggulir halaman
    • fixed: background tetap di tempat
    • local: background bergulir hanya di dalam elemen konten
    background-attachment: fixed;
    
  7. background-blend-mode

    Mengontrol bagaimana warna atau gambar latar belakang berbaur (blend) satu sama lain jika ada lebih dari satu lapisan. Beberapa mode seperti multiply, screen, overlay, atau darken bisa digunakan untuk menciptakan efek visual.

    background-blend-mode: multiply;
    
  1. :hover – Diterapkan saat pengguna mengarahkan kursor ke elemen

    button:hover {
        background-color: blue;
        color: white;
    }
    
  2. :focus – Diterapkan saat elemen mendapatkan fokus, misalnya saat form input diklik atau diakses melalui keyboard.

    input:focus {
        border-color: green;
    }
    
  3. :first-child – Diterapkan pada elemen pertama di dalam parent.

    p:first-child {
        font-weight: bold;
    }
    
  4. :nth-child(n) – Diterapkan pada elemen berdasarkan urutannya, seperti setiap elemen ke-2.

    li:nth-child(2n) {
        background-color: #f0f0f0;
    }
    
  5. :not(selector) – Memilih elemen yang tidak cocok dengan selector yang diberikan.

    p:not(.special) {
        color: gray;
    }
    

Semua elemen HTML dapat dianggap sebagai kotak yang terdiri dari beberapa bagian:

  • Content: Isi dari elemen.
  • Padding: Ruang di dalam elemen, di antara konten dan batas.
  • Border: Batas di sekitar padding dan konten.
  • Margin: Ruang di luar elemen, di antara elemen dengan elemen lainnya.
  1. display: block;

    Elemen dengan display: block akan mengambil seluruh lebar yang tersedia, sehingga dimulai dari baris baru. Contoh elemen block adalah <div>, <p>, dan <h1>.

  2. display: inline;

    Elemen dengan display: inline tidak memulai baris baru dan hanya mengambil ruang sesuai konten di dalamnya. Contoh elemen inline adalah <span>, <a>, dan <img>. Elemen ini tidak dapat diberi tinggi dan lebar secara langsung.

  3. display: inline-block;

    Gabungan dari block dan inline, elemen inline-block dapat diatur ukuran tinggi dan lebarnya, tapi tidak memulai baris baru.

  4. display: none;

    Menghilangkan elemen dari tampilan, sehingga elemen ini tidak akan muncul pada halaman dan tidak mengambil ruang. Biasanya digunakan untuk elemen yang ingin disembunyikan.

Display: Flex

display: flex adalah nilai CSS yang menjadikan elemen sebagai flex container dan memungkinkan pengaturan layout yang fleksibel dan responsif. Flexbox mempermudah penataan elemen, baik secara horizontal maupun vertikal, dengan fitur pengaturan otomatis, perataan, distribusi ruang, dan skala elemen.

Berikut penjelasan mendetail mengenai properti utama yang digunakan dengan display: flex:

1. display: flex

Mengubah elemen menjadi flex container, sehingga semua anak di dalamnya menjadi flex items. Ini membuat elemen anak bisa diatur dengan properti Flexbox.

2. flex-direction

Properti ini menentukan arah tata letak elemen anak dalam flex container. Nilainya meliputi:

  • row: Elemen disusun secara horizontal dari kiri ke kanan (default).
  • row-reverse: Elemen disusun secara horizontal dari kanan ke kiri.
  • column: Elemen disusun secara vertikal dari atas ke bawah.
  • column-reverse: Elemen disusun secara vertikal dari bawah ke atas.

3. justify-content

Properti ini mengatur perataan elemen di sepanjang sumbu utama (main axis):

  • flex-start: Elemen diletakkan di awal kontainer.
  • flex-end: Elemen diletakkan di akhir kontainer.
  • center: Elemen dipusatkan di tengah kontainer.
  • space-between: Ruang di antara elemen dibagi rata, dengan elemen pertama dan terakhir ditempatkan di ujung kontainer.
  • space-around: Memberi ruang di sekitar elemen, tetapi ruang di antara elemen dua kali lebih besar daripada ruang di tepi luar.
  • space-evenly: Membagi ruang secara merata, baik di antara maupun di tepi elemen.

4. align-items

Mengatur perataan elemen anak di sepanjang sumbu silang (cross axis):

  • flex-start: Elemen ditempatkan di bagian atas kontainer.
  • flex-end: Elemen ditempatkan di bagian bawah kontainer.
  • center: Elemen disejajarkan di tengah kontainer.
  • baseline: Elemen disejajarkan berdasarkan garis dasar teks.
  • stretch: Elemen diperluas untuk mengisi seluruh tinggi kontainer (jika tanpa tinggi spesifik).

5. flex-wrap

Mengatur apakah elemen anak akan membungkus atau tidak jika ukuran kontainer lebih kecil dari jumlah elemen:

  • nowrap: Semua elemen anak tetap berada dalam satu baris (default).
  • wrap: Elemen akan dibungkus ke baris berikutnya jika ruang tidak cukup.
  • wrap-reverse: Sama seperti wrap, tapi urutan elemen dibalik.

6. align-content

Mengatur perataan baris ketika elemen membungkus lebih dari satu baris:

  • flex-start: Baris ditempatkan di awal kontainer.
  • flex-end: Baris ditempatkan di akhir kontainer.
  • center: Baris dipusatkan di tengah kontainer.
  • space-between: Baris didistribusikan secara merata dengan ruang di antaranya.
  • space-around: Memberikan ruang di sekitar baris.
  • stretch: Setiap baris akan diperluas untuk mengisi seluruh tinggi kontainer.

7. Properti pada Elemen Anak (Flex Item)

  • flex-grow: Menentukan seberapa besar elemen akan tumbuh untuk memenuhi ruang yang tersedia. Misalnya, jika flex-grow diatur ke 1, elemen akan tumbuh untuk mengisi ruang yang tersisa.
  • flex-shrink: Menentukan seberapa besar elemen akan menyusut ketika ruang terbatas. Nilai 1 membuat elemen menyusut, sedangkan 0 akan mempertahankan ukurannya.
  • flex-basis: Menentukan ukuran dasar elemen sebelum ruang tambahan didistribusikan. Ini bisa berupa ukuran absolut (px, %, dsb) atau auto.
  • align-self: Mengatur perataan elemen secara individual, menimpa align-items untuk elemen tersebut. Nilainya sama seperti align-items.

Apa itu Python? 🐍

Python dikembangkan oleh Guido van Rossum. Python dirilis pertama kali pada tahun 1991.

Gambar Contoh

Python adalah bahasa pemrograman tingkat tinggi. Sintaksis Python sangat sederhana dan jelas, sehingga memudahkan programmer untuk memahami kode.

Apakah python populer?

all respondent profesional developers
learning to code other coders

source: survey stack overflow 2024

Berdasarkan survei Stack Overflow 2024, bahasa Python termasuk dalam lima besar bahasa pemrograman yang paling banyak digunakan oleh semua responden dan pengembang profesional yang mengisi survei tersebut. Python menempati peringkat pertama sebagai bahasa yang paling mudah dipelajari dan paling banyak digunakan oleh programmer lain, di luar kategori pengembang profesional dan mereka yang sedang belajar coding.

Mengapa python populer?

  1. Sintaksis yang Mudah Dibaca Python memiliki sintaksis yang jelas dan ringkas. Contoh:

    Python

    for i in range(5):
        print(i)
    

    JavaScript

    for (let i = 0; i < 5; i++) {
        console.log(i);
    }
    

    Dalam Python, kita cukup menggunakan range(5) untuk menghasilkan angka dari 0 hingga 4. Sementara itu, dalam JavaScript, kita harus menginisialisasi variabel i dengan nilai 0, kemudian menetapkan kondisi i < 5, dan menambahkan iterasi di setiap langkah. Oleh karena itu, bagi programmer pemula, sintaksis JavaScript mungkin lebih sulit dimengerti dibandingkan dengan Python.

  2. Fleksibilitas

    • Python dapat digunakan untuk berbagai macam aplikasi.

      • Pengembangan Web

        Framework seperti Django dan Flask memungkinkan pengembang untuk membuat aplikasi web yang kompleks dan skalabel dengan cepat.

      • Pengembangan Aplikasi Desktop

        Library seperti Tkinter, PyQt, dan Kivy digunakan untuk membuat aplikasi desktop dengan antarmuka grafis (GUI).

      • Automasi dan Scripting

        Python sering digunakan untuk menulis skrip automasi yang dapat menjalankan tugas-tugas berulang seperti pengolahan file, pengambilan data, dan pengelolaan sistem.

      • Pengembangan Game

        Library seperti Pygame memungkinkan pengembang untuk membuat game sederhana dan aplikasi multimedia.

      • Pengembangan API

        Python dapat digunakan untuk membuat dan mengelola API menggunakan framework seperti FastAPI atau Flask-RESTful, yang memungkinkan aplikasi untuk berinteraksi dengan sistem lain.

      • Pengembangan Sistem dan Perangkat Lunak Terdistribusi

        Python mendukung pengembangan perangkat lunak terdistribusi menggunakan pustaka seperti Celery untuk task queue dan RabbitMQ atau Kafka untuk messaging

      • Machine Learning dan Kecerdasan Buatan

        Python sangat populer dalam pengembangan aplikasi machine learning dan AI, dengan library seperti TensorFlow, Keras, dan scikit-learn.

      • Data Science

        Python adalah salah satu bahasa yang paling banyak digunakan dalam data science karena kemampuannya dalam analisis dan visualisasi data Seperti Pandas (Library untuk manipulasi dan analisis data). Matplotlib dan Seaborn (Library untuk visualisasi data.)

      • Pengembangan Aplikasi Mobile

        Dengan menggunakan framework seperti Kivy atau BeeWare, pengembang dapat membuat aplikasi mobile yang dapat berjalan di berbagai platform.

    • Dukungan untuk paradigma pemrograman yang berbeda (prosedural, berorientasi objek, dan fungsional) memberikan kebebasan bagi programmer.

  3. Komunitas dan Ekosistem yang Besar

    Python memiliki komunitas yang aktif dan banyak library serta framework yang dapat digunakan

Pengingat
Sebelum melanjutkan, pastikan program python sudah terinstall di komputer, untuk instalasi kami sarankan menggunakan Nix (Declarative Env Manager)

Apa itu variabel?

Variabel adalah tempat untuk menyimpan data.

Contoh:

x = 10

Aturan penamaan variabel

  • Nama variabel harus dimulai dengan huruf atau underscore. Tidak boleh diawali angka atau karakter.
    Contoh:

    # Contoh variabel yang valid
    nilai_siswa = 1         # Valid, diawali dengan huruf dan menggunakan underscore
    nama_mahasiswa = "John" # Valid, diawali dengan huruf
    _semester = 2           # Valid, diawali dengan garis bawah
    
    # Contoh variabel yang tidak valid
    1_nilai = 1            # Invalid, diawali dengan angka
    $nama = "Doe"          # Invalid, diawali dengan karakter yang tidak diperbolehkan
    
  • Nama variabel bersifat case-sensitive
    Contoh:

    Var = 1
    var = 2
    
  • Hindari menggunakan kata kunci Python (seperti if, for, while, dll.) sebagai nama variabel.

Tipe data variabel

Python secara otomatis menentukan tipe data dari variabel berdasarkan nilai yang diberikan. Tipe data yang umum digunakan antara lain:

  • Integer (bilangan bulat)
  • Float (bilangan desimal)
  • String (teks)
  • Boolean (True/False)
umur = 25         # Integer
tinggi = 1.75     # Float
nama = "Alice"    # String
status = True     # Boolean

Mengubah Nilai Variabel

x = 5
print(x)  # Output: 5
x = 15
print(x)  # Output: 15

Konstanta

Variabel dapat didefinisikan sebagai konstanta dengan menggunakan HURUF BESAR untuk menandakan bahwa nilainya tidak seharusnya diubah.

PI = 3.14

Menampilkan Nilai Variabel

Untuk menampilkan nilai variabel, kamu dapat menggunakan fungsi print()

nama = "John"
print("Halo, " + nama)  # Output: Halo, John

Beberapa Variabel dalam Satu Baris

a, b, c = 1, 2, 3
print(a) # Output: 1
print(b) # Output: 2
print(c) # Output: 3

Tipe Data di Python

Tipe data adalah cara untuk mendefinisikan jenis nilai yang dapat disimpan dalam variabel.

Tipe data dasar

  1. Integer (int)

    • Bilangan bulat, baik positif maupun negatif.
    • Contoh: 5, -3, 42
    x = 10
    print(type(x))  # Output: <class 'int'>
    
  2. Float (float)

    • Bilangan desimal.
    • Contoh: 3.14, -0.001, 2.0
    y = 3.14
    print(type(y))  # Output: <class 'float'>
    
  3. String (str)

    • Kumpulan karakter yang diapit oleh tanda kutip (baik tunggal maupun ganda).
    • Contoh: "Hello, World!", 'Python'
    s = "Hello, Python!"
    print(type(s))  # Output: <class 'str'>
    
  4. Boolean (bool)

    • Tipe data yang hanya memiliki dua nilai: True atau False.
    is_active = True
    print(type(is_active))  # Output: <class 'bool'>
    

Tipe Data Koleksi

  1. List Kumpulan item yang dapat diubah (mutable) dan diindeks. Dapat berisi berbagai tipe data. Contoh: [1, 2, 3, "empat", 5.0]

    my_list = [1, 2, 3, "empat"]
    print(type(my_list))  # Output: <class 'list'>
    
  2. Tuple Kumpulan item yang tidak dapat diubah (immutable) dan diindeks. Contoh: (1, 2, 3, "empat")

    my_tuple = (1, 2, 3, "empat")
    print(type(my_tuple))  # Output: <class 'tuple'>
    
  3. Set Kumpulan item yang tidak terurut dan tidak dapat memiliki elemen duplikat. Contoh: {1, 2, 3, 3} (hasilnya hanya akan menampilkan {1, 2, 3})

    my_set = {1, 2, 3, 3}
    print(type(my_set))  # Output: <class 'set'>
    
  4. Dictionary (dict) Kumpulan pasangan kunci-nilai yang tidak terurut. Kunci harus unik. Contoh: {"nama": "John", "usia": 30}

    my_dict = {"nama": "John", "usia": 30}
    print(type(my_dict))  # Output: <class 'dict'>
    

Tipe Data Khusus

Python juga memiliki tipe data khusus seperti None, yang menunjukkan tidak ada nilai atau tidak terdefinisi.

nothing = None
print(type(nothing))  # Output: <class 'NoneType'>

Operator di Python

  • Operator Aritmatika Operator aritmetika digunakan untuk melakukan operasi matematis.
OperatorDeskripsiContohHasil
+Penjumlahan5 + 38
-Pengurangan5 - 32
*Perkalian5 * 315
/Pembagian5 / 31.67
//Pembagian bulat5 // 31
%Modulus5 % 32
**Pangkat5 ** 3125
  • Operator Perbandingan Operator perbandingan digunakan untuk membandingkan dua nilai.
OperatorDeskripsiContohHasil
==Sama dengan5 == 5True
!=Tidak sama dengan5 != 3True
>Lebih besar5 > 3True
<Lebih kecil5 < 3False
>=Lebih besar atau sama5 >= 5True
<=Lebih kecil atau sama5 <= 3False
  • Operator Logika Operator logika digunakan untuk melakukan operasi logika.
OperatorDeskripsiContohHasil
andDanTrue and FalseFalse
orAtauTrue or FalseTrue
notNegasinot TrueFalse
  • Operator Identitas Operator identitas digunakan untuk memeriksa apakah dua variabel merujuk pada objek yang sama.
OperatorDeskripsiContohHasil
isMerujuk pada objek yang samaa is bTrue atau False
is notTidak merujuk pada objek yang samaa is not bTrue atau False
  • Operator Keanggotaan Operator keanggotaan digunakan untuk memeriksa apakah nilai terdapat dalam urutan (list, tuple, string, dll).
OperatorDeskripsiContohHasil
inMemeriksa keanggotaan3 in [1, 2, 3]True
not inMemeriksa ketidakanggotaan4 not in [1, 2, 3]True
  • Operator bitwise Operator bitwise adalah operator yang digunakan untuk melakukan operasi pada level bit dari bilangan

    • AND bitwise (&): Menghasilkan 1 jika kedua bit pada posisi yang sama adalah 1, sebaliknya 0. Contoh
    a = 5      # 101 dalam biner
    b = 3      # 011 dalam biner
    result = a & b   # 001 (1 dalam desimal)
    
    • OR bitwise (|): Menghasilkan 1 jika salah satu bit atau keduanya adalah 1, sebaliknya 0. Contoh
    a = 5      # 101 dalam biner
    b = 3      # 011 dalam biner
    result = a | b   # 111 (7 dalam desimal)
    
    • XOR bitwise (^): Menghasilkan 1 jika salah satu bit adalah 1, tapi bukan keduanya. Jika kedua bit sama, hasilnya 0. Contoh
    a = 5      # 101 dalam biner
    b = 3      # 011 dalam biner
    result = a ^ b   # 110 (6 dalam desimal)
    
    • NOT bitwise (~): Membalikkan setiap bit operand, artinya 1 menjadi 0 dan 0 menjadi 1. Contoh
    a = 5        # 0000 0101 dalam biner (8-bit)
    result = ~a  # 1111 1010 (two's complement), -6 dalam desimal
    
    print(result)  # Output: -6
    
    • Shift Kiri (<<): Menggeser bit ke kiri sebanyak jumlah yang ditentukan. Contoh
    a = 5      # 101 dalam biner
    result = a << 1   # 1010 (10 dalam desimal)
    
    • Shift Kanan (>>): Menggeser bit ke kanan sebanyak jumlah yang ditentukan. Contoh
    a = 5      # 101 dalam biner
    result = a >> 1   # 10 (2 dalam desimal)
    

Conditional Statements di Python

  1. Statement if.

    x = 10
    
    if x > 5:
        print("Is True")
    

    Jika kondisi x > 5 bernilai True, maka kalimat "Is True" akan dicetak.

  2. Statement if-else Digunakan ketika ada dua kemungkinan pilihan: satu kondisi True, dan lainnya False.

    x = 3
    
    if x > 5:
        print("Is True")
    else:
        print("Is False")
    

    Jika x > 5 bernilai False, maka blok kode dalam else akan dieksekusi.

  3. Statement if-elif-else elif adalah singkatan dari "else if". Statement ini digunakan ketika ada lebih dari dua kemungkinan kondisi.

    x = 8
    
    if x > 10:
        print("x lebih besar dari 10")
    elif x == 8:
        print("x sama dengan 8")
    else:
        print("x lebih kecil dari 10 dan tidak sama dengan 8")
    
  4. Statement Bersarang (Nested)

    x = 15
    
    if x > 10:
        if x < 20:
            print("x berada di antara 10 dan 20")
    
  5. One-line if-else (Ternary Operator)

    x = 7
    print("x lebih besar dari 5") if x > 5 else print("x tidak lebih besar dari 5")
    
  6. Multiple Conditions dengan and dan or

    x = 7
    y = 10
    
    if x > 5 and y > 5:
        print("x dan y lebih besar dari 5")
    
    if x > 5 or y < 5:
        print("Salah satu kondisi terpenuhi")
    

Perulangan di python

Loop adalah struktur kontrol yang memungkinkan eksekusi blok kode berulang kali.

Jenis jenis loop

  1. for Loop: Digunakan untuk iterasi melalui urutan (seperti list, tuple, dictionary, set, atau string).

    for i in range(5):
        print(i)  # Output: 0, 1, 2, 3, 4
    
  2. while Loop: Mengeksekusi blok kode selama kondisi tertentu terpenuhi.

    count = 0
    while count < 5:
        print(count)
        count += 1  # Output: 0, 1, 2, 3, 4
    

Menggunakan break dan continue

  • break: Menghentikan loop sepenuhnya.

    for i in range(5):
    if i == 3:
        break
    print(i)  # Output: 0, 1, 2
    
  • continue: Melewatkan iterasi saat ini dan melanjutkan ke iterasi berikutnya.

    for i in range(5):
    if i == 2:
        continue
    print(i)  # Output: 0, 1, 3, 4
    

Nested loops

Loop di dalam loop untuk melakukan iterasi lebih dari satu tingkat.

for i in range(3):
    for j in range(2):
        print(f'i={i}, j={j}')

List comprehension

Cara singkat untuk membuat list baru dengan loop.

squares = [x**2 for x in range(10)]  # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Function di Python

Function adalah blok kode yang dapat digunakan kembali untuk melakukan tugas tertentu. Function mempermudah group kode, membuatnya lebih modular, dan mengurangi pengulangan.

Cara membuat function

Function dideklarasikan dengan kata kunci def diikuti dengan nama function, dan titik dua. Kode di dalam function ditulis dengan indentasi.

def sapa():
    # blok kode
    print('Halo!')

Pemanggilan Function

Setelah dideklarasikan, function dapat dipanggil kapan saja dengan menggunakan namanya.

sapa()

Function dengan parameter

Function dengan parameter

def sapa_nama(nama):
    print(f"Halo, {nama}!")

sapa_nama('Budi')

Function dengan default parameter

Function dapat memiliki parameter dengan nilai default. Jika parameter tidak diisi saat pemanggilan, nilai default akan digunakan.

def sapa(nama="Teman"):
    print(f"Halo, {nama}!")

Return value

Function bisa mengembalikan nilai dengan menggunakan kata kunci return. Jika tidak ada return, Function mengembalikan None.

def jumlah(a, b):
    return a + b

Function Anonim (Lambda)

Function kecil dan anonim bisa didefinisikan dengan menggunakan lambda

kali = lambda x, y: x * y
print(kali(3, 4))  # Output: 12

Function Rekursif

Function yang memanggil dirinya sendiri disebut function rekursif.

def faktorial(n):
    if n == 1:
        return 1
    else:
        return n * faktorial(n-1)