Anda di halaman 1dari 5

##################################################################

# Tugas Pemrograman 1 Dokumentasi


# Ira Eliya Rahmadhani
# 1306397841
# Pemdek C
##################################################################
# No 1
let rec listKul = function
| []
-> 0
| (x, y, z) :: xs
-> 1 + listKul (xs);;
Tipe data param
: List
Return type
: Integer
Fungsinya ngapain
: menghitung jumlah mata kuliah yg ada dengan mengkons
head dengan tail
# No 2
let rec getNama = function
| ((x,y) :: xs, n)
Tipe data param
Return type
Fungsinya ngapain

-> if x = n

then y
else getNama (xs, n);;

: List, Integer
: String
: Mengambil nama mahasiswa yang NPM nya terdapat di param
input

# No 3
let rec hitung = function
| []
-> 0
| (y::yy)
-> 1 + hitung(yy);;
Tipe data param
: List
Return type
: Integer
Fungsinya ngapain
: menghitung mata kuliah dr NPM yang diambil dr fungsi
dibawah
let rec numKuliahMhs = function
| ((x,yy) :: xs, n)
Tipe data param
Return type
Fungsinya ngapain

-> if x = n

then
else

hitung(yy)
numKuliahMhs(xs, n);;

: List, Integer
: Integer
: Mengambil NPM mahasiswa yang NPM nya terdapat di param
input, dan mengoper list mata kuliah ke penghitung diatas

# No 4
let rec fungsi1 = function
| ([], ys)
-> 0
| (yy, [])
| (y :: yy, (a,b,c) :: ys) ->
Tipe data param
Return type
Fungsinya ngapain

-> 0
if y = a

then
else

c + fungsi1(yy,ys)
fungsi1(yy,ys);;

: List, Integer
: Integer
: menghitung jumlah SKSnya dr fungsi dibawah

let rec jumSks = function


| ((x,yy) :: xs, ys, n)

-> if x = n

then

fungsi1(yy, ys)
else

jumSks(xs, ys, n);;


Tipe data param
:
Return type
:
Fungsinya ngapain
:
terdapat di param input, dan

List, List, Integer


Integer
Mengambil NPM mahasiswa dan listKul yang NPM nya
mengoper dua hal tersebut ke fungsi diatas diatas

# No 5
let rec cariNama = function
| (x,[])
| (x, (vy,wy) :: ys)

-> ""
-> if x=vy

then wy
else cariNama(x, ys);;

Tipe data param


Return type
Fungsinya ngapain

: integer, List
: String
: Mencari nama dr NPM (int) yg masuk

let rec cari = function


| (x, [], ys, n)
| (x,y::yz, ys, n)

-> ""
-> if y = n

Tipe data param


Return type
Fungsinya ngapain
nama

: Int, List, List, Int


: Integer, List
: mengolah input untuk dicari namanya di fungsi cari

let rec cariIsi = function


| ((x,yz)::xs, ys, n)
Tipe data param
Return type
Fungsinya ngapain

then cariNama(x,ys)
else cari(x, yz, ys, n);;

-> cari(x,yz,ys,n) :: cariIsi(xs,ys,n);;

: List, List, Integer


: List
: Mengeluarkan List dr NPM

let rec quik = function


| ([], sorted)
-> sorted
| ([x], sorted)
-> x::sorted
| (a::bs, sorted)
->
let rec part = function
| (l, r, [])
-> quik(l, a::quik(r, sorted))
| (l, r, x::xs)
-> if x<= a then part (x::l, r, xs)
else part (l, x::r, xs)
part ([], [], bs) : string list;;
Tipe data param
Return type
Fungsinya ngapain

: List
: List
: Sort List Alfabetis

let pesertaKuliah (listMhsKul, listMhs, IDKuliah) =


quik(cariIsi(listMhsKul, listMhs, IDKuliah), []);;
Tipe data param
: List, List, Integer
Return type
: List
Fungsinya ngapain
: fungsi ini mengembalikan list yang berisi daftar nama
mahasiswa yang mengambil kuliah dengan ID tersebut. Nama nama tersebut harus
terurut secara leksikografis.

# No 6
let rec matkul = function
| ((a,b) :: xs, p)
Tipe data param
Return type
Fungsinya ngapain
diberikan

-> if a = p

: List, Integer
: String
: Mengembalikan nama matkul dr nomor nomor Id matkul yg

let rec isExist = function


| (x, [])
| (x, y::ys)

-> false
-> if x = y

Tipe data param


:
Return type
:
Fungsinya ngapain
:
mengecek keberadaan value dr
let rec compare = function
| ([], ys)
| (x::xs, ys)
Tipe data param
Return type
Fungsinya ngapain
mahasiswa 1nya

then b
else matkul(xs, p);;

then true
else isExist(x, ys);;

Integer, Lst
Integer
seperti fungsi isExist pada umumnya, fungsi ini
input yg dicari di value list
-> []
-> if isExist(x, ys)then x :: compare(xs, ys)
else compare(xs, ys);;

: List, List
: List
: Mengcompare mata kuliah dr List matkul mahasiswa 1 ke

let cari (xs, m, n)= compare (matkul(xs, m), matkul(xs, n));;


Tipe data param
Return type
Fungsinya ngapain

: List, Integer, Integer


: List
: Mengambil hasil compare dr list diatas

let rec isExist2 = function


| (x, (a,b,c)::ys)
Tipe data param
Return type
Fungsinya ngapain
matkul berupa string

-> if x = a

then b
else isExist2(x, ys);;

: Int, List
: String
: Mengecek keberadaan sekaligus mengembalikan nama

let rec namaMatkul = function


| ([], ys)
-> []
| (x::xs, ys) -> isExist2(x, ys) :: namaMatkul(xs, ys);;
Tipe data param
Return type
Fungsinya ngapain
let

: List, List
: List
: Mengembalikan strng nama matkul yg belum terurut

daftarKelasSama (listMhsKul, listKul, NPM1, NPM2) =


quik(namaMatkul(cari(listMhsKul, NPM1, NPM2), listKul), []);;

Tipe data param


: List, List, Int, Int
Return type
: List
Fungsinya ngapain
: Mengembalikan nama matkul yg dicari dalam bentuk
leksikografis atau terurut

# No 8
let rec isExist = function
| (y, [])
| (y, b::bs)
Tipe data param
Return type
Fungsinya ngapain
tdk

-> false
-> if b = y

then true
else isExist(b, bs);;

: integer, list
: Boolean
: Mengecek apakah benar mata kuliah tsb ada di list atau

let rec compare = function


| ([], bs)
| (y::ys, bs)

-> true;
-> if isExist(y, bs)

then compare(ys,bs)
else false;;

Tipe data param


: List, List
Return type
: Boolean
Fungsinya ngapain
: Mengecek apakah benar bahwa matkul2 yg diinput ada di
matkul2 mahasiswa (SEMUA ADA, bukan salah satunya)
let rec cari = function
| ([], ys)
| ((a,bs) :: xs, ys)

-> []
-> if compare(ys,bs)

Tipe data param


:
Return type
:
Fungsinya ngapain
:
memilih matkul yg diminta di

then a :: cari(xs, ys)


else cari (xs, ys);;

List, List
List
Mengembalikan nomor2 npm mahasiswa yg terpilih karena
param

let rec isExist3 = function


| (a, (no, nama) :: list)

-> if a = no then nama


else isExist3(a, list);;

Tipe data param


: Int, List
Return type
: String
Fungsinya ngapain
: Mengembalikan nama dr nomor nomor npm yg diberikan
sekaligus mengecek keberadaan
let rec namaMhsnya = function
| ([], list)
-> []
| (a::listNo, list) -> isExist3(a, list) :: namaMhsnya (listNo, list);;
Tipe data param
Return type
Fungsinya ngapain
leksikografis

: List, List
: List
: Mengembalikan list nama yg belum terurut secara

let daftarMhsKul (listMhsKul,listMhs,lstIdMataKuliah) =


quik(namaMhsnya(cari(listMhsKul, lstIdMataKuliah), listMhs), []);;
Tipe data param
Return type
Fungsinya ngapain

: List, List, List


: List
: Mengembalikan list nama yg sudah terleksikografis

# No 9
let rec isExist = function
| (y, [])
| (y, b::bs)
Tipe data param
Return type
Fungsinya ngapain
tdk

-> false
-> if b = y

then true
else isExist(b, bs);;

: integer, list
: Boolean
: Mengecek apakah benar mata kuliah tsb ada di list atau

let rec compare = function


| ([], bs)
| (y::ys, bs)

-> false;
-> if isExist(y, bs)

then true
else compare(ys,bs);;

Tipe data param


: List, List
Return type
: Boolean
Fungsinya ngapain
: Mengecek apakah benar bahwa matkul2 yg diinput ada di
matkul2 mahasiswa (cukup salah satunya)
let rec cari = function
| ([], ys)
| ((a,bs) :: xs, ys)

-> []
-> if compare(ys,bs)

Tipe data param


:
Return type
:
Fungsinya ngapain
:
memilih matkul yg diminta di

then a :: cari(xs, ys)


else cari (xs, ys);;

List, List
List
Mengembalikan nomor2 npm mahasiswa yg terpilih karena
param

let rec isExist3 = function


| (a, (no, nama) :: list)

-> if a = no then nama


else isExist3(a, list);;

Tipe data param


: Int, List
Return type
: String
Fungsinya ngapain
: Mengembalikan nama dr nomor nomor npm yg diberikan
sekaligus mengecek keberadaan
let rec namaMhsnya = function
| ([], list)
-> []
| (a::listNo, list) -> isExist3(a, list) :: namaMhsnya (listNo, list);;
Tipe data param
Return type
Fungsinya ngapain
leksikografis

: List, List
: List
: Mengembalikan list nama yg belum terurut secara

let daftarMhsKul (listMhsKul,listMhs,lstIdMataKuliah) =


quik(namaMhsnya(cari(listMhsKul, lstIdMataKuliah), listMhs), []);;
Tipe data param
Return type
Fungsinya ngapain

: List, List, List


: List
: Mengembalikan list nama yg sudah terleksikografis

Anda mungkin juga menyukai