diff --git a/Chapter02/KaisarEnam1184093.py b/Chapter02/KaisarEnam1184093.py new file mode 100644 index 0000000..fba5535 --- /dev/null +++ b/Chapter02/KaisarEnam1184093.py @@ -0,0 +1,53 @@ +from threading import Barrier, Thread +from time import ctime, sleep +import requests + +num_runners = 3 +finish_line = Barrier(num_runners) +runners = [] +filename = "try.txt" + + +def api(): + url = "https://digimon-api.herokuapp.com/api/digimon" + response = requests.get(url) + html=response.json() + string = "Name: " + for i in range(len(html)): + hasil = html[i]["name"] + data = str(hasil) + ent = "\n"+str(i)+". " + string = string+ent+data + runners.append(data) + createfile(string) + + +def createfile(isi): + f = open(filename, "w") + f.write(str(isi)) + f.close() + + +def runner(): + api() + sleep(2) + finish_line.wait() + name = runners.pop() + sleep(2) + print('%s reached the barrier at: %s \n' % (name, ctime())) + finish_line.wait() + + +def main(): + threads = [] + print('START RACE!!!!') + for i in range(num_runners): + threads.append(Thread(target=runner)) + threads[-1].start() + for thread in threads: + thread.join() + print('Race over!') + return True + + + diff --git a/Chapter02/KaisarTujuh1184093.py b/Chapter02/KaisarTujuh1184093.py new file mode 100644 index 0000000..5f05371 --- /dev/null +++ b/Chapter02/KaisarTujuh1184093.py @@ -0,0 +1,55 @@ +from threading import Thread +import os +import requests +from queue import Queue + +queue = Queue() +digi = [] + +apiurl='https://digimon-api.herokuapp.com/api/digimon' +response = requests.get(apiurl) +html=response.json() + + +class Kaisar(Thread): + def __init__(self, name, thread_number): + Thread.__init__(self) + self.name = name + self.thread_number = thread_number + + def digiapi(self): + for i in range(len(html)): + hasil = html[i]["name"] + digi.append(hasil) + queue.put(digi) + print(str(i)+'. Digi %s Appended from queue by %s' % (hasil, self.name)) + + def run(self): + print("Start Queue!") + self.digiapi() + + +class Abdan(Thread): + def __init__(self, name, thread_number, filename): + Thread.__init__(self) + self.name = name + self.thread_number = thread_number + self.filename = os.path.join(os.path.dirname(__file__), filename) + + def fileresult(self): + for x in range(len(html)): + diginame = digi.pop() + f = open(self.filename+".txt", "w") + f.write(diginame) + f.close() + digiitem = queue.get() + print(str(x)+'. Digi %d-th Popped from queue by %s' % (len(digiitem), self.name)) + queue.task_done() + print('Read File: '+self.filename+'.txt') + x = open(self.filename+".txt", "r") + print(x.read()+'\n') + x.close() + + def run(self): + self.fileresult() + print("Finish Queue!") diff --git a/Chapter02/digi.txt b/Chapter02/digi.txt new file mode 100644 index 0000000..41cf26d --- /dev/null +++ b/Chapter02/digi.txt @@ -0,0 +1 @@ +Koromon \ No newline at end of file diff --git a/test_app.py b/test_app.py index 8e887f5..4958a4c 100644 --- a/test_app.py +++ b/test_app.py @@ -24,10 +24,10 @@ def tearDown(self): # def test_02_multiprocessing(self): # response = multiprocessing_test.multiprocessing_test() # self.assertEqual(response, True) - + # def test_02_kaisar_1184093(self): - # from Chapter02.Kaisar1184093 import main - # response = main() + # from Chapter02.Kaisar1184093 import main + # response = main() # self.assertEqual(response, True) # def test_02_rizaluardi_1184102(self): @@ -39,7 +39,7 @@ def tearDown(self): def readfile(self,filename): f = open(filename, "r") return str(f.read()) - f.close() + f.close() # def test_07_zanwarTujuh1184050(self): @@ -76,7 +76,7 @@ def readfile(self,filename): # respon=self.readfile('./Chapter02/minuman.txt') # self.assertNotRegex(respon, "Gak Boleh Kosong") - + # def test_03_hanifTiga1184058(self): # from Chapter02.HanifTiga1184058 import hanifTiga1184058, hanifRename # threadrename= hanifRename("Thread rename file ",1 , 'nilai') @@ -89,7 +89,7 @@ def readfile(self,filename): # self.assertNotRegex(respon, "Kosong") # def readfile(self,nfile): # f = open(nfile, "r+") - # return str(f.read()) + # return str(f.read()) # def test_03_raviTiga1184040(self): @@ -113,7 +113,7 @@ def readfile(self,filename): # respon=self.readfile('./Chapter02/minuman.txt') # self.assertNotRegex(respon, "Gak Boleh Kosong") - + # def test_03_hanifTiga1184058(self): # from Chapter02.HanifTiga1184058 import hanifTiga1184058, hanifRename # threadrename= hanifRename("Thread rename file ",1 , 'nilai') @@ -125,9 +125,9 @@ def readfile(self,filename): # respon=self.readfile('./nilai.txt') # self.assertNotRegex(respon, "Kosong") # - def readfile(self,nfile): - f = open(nfile, "r+") - return str(f.read()) + #def readfile(self,nfile): + # f = open(nfile, "r+") + #return str(f.read()) # def test_03_raviTiga1184040(self): # from Chapter02.raviTiga1184040 import raviTiga1184040, raviMenulis @@ -378,6 +378,29 @@ def readfile(self,nfile): # respon=self.readfile('./Chapter02/AriyoTujuh') # self.assertNotRegex(respon, "Kosong") + + #def test_07_bahartujuh1184002(self): + # from Chapter02.bahartujuh1184002 import BaharQue,Bahartujuh1184002 + # ti= BaharQue("Thread 1 ",'kodepos') + # tl = Bahartujuh1184002("Thread 2",'kodepos') + # ti.start() + # tl.start() + # ti.join() + # tl.join() + # respon=self.readfile('./Chapter02/kodepos') + # self.assertNotRegex(respon, "Gak Boleh Kosong") + + def test_07_kaisarTujuh1184093(self): + from Chapter02.KaisarTujuh1184093 import Kaisar, Abdan + threadK = Kaisar("Thread Kaisar", 1) + threadA = Abdan("Thread Abdan", 2, "digi") + threadK.start() + threadA.start() + threadK.join() + threadA.join() + respon=self.readfile('./Chapter02/digi.txt') + self.assertRegex(respon, "Koromon") + # def test_07_bahartujuh1184002(self): # from Chapter02.bahartujuh1184002 import BaharQue,Bahartujuh1184002 # ti= BaharQue("Thread 1 ",'kodepos') @@ -399,14 +422,3 @@ def readfile(self,nfile): # threadutama.join() # respon=self.readfile('./Chapter02/apigempa.txt') # self.assertNotRegex(respon, "kosong") - - def test_07_idaTujuh1184113(self): - from Chapter02.IdaTujuh1184113 import idaTujuh1184113,Director - threadutama = idaTujuh1184113("Thread Utama ", 2,5,5,'ida') - threaddirector= Director("Thread Director ", 1,'ida') - threaddirector.start() - threadutama.start() - threaddirector.join() - threadutama.join() - respon=self.readfile('./Chapter02/ida.txt') - self.assertNotRegex(respon, "kosong") \ No newline at end of file