Pemrograman Deklaratif
-
Upload
ira-eliya-rahmadhani -
Category
Documents
-
view
57 -
download
2
description
Transcript of Pemrograman Deklaratif
##################################################################
# 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) -> if x = n then y
else getNama (xs, n);;
Tipe data param : List, Integer
Return type : String
Fungsinya ngapain : 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) -> if x = n then hitung(yy)
else numKuliahMhs(xs, n);;
Tipe data param : List, Integer
Return type : Integer
Fungsinya ngapain : 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, []) -> 0
| (y :: yy, (a,b,c) :: ys) -> if y = a then c + fungsi1(yy,ys)
else fungsi1(yy,ys);;
Tipe data param : List, Integer
Return type : Integer
Fungsinya ngapain : 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 : List, List, Integer
Return type : Integer
Fungsinya ngapain : Mengambil NPM mahasiswa dan listKul yang NPM nya
terdapat di param input, dan 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 : integer, List
Return type : String
Fungsinya ngapain : Mencari nama dr NPM (int) yg masuk
let rec cari = function
| (x, [], ys, n) -> ""
| (x,y::yz, ys, n) -> if y = n then cariNama(x,ys)
else cari(x, yz, ys, n);;
Tipe data param : Int, List, List, Int
Return type : Integer, List
Fungsinya ngapain : mengolah input untuk dicari namanya di fungsi cari
nama
let rec cariIsi = function
| ((x,yz)::xs, ys, n) -> cari(x,yz,ys,n) :: cariIsi(xs,ys,n);;
Tipe data param : List, List, Integer
Return type : List
Fungsinya ngapain : 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 : List
Return type : List
Fungsinya ngapain : 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) -> if a = p then b
else matkul(xs, p);;
Tipe data param : List, Integer
Return type : String
Fungsinya ngapain : Mengembalikan nama matkul dr nomor nomor Id matkul yg
diberikan
let rec isExist = function
| (x, []) -> false
| (x, y::ys) -> if x = y then true
else isExist(x, ys);;
Tipe data param : Integer, Lst
Return type : Integer
Fungsinya ngapain : seperti fungsi isExist pada umumnya, fungsi ini
mengecek keberadaan value dr input yg dicari di value list
let rec compare = function
| ([], ys) -> []
| (x::xs, ys) -> if isExist(x, ys)then x :: compare(xs, ys)
else compare(xs, ys);;
Tipe data param : List, List
Return type : List
Fungsinya ngapain : Mengcompare mata kuliah dr List matkul mahasiswa 1 ke
mahasiswa 1nya
let cari (xs, m, n)= compare (matkul(xs, m), matkul(xs, n));;
Tipe data param : List, Integer, Integer
Return type : List
Fungsinya ngapain : Mengambil hasil compare dr list diatas
let rec isExist2 = function
| (x, (a,b,c)::ys) -> if x = a then b
else isExist2(x, ys);;
Tipe data param : Int, List
Return type : String
Fungsinya ngapain : Mengecek keberadaan sekaligus mengembalikan nama
matkul berupa string
let rec namaMatkul = function
| ([], ys) -> []
| (x::xs, ys) -> isExist2(x, ys) :: namaMatkul(xs, ys);;
Tipe data param : List, List
Return type : List
Fungsinya ngapain : Mengembalikan strng nama matkul yg belum terurut
let 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, []) -> false
| (y, b::bs) -> if b = y then true
else isExist(b, bs);;
Tipe data param : integer, list
Return type : Boolean
Fungsinya ngapain : Mengecek apakah benar mata kuliah tsb ada di list atau
tdk
let rec compare = function
| ([], bs) -> true;
| (y::ys, bs) -> 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) then a :: cari(xs, ys)
else cari (xs, ys);;
Tipe data param : List, List
Return type : List
Fungsinya ngapain : Mengembalikan nomor2 npm mahasiswa yg terpilih karena
memilih matkul yg diminta di 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 : List, List
Return type : List
Fungsinya ngapain : Mengembalikan list nama yg belum terurut secara
leksikografis
let daftarMhsKul (listMhsKul,listMhs,lstIdMataKuliah) =
quik(namaMhsnya(cari(listMhsKul, lstIdMataKuliah), listMhs), []);;
Tipe data param : List, List, List
Return type : List
Fungsinya ngapain : Mengembalikan list nama yg sudah terleksikografis
# No 9
let rec isExist = function
| (y, []) -> false
| (y, b::bs) -> if b = y then true
else isExist(b, bs);;
Tipe data param : integer, list
Return type : Boolean
Fungsinya ngapain : Mengecek apakah benar mata kuliah tsb ada di list atau
tdk
let rec compare = function
| ([], bs) -> false;
| (y::ys, bs) -> 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) then a :: cari(xs, ys)
else cari (xs, ys);;
Tipe data param : List, List
Return type : List
Fungsinya ngapain : Mengembalikan nomor2 npm mahasiswa yg terpilih karena
memilih matkul yg diminta di 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 : List, List
Return type : List
Fungsinya ngapain : Mengembalikan list nama yg belum terurut secara
leksikografis
let daftarMhsKul (listMhsKul,listMhs,lstIdMataKuliah) =
quik(namaMhsnya(cari(listMhsKul, lstIdMataKuliah), listMhs), []);;
Tipe data param : List, List, List
Return type : List
Fungsinya ngapain : Mengembalikan list nama yg sudah terleksikografis