Halaman

Senin, 31 Agustus 2026

Pengecualian

Dalam pemrograman, *bug* dan kesalahan adalah hal yang lumrah, terlepas dari tingkat pengalaman. Masalah ini bisa berkisar dari kesalahan pengetikan sederhana hingga kesalahan logika yang kompleks.

Dalam pelajaran ini, Anda akan mempelajari berbagai jenis kesalahan.

img-component 

 

Komputer membaca dan menjalankan instruksi baris demi baris, dari atas ke bawah. Eksekusi program akan terhenti saat kesalahan pertama ditemukan.

img-component 

 

Kesalahan dalam Python secara garis besar dapat dikategorikan menjadi dua jenis: *bug* dan *exception*.

*Bug* adalah cacat atau kesalahan dalam kode program yang menyebabkan perilaku yang tidak tepat atau tidak sesuai dengan yang diharapkan. Hal ini tidak selalu menghentikan program untuk berjalan hingga selesai, namun dapat menghasilkan keluaran atau perilaku yang salah.

Bug, yang sering kali disebabkan oleh kesalahan logika, dapat mengakibatkan hasil yang tidak terduga atau keliru.

img-component 

 *Exception* (pengecualian) merupakan kategori kesalahan lain dalam pemrograman. Ini adalah kesalahan spesifik yang terjadi saat program dijalankan dan menghentikan alur normalnya begitu kesalahan tersebut ditemui.

Ada beberapa jenis pengecualian di Python.

Pengecualian `NameError` muncul ketika variabel yang tidak dikenal digunakan.

Pengecualian `SyntaxError` muncul ketika ditemukan kesalahan sintaksis dalam kode. Hal ini bisa disebabkan oleh berbagai hal, seperti tanda baca yang hilang (misalnya koma, tanda kurung, atau titik dua).

`IndexError` muncul ketika Anda mencoba mengakses elemen dari suatu koleksi *iterable* yang terurut—seperti *list* dan *tuple*—menggunakan indeks yang berada di luar rentang yang valid.

Pengecualian TypeError muncul ketika sebuah fungsi dipanggil pada nilai dengan tipe yang tidak sesuai. Sebagai contoh, fungsi len() hanya dapat dipanggil pada objek *iterable* (seperti *string*, *list*, dll.).

Pengecualian ValueError muncul ketika sebuah fungsi menerima nilai dengan tipe yang tepat, namun nilai itu sendiri tidak sesuai atau tidak dapat diterima.

Poin-Poin Penting Pelajaran

Bagus sekali! Berikut adalah hal-hal yang telah Anda pelajari:

🌟 *Bug* adalah kesalahan yang mungkin tidak menghentikan eksekusi tetapi dapat menyebabkan perilaku yang tidak sesuai

🌟 *Exception* adalah kesalahan yang terjadi selama eksekusi dan mengganggu alur program

🌟 Terdapat berbagai jenis *exception*

 

Bingkai Ethernet

Enkapsulasi Ethernet

Ethernet dan Model OSI

Modul ini dimulai dengan pembahasan teknologi Ethernet, termasuk penjelasan tentang sublapisan MAC dan bidang-bidang frame Ethernet.

Ethernet adalah salah satu dari dua teknologi LAN yang digunakan saat ini, sedangkan yang lainnya adalah LAN nirkabel (WLAN). Ethernet menggunakan komunikasi berbasis kabel, termasuk kabel *twisted pair*, sambungan serat optik, dan kabel koaksial.

Ethernet beroperasi pada lapisan *data link* dan lapisan fisik. Ethernet merupakan keluarga teknologi jaringan yang didefinisikan dalam standar IEEE 802.2 dan 802.3. Ethernet mendukung lebar pita (*bandwidth*) data sebagai berikut:

  • 10 Mbps
  • 100 Mbps
  • 1000 Mbps (1 Gbps)
  • 10,000 Mbps (10 Gbps)
  • 40,000 Mbps (40 Gbps)
  • 100,000 Mbps (100 Gbps)
  •  

    Sebagaimana ditunjukkan dalam gambar, standar Ethernet mendefinisikan baik protokol Layer 2 maupun teknologi Layer 1.

     

    Ethernet dan Model OSI

     

     

    Sublapisan Data Link

    Protokol LAN/MAN IEEE 802, termasuk Ethernet, menggunakan dua sub-lapisan terpisah dari lapisan *data link* berikut ini untuk beroperasi. Keduanya adalah *Logical Link Control* (LLC) dan *Media Access Control* (MAC), sebagaimana ditunjukkan pada gambar.

    Ingatlah bahwa LLC dan MAC memiliki peran berikut pada lapisan data link:

    •  Sublapisan LLC – Sublapisan IEEE 802.2 ini menjembatani komunikasi antara perangkat lunak jaringan di lapisan atas dan perangkat keras di lapisan bawah. Sublapisan ini menyisipkan informasi ke dalam *frame* yang mengidentifikasi protokol lapisan jaringan yang digunakan oleh *frame* tersebut. Informasi ini memungkinkan berbagai protokol Lapisan 3—seperti IPv4 dan IPv6—untuk menggunakan antarmuka jaringan dan media yang sama.
    • Sublapisan MAC – Sublapisan ini (contohnya IEEE 802.3, 802.11, atau 802.15) diimplementasikan dalam perangkat keras dan bertanggung jawab atas enkapsulasi data serta pengendalian akses media. Sublapisan ini menyediakan pengalamatan lapisan tautan data (data link layer) dan terintegrasi dengan berbagai teknologi lapisan fisik.

     

     

     

    Sublapisan MAC

    Standar Ethernet pada Sublapisan MAC

    Sublapisan MAC bertanggung jawab atas enkapsulasi data dan akses ke media.

    Enkapsulasi Data 

    Enkapsulasi data IEEE 802.3 mencakup hal-hal berikut:

    •  Frame Ethernet – Ini adalah struktur internal dari frame Ethernet.
    • Pengalamatan Ethernet - Bingkai Ethernet mencakup alamat MAC sumber dan tujuan untuk mengirimkan bingkai Ethernet dari Ethernet NIC ke Ethernet NIC pada LAN yang sama.
    • Deteksi kesalahan Ethernet – Frame Ethernet mencakup trailer *frame check sequence* (FCS) yang digunakan untuk deteksi kesalahan.

    Mengakses Media

    Sebagaimana ditunjukkan dalam gambar, sublapisan MAC IEEE 802.3 mencakup spesifikasi untuk berbagai standar komunikasi Ethernet melalui beragam jenis media, termasuk tembaga dan serat optik.

     Standar Ethernet pada Sublapisan MAC

     

     

    Ingatlah bahwa Ethernet model lama yang menggunakan topologi bus atau hub merupakan media *half-duplex* yang digunakan bersama. Ethernet pada media *half-duplex* menggunakan metode akses berbasis kompetisi, yaitu *carrier sense multiple access/collision detection* (CSMA/CD). Metode ini memastikan bahwa hanya satu perangkat yang melakukan transmisi pada satu waktu. CSMA/CD memungkinkan beberapa perangkat berbagi media *half-duplex* yang sama serta mendeteksi terjadinya tabrakan (*collision*) ketika lebih dari satu perangkat mencoba melakukan transmisi secara bersamaan. Selain itu, metode ini menyediakan algoritma *back-off* untuk transmisi ulang.

    LAN Ethernet masa kini menggunakan switch yang beroperasi dalam mode full-duplex. Komunikasi full-duplex dengan switch Ethernet tidak memerlukan pengendalian akses melalui CSMA/CD.

     

    Bidang-bidang Frame Ethernet

    Ukuran minimum frame Ethernet adalah 64 byte dan ukuran maksimum yang umum adalah 1518 byte. Ukuran ini mencakup seluruh byte mulai dari kolom alamat MAC tujuan hingga kolom *frame check sequence* (FCS). Kolom *preamble* tidak disertakan saat menentukan ukuran frame tersebut.

    Catatan: Ukuran frame bisa lebih besar jika terdapat persyaratan tambahan, seperti VLAN tagging. VLAN tagging berada di luar cakupan kursus ini.

    Setiap frame dengan panjang kurang dari 64 byte dianggap sebagai "collision fragment" atau "runt frame" dan secara otomatis dibuang oleh stasiun penerima. Frame yang memiliki data lebih dari 1500 byte dianggap sebagai "jumbo frame" atau "baby giant frame".

    Jika ukuran frame yang dikirimkan lebih kecil dari batas minimum atau lebih besar dari batas maksimum, perangkat penerima akan membuang frame tersebut. Frame yang dibuang kemungkinan besar disebabkan oleh tabrakan (collision) atau sinyal lain yang tidak diinginkan. Frame tersebut dianggap tidak valid. Jumbo frame biasanya didukung oleh sebagian besar switch dan NIC Fast Ethernet serta Gigabit Ethernet.

    Gambar tersebut memperlihatkan setiap bidang dalam bingkai Ethernet. Lihat tabel untuk informasi lebih lanjut mengenai fungsi setiap bidang.

    Bidang-bidang Frame Ethernet

      

     

    Semua *frame* harus memiliki panjang minimal 64 byte. Bit tambahan yang disebut "*pad*" digunakan untuk menambah ukuran *frame* yang kecil agar mencapai ukuran minimum tersebut.

    Bidang FCS menggunakan CRC untuk mendeteksi kesalahan dalam sebuah frame.

    Kolom EtherType mengidentifikasi protokol lapisan atas yang dienkapsulasi dalam bingkai Ethernet.

    Beberapa byte pertama dari *preamble* memberi tahu penerima mengenai adanya *frame* baru.

    Sublapisan LLC bertanggung jawab untuk mengendalikan kartu antarmuka jaringan melalui driver perangkat lunak.

    LLC bekerja sama dengan lapisan-lapisan di atasnya untuk mendukung protokol tingkat yang lebih tinggi.

    Sublapisan MAC memeriksa kesalahan bit, mendukung teknologi Ethernet, dan mengontrol akses ke media.

     

    Minggu, 30 Agustus 2026

    List Comprehension

    Membuat daftar dari awal terkadang memakan waktu, karena Anda perlu menulis semua item secara manual atau mengulanginya dengan perulangan.

    Dalam pelajaran ini, Anda akan mempelajari cara melakukan operasi ini dengan jauh lebih efisien menggunakan list comprehension.

    Bayangkan Anda perlu membuat daftar yang berisi angka 1 hingga 50.

    img-component 

    *List comprehension* merupakan cara penulisan ringkas yang berguna untuk operasi semacam itu. Fitur ini menawarkan cara yang lebih singkat dan mudah dibaca untuk membuat daftar dengan berbagai pengaturan hanya dalam satu baris kode.

    List comprehension dibuat menggunakan tanda kurung siku [].

    img-component 

     

    Berikut adalah sintaks dan struktur umum dari *list comprehension*:

    <variable>: variabel yang akan menampung *list* yang baru dibuat
    <expression>: ekspresi yang diterapkan pada setiap elemen; jika tidak diperlukan tindakan khusus, elemen itu sendiri yang digunakan
    <item>: elemen yang sedang diproses
    <iterable>: objek *iterable* apa pun, seperti *range*, *list*, *string*, *tuple*, dan *set* 

     

    Anda dapat menerapkan ekspresi apa pun ke setiap item dalam daftar yang sedang dibuat dengan list comprehension.

    img-component 

     

    Anda dapat menggunakan daftar sebagai objek yang dapat diiterasi dalam list comprehension.

    Sebagai contoh, kode ini akan mengiterasi daftar tag asli, menambahkan simbol '#' di awal setiap tag untuk membuat daftar tagar baru.

    Anda dapat memasukkan kondisi ke dalam list comprehension, yang ditempatkan setelah iterable.

    Poin-Poin Penting Pelajaran

    Kerja bagus! Berikut adalah hal-hal yang telah Anda pelajari:



    🌟 *list comprehension* menyediakan cara yang ringkas dan mudah dibaca untuk membuat *list* (daftar), sehingga Anda dapat menentukan berbagai pengaturan hanya dalam satu baris kode

    🌟 dengan *list comprehension*, Anda dapat menerapkan ekspresi apa pun pada setiap elemen dalam *list* yang sedang dibuat

    🌟 Anda juga dapat menyertakan kondisi ke dalam *list comprehension*

     

    Jumat, 28 Agustus 2026

    Bekerja dengan Kamus

    Dictionary sering digunakan dalam aplikasi modern, dan kemampuan menggunakannya sangat penting bagi pengembang untuk menulis kode yang efisien.

    Dalam pelajaran ini, Anda akan mempelajari berbagai teknik untuk bekerja dengan dictionary.

    Anda dapat menggunakan kunci tidak hanya untuk mengakses nilai dalam dictionary, tetapi juga untuk mengubahnya.

    Anda dapat menambahkan item baru dengan memberikan kunci baru dan menetapkan nilai untuknya.

    Fungsi update() memperbarui kamus dengan item dari argumen yang diberikan.

    Argumennya harus berupa kamus dengan item yang ingin Anda perbarui.

    Fungsi update() dapat menerima dictionary dengan beberapa item. Jika suatu item merupakan item baru, item tersebut akan ditambahkan ke dictionary aslinya.

    Fungsi pop() menghapus item dengan nama kunci yang ditentukan. Fungsi ini menerima kunci dari item yang ingin Anda hapus sebagai argumen.

    Anda dapat menggunakan operator `in` untuk memeriksa apakah suatu kunci atau nilai terdapat dalam dictionary.

    Untuk memeriksa apakah suatu nilai terdapat dalam dictionary, Anda perlu menggunakan fungsi values().

    Anda dapat melakukan iterasi melalui kamus menggunakan perulangan for.

    Jika Anda melakukan perulangan melalui kamus, maka kamus tersebut akan mengembalikan kunci-kuncinya.

    Gunakan fungsi `values()` untuk melakukan iterasi pada nilai-nilai dalam dictionary `car`.

    Poin-Poin Penting Pelajaran

    Kerja bagus! Berikut adalah hal-hal yang telah Anda pelajari:

    🌟 Dictionary bersifat mutable (dapat diubah)

    🌟 Anda dapat mengubah atau menambahkan item dictionary menggunakan fungsi update()

    🌟 Anda dapat menghapus item dictionary dengan fungsi pop()

    🌟 Anda dapat melakukan iterasi pada dictionary menggunakan loop for 

    Rabu, 26 Agustus 2026

    Kamus

    Pasangan kunci-nilai merupakan konsep mendasar dalam pemrograman yang memungkinkan pengorganisasian dan pengambilan data secara efisien.

    img-component 

    Dictionary adalah jenis koleksi yang digunakan untuk menyimpan data dalam pasangan kunci-nilai (key:value), yang dianggap sebagai item. Jenis ini ideal untuk mengorganisasi data ke dalam bentuk pasangan, di mana setiap data (nilai) memiliki pengenal unik (kunci).

    Sebagai contoh 

    Dictionary dibuat menggunakan kurung kurawal { }.

    Pasangan kunci-nilai dalam *dictionary* dipisahkan oleh tanda koma, dan dapat ditulis pada baris baru agar lebih mudah dibaca.

    Kunci dan nilai dalam sebuah dictionary dipisahkan oleh tanda titik dua. 

    Meskipun *string* adalah tipe data yang paling umum digunakan untuk *key*, tipe data *immutable* lainnya juga dapat berfungsi sebagai *key*. *Value* dapat berupa tipe data apa pun.

    Dictionary dapat memiliki nilai duplikat, namun tidak dapat memiliki kunci duplikat.

    Nilai dengan kunci duplikat akan menimpa nilai yang sudah ada.

    Nilai dalam daftar dan tupel diakses menggunakan indeks.

    Untuk mengakses nilai dalam kamus, Anda perlu menggunakan kuncinya.

    Kunci-kunci tersebut harus diapit dalam tanda kurung siku.

    Cara lain untuk mengakses nilai dalam dictionary adalah melalui fungsi get().

    Anda dapat memperoleh semua nilai dan kunci dari sebuah dictionary menggunakan fungsi values() dan keys().

    Fungsi items() mengembalikan semua pasangan kunci:nilai dalam sebuah dictionary.



    Poin-Poin Penting Pelajaran

    Anda telah melakukan pekerjaan yang luar biasa! Berikut adalah hal-hal yang telah Anda pelajari:

    🌟 Dictionary adalah jenis koleksi yang digunakan untuk menyimpan data dalam pasangan kunci:nilai (key:value)

    🌟 Dictionary dapat memiliki nilai yang sama (duplikat), tetapi tidak boleh memiliki kunci yang sama

    🌟 Anda dapat mengakses nilai tertentu dalam dictionary menggunakan fungsi get()

    🌟 Fungsi values(), keys(), dan items() digunakan untuk mengambil berbagai kumpulan data dari dictionary

     

     

    Selasa, 25 Agustus 2026

    Set

    Python menawarkan berbagai tipe koleksi untuk berbagai keperluan.

    Pada pelajaran ini, kita akan menjelajahi set, sebuah tipe koleksi yang sangat cocok untuk mengumpulkan data unik.

    Berbeda dengan *list* dan *tuple*, *set* adalah kumpulan data yang tidak berurutan. *Set* dibuat menggunakan kurung kurawal { }.

    Set tidak memiliki urutan serta tidak mendukung pengindeksan atau pemotongan (slicing).

    Set tidak dapat memuat elemen duplikat; hal ini sangat berguna ketika pengembang perlu memastikan bahwa setiap item dalam suatu koleksi bersifat unik. Sebagai contoh, dalam aplikasi media sosial, daftar teman Anda tidak boleh memuat duplikat.

    Menambahkan item duplikat ke dalam set tidak akan menyebabkan error, melainkan akan diabaikan.

    Seperti halnya *list* dan *tuple*, *set* dapat memiliki nilai dengan tipe data yang berbeda.

    Himpunan (set) bersifat mutable, artinya Anda dapat menambahkan atau menghapus item darinya.

    Gunakan fungsi add() dan remove(), masing-masing dengan nilai sebagai argumen, untuk menambahkan atau menghapus nilai tersebut dari himpunan.

    Fungsi clear() tidak menerima argumen dan menghapus semua elemen dari sebuah set.

    Pemanggilan fungsi union() menghasilkan set baru yang berisi semua elemen dari kedua set, tanpa menyertakan elemen duplikat.

    Fungsi union() dipanggil pada suatu himpunan dan menerima himpunan lain sebagai argumen.

    Fungsi difference() mengembalikan sebuah himpunan yang berisi elemen-elemen yang hanya terdapat pada himpunan pertama dan tidak pada himpunan kedua.

    Poin-Poin Penting Pelajaran

    Kerja bagus! Anda telah menyelesaikan pelajaran ini.

    Berikut adalah tabel untuk membantu Anda merangkum jenis-jenis koleksi:

    img-component 

    Senin, 24 Agustus 2026

    Bekerja dengan Tuple

    Dalam Python, *tuple* adalah jenis koleksi dasar yang digunakan untuk menyimpan urutan elemen yang tidak boleh diubah.



    Dalam pelajaran ini, Anda akan mempelajari cara bekerja secara efektif dengan *tuple*.

    Ingatlah bahwa tupel bersifat *immutable* (tidak dapat diubah).

    Tuple, seperti halnya list, dapat berisi elemen duplikat.

    Anda dapat menggunakan fungsi count() untuk menghitung jumlah kemunculan suatu item dalam sebuah tuple.

    Banyak fungsi yang digunakan dengan list juga dapat digunakan dengan tuple, selama tujuannya tidak termasuk memodifikasinya.

    Fungsi max() mengembalikan nilai maksimum dalam suatu koleksi.

    Anda dapat menggunakan *tuple* dalam struktur alur kendali apa pun, seperti pernyataan *if-else* dan perulangan, sama seperti saat menggunakan *list*.

    *Tuple unpacking* memungkinkan penetapan elemen *tuple* ke variabel. Nilai-nilai tersebut akan ditetapkan sesuai urutan kemunculannya di dalam *tuple*.

    grades = (76, 81, 96)

    Saat melakukan *unpacking*, jumlah variabel harus sesuai dengan jumlah elemen dalam *tuple*. Jika tidak, program akan menghasilkan *error*.

    Operator `*` dalam *tuple unpacking* digunakan untuk mengumpulkan beberapa elemen dari *tuple* ke dalam sebuah *list*. Hal ini berguna saat menangani *tuple* yang panjangnya tidak diketahui.

    img-component  

     Poin-Poin Penting

    Luar biasa! Berikut adalah hal-hal yang telah kita pelajari:

    🌟 banyak fungsi yang digunakan pada *list* juga dapat digunakan pada *tuple*, selama fungsi tersebut tidak mengubah data apa pun

    🌟 Anda dapat menggunakan *tuple* dalam struktur alur kendali apa pun

    🌟 operator `*` dalam pembongkaran *tuple* (*tuple unpacking*) memungkinkan penugasan elemen ke variabel secara fleksibel

     

    Minggu, 23 Agustus 2026

    Tuples

    Di Python, selain list dan string, terdapat jenis koleksi lain yang digunakan untuk berbagai tugas.

    Pada pelajaran ini, Anda akan mempelajari salah satunya - tuple.

     

    name = "Mery"
    cities = ["Madrid", "New York", "Paris"]


    cities = ["Madrid", "New York", "Paris"]
    print(cities[1])


    List dalam Python adalah koleksi item yang terurut di mana setiap item diberi indeks, dimulai dari 0.

    List bersifat *mutable*. Ini berarti Anda dapat mengubah nilainya bahkan setelah list tersebut dibuat.

    colors = ["Yellow", "Red", "Blue"]
    print("Original list:")
    print(colors)

    #making changes
    colors[1] = "Orange"
    colors.append("Black")
    print("Changed list:")
    print(colors)

     

    Tuple, seperti halnya list, adalah koleksi item yang diurutkan dan dibuat dengan tanda kurung.

    Elemen-elemen dalam tuple juga memiliki indeks, dimulai dari 0. Anda dapat mengakses elemen dalam tuple sama seperti saat menggunakan list.

    Jadi, apa perbedaan antara *tuple* dan *list*? *Tuple* bersifat *immutable* (tidak dapat diubah).

    Jenis ini berguna ketika data yang disimpan dalam koleksi tidak boleh diubah secara tidak sengaja selama eksekusi program. Sebagai contoh, dalam aplikasi navigasi GPS, koordinat lokasi penting harus tetap konstan.

    Poin-Poin Penting

    Luar biasa! Kini *tuple* telah menjadi bagian dari perangkat keterampilan Python Anda. Berikut adalah ringkasannya:

    🌟 *Tuple* adalah kumpulan elemen yang memiliki urutan tertentu

    🌟 *Tuple* bersifat *immutable* (tidak dapat diubah)

    🌟 Anda dapat mengakses elemen *tuple* menggunakan indeksnya, mirip dengan *list* 

     

     

    Rabu, 19 Agustus 2026

    Selengkapnya tentang Fungsi Kustom

    Fungsi kustom (atau yang didefinisikan pengguna) membantu memecah program besar menjadi segmen-segmen kecil agar mudah dipahami, dipelihara, dan di-debug.

    Dalam pelajaran ini, Anda akan belajar membangun fungsi kustom yang lebih canggih.

    Argumen fungsi adalah nilai yang diteruskan saat memanggil fungsi.

     def greet(name):
        print("Hello", name)

    greet("David")

     

    def convert_km(miles):
        kilometers = miles * 1.61
        return kilometers

    distance = convert_km(200)

     

    Suatu fungsi dapat mengembalikan beberapa nilai.

    Fungsi `rect()` membantu agen real estat menghitung luas dan keliling sebidang tanah berbentuk persegi panjang. Fungsi ini menerima dua dimensi bidang tanah tersebut sebagai argumen.

     def rect(length, width):
        area = length * width
        perimeter = 2 * length + 2 * width
        return area, perimeter

    x, y = rect(50, 100)
    print(x, y)

     

    Beberapa nilai kembalian perlu dipisahkan dengan koma.

    Lengkapi kode untuk mendefinisikan fungsi rect() dan mengembalikan 2 nilai.

     def rect(length, width):
      area = length * width
      perimeter = 2 * length + 2 * width

     

    def rect(d1, d2):
      area = d1 * d2
      perimeter = 2 * d1 + 2 * d2
      price = 1000 * area
      return area, perimeter, price

     

    img-component 

    Ketika sebuah fungsi mengembalikan beberapa nilai, nilai-nilai tersebut dapat disimpan dalam beberapa variabel (dalam 1 baris).

    Untuk membuat beberapa variabel dalam satu pernyataan, pisahkan variabel-variabel tersebut dengan koma.

    a, b = 7, 12

    Suatu fungsi dapat mengembalikan kesalahan jika terjadi kesalahan di dalam badannya. Meneruskan nilai argumen dengan tipe data yang salah adalah sumber kesalahan yang umum.

    def rect(d1, d2):
      area = d1 * d2
      perimeter = 2 * d1 + 2 * d2
      return area, perimeter

     

    Sebagai programmer, Anda bertanggung jawab untuk menentukan operasi apa yang terjadi di dalam fungsi Anda. Hal ini kemudian mengontrol tipe data mana yang dapat ditangani dan dikembalikan.

    Fungsi profitable() di bawah ini menentukan apakah membeli sebidang tanah merupakan investasi yang baik bagi agen real estat di lokasi tertentu.

    def profitable(d1, d2):
        area = d1 * d2
        invest = area > 700
        return invest

    buy = profitable(90, 120)
    print(buy)

     

    def profitable(d1, d2):
      area = d1 * d2
      invest = area > 700
      return invest

     

     Eksekusi kode di dalam sebuah fungsi berakhir ketika suatu nilai dikembalikan. Baris kode apa pun setelah baris `return` akan diabaikan.

    Karena Python menjalankan fungsi dari atas ke bawah: 

    def rect(d1, d2):
        area = 0
        return area
        area = d1 * d2

     Saat mencapai return area, fungsi langsung berhenti. Baris:

    area = d1 * d2

     tidak pernah dijalankan.

     

    Python memungkinkan argumen fungsi memiliki nilai default. Jika fungsi dipanggil tanpa argumen tersebut, argumen itu akan menggunakan nilai default-nya.

    def greet(name="Guest"): 

     print("Welcome", name) 

    greet()

    Outputnya adalah:

     Welcome Guest

    Penjelasan:
    name="Guest" adalah default argument. Karena greet() dipanggil tanpa memberikan nilai name, Python otomatis menggunakan "Guest".

     

    Tambahkan nilai default dengan tanda sama dengan (=) untuk membuat argumen menjadi opsional.

    Nilai default hanya digunakan jika tidak ada nilai lain yang diberikan sebagai argumen saat fungsi dipanggil.

    def greet(name="Guest"): 

    print("Welcome", name) 

    greet("Anna") 

     

    Outputnya:

    Welcome Anna

     

    Karena saat greet("Anna") dipanggil, nilai "Anna" menggantikan nilai default "Guest".

     

    Poin-Poin Penting Pelajaran
     

    Dalam pelajaran ini, Anda telah mempelajari bahwa:



    🌟 Sebuah fungsi dapat mengembalikan lebih dari satu nilai

    🌟 Mendefinisikan fungsi juga menentukan tipe data yang dapat diterima, diproses, dan dikembalikan oleh fungsi tersebut

    🌟 Nilai default membuat argumen menjadi opsional

    Teruslah belajar dan berkembang!

     

     

     

     

     

     

    Rabu, 15 April 2026

    Ethernet

    Kebangkitan Ethernet

    Pada masa-masa awal jaringan, setiap vendor menggunakan metode kepemilikan mereka sendiri untuk menghubungkan perangkat jaringan dan protokol jaringan. Jika Anda membeli peralatan dari vendor yang berbeda, tidak ada jaminan bahwa peralatan tersebut akan bekerja sama. Peralatan dari satu vendor mungkin tidak dapat berkomunikasi dengan peralatan dari vendor lain.

    Seiring dengan semakin meluasnya penggunaan jaringan, standar pun dikembangkan untuk menetapkan aturan-aturan yang mengatur cara kerja peralatan jaringan dari berbagai vendor. Standar bermanfaat bagi jaringan dalam banyak hal:

    • Memfasilitasi desain
    • Sederhanakan pengembangan produk
    • Mendorong persaingan
    • Menyediakan interkoneksi yang konsisten
    • Memfasilitasi pelatihan
    • Berikan lebih banyak pilihan vendor kepada pelanggan.

     

    Tidak ada protokol standar jaringan area lokal (LAN) resmi, tetapi seiring waktu, satu teknologi, Ethernet, menjadi lebih umum daripada yang lain. Protokol Ethernet mendefinisikan bagaimana data diformat dan bagaimana data tersebut ditransmisikan melalui jaringan kabel. Standar Ethernet menentukan protokol yang beroperasi pada Layer 1 dan Layer 2 dari model OSI. Ethernet telah menjadi standar de facto, yang berarti bahwa teknologi ini digunakan oleh hampir semua jaringan area lokal berkabel, seperti yang ditunjukkan pada gambar.

     

    Tidak ada protokol standar jaringan area lokal (LAN) resmi, tetapi seiring waktu, satu teknologi, Ethernet, menjadi lebih umum daripada yang lain. Protokol Ethernet mendefinisikan bagaimana data diformat dan bagaimana data tersebut ditransmisikan melalui jaringan kabel. Standar Ethernet menentukan protokol yang beroperasi pada Layer 1 dan Layer 2 dari model OSI. Ethernet telah menjadi standar de facto, yang berarti bahwa teknologi ini digunakan oleh hampir semua jaringan area lokal berkabel, seperti yang ditunjukkan pada gambar.


    Evolusi Ethernet

    "Institut Insinyur Listrik dan Elektronika, atau IEEE", memelihara standar jaringan, termasuk standar Ethernet dan nirkabel. Komite IEEE bertanggung jawab untuk menyetujui dan memelihara standar untuk koneksi, persyaratan media, dan protokol komunikasi. Setiap standar teknologi diberi nomor yang merujuk pada komite yang bertanggung jawab untuk menyetujui dan memelihara standar tersebut. Komite yang bertanggung jawab atas standar Ethernet adalah 802.3.

    Sejak Ethernet diciptakan pada tahun 1973, standar telah berkembang untuk menentukan versi teknologi yang lebih cepat dan lebih fleksibel. Kemampuan Ethernet untuk terus meningkat dari waktu ke waktu adalah salah satu alasan utama mengapa Ethernet menjadi sangat populer. Setiap versi Ethernet memiliki standar terkait. Misalnya, 802.3 100BASE-T mewakili Ethernet 100 Megabit menggunakan standar kabel twisted-pair. Notasi standar tersebut diterjemahkan sebagai:

    • 100 adalah kecepatan dalam Mbps.
    • BASE adalah singkatan dari transmisi pita dasar (baseband transmission).
    • T merupakan singkatan dari jenis kabel, dalam hal ini, kabel pasangan berpilin (twisted-pair).

    Versi awal Ethernet relatif lambat dengan kecepatan 10 Mbps. Versi Ethernet terbaru beroperasi pada kecepatan 10 Gigabit per detik atau lebih. Bayangkan betapa jauh lebih cepatnya versi baru ini dibandingkan dengan jaringan Ethernet asli.