From 8094dd159768b9cc5be8278281d8ed20b3ca02a8 Mon Sep 17 00:00:00 2001 From: rikeadelia Date: Tue, 12 Sep 2017 06:45:48 +0700 Subject: [PATCH 1/2] upload tugas prerequisite --- soal1.py | 16 ++++++++++++++++ soal2.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/soal1.py b/soal1.py index 7b95558..fe76d23 100644 --- a/soal1.py +++ b/soal1.py @@ -4,6 +4,22 @@ # VARIABLE # Berisi angka secara random dari 0 - 100 sebanyak 100 angka arr = [randint(1,100) for i in range(0,100)] +#arr = [7,5,4,2,1]; # FUNGSI INSERTION SORT # Tulis algoritma disini... + +#def insertionsort(): +minimum=0 +for i in range(1,len(arr)): + #print(i) + j=i-1 + minimum=arr[i] + while(j>=0) and (arr[j]>minimum): + arr[j+1]=arr[j] + j-=1; + arr[j+1]=minimum +#insertionsort() +#arr[0], arr[4]=arr[4], arr[0] +for each in arr: + print(each), \ No newline at end of file diff --git a/soal2.py b/soal2.py index 890b106..42b0284 100644 --- a/soal2.py +++ b/soal2.py @@ -9,6 +9,38 @@ # pop() -> mengeluarkan item pada Stack # size() -> menghitung jumlah item pada Stack # printStack() -> output seluruh isi Stack +class Stack: + + def __init__(self): + self.items = [] + def isEmpty(self): + return self.items == [] + def push(self, item): + self.items.append(item) + def pop(self): + return self.items.pop() + def peek(self): + return self.items[len(self.items)-1] + def size(self): + return len(self.items) # FUNGSI VALIDASI BRACKETS # Tulis algoritma disini... + +s = Stack() +#word = "()(()())" +i = 0; +for each in inputan: + if(each == "("): + s.push(each) + elif(each == ")"): + if(s.isEmpty()): + break + else: + s.pop() + i+=1; + +if(s.isEmpty() and i==len(inputan)): + print ("VALID") +else: + print ("TIDAK VALID") \ No newline at end of file From 506c61a8acc538ab693a2bf733e0193febe3ac68 Mon Sep 17 00:00:00 2001 From: rikeadelia Date: Tue, 12 Sep 2017 06:58:01 +0700 Subject: [PATCH 2/2] upload soal 3 --- soal3.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/soal3.py b/soal3.py index d55212a..26690d8 100644 --- a/soal3.py +++ b/soal3.py @@ -1,5 +1,52 @@ # KELAS GRAPH # Buatlah kelas objek Graph +class Graph(object): + + def __init__(self, graph_dict=None): + if graph_dict == None: + graph_dict = {} + self.__graph_dict = graph_dict + + def getVertices(self): + #mengembalikan semua vertex pada graf + return list(self.__graph_dict.keys()) + + def getEdges(self): + #mengembalikan semua sisi pada graf + return self.__generate_edges() + + def add_vertex(self, vertex): + if vertex not in self.__graph_dict: + self.__graph_dict[vertex] = [] + + def add_edge(self, edge): + edge = set(edge) + (vertex1, vertex2) = tuple(edge) + if vertex1 in self.__graph_dict: + self.__graph_dict[vertex1].append(vertex2) + else: + self.__graph_dict[vertex1] = [vertex2] + + def __generate_edges(self): + #menghasilkan semua sisi pada graf + edges = [] + for vertex in self.__graph_dict: + for neighbour in self.__graph_dict[vertex]: + if {neighbour, vertex} not in edges: + edges.append({vertex, neighbour}) + return edges + + def __str__(self): + res = "vertices: " + for k in self.__graph_dict: + res += str(k) + " " + res += "\nedges: " + for edge in self.__generate_edges(): + res += str(edge) + " " + return res + + def __getitem__(self,vertex): + return self.__graph_dict[vertex] # FUNGSI PENCARIAN RUTE TERCEPAT # Tulis algoritma disini...