Kelas : 1IA07
Praktikum ke :1
NPM : 50422682
Paraf Asisten :
Nama Asisten :
Jumlah Lembar :
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',
]
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 = []
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
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
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
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
b. MultiThread