Pemrograman Deklaratif

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) -> 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

description

Bahasa F#

Transcript of Pemrograman Deklaratif

Page 1: 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

Page 2: Pemrograman Deklaratif

# 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.

Page 3: Pemrograman Deklaratif

# 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

Page 4: Pemrograman Deklaratif

# 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

Page 5: Pemrograman Deklaratif

# 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