Anda di halaman 1dari 8

Kode MK–Kelas

UAS Semester Genap 2021/2022


Tanggal-Bulan-Tahun, Waktu Ujian
Pengajar: ……….. Rev:……

PERNYATAAN KESANGGUPAN MENTAATI TATA TERTIB UJIAN


“Saya telah membaca dan memahami ketentuan tata tertib berikut ini, serta menyatakan
bahwa jawaban ujian ini adalah hasil pekerjaan saya sendiri. Saya menyetujui jika melakukan
pelanggaran atas ketentuan tersebut, saya bersedia diproses sesuai ketentuan yang berlaku (SK
Dekan 103a Tahun 2020) dengan sanksi maksimal nilai akhir E.”

Nama & Tanda-tangan: Kelas: Nomor Pokok Mahasiswa:

TATA TERTIB UJIAN


o Semua alat komunikasi elektronik dalam kondisi non-aktif (dimatikan), dimasukkan ke
dalam tas dan diletakkan pada tempat yang telah disediakan.
o Peralatan ujian yang boleh dibawa adalah alat tulis dan yang diperbolehkan sesuai sifat
ujian.
o Peserta ujian menempati tempat duduk yang telah ditentukan.
o Peserta ujian menuliskan nama dan NPM pada setiap lembar jawaban ujian.
o Peserta mulai membuka soal dan mengerjakan ketika pengawas mengatakan ujian dimulai
dan berhenti bekerja (meletakkan alat tulis) ketika pengawas mengatakan waktu habis.
o Peserta tidak berkomunikasi dalam bentuk apa pun dengan peserta lain selama berada di
ruang ujian, termasuk pinjam meminjam alat tulis, serta tidak memberi atau menerima
bantuan dari siapapun selama ujian berlangsung.
o Peserta yang meninggalkan ruang ujian dianggap selesai mengerjakan. Jika karena kondisi
medis khusus tidak bisa memenuhi ketentuan ini, peserta wajib melaporkan kepada
pengawas sebelum ujian dimulai.
o Setelah selesai mengerjakan atau setelah waktu habis, peserta segera meninggalkan berkas
soal dan lembar jawaban ujian di meja masing-masing, mengambil tas dan segera keluar
tanpa mengganggu peserta lain serta tanpa berkomunikasi dengan peserta lain.
o Jawaban ujian ini tidak akan dinilai jika pernyataan di atas ini tidak ditandatangani.

Informasi Tambahan
o S
Nama/NPM:________________________

BAGIAN 1: PILIHAN GANDA (15 pts)

1. Diberikan potongan program berikut

class mystery_a:
def __init__(self):
self.a='string'
self.x=3
class mystery_b(mystery_a):
def __init__(self):
mystery_a.__init__(self)
self.x = 1
class mystery_c(mystery_b):
def __init__(self):
self.y=2
def main():
b = mystery_c()
print(b.a,b.y)
main()

Apakah luaran dari program tersebut?


A. String 3
B. 1 3
C. String 2
D. 1 2
E. String 1
F. Attribute Error

2. Apakah luaran dari potongan program berikut

a_set = {'DDP 1', tuple('UAS'),2022}


b_set={'2022','DDP 1','UAS'}
print(a_set.difference(b_set))

A. Type Error
B. Key Error
C. {}
D. {2022}
E. {('U', 'A', 'S'), 2022}
F. {'UAS', 2022}
Nama/NPM:________________________

3. Apakah luaran dari program berikut

dict1 = {"name": "Mike", "salary": 8000}


temp = dict1.pop("name")
print(dict1["name"])

A. Key Error “name”


B. Key Error “Mike”
C. Mike
D. Name
E. Value Error
F. I/O Error

4. Diberikan potongan kode sebagai berikut


dict_x={'name':'Jhons',
'age':21,
'hobby': ['football','PUBG'],
'faculty':'Computer Science'
}
Manakah operasi berikut ini yang menghasilkan error?
A. dict_x.keys()
B. dict_x['age']=dict_x['age’]*1.5
C. dict_x['faculty'][1]= 'System'
D. dict_x['name']= dict_x['faculty']
E. dict_x['hobby'][0]= 'badminton'
F. dict_x['hobby'][-1]= ‘hockey’

5. Diberikan potongan kode program berikut


def foo(i, j):
if i == 0 :
return j
else :
return foo(i - 1, i * j)

Apakah luaran program jika dilakukan pemanggilan fungsi foo(4,3)


A. 72
B. 48
C. 18
D. 24
E. 6
F. 36
Nama/NPM:________________________

6. Apakah luaran potongan kode berikut

def fun(i,j):
if(i==0):
return j
else:
return fun(i-1,j+1)

A. 11
B. 12
C. 13
D. 14
E. 15
F. 16

7. Diberikan potongan kode berikut


class Dog:
def __init__(self, name, age):
self.name = name
self.age = age

Manakah cari di bawah ini yang tepat untuk melakukan instansiasi object Dog

A. Dog("Rufus", 1)
B. Dog.__init__("Rufus", 3)
C. Dog()
D. Dog.create("Rufus", 3)
E. Dog(self, “Rufus”,3)
F. Semua jawaban salah

8. Fungsi yang didefinisikan pada sebuah kelas disebut..


A. Function
B. Operation
C. Callable
D. Class function
E. Factory
F. Method
Nama/NPM:________________________

9. Apakah luaran dari program berikut?

class A():
def __init__(self,count=101):
self.count=100
obj1=A()
obj2=A(102)
print(obj1.count, end=' ')
print(obj2.count)

A. 100 100
B. 100 102
C. 101 102
D. 101 100
E. 102 101
F. 102 100

10. Apakah yang akan terjadi jika program berikut dijalankan?


class A:
def __init__(self,x=5):
self.calcI(30,x)
print("i from A is", self.i *self.helper)

def calcI(self, i,x):


self.i,self.x = 3 * i,self.helper;

def helper(self,x):
self.x = 2

class B(A):

def __init__(self):
super().__init__()
def calcI(self, i,x):
self.i,self.j = 4 * i, 5;

B()

A. Method helper pada Class A tidak pernah terpanggil


B. Method calcI pada class B melakukan hal yang sama dengan method calcI pada class A
C. Constructor Class A dipanggil dan menampilkan output “i from A is 120”
D. Constructor Class A dipanggil dan menampilkan output “i from A is 240”
E. Constructor Class A dipanggil dan menampilkan output “i from A is 300”
F. Terjadi Type Error
Nama/NPM:________________________

BAGIAN 2: ISIAN SINGKAT (20 pts)

1. Diberikan sebuah kode berikut


class mystery_a:
def __init__(self):
self.x=0
self.y=2

class mystery_b(mystery_a):
def __init__(self):
self.y = 1

class mystery_c(mystery_b):
def __init__(self):
self.x=3

def main():
b = mystery_c()
print(b.x,b.y)
main()

Apakah luaran dari program tersebut?

_________________________________________________________________________

2. Diberikan kode program sebagai berikut

def foo(i, j):


if i == 0 :
return j
else :
return foo(i - 1, i + j)

Apakah output yang akan dihasilkan jika dilakukan pemanggilan foo(8,6)?

_________________________________________________________________________

3. Sebutkan setidaknya 5 reserved words pada Python!

_________________________________________________________________________
Nama/NPM:________________________

Gunakan kode berikut sebagai referensi untuk soal nomor 4 dan 5

def mystery(x):
if x == 0:
____________________ #Base Case
else:
____________________ #Recursive Case

4. Apa isi base case yang tepat jika fungsi mystery dirancang untuk menghasilkan representasi biner
dari x yang diasumsikan sebuah integer?

_________________________________________________________________________

5. Apa isi recursive case yang tepat jika fungsi mystery dirancang untuk menghasilkan representasi
biner dari x yang diasumsikan sebuah integer?

_________________________________________________________________________

BAGIAN 3: ESSAY (35 pts)

1. [15 pts] Jelaskan beberapa terminologi berikut beserta manfaatnya:


a. Object-Oriented Programming
b. Inheritance
c. Polymorphism

2. [5 pts] Apa saja yang akan anda pertimbangkan dalam menentukan pembuatan aplikasi
berbasis command-line atau GUI?

3. [5 pts] Jelaskan mengapa dalam tipe data sets tidak dapat dilakukan operasi indexing dan
slicing!

4. [5 pts] Jelaskan setidaknya tiga perbedaan antara tipe data list dan tuples!

5. [5 pts] Jelaskan kapan suatu program perlu dirancang dengan pendekatan rekursif!
Nama/NPM:________________________

BAGIAN 4: CODING TEST (30 pts)


Perhatikan narasi sebagai berikut sebelum menuliskan kode:
Bank INI merupakan bank baru yang hendak melakukan transformasi digital. Anda ditunjuk sebagai
pengembang aplikasi digital banking dari Bank INI. Digital banking Bank INI memungkinkan nasabah
untuk menyimpan sejumlah uang pada beberapa jenis akun rekening, yakni rekening tabungan dan
rekening deposito. Dalam kedua jenis rekening tersebut nasabah memiliki nomor rekening dan dapat
melakukan transfer ke rekening bank lain, penarikan uang hingga mendapatkan bunga tabungan yang
diberikan setiap bulan. Khusus rekening tabungan, nasabah memiliki batas penarikan uang dan
transfer bulanan. Jika seorang nasabah melebihi batas tersebut maka, penarikan uang atau transfer
dikenakan biaya tambahan sebesar 6500. Sementara itu, rekening deposito memiliki tanggal jatuh
tempo yang berpengaruh pada transaksi penarikan uang. Jika dilakukan penarikan uang sebelum
tanggal jatuh tempo, maka akan dikenakan biaya sebesar 10% dari jumlah tabungan deposito. Dana
yang disimpan pada rekening deposito tidak dapat ditransfer ke bank lain. Untuk kepentingan
administrasi, aplikasi tersebut juga menyimpan identitas personal meliputi nama, tanggal lahir,
pekerjaan, dan gaji tahunan untuk setiap akun yang disimpan dalam format dictionary. Identitas
personal selain nama dan tanggal lahir dapat diubah oleh nasabah sewaktu-waktu. Contoh dictionary
identitas personal adalah sebagai berikut:
personal_identity = {
'name':'Justinus Laksana',
'date_of_birth':'11/04/1997',
'occupation': 'teacher',
'anual_salary': 140000000
}

Buatlah program OOP yang dapat memfasilitasi kebutuhan pada narasi tersebut menggunakan Python!
Gunakan modul-modul python tambahan (contoh: datetime) jika diperlukan!

Anda mungkin juga menyukai