Anda di halaman 1dari 22

Laporan Project Matakuliah

Algoritma dan Pemrograman

Kelas TPB C

Kelompok:
Nurkholis Alfian 04161053
Nina Rezania 07161063
Wisnu Surya 10161083

Institut Teknologi Kalimantan


2017
1.1 Latar Belakang

Algoritma dan pemrograman merupakan ilmu yang sangat esensial dalam


membuat program. Dengan pemrograman itu sendiri, sebuah program bisa
disusun dibantu dengan algoritma. Algoritma membantu penyelesaian masalah
yang ingin dipecahkan untuk membuat sebuah program, kemudian program
disusun oleh programmer dengan mengcompile source code menjadi sebuah
program yang dapat dieksekusi (suprapto, 2008).

Secara garis besar ada dua kategori bahasa pemrograman yaitu: bahasa
pemrograman aras rendah (low level) dan bahasa pemrograman level tinggi (high
level). Bahasa pemrograman aras rendah cenderung mendekati level komputer, ini
artinya bahwa bahasanya ditulis mendekati atau sama dengan bahasa mesin
komputer, hal ini sangat sulit ditulis karena bahasanya jauh dari bahasa manusia
yang digunakan sehari-hari. Salah satunya adalah python.

Python merupakan bahasa pemrograman yang freeware atau perangkat


bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau
mendistribusikannya. Lengkap dengan source codenya, debugger dan profiler,
antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi
sistem, GUI (antarmuka pengguna grafis), dan basis datanya.

Dengan menggunakan bahasa python membantu menyelesaikan masalah


yang ingin dipecahkan dan mempermudah aktivitas manusia melalui program-
program yang dapat diaplikasikan ke dalam kehidupan sehari-hari. Berawal dari
permasalahan yang ribet dan rumit dalam meng-input data yang berupa nilai
mahasiswa untuk diubah menjadi Indeks Prestasi Komulatif maka dibuatlah
program untuk meng-input nilai mahasiswa dengan cepat.

Program Siformik adalah program python mengenai sistem informasi nilai


akademik mahasiswa, dimana mahasiswa atau dosen tinggal meng-input data
berupa nilai mahasiswa untuk mengetahui IPK dari mahasiswa yang di-input
tersebut.
1.2 Manfaat

Program Siformik atau sistem informasi nilai akademik mampu memudahkan


dosen untuk meng-input nilai mahasiswa tanpa harus menghitung dengan rumus
untuk menghasilkan hasil akhir atau IPK dan grade mahasiswa. Mahasiswa juga
dapat menggunakannya untuk mengetahui nilai apa saja yang harus di raih dengan
spekulasi untuk meraih IP tertentu.

1.3 Tujuan

Program Siformik bertujuan untuk menghasilkan total nilai mahasiswa, IPK


mahasiswa dan grade mahasiswa yang di inputkan data nilainya tanpa harus
menghitung menggunakan rumus seperti pada ms.exel.

1. List
List adalah tipe data yang digunakan untuk menampung kumpulan dari
beberapa data, baik yang bertipe sama maupun berbeda. Data-data di
dalam list dipisahkan dengan koma di dalam kurung siku.

2. Operator Logika
Pada bahasa python terdapat 3 operator logika antara lain and, or dan not.
Adapun cara penggunaan dari operator-operator tersebut adalah sebagai
berikut:
a. And
Jika kedua operan bernilai True, maka kondisi akan bernilai True.
Selain kondisi tadi maka akan bernilai False.
b. Or
Jika salah satu atau kedua operan bernilai True maka kondisi akan
bernilai True. Jika keduanya False maka kondisi akan bernilai False.
c. Not
Membalikkan nilai kebeneran pada operan misal jika asalnya True

akan menjadi False dan begitupun sebaliknya.


3. Operator Relasi (Perbandingan)
Sesuai dengan namanya, operator perbandingan membandingkan nilai dari
2 operand. Hasilnya selalu salah satu dari true atau false. Hasil
perbandingan akan bernilai true jika kondisi perbandingan tersebut benar,
atau false jika kondisinya salah. Berikut merupakan macam-macam
operator kondisi:
a. Sama dengan ==
b. Tidak sama dengan !=
c. Kurang dari <
d. Kurang atau sama dengan <=
e. Lebih dari >
f. Lebih atau sama dengan >=

4. Percabangan
a. If
If yaitu bila suatu kondisi tertentu tercapai maka apa yang harus
dilakukan. Dengan fungsi ini kita bisa menjalankan suatu perintah
dalam kondisi tertentu.
b. Elif
Elif adalah ketika kondisi lainnya tidak tercapai maka jalankan
program.
c. Else
Else adalah ketika tidak ada suatu kondisi yang terpenuhi

5. Loop (pengulangan)
Ada 3 macam bentuk perulangan pada Python, yaitu:
a. FOR Loop
For Loop digunakan untuk melakukan perulangan atau iterasi sampai
batas atau range yang telah ditentukan.
b. WHILE Loop
While Loop akan menjalankan statemet selama kondisi terpenuhi (atau
bernilai true).
c. Loop bersarang (Nested Loop)
Nested Loop secara sederhana adalah perulangan di dalam perulangan.
Nested loop terdiri atas Outer loop dan Inner loop.

6. Kontrol di dalam looping


Python juga mendukung penggunaan kontrol di dalam looping. Ada 3
kontrol, yaitu
a. break : untuk menghentikan looping ketika terjadi kondisi tertentu.
b. continue : untuk melanjutkan operasi, ketika pada blok statemen
menghasilkan nilai yang diharapkan atau yang dicari.
c. pass : kontrol ini tidak menghasilkan apa-apa, pass akan berguna
untuk mengecek apakah statemen berjalan apa tidak.

PSEUDOCOSE
#Algoritma_Program_Siformik
Deskripsi
{Program Siformik atau sistem informasi nilai akademik mampu
memudahkan dosen untukmeng-input nilai mahasiswa tanpa harus
menghitung dengan rumus untuk menghasilkan
hasil akhir atau IPK dan grade mahasiswa.}
Deklarasi
bm : integer
nama,nim,ulang : string
ptk,ptk,pqk,pmk : real
btk,bqk,btf,bqf,bqa,btp,bqp : integer
tk = 0
qk = 0
tf = 0
qf = 0
qa = 0
tp = 0
qp = 0
hk1, hk2, hf1, hf2, ha1, ha2, hp1, hp2 : integer
tqk,ttk,ttf,tqf,tta,ttp : integer
ntk,nqk,nmk,nak,nzk : real
izk,izf,iza,ipk,ipt : real
ptf,pqf,pmf,paf : real
jmlhfsk : real
ntf,nmf,naf,nzf, : real
pta,pqa,pma,paa,pba : real
jmlhalpro : integer
nma,naa,nba,nza : real
ptp,pqp,pmp,pap,pbp : real
jmlhalpms : real
ntp,nmp,nap,nbp,nzp : real

Pseudocode
m=1
1. while (m==1)then
ENDWHILE
2. read("Banyaknya Mahasiwa:")
3. ul=0
4. kalku=[]
5. fisik=[]
6. alpro=[]
7. pms=[]
8. name=[]
9. nm=[]
10. izt = 0
11.
12. while ul<bm then
ENDWHILE
14. read("Nama Mahasiswa:")
15. read("NIM:")
16.
17. write
("\n____________________KALKULUS__________________________
_")
18.
19. x=1
20. while (x==1)then
ENDWHILE
21.
22. while True then
ENDWHILE
23. read("Persentase Tugas:")
24. IF ptk >= 0 AND ptk <= 100 then
ENDIF
25. break
26. else then
27. write("Presentase Error")
28. continue
29. while True then
ENDWHILE
30. read("Persentase Quiz:")
31. IF pqk >= 0 AND pqk <= 100 then
ENDIF
32. break
33. else then
34. write("Presentase Error")
35. continue36.
36. while True then
ENDWHILE
37. read("Persentase UTS:")
38. IF pmk >= 0 AND pmk<= 100 then
ENDIF
39. break
40. else then
41. write ("Presentase Error")
42. continue
43. while True then
ENDWHILE
44. read("Persentase UAS:")
45. IF pak >= 0 AND pak<= 100 then
ENDIF
46. break
47. else then
48. write ("Presentase Error")
49. continue
50. jmlh= ptk+pqk+pmk+pak
51. IF (jmlh==100) then
ENDIF
52. break
53. else then
54. write ("\nPASTIKAN PERSENTASENYA 100%")
56.
57.
write("\n****************************************************
**")
58.
59. x=1
60. while (x==1) then
ENDWHILE
61.
62. ("\nBanyaknya Nilai Tugas:")
63. tk=0
64. hk1=0
65.
67. while hk1<btk then
ENDWHILE
68. while True then
ENDWHILE
69. read("Nilai Tugas ke-"+str(hk1+1)+": ")
70.
71. IF ntk >= 0 AND ntk <= 100 then
ENDIF
72. break
73. else then
74. write ("Nilai Error")
75. continue
76. ttk=tk+ntk
77. hk1=hk1+1
78. read("\nBanyak Nilai Quiz:")
79. qk=0
80. hk2=0
81. tqk=0
82. while hk2<bqk then
ENDWHILE
83. while True then
ENDWHILE
84. read("Nilai Quiz ke-"+str(hk2+1)+": ")
85. IF nqk >= 0 AND nqk<= 100 then
ENDIF
86. break
87. else then
88. write ("Nilai Error")
89. continue
90. tqk=qk+nqk
91. hk2=hk2+1
92. while True then
ENDWHILE
93. read("\nNilai UTS:")
94. IF nmk >= 0 AND nmk<= 100 then
ENDIF
95. break
96. else then
97. write ("Nilai Error")
98. continue
99. while True then
ENDWHILE
100. read("\nNilai UAS:")
102. IF nak >= 0 AND nak<= 100 then
ENDIF
103. break
104. else then
105. write ("Nilai Error")
106. continue
107.
nzk=(ttk*ptk/100)+(tqk*pqk/100)+(nmk*pmk/100)+(nak*pak/100)
108. izk=nzk/25
109.
write("\n****************************************************
**")
110.
111. write
("\n____________________FISIKA___________________________")
112.
113. a=1
114. while (a==1)then
ENDWHILE
115.
116. while True then
ENDWHILE
117. read("Persentase Tugas:")
118. IF ptf >= 0 AND ptf<= 100 then
ENDIF
119. break
120. else then
121. write("Presentase Error")
122. continue
123. while True then
ENDWHILE
124. read("Persentase Quiz:")
125. IF pqf >= 0 AND pqf <= 100 then
ENDIF
126. break
127. else then
128. write("Presentase Error")
129. continue
130. while True then
ENDWHILE
131. read("Persentase UTS:")
132. IF pmf >= 0 AND pmf<= 100 then
ENDIF
133. break
134. else then
135. write ("Presentase Error")
136. continue
137. while True then
ENDWHILE
138. read("Persentase UAS:")
139. IF paf >= 0 AND paf<= 100 then
ENDIF
140. break
141. else then
142. write ("Presentase Error")
143. continue
144. jmlhfsk=ptf+pqf+pmf+paf
145. IF (jmlhfsk==100)then
ENDIF
146. break
147. else then
148. write ("\nPASTIKAN PERSENTASE <- 100% ")
149.
150.
write("\n***********************************************")
151. a=1
152. while (a==1)then
ENDWHILE
153. read("\nBanyaknya Nilai Tugas:")
154. tf=0
155. hf1=0
156. while hf1<btf then
ENDWHILE
157. while True:
ENDWHILE
158. read("Nilai Tugas ke-"+str(hf1+1)+": ")
159. IF ntf >= 0 AND ntf<= 100 then
ENDIF
160. break
161. else then
162. write ("Nilai Error")
163. continue
164. ttf=tf+ntf
165. hf1=hf1+1
166. read("\nBanyak Nilai Quiz:")
167. qf=0
168. hf2=0
169. tqf=0
170. while hf2<bqf then
ENDWHILE
171. read("Nilai Quiz ke-"+str(hf2+1)+": ")
172. IF nqf >= 0 AND nqf<= 100 then
ENDIF
173. break
174. else then
175. write ("Nilai Error")
176. continue
177. tqf=qf+nqf
178. hf2=hf2+1
179. while True then
ENDWHILE
180. read("\nNilai UTS:")
181. IF nmf >= 0 AND nmf<= 100 then
ENDIF
182. break
183. else then
184. write ("Nilai Error")
185. continue
186. while True then
ENDWHILE
187. read("\nNilai UAS:")
188. IF naf >= 0 AND naf<= 100 then
ENDIF
189. break
190. else then
191. write ("Nilai Error")
192. continue
193.
nzf=(ntf*ptf/100)+(nqf*pqf/100)+(nmf*pmf/100)+(naf*paf/100)
194. izf=nzf/25
195.
write("\n****************************************************"
)
196.
197.
write("\n_____________________ALPRO_________________________
_")
198.
199. b=1
200. while (b==1) then
ENDWHILE
201. while True then
ENDWHILE
202. read("Persentase Tugas:")
203. IF pta >= 0 AND pta<= 100 then
ENDIF
204. break
205. else then
206. write("Presentase Error")
207. continue
208. while True then
ENDWHILE
209. read("Persentase Quiz:")
210. IF pqa >= 0 AND pqa <= 100 then
ENDIF
211. break
212. else then
213. write("Presentase Error")
214. continue
215. while True then
ENDWHILE
216. read("Persentase UTS:")
217. IF pma >= 0 AND pma<= 100 then
ENDIF
218. break
219. else then
220. write ("Presentase Error")
221. continue
222. while True then
ENDWHILE
223. read("Persentase UAS:")
224. IF paa >= 0 AND paa<= 100 then
ENDIF
225. break
226. else then
227. write ("Presentase Error")
228. continue
229. while True then
ENDWHILE
230. read("Persentase Tugas Besar:")
231. IF pba >= 0 AND pba<= 100 then
ENDIF
232. break
233. else then
234. write ("Presentase Error")
235. continue
236. jmlhalpro=pta+pma+paa+pba+pqa
237. IF (jmlhalpro==100) then
ENDIF
238. break
239. else then
240. write ("\nPASTIKAN PERSENTASE <- 100% ")
241.
242.
write("\n***********************************************")
243. b=1
244. while (b==1) then
ENDWHILE
245. read("\nBanyaknya Nilai Tugas:")
246. ta=0
247. ha1=0
248. while ha1<bta then
ENDWHILE
249. while True then
ENDWHILE
250. read("Nilai Tugas ke-")
251. IF nta >= 0 AND nta<= 100:
ENDIF
252. break
253. else then
254. write ("Nilai Error")
255. continue
256. tta=ta+nta
257. ha1=ha1+1
258. read("\nBanyak Nilai Quiz:")
259. qa=0
260. ha2=0
261. while ha2<bqa:
ENDWHILE
262. while True:
ENDWHILE
263. read("Nilai Quiz ke-")
264. IF nqa >= 0 AND nqa<= 100:
ENDIF
265. break
266. else then
267. write ("Nilai Error")
268. continue
269. tqa=qa+nqa
270. ha2=ha2+1
271. while True then
ENDWHILE
272. read("\nNilai UTS:")
273. IF nma >= 0 AND nma<= 100 then
ENDIF
274. break
275. else then
276. write ("Nilai Error")
277. continue
278. while True then
ENDWHILE
279. read("\nNilai UAS:")
280. IF naa >= 0 AND naa<= 100 then
ENDIF
281. break
282. else then
283. write ("Nilai Error")
284. continue
285. while True then
ENDWHILE
286. read("\nNilai Tugas Besar:")
287. IF nba >= 0 AND nba<= 100 then
ENDIF
288. break
289. else then
290. write ("Nilai Error")
291. continue
292.
nza=(nta*pta/100)+(nqa*pqa/100)+(nma*pma/100)+(naa*paa/100)+(nba*
pba/100)
293. iza=nza/25
294.
write("\n***************************************************")
295. write
("\n____________________PMS___________________________")
296.
297. c=1
298. while (c==1) then
ENDWHILE
299. while True then
ENDWHILE
300. read("Persentase Tugas:")
301. IF ptp >= 0 AND ptp<= 100 then
ENDIF
302. break
303. else then
304. write("Presentase Error")
305. continue
306. while True then
ENDWHILE
307. read("Persentase Quiz:")
308. IF pqp >= 0 AND pqp <= 100 then
ENDIF
309. break
310. else then
311. write("Presentase Error")
312. continue
313. while True then
ENDWHILE
314. read("Persentase UTS:")
315. IF pmp >= 0 AND pmp<= 100 then
ENDIF
316. break
317. else then
318. write ("Presentase Error")
319. continue
320. while True then
ENDWHILE
321. read("Persentase UAS:")
322. IF pap >= 0 AND pap<= 100 then
ENDIF
323. break
324. else then
325. write ("Presentase Error")
326. continue
327. while True then
ENDWHILE
328. read("Persentase Tugas Besar:")
329. IF pbp >= 0 AND pbp<= 100 then
ENDIF
330. break
331. else then
332. write ("Presentase Error")
333. continue
334. jmlhalpms=ptp+pmp+pap+pbp+pqp
335. IF (jmlhalpro==100) then
ENDIF
336. break
337. else then
338. write ("\nPASTIKAN PERSENTASE <- 100% ")
339.
write("\n*************************************************")
340. c=1
341. while (c==1) then
ENDWHILE
342. read("\nBanyaknya Nilai Tugas:")
343. tp=0
344. hp1=0
345. while hp1<btp then
ENDWHILE
346. while True then
ENDWHILE
347. read("Nilai Tugas ke-")
348. IF ntp >= 0 AND ntp<= 100 then
ENDIF
349. break
350. else then
351. write ("Nilai Error")
352. continue
353. ttp=tp+ntp
354. hp1=hp1+1
355. read("\nBanyak Nilai Quiz:")
356. qp=0
357. hp2=0
358. while hp2<bqp then
ENDWHILE
359. while True then
ENDWHILE
360. read("Nilai Quiz ke-")
361. IF nqp >= 0 AND nqp<= 100 then
ENDIF
362. break
363. else then
364. write ("Nilai Error")
365. continue
366. tqp=qp+nqp
367. hp2=hp2+1
368. while True when
ENDWHILE
369. read("\nNilai UTS:")
370. IF nmp >= 0 AND nmp<= 100 then
ENDIF
371. break
372. else then
373. write ("Nilai Error")
374. continue
375. while True then
ENDWHILE
376. read("\nNilai UAS:")
377. IF nap >= 0 AND nap<= 100 then
ENDIF
378. break
379. else then
380. write ("Nilai Error")
381. continue
382. while True then
ENDWHILE
383. read("\nNilai Tugas Besar:")
384. IF nbp >= 0 AND nbp<= 100 then
ENDIF
385. break
386. else then
387. write ("Nilai Error")
388. continue
389.
nzp=(ntp*ptp/100)+(nqp*pqp/100)+(nmp*pmp/100)+(nap*pap/100)+(nbp
*pbp/100)
390. izp=nzp/25
391.
392.
write("\n****************************************************
******")
393.
394. #Nilai Kalkulus
395. write("Nilai Akhir Kalkulus:", str(nzk))
396. IF izk==0 AND izk<=1.6 then
ENDIF
397. write("IP Kalkulus : E")
398. else IF izk<=2.2 then
ENDIF
399. write("IP Kalkulus : D")
400. else IF izk<=2.6 then
ENDIF
401. write("IP Kalkulus : C")
402. else IF izk<=2.72 then
ENDIF
403. write("IP Kalkulus : BC")
404. else IF izk<=2.96 then
ENDIF
405. write("IP Kalkulus : B")
406. else IF izk<=3.2 then
ENDIF
407. write("IP Kalkulus : AB")
408. else IF izk<=4 then
ENDIF
409. write("IP Kalkulus : A")
410.
411. #Nilai Fisika
412. write("Nilai Akhir Fisika:")
413. IF izf==0 AND izf<=1.6 then
ENDIF
414. write("IP Fisika : E")
415. else IF izf<=2.2 then
ENDIF
416. write("IP Fisika : D")
417. else IF izf<=2.6 then
ENDIF
418. write("IP Fisika : C")
419. else IF izf<=2.72 then
ENDIF
420. write("IP Fisika : BC")
421. else IF izf<=2.96 then
ENDIF
422. write("IP Fisika : B")
423. else IF izf<=3.2 then
ENDIF
424. write("IP Fisika : AB")
425. else IF izf<=4 then
ENDIF
426. write("IP Fisika : A")
427.
428. #Nilai Alpro
429. write("Nilai Akhir Alpro:")
430. IF iza==0 AND iza<=1.6 then
ENDIF
431. write("IP Alpro : E")
432. else IF iza<=2.2 then
ENDIF
433. write("IP Alpro : D")
434. else IF iza<=2.6 then
ENDIF
435. write("IP Alpro : C")
436. else IF iza<=2.72 then
ENDIF
437. write("IP Alpro : BC")
438. else IF iza<=2.96 then
ENDIF
439. write("IP Alpro : B")
440. else IF iza<=3.2 then
ENDIF
441. write("IP Alpro : AB")
442. else IF iza<=4 then
ENDIF
443.`
444. #Nilai PMS
445. write("Nilai Akhir PMS:")
446. IF izp==0 AND izp<=1.6 then
ENDIF
447. write("IP PMS : E")
448. else IF izp<=2.2 then
ENDIF
449. write("IP PMS : D")
450. else IF izp<=2.6 then
ENDIF
451. write("IP PMS : C")
452. else IF izp<=2.72 then
ENDIF
453. write("IP PMS : BC")
454. else IF izp<=2.96 then
ENDIF
455. write("IP PMS : B")
456. else IF izp<=3.2 then
ENDIF
457. write("IP PMS : AB")
458. else IF izp<=4 then
ENDIF
459. write("IP PMS : A")
460.
461. ipk=(izk+izf+iza+izp)/4
462. write ("Nilai Total:")
463. ipt=ipk/25
464. IF ipk==0 AND ipk<=1.6 then
ENDIF
465. write("IP Akhir : E")
466. else IF ipk > 1.6 AND ipk<=2.2 then
ENDIF
467. write("IP Akhir : D")
468. else IF ipk > 2.2 AND ipk<=2.6 then
ENDIF
469. write("IP Akhir : C")
470. else IF ipk > 2.6 AND ipk<=2.72 then
ENDIF
471. write("IP Akhir : BC")
472. else IF ipk > 2.72 AND ipk<=2.96 then
ENDIF
473. write("IP Akhir : B")
474. else IF ipk > 2.96 AND ipk<=3.2 then
ENDIF
475. write("IP Akhir : AB")
476. else IF ipk > 3.2 AND ipk<=4 then
ENDIF
477. write("IP Akhir : A")
478.
479. name.append(nam)
480. nm.append(nim)
481. kalku.append(izk)
482. fisik.append(izf)
483. alpro.append(iza)
484. pms.append(izp)
485. break
486.
487. write((name),(nm),("Kalkulus: " + str(izk)),("Fisika: "
+ str(izf)),("Alpro: " + str(iza)),("PMS:" + str(izp)),("\nIPK: " + str(ipk)),
end <- " ")
488. ulang=read("APAKAH ANDA INGIN MENGULANG??
(Y/N)")
489. IF (ulang=="Y") then
ENDIF
490. continue
491. else then
492. break

https://bedeez.blogspot.co.id/2016/04/fungsi-if-elif-else-pada-python.html
https://codesaya.com/python/kondisi-dan-alur-
kendali/perbandingan/unit/1/#
http://nursalimbox.blogspot.co.id/2015/12/perulangan-pada-python.html
http://www.duniailkom.com/pengertian-dan-jenis-jenis-operator-
perbandingan-dalam-php/

Anda mungkin juga menyukai