Anda di halaman 1dari 5

Tugas Kelompok Struktur data

Pembahasan Soal UTS


Kelompok 8

Anggota Kelompok : 1. Muhammad Yusuf Rifqi Se awan (213510655)


2. Mario Nur Rohman (213510006)
3. Nouval Nugraha (213510504)
4. Wildan Risqan Aulion (213510826)
5. Zelynda Aurora (213510685)

1. #Data Mahasiswa 1
Npm1=int(input("Masukkan Npm Mahasiswa ke 1 : "))
Nama1=str(input("Masukkan Nama Mahasiswa ke 1 : "))
IPK1=float(input("Masukkan IPK Mahasiswa ke 1 : "))
#Data Mahasiswa 2
Npm2=int(input("Masukkan Npm Mahasiswa ke 2 : "))
Nama2=str(input("Masukkan Nama Mahasiswa ke 2 : "))
IPK2=float(input("Masukkan IPK Mahasiswa ke 2 : "))
#Data Mahasiswa 3
Npm3=int(input("Masukkan Npm Mahasiswa ke 3 : "))
Nama3=str(input("Masukkan Nama Mahasiswa ke 3 : "))
IPK3=float(input("Masukkan IPK Mahasiswa ke 3 : "))

#Set
set1={Npm1, Nama1, IPK1}
set2={Npm2, Nama2, IPK2}
set3={Npm3, Nama3, IPK3}
print(set1,"\n",set2, "\n", set3)
#List
list1=[Npm1, Nama1, IPK1]
list2=[Npm2, Nama2, IPK2]
list3=[Npm3, Nama3, IPK3]
print(list1,"\n",list2, "\n", list3)
#Tuple
tuple1=(Npm1, Nama1, IPK1)
tuple2=(Npm2, Nama2, IPK2)
tuple3=(Npm3, Nama3, IPK3)
print(tuple1,"\n",tuple2, "\n", tuple3)
#Dictionary
dict1={"Npm":Npm1, "Nama" : Nama1,"Ipk": IPK1}
dict2={"Npm":Npm2, "Nama" : Nama2,"Ipk": IPK2}
dict3={"Npm":Npm3, "Nama" : Nama3,"Ipk": IPK3}
print(dict1,"\n",dict2, "\n", dict3)
2. a. Tipe data : Interger
b. Fungsi Rekursif ini akan berakhir ke ka ia masuk kedalam kondisi dimana
jika nilai parameter sama dengan 0
c. Faktorial = 3*2*1*1 = 6
d. n = int(input('Masukkan nilai n: '))

def hitung_faktorial (n):


if n == 0:
return n
else :
return (n* hitung_faktorial(n - 1)

faktorial = hitung_faktorial(n)
print(f'{n}!= {faktorial}')

3. def selectionSort(array, size):


for step in range(size):
min_idx = step

for i in range(step + 1, size):


if array[i] > array[min_idx]:
max_idx = i
(array[step], array[min_idx]) = (array[min_idx], array[step])
data = [‘3.21’, ‘2.56’, ‘3.76’, ‘2.75’, ‘3.55’, ‘2.98’, ‘3.98’]
size = len(data)
selectionSort(data, size)
print('Pengurutan Dari Nilai Terbesar:', data)

Output :
3.98, 3.76, 3.55, 3.21, 2.98, 2.75, 2.56

4. def searchNumber(angkaCari, List):


ketemu = False
List.sort()
print (‘List setelah disort = ',listAngka)
indexAwal = 0
indexAkhir = len(List)-1
indexTengah = 0
while indexAwal <= indexAkhir and not ketemu:
indexTengah = (indexAwal + indexAkhir) // 2
if List[indexTengah] == angkaCari
ketemu = True
else:
if angkaCari < List[indexTengah]:
indexAkhir = indexTengah - 1
else:
indexAwal = indexTengah + 1
return hasil
listAngka = [‘3.21’, ‘2.56’, ‘3.76’, ‘2.75’, ‘3.55’, ‘2.98’, ‘3.98’]
angkaCari = int(input('Masukkan IPK yang ingin dicari : '))
print (‘List sebelum disort = ',listAngka)

hasil = searchNumber(angkaCari, listAngka)


if not ketemu:
print("Data Tidak Ditemukan !!)
else:
print('IPK %i ditemukan pada list index-%i'% (angkaCari,indexTengah))

output :
Masukkan IPK yang ingin Dicari :
List sebelum disort =[‘3.21’, ‘2.56’, ‘3.76’, ‘2.75’, ‘3.55’, ‘2.98’, ‘3.98’]
List sebelum disort =[‘2.56’ , ‘2.75’, ‘2.98’, ‘3.21’, ‘3.55’, ‘3.76’, ‘3.98’]
Ipk 3,76 ditemuka pada list index 5
Linear Searching :

1. Listnya[index]==nmpygdicari
Listnya[0]==213510006
213510655==213510006, jumpa = False
Index+=1

2. Listnya[index]==nmpygdicari
Listnya[1]==213510006
213510006==213510006, jumpa = True

Binary Searching :
1. Listnya[index_tengah]=npmygdicari
Listnya[2]=213510006
213510006<=213510655
Index_akhir=index_tengah-1

2. Listnya[index_tengah]=npmygdicari
Listnya[0]=213510006
213510006==213510006
Jumpa=True
Hasil=Index_tengah

Anda mungkin juga menyukai