diff --git a/DataLatihan/Readme.md b/DataLatihan/Readme.md index 9cefd8e..55c9336 100644 --- a/DataLatihan/Readme.md +++ b/DataLatihan/Readme.md @@ -7,4 +7,8 @@ Diberikan data teks ('Data1.txt'), sensor beberapa kata yang ada pada teks terse Setelah kata-kata disensor, gabungkan lagi menjadi paragraf yang utuh. Soal 2 : +<<<<<<< HEAD +Diberikan dua data teks ('Data1.txt' dan 'Data2.txt'), cari kata-kata yang ada pada dua teks tersebut dan ouputkan +======= Diberikan dua data teks ('Data1.txt' dan 'Data2.txt'), cari kata-kata yang ada pada dua teks tersebut dan ouputkan berapa kali kesamaan itu muncul. +>>>>>>> 36f2e66bd148e4ec90a99c08a79bb93e2a12a99a diff --git a/DataLatihan/answer1.py b/DataLatihan/answer1.py index ea4b036..c155b8a 100644 --- a/DataLatihan/answer1.py +++ b/DataLatihan/answer1.py @@ -1,9 +1,23 @@ -data1 = "Data_1.txt" -data2 = "Data_2.txt" +data1 = "Data1.txt" def readData(data1): x = [] with open(data1) as data : for line in data : - x = line.split() + x = line.split() return x + + +teks1 = readData(data1) + +isi = [] +for i in teks1 : + if i == 'I' : + isi.append('*') + elif i == 'and' or i == 'The' or i=='you': + isi.append('*'*3) + else : + isi.append(i) + +asd = ' '.join(isi) +print (asd) diff --git a/DataLatihan/answer2.py b/DataLatihan/answer2.py index 19d4180..5daf167 100644 --- a/DataLatihan/answer2.py +++ b/DataLatihan/answer2.py @@ -1,9 +1,26 @@ -data1 = "Data_1.txt" -data2 = "Data_2.txt" +data1 = "Data1.txt" +data2 = "Data2.txt" def readData(data1): x = [] with open(data1) as data : for line in data : x = line.split() -return x + return x + +dataa1 = readData(data1) +dataa2 = readData(data2) + +same = [] + +for x in dataa1 : + for y in dataa2: + if x==y : + counter = 0 + for z in same : + if z == y : + counter += 1 + if counter == 0 : + same.append(y) + +print (same) \ No newline at end of file diff --git a/DataTugas/Readme.md b/DataTugas/Readme.md new file mode 100644 index 0000000..6993217 --- /dev/null +++ b/DataTugas/Readme.md @@ -0,0 +1,6 @@ +Tugas : +- cari string atau karakter angka yang ada pada teks +- reverse posisi penempatan angka yang ada pada teks +- perhatikan huruf kapital yang ada pada teks dan ubah jika belum sesuai (penggunaan huruf kapital pada awal kalimat) + +Outputkan teks yang ada dengan perubahan string angka yang telah dilakukan dan perubahan pada penggunaan huruf kapital. diff --git a/Pertemuan 2/Latihan.txt b/Pertemuan 2/Latihan.txt new file mode 100644 index 0000000..8706001 --- /dev/null +++ b/Pertemuan 2/Latihan.txt @@ -0,0 +1,7 @@ +SOAL + +Buatlah tranpose matriks tanpa menggunakan library. + +[[12,7], + [4 ,5], + [3 ,8]] \ No newline at end of file diff --git a/Pertemuan 2/README.md b/Pertemuan 2/README.md new file mode 100644 index 0000000..3a8ce68 --- /dev/null +++ b/Pertemuan 2/README.md @@ -0,0 +1,2 @@ + +# Pertemuan ke-2 SG-Basic-computing \ No newline at end of file diff --git a/Pertemuan 2/Tugas.py b/Pertemuan 2/Tugas.py new file mode 100644 index 0000000..7f13d66 --- /dev/null +++ b/Pertemuan 2/Tugas.py @@ -0,0 +1,34 @@ +matriks1 = [[1,2,3],[4,5,6],[7,8,9]] +matriks2 = [[1],[2],[3]] + +test = [] +test1 = [] +test2 = [] +test3 = [] +temp = 0 + +y=0 +for a in matriks1: + counter1 =0 + y += 1 + x =0 + for b in a: + counter1+=1 + counter2 = 0 + for c in matriks2 : + for d in c: + counter2 += 1 + if counter1==counter2 : + x += (b*d) + if (y==1): + test1.append(x) + elif (y==2): + test2.append(x) + elif (y==3): + test3.append(x) + +test.append(test1) +test.append(test2) +test.append(test3) + +print (test) diff --git a/Pertemuan 2/Tugas.txt b/Pertemuan 2/Tugas.txt new file mode 100644 index 0000000..3e19b11 --- /dev/null +++ b/Pertemuan 2/Tugas.txt @@ -0,0 +1,12 @@ + + +SOAL + +1. buatlah perkalian matriks dibawah tanpa menggunakan library! + [1] [1,2,3] + [2] x [4,5,6] + [3] [7,8,9] +2. cari nilai dan vektor eigen dari matriks dibawah ini! + [0,0,-2] + [1,2,1] + [1,0,3] \ No newline at end of file diff --git a/Pertemuan 2/Tugas2.py b/Pertemuan 2/Tugas2.py new file mode 100644 index 0000000..c586696 --- /dev/null +++ b/Pertemuan 2/Tugas2.py @@ -0,0 +1,6 @@ +import numpy as novel + +M = novel.mat("0,0,-2;1,2,1;1,0,3") +eigenvalue,eigenvector = novel.linalg.eig(M) +print(eigenvalue) +print(eigenvector) diff --git a/Pertemuan 2/jawaban.py b/Pertemuan 2/jawaban.py new file mode 100644 index 0000000..738aaa6 --- /dev/null +++ b/Pertemuan 2/jawaban.py @@ -0,0 +1,13 @@ +X = [[12,7], + [4 ,5], + [3 ,8]] + +result = [[0,0,0], + [0,0,0]] + +for i in range(len(X)): + for j in range(len(X[0])): + result[j][i] = X[i][j] + +for r in result: + print(r) diff --git a/Pertemuan 2/latihanTranspose.py b/Pertemuan 2/latihanTranspose.py new file mode 100644 index 0000000..ec94a00 --- /dev/null +++ b/Pertemuan 2/latihanTranspose.py @@ -0,0 +1,15 @@ +import numpy as novel +matriks = [[12,7],[4,5],[3,8]] +#transpose = [list(x) for x in zip(*matriks)] + +#for x in transpose: +# print(x) + +# print(novel.transpose(matriks)) + + +M = novel.mat("1 -2;1 4") +M = novel.mat("1 -2;1 4") + +eigenvalue,eigenvector = novel.linalg.eig(M) +print(eigenvalue) \ No newline at end of file diff --git a/Pertemuan 2/matriks.py b/Pertemuan 2/matriks.py new file mode 100644 index 0000000..3a86718 --- /dev/null +++ b/Pertemuan 2/matriks.py @@ -0,0 +1,20 @@ +import numpy as np + +a = np.array([[1,2,3], + [4,5,6], + [7,8,9]]) +b = np.array([[1,2,3], + [4,5,6], + [7,8,9]]) +c = np.array([[1], + [4], + [7]]) + +d = np.array([[1,4,7]]) + +print(a+b,'\n') +print(np.dot(a,b),'\n') +print(np.transpose(c),'\n') +print(np.transpose(d),'\n') + + diff --git a/pertemuan 4/tree.py b/pertemuan 4/tree.py new file mode 100644 index 0000000..892996b --- /dev/null +++ b/pertemuan 4/tree.py @@ -0,0 +1,85 @@ +class Node: + def __init__(self,val): + self.info = val + self.left = None + self.right = None + + def insert(self,val): + if (valself.info): + if self.right is None: + self.right = Node(val) + else: + self.right.insert(val) + + def printinorder(self): + if self.left : + self.left.printinorder() + print(self.info, end= " ") + if self.right : + self.right.printinorder() + + def printpreorder(self): + print(self.info, end=" ") + if self.left : + self.left.printpreorder() + if self.right : + self.right.printpreorder() + + def printpostorder(self): + if self.left : + self.left.printpostorder() + if self.right : + self.right.printpostorder() + print(self.info, end=" ") + + def search(self, val): + if self.info < val: + if self.right is None: + return None + else: + self.right.search(val) + elif self.info > val: + if self.left is None: + return None + else: + self.left.search(val) + else: + return True + + def countheigh (self): + if self.left: + a = self.left.countheigh() + 1 + elif self.right: + b = self.right.countheigh() + 1 + if a>b: + return a + elif b>a: + return b + +BT = Node(23) +BT.insert(10) +BT.insert(16) +BT.insert(19) +BT.insert(65) +BT.insert(45) +BT.insert(24) +BT.insert(50) +BT.insert(47) +BT.insert(30) +print("Inorder :") +BT.printinorder() +print() +print("Postorder : ") +BT.printpostorder() +print() +print("Preorder :") +BT.printpreorder() +print() +print(BT.search(23)) +print("Heigh :", end= " ") +print(BT.countheigh()) \ No newline at end of file diff --git a/pertemuan 5/latihan.py b/pertemuan 5/latihan.py new file mode 100644 index 0000000..d89bc05 --- /dev/null +++ b/pertemuan 5/latihan.py @@ -0,0 +1,96 @@ +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] + +def dfs(graph,start): + stack = [start] + visited = [] + while stack: + vertex = stack.pop() + if vertex not in visited : + visited.append(vertex) + for neighbour in graph[vertex]: + stack.append(neighbour) + return visited + +def bfs(graph,start): + queue = [start] + visited = [] + while queue: + vertex = queue.pop(0) + if vertex not in visited : + visited.append(vertex) + for neighbour in graph[vertex]: + queue.append(neighbour) + return visited + +g = {1: set([2,3]), + 2: set([1,4,5]), + 3: set([1,6,7]), + 4: set([2,8]), + 5: set([2,8]), + 6: set([3,8]), + 7: set([3,8]), + 8: set([4,5,6,7])} + +graph = Graph(g) + +# for i in range(6): +# graph.add_vertex(i) + +# print(graph.getVertices()) + +# graph.add_edge({1,2}) +# graph.add_edge({2,3}) +# graph.add_edge({3,4}) + + +# print(graph.getEdges()) + +print(graph) +print (dfs(graph,1)) +print (bfs(graph,1)) \ No newline at end of file diff --git a/pertemuan3/latihan.py b/pertemuan3/latihan.py new file mode 100644 index 0000000..65bb1f7 --- /dev/null +++ b/pertemuan3/latihan.py @@ -0,0 +1,26 @@ +test = ['(','(',')'] + +simpan = [] + +cek = "tidak valid" + +for i in test: + if (i == '(' ): + simpan.append(i) + elif (i == ')'): + if (len(simpan) != 0 ): + for n in simpan: + if (n == '('): + cek ="valid" + simpan.remove(n) + break + elif (n != ')'): + cek = "tidak valid" + break + elif (len(simpan) == 0): + cek = "tidak valid" + +if (len(simpan)!= 0): + cek = "tidak valid" + +print(cek) \ No newline at end of file