Fungsi matematika dan operasi yang dilakukan kepadanya pada dasarnya merupakan topik kalkulus. Konsep dari “fungsi matematika” adalah sebuah ide. Kita perlu menerjemahkan fungsi matematika kedalam beberapa entitas dalam bahasa komputer apabila kita ingin menggunakan bahasa komputer untuk bekerja dengan fungsi matematika. Kita memerlukan konstruksi bahasa untuk merepresentasikan fungsi dan kuantitas yang diambil fungsi sebagai input dan dihasilkan sebagai output.
1.1 Angka, Besaran, dan Nama
Belum tentu input yang diambil oleh fungsi dan output yang dihasilkannya berupa angka. Seringkali justru berupa kuantitas. Bahasa komputer utama seperti R, Python, dan JavaScript tidak menyediakan cara sistematis untuk menangani dimensi dan unit secara otomatis. Untuk mengingat apa dimensi dan satuannya dapat menggunakan nama besaran.
1.2 Fungsi bahasa R
Seperti kebanyakan bahasa komputer, R memiliki konstruksi pemograman
sendiri untuk mewakili konstruksi pemograman untuk mewakili operasi yang
menggunakan satu atau lebih input dan menghasilkan output. Dalam R,
konstruksi pemograman ini disebut “fungsi.” Dalam R, semua operasi
dilakukan melibatkan fungsi, baik secara eksplisit maupun implisit.
Dalam R, fungsi dapat dibuat dengan kata kunci function.
Misalnya kita buat pendapatan harian, dapat kita tulis :
as_daily_income <- function(yearly_income) {
yearly_income / 365
}
Kita dapat menamai fungsi “as_daily_income” dengan nama apa saja karena dia merupakan arbitrer. Ada sepasang tanda kurung setelah kata kunci function, didalam tanda kurung tersebut dapat diberikan input maupun fungsi. Ada baiknya untuk dibedakan antara nilai input dan peran yang akan di input dalam fungsi. Dapat digunakan kata argument untuk berbicara tentang peran yang dimainkan input.
Salah satu fitur istimewa dari Bahasa Komputer R adalah tidak ada aturan nama yang diberikan untuk argumen. Asalkan nama tersebut konsisten untuk digunakan dibadan fungsi.
as_daily_income <- function(x) {
x / 365
}
juga bisa
as_daily_income <- function(ghskelw) {
ghskelw / 365
}
Nama fungsi dapat memiliki lebih dari satu argumen. Nama-nama argumen
dicantumkan di antara tanda kurung setelah kata kunci
function, seperti ini:
as_daily_income <- function(yearly_income, duration) {
yearly_income / duration
}
1.3 Literasi penggunaan argumen
Karena nama-nama yang dipilih dalam fungsi bersifat arbitrer, akan digunakan fungsi dengan cara yang persis meskipun namanya berbeda.
Ada baiknya untuk memperjelas dan menjelaskan arti dari setiap besaran yang digunakan dalam perhitungan. Contoh :
dose <- 100 # mg
duration <- 10 # days
time_constant <- 4 # days
dose * exp(- duration / time_constant)
## [1] 8.2085
Akan lebih baik jika kita mendefinisikan fungsi untuk melakukan perhitungan, contohnya :
drug_remaining <- function(dose, duration, time_constant) {
dose * exp(- duration / time_constant)
}
Lalu kita masuk ke proses perhitungan dengan fungsi :
drug_remaining(dose = 100, duration = 10, time_constant = 4)
## [1] 8.2085
1.4 Berhubungan dengan …
Input diibaratkan seperti dosisnya, dan konstanta diibaratkan seperti obatnya. Didalam R, fungsi digunakan hampir didalam semua hal. Mulai dari membaca file data, menggambar grafik, hingga mengetahui jenis komputer yang digunakan.
Packages (paket) yang digunakan untuk operasi didalam buku ini menggunakan packages mosaic dan mosaicCalc untuk R. Notasi tilde “~” digunakan untuk mengekspresikan “sehubungan dengan.”
Berikut ini cara menggambar grafik yang kita inginkan menggunakan slice_plot() dengan operasi packages :
library(mosaicCalc)
## Loading required package: mosaicCore
## Loading required package: Deriv
## Loading required package: Ryacas
##
## Attaching package: 'Ryacas'
## The following object is masked from 'package:stats':
##
## integrate
## The following objects are masked from 'package:base':
##
## %*%, diag, diag<-, lower.tri, upper.tri
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
slice_plot(
drug_remaining(dose = 100, time_constant = 4, duration = t) ~ t,
domain(t = 0:20))
Grafik yang tepat adalah grafik yang dilabeli dengan benar, misalnya sumbu horizontal dengan “Waktu (hari) sumbu vertikal dengan”Sisa Obat (mg).