Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions Chapter02/KaisarEnam1184093.py
Original file line number Diff line number Diff line change
@@ -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



55 changes: 55 additions & 0 deletions Chapter02/KaisarTujuh1184093.py
Original file line number Diff line number Diff line change
@@ -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!")
1 change: 1 addition & 0 deletions Chapter02/digi.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Koromon
54 changes: 33 additions & 21 deletions test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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):
Expand Down Expand Up @@ -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')
Expand All @@ -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):
Expand All @@ -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')
Expand All @@ -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
Expand Down Expand Up @@ -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')
Expand All @@ -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")