Struktur Data SOAL
1. Tulis Tulis Sebuah Sebuah antrian Python Python yang yang membaca membaca sebuah stack(tum stack(tumpukan pukan)) dan menyimpan menyimpan hasil bacaan tersebut kedalam sebuah queue(antrian) ! 2. Tulis Tulis Sebuah Sebuah fungsi fungsi method method untuk untaian untaian yang yang menghitun menghitung g umlah elemen elemen yang yang ada dalam untaian tersebut. ". Tulis Tulis Sebuah Sebuah program program python python yang melakuk melakukan an perkalian perkalian dua matrik matrik dan menampilk menampilkan an hasil perkaliannya# Program ini memiliki beberapa fungsi#seperti membaca matrik#memeriksa dimensi matrik agar bisa diperkalikan#melakukan perkalian# dan menampilkan hasil perkalian $. %pabila %pabila soal berikut berikut ini memakai memakai struktur struktur antrian antrian (queuee)# (queuee)# bagaimana bagaimana isi dari dari antrian setelah program dialankan (elaskan manual untuk mengetahui bagaimana antrian bekera). &alue ' ueuee() or i in range(1*)+ if(i , ") ''-+ alue.enqueue( i ) elif(i , $ ) ''-+ alue.enqueue() /. Tulis Tulis fungsi fungsi untuk menamba menambahkan hkan data data %0T %0T dari suatu suatu pohon pohon biner#ya biner#yaitu+ itu+ a. Preorderne Preordernet(p) t(p) + memberikan memberikan isi node node setelah setelah node bernilai bernilai p dalam dalam urutan penelurusan pre3order#bila p node node terakhir # maka berikan 4one. b. 5nordernet(p) + memberikan isi node stelah node berisi p dalam urutan penelurusan penelurusan in3order # bil6 p node terakhir# maka berikan 4one c. Postordern Postordernet(p)+ et(p)+7embe 7emberikan rikan isi node setelah setelah node berisi berisi p dalam urutan urutan penulusuran post3order# bila p node terakhir # maka berikan 4one.
JAWABAN
1.
Sebuah antrian Python yang membaca sebuah stack(tumpukan) dan menyimpan hasil bacaan tersebut kedalam sebuah queue(antrian) class Stack: def __init__(self): self.data = [None] * 10 self.max_length = 10 self.top = 1 def p!sh(self" o#$): if self.top % 1 == self.max_length: self.data %= [None] * self.max_length self.max_length *= & self.data[self.top % 1] = o#$ self.top %= 1 def pop(self): if self.top == 1: 'aise xception(Stack is empt) data = self.data.pop(self.top) self.top = 1 'et!'n data
2.
ungsi method untuk untaian yang menghitung umlah elemen yang ada dalam untaian list kosong : L=[] list dengan dua elemen dengan tipe bilangan : L = [1,2] list dengan dua elemen dengan tipe berbeda beda : L = [1,'2+4j] list di dalam list : L = [1,2,[1,2]]
nama = ['asrul','herdi','regina'] print nama[0] print nama[1]
outputnya : asrul outputnya : hherdi
print nama[2]
outputnya : regina
nama[2] = 'hengki kurniawan' print nama[2]
outputnya : hengki kurniawan
print len(nama) outputnya : 2
". Sebuah program python yang melakukan perkalian dua matrik dan menampilkan hasil perkaliannya# Program ini memiliki beberapa fungsi#seperti membaca matrik#memeriksa dimensi matrik agar bisa diperkalikan#melakukan perkalian# dan menampilkan hasil perkalian defcetak_matriks(matriks): forrow inmatriks: printrow defpjg_matriks(matriks): returnlen(matriks[0]) deflbr_matriks(matriks): returnlen(matriks) defkalikan_matriks(mat_a, mat_b):
temp_row =[] temp_mat =[] temp_sum =0
fori inrange(0, lbr_matriks(mat_a)): forj inrange(0, pjg_matriks(mat_a)): fork inrange(0, lbr_matriks(mat_a)): temp_sum +=mat_a[i][k] mat_b[j][k] temp_row!append(temp_sum) temp_sum =0 temp_mat!append(temp_row) temp_row =[] returntemp_mat
matriks_a =[[", ", "], [", ", "], [", ", "]] matriks_b =[[#, #, #], [#, #, #], [#, #, #]] print$matriks_a : $ cetak_matriks(matriks_a) print$%nmatriks_b : $ cetak_matriks(matriks_b) print$%n&asil perkalian :$ &asil =kalikan_matriks(matriks_a, matriks_b) cetak_matriks(&asil)
$. elaskan manual untuk mengetahui bagaimana antrian bekera. &alue ' ueuee() + menampilkan semua nilai queuee(antrian) or i in range(1*)+ instruksi perulangan sebanyak 1* kali if(i , ") ''-+ bila i habis dibagi oleh " alue.enqueue( i ) + maka akan menampilkan enqueue(antrian) dari i elif(i , $ ) ''-+ selain itu ika i habis dibagi $ alue.enqueue() maka akan menampilkan hasil enqueuee . /. Tulis fungsi untuk menambahkan data %0T dari suatu pohon biner#yaitu+ a. Preordernet(p) + memberikan isi node setelah node bernilai p dalam urutan penelurusan pre3order#bila p node terakhir # maka berikan 4one. PreOrder_next(p): if self.root !=None: if self.root.data !='*': print self.root.data, self .root.left.PreOrder() self .root.right.PreOrder()
b. urusan in3order # bil6 p node terakhir# maka berikan 4one Inorder_next(p): if self.root !=None: if self.root.data !='*': print self.root.data, self .root. right.InOrder() self .root.left.InOrder()
c. Postordernet(p)+7emberikan isi node setelah node berisi p dalam urutan penulusuran post3order# bila p node terakhir # maka berikan 4one. def postorder(tree): data =[ def re"rse(node) ifnot node:
ret"rn re"rse(node.left) re"rse(node.right) data.append(node.data) re"rse(tree) ret"rn data
TUGAS STRUKTUR DATA
NAMA : CHANDRA APPULEMBANG NIP : 1525 KELAS :
STMIK DIPANEGARA MAKASSAR 2!1"