Anda di halaman 1dari 8

LAPORAN AKHIR PRAKTIKUM

Mata Praktikum : Algoritma dan Pemrograman 2B

Kelas : 1IA07

Praktikum ke :1

Tanggal : Senin, 27 Maret 2023

Materi : Konsep Thread dan Mutli Thread pada python

NPM : 50422682

Nama : Huzaifah Khanif Algibban

Ketua Asisten : NAUFAL HAMMAM AL MUBAROK

Paraf Asisten :

Nama Asisten :

Jumlah Lembar :

LABORATORIUM TEKNIK INFORMATIKA


UNIVERSITAS GUNADARMA
2023
LISTING PROGRAM

a. Thread

import threading
import time

class olah_data:
def __init__(param1, param2):
param1.key1 = param2
def func_1(param1):
print('1. Function 1 data ke: {}'.format(param1.key1))
time.sleep(2)
def func_2(param1):
print('2. Function 2 data ke: {}'.format(param1.key1))
time.sleep(2)
def func_3(param1):
print('3. Function 3 data ke: {}'.format(param1.key1))
time.sleep(2)
def run(param1):
param1.func_1()
param1.func_2()
param1.func_3()
if __name__ == '__main__':
start = time.perf_counter()
arr_data = [
'1 = 1000',
'1001 = 2000',
'2001 = 3000',
'3001 = 4000',
'4001 = 5000',
'5001 = 6000',
]

for val_arr in arr_data:


olah_data(val_arr).run()
finish =time.perf_counter()
print('Waktu total: ', finish-start)

b. Multi Thread
import threading
from threading import Thread
import time

class olah_data:
def __init__(param1, param2):
param1.key1 = param2
def func_1(param1):
print('1. Function 1 data ke: {}'.format(param1.key1))
time.sleep(2)
def func_2(param1):
print('2. Function 2 data ke: {}'.format(param1.key1))
time.sleep(2)
def func_3(param1):
print('3. Function 3 data ke: {}'.format(param1.key1))
time.sleep(2)
def run(param1):
param1.func_1()
param1.func_2()
param1.func_3()
if __name__ == '__main__':
start = time.perf_counter()
arr_data = [
'1 = 1000',
'1001 = 2000',
'2001 = 3000',
'3001 = 4000',
'4001 = 5000',
'5001 = 6000',
]

thread_list = []

for val_arr in arr_data:


t = Thread(target= olah_data(val_arr).run)
t.start()
time.sleep(0.1)
thread_list.append(t)
for thread in thread_list:
thread.join()
finish =time.perf_counter()
print('Waktu total: ', finish-start)
LOGIKA PROGRAM

Pada pertemuan pertama kali ini saya mempelajari tentang Konsep Thread dan
Mutli Thread pada python
dalam komputasi, proses merupakan suatu program komputer yang sedang di
eksekusi
proses memiliki 3 komponen:
1. program yang dapat di execute
2. data terkait yg dibutuh kan
3. konteks eksekusi program
thread/utas adalah unit terkecil dari sebuah proses yang dapat dijadwalkan oleh
sistem operasi.
setiap thread memiliki urutan intruksi yang dijalankan secara independen dan
bersamaan dengan thread lain dalam satu proses
dengan menggunakan thread, sebuah program dapat menjalankan beberapa
tugas secara bersamaan, meningkatkan efisiensi dan kecepatan program

multi threading dapat diartikan sebagai beberapa thread/utas yang dapat berada
dalam satu proses dimana:
1. setiap thread/utas berisi set register dan variabel lokalnya
sendiri(disimpan dalam tumpukan
2. semua thread/utas proses berbagai variabel global (disimpan di heap) dan
kode program.
pada komputer multi-thread didefinisikan sebagai kemampuan processor untuk
mengeksekusi beberapa thread secara bersamaan

seperti halnya ketika kita menggunakan browser, disatu sisi surfing dari internet
dan pada saat bersamaa digunakan untuk mendownload file, keduanya adalah
proses yang terpisah

kelebihan
1. tidak memblokir pengguna
2. peningkatan kerja pada mesin
3. penggunaan sumber daya sistem lebih baik karna thread mengerjakan
tugas secara parallel
4. server multi threaded dan gui interaktive menggunakan multi thread
secara eksklusif
berikut adalah penjelasan atau pengertian dari beberapa baris syntax

a. Thread
import threading
import time
#gunanya untuk mengambil modul threading dan time

#disimpan oleh class olah data

class olah_data:
def __init__(param1, param2):
param1.key1 = param2
#fuction constructor
def func_1(param1):
print('1. Function 1 data ke: {}'.format(param1.key1))
time.sleep(2)
#mengambil data dan menampilkan kalimat dengan format print
def func_2(param1):
print('2. Function 2 data ke: {}'.format(param1.key1))
time.sleep(2)
#mengambil data dan menampilkan kalimat dengan format print
def func_3(param1):
print('3. Function 3 data ke: {}'.format(param1.key1))
time.sleep(2)
#mengambil data dan menampilkan kalimat dengan format print
def run(param1):
param1.func_1()
param1.func_2()
param1.func_3()
#function run untuk membungkus function yg ada dan akan dijalan secara sekaligus(bersamaan)

if __name__ == '__main__':
#membungkus apa saja yg akan di exc
start = time.perf_counter()
#menghitung waktu proses yg akan dijalankan
arr_data = [
'1 = 1000',
'1001 = 2000',
'2001 = 3000',
'3001 = 4000',
'4001 = 5000',
'5001 = 6000',
]
#list/array data
for val_arr in arr_data:
#perulangan yang akan mengulang arr_data
olah_data(val_arr).run()
#isinya akan dimasukkan val_Arr
#for akan menjalankan sebuah fungsi di class olah_data, dengan mengirimkan nilai parameter di val_arr yg sudah di
loop

finish =time.perf_counter()
print('Waktu total: ', finish-start)
#menghitung proses dan print waktu total untuk mencetak selisih waktu yg diproses

b. MultiThread

import threading
from threading import Thread
import time
#gunanya untuk mengambil modul threading dan time

#disimpan oleh class olah data

class olah_data:
def __init__(param1, param2):
param1.key1 = param2
#fuction constructor
def func_1(param1):
print('1. Function 1 data ke: {}'.format(param1.key1))
time.sleep(2)
#mengambil data dan menampilkan kalimat dengan format print
def func_2(param1):
print('2. Function 2 data ke: {}'.format(param1.key1))
time.sleep(2)
#mengambil data dan menampilkan kalimat dengan format print
def func_3(param1):
print('3. Function 3 data ke: {}'.format(param1.key1))
time.sleep(2)
#mengambil data dan menampilkan kalimat dengan format print
def run(param1):
param1.func_1()
param1.func_2()
param1.func_3()
#function run untuk membungkus function yg ada dan akan dijalan secara sekaligus(bersamaan)

if __name__ == '__main__':
#membungkus apa saja yg akan di exc
start = time.perf_counter()
#menghitung waktu proses yg akan dijalankan
arr_data = [
'1 = 1000',
'1001 = 2000',
'2001 = 3000',
'3001 = 4000',
'4001 = 5000',
'5001 = 6000',
]
#list/array data

thread_list = []
#digunakan untuk penggabungan data yang akan dilakukan

for val_arr in arr_data:


t = Thread(target= olah_data(val_arr).run)
#untuk menjalan kan thread secara bersamaan
t.start()
time.sleep(0.1)
#jeda
thread_list.append(t)
#data di (t)akan dimasukan ke dalam thread list

for thread in thread_list:


#gunanya untuk menggabungkan elemen list dari thread list yang dimasukan ke var thread
thread.join()
#menggunakan fungsi join

finish =time.perf_counter()
print('Waktu total: ', finish-start)
#menghitung proses dan print waktu total untuk mencetak selisih waktu yg diproses
OUTPUT PROGRAM
a. Thread

(Melakukan screenshoot untuk hasil akhir dari program)

b. MultiThread

(Melakukan screenshoot untuk hasil akhir dari program)

Anda mungkin juga menyukai