Anda di halaman 1dari 7

LAPORAN 6

PRAKTIKUM PEMROGRAMAN JARINGAN


Threading

Disusun oleh :

Adhyaksa Asshidiqi
210210501005

PRODI TEKNIK KOMPUTER


JURUSAN TEKNIK INFORMATIKA DAN
KOMPUTERUNIVERSITAS NEGERI MAKASSAR
TAHUN 2023
A. Topik Praktikum
Praktikum 6 Threading.

B. Tujuan Praktikum
• Mahasiswa harus memahami apa itu threading, perbedaan antara
threading dan proses, serta mengapa threading penting dalam
pemrograman.
• Mahasiswa perlu menguasai modul threading yang disediakan oleh
bahasa pemrograman Python atau bahasa pemrograman lain yang
mereka pelajari.
• Mahasiswa harus dapat membuat dan menjalankan thread, serta
memahami cara mengirim argumen ke dalam thread.

C. Teori Pendukung
Threading dalam pemrograman komputer adalah suatu teknik yang
memungkinkan aplikasi untuk menjalankan beberapa alur eksekusi atau tugas
secara bersamaan. Ini memiliki dampak yang signifikan pada berbagai aspek
dalam pengembangan perangkat lunak. Salah satu manfaat utama dari
threading adalah kemampuan untuk mencapai konkurensi, yang
memungkinkan tugas-tugas yang berbeda untuk berjalan secara bersamaan,
meningkatkan efisiensi eksekusi program. Dengan peningkatan CPU multi-
core yang semakin umum, threading memungkinkan aplikasi untuk
memanfaatkan potensi perangkat keras ini, dengan mendorong berbagai tugas
untuk berjalan pada core yang berbeda secara bersamaan. Hal ini mendorong
peningkatan kinerja aplikasi, terutama dalam hal pemrosesan data yang
intensif.

Selain itu, threading memungkinkan pemisahan tugas-tugas yang berat


dan tugas-tugas yang lebih ringan dalam sebuah aplikasi. Ini memungkinkan
bagian dari aplikasi untuk menjalankan tugas yang memerlukan banyak
sumber daya atau waktu untuk mengeksekusi, sementara bagian lainnya tetap
responsif terhadap input pengguna. Hal ini penting dalam pengembangan
aplikasi yang harus memberikan pengalaman pengguna yang lancar dan tidak
terganggu.
Namun, perlu diingat bahwa threading juga membawa sejumlah
tantangan. Salah satu masalah utama adalah munculnya situasi seperti
deadlock dan race condition. Deadlock terjadi ketika dua atau lebih alur saling
menunggu sumber daya yang saling dibutuhkan, menyebabkan aplikasi
terjebak dalam keadaan mati. Race condition, di sisi lain, terjadi ketika
beberapa alur bersaing untuk mengakses atau memodifikasi data bersama,
yang dapat menyebabkan hasil yang tidak konsisten. Oleh karena itu,
pemrogram harus menggunakan teknik sinkronisasi, seperti mutex dan
semafor, untuk mengatasi masalah ini dan memastikan akses yang aman dan
konsisten ke data bersama.

Tidak hanya itu, threading juga memiliki overhead. Membuat dan


mengelola alur-alur tambahan memerlukan alokasi sumber daya tambahan,
seperti memori, dan pemantauan tambahan. Hal ini dapat mempengaruhi
kompleksitas kode dan kinerja aplikasi secara keseluruhan. Oleh karena itu,
pemrogram harus hati-hati mempertimbangkan overhead ini saat merancang
dan mengelola threading dalam aplikasi mereka.

Pemahaman yang kuat tentang teori-threading ini adalah kunci untuk


merancang dan mengembangkan aplikasi yang efisien, responsif, dan bebas
dari masalah konkurensi. Itu juga memungkinkan pemrogram untuk
mengoptimalkan penggunaan sumber daya perangkat keras dan menghadapi
tantangan yang mungkin muncul dalam pengembangan perangkat lunak multi-
threaded.
D. Alat dan bahan
1. 1 buah Pc/Laptop
2. Softaware Visual Studio Code.

E. Jalannya Praktikum
1. Buka Software Visual Studio Code.
2. Untuk mengerjakan contoh pertama dari materi threading buatkan 1 File
Yang Bernama Contoh1.
3. Berikut isi kode pada File :
• Contoh1.py
4. Untuk mengerjakan contoh kedua kita akan mengubah kode program di
atas dengan mengimplementasikan threading. buatkan 1 File Yang
Bernama Contoh2.

5. Berikut isi kode pada File :


• Contoh2.py
6. Selanjutnya,Untuk mengerjakan latihan dari materi threading buatkan 1
File Yang Bernama Latihan.
7. Berikut isi kode pada File :
• Latihan.py

F. Hasil Ujicoba
• Screenshoot Contoh1.py

• Screenshoot Contoh2.py

Analisis yang saya dapat dari perbandingan hasil antara kedua kode
program tersebut adalah kedua kode program memiliki tujuan yang sama, yaitu
mengambil panjang konten dari beberapa URL. Namun, mereka menggunakan
pendekatan yang berbeda dalam pemrosesan dan pengambilan data. Kita
analisis perbandingan antara kedua kode program tersebut :
Kode Pertama (Tanpa Threading) :
• Kode pertama menjalankan pengambilan panjang konten dari
beberapa URL secara berurutan, artinya kode akan mengambil
panjang konten dari URL pertama, kemudian URL kedua, dan
seterusnya.
• Proses pengambilan panjang konten dari setiap URL dilakukan
secara berurutan, sehingga kode ini berjalan secara serial.
• Waktu eksekusi total program adalah waktu yang dibutuhkan
untuk mengeksekusi semua URL satu per satu.

Kode Kedua (Dengan Threading) :


• Kode kedua menggunakan threading untuk menjalankan setiap
URL dalam thread yang terpisah. Ini berarti setiap URL dapat
diambil panjang kontennya secara paralel, sehingga proses
pengambilan konten dari semua URL berjalan bersamaan.
• Kode ini dapat mempercepat waktu eksekusi secara signifikan,
terutama jika ada beberapa URL yang membutuhkan waktu lama
untuk diambil kontennya.
• Waktu eksekusi total program adalah waktu yang dibutuhkan oleh
thread terlama untuk menyelesaikan tugasnya.

Perbandingan :
• Kode pertama adalah pendekatan sederhana yang berjalan secara
berurutan dan lebih mudah dipahami. Namun, itu akan memakan
waktu lebih lama jika ada banyak URL yang harus diambil.
• Kode kedua menggunakan threading untuk mempercepat proses
pengambilan konten URL, sehingga potensial lebih cepat daripada
kode pertama. Namun, penggunaan threading bisa lebih kompleks
dan memerlukan manajemen yang baik untuk menghindari
masalah seperti deadlock.

• Screenshoot Latihan.py
G. Kesimpulan
Threading dalam pemrograman adalah konsep yang memungkinkan
aplikasi untuk menjalankan tugas secara bersamaan, meningkatkan kinerja dan
responsivitas. Namun, ini juga memunculkan tantangan seperti race condition
dan deadlock, yang harus dikelola dengan benar. Pemahaman tentang
penggunaan thread, manajemen sumber daya bersama, dan konsep Global
Interpreter Lock (GIL) dalam Python adalah penting dalam threading. Dengan
pemahaman ini, pengembang dapat merancang aplikasi yang efisien dan
responsif.

Anda mungkin juga menyukai