BAB 1 Mewakili Fungsi Matematika
Di sini kita akan menggunakan bahasa komputer R untuk mengaplikasikan operasi kalkulus bersama dengan operasi terkait seperti grafik dan penyelesaian. Topik kalkulus pada dasarnya adalah tentang fungsi matematika dan operasi yang akan dilakukan. Jika kita akan menggunakan bahasa komputer untuk bekerja dengan fungsi matematika, kita perlu menerjemahkannya ke dalam beberapa entitas dalam bahasa komputer. Untuk fungsinya kita bisa gunakan fungsi bahasa R.
1.1 Angka, Besaran, dan Nama Input yang diambil oleh fungsi dan output yang dihasilkannya belum tentu berupa angka. Seringkali, mereka adalah kuantitas . Di sini kita akan menggunakan fungsi dan kalkulus untuk bekerja dengan kuantitas dunia nyata. Kita tidak bisa mengabaikan dimensi dan satuan. Sayangnya, bahasa komputer utama seperti R dan Python dan JavaScript tidak menyediakan cara sistematis untuk menangani dimensi dan unit secara otomatis. Saat akan merepresentasikan besaran di komputer, kita akan menggunakan nama besaran untuk mengingatkan apa dimensi dan satuannya.
1.2 Fungsi Bahasa R Seperti kebanyakan bahasa computer, R memiliki konstruksi pemrograman untuk mewakili operasi yang mengambil satu atau lebih input dan menghasilkan output. Di R, ini disebut “fungsi.” Di R, semua yang Anda lakukan melibatkan fungsi, baik secara eksplisit maupun implisit. Fungsi diberi nama exp dan kita dapat melihat pemrograman yang ada di dalamnya:
exp
## function (x) .Primitive("exp")
## function (x) .Primitive("exp")
Dalam R, fungsi dapat dibuat dengan kata kunci function. Misalnya, untuk membuat fungsi yang mengubah pendapatan tahunan menjadi pendapatan harian, dapat ditulis:
as_daily_income <- function(yearly_income) {
yearly_income / 365
}
Kita bisa 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. Lebih baik 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 di badan 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 itu 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
## [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] 8.2085
1.4 Berhubungan Dengan … Fungsi R untuk mewakili perhitungan jumlah dari input seperti dosis dan konstanta waktu obat. Tetapi fungsi R memainkan peran yang jauh lebih besar dari itu. Fungsi digunakan untuk hampir semua hal, mulai dari membaca file data hingga menggambar grafik hingga mengetahui jenis komputer apa yang digunakan. Yang menarik di sini adalah penggunaan fungsi untuk mewakili dan mengimplementasikan operasi kalkulus. Operasi ini memiliki nama yang mungkin atau mungkin belum dikenal: diferensiasi, integrasi, dll.
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: mosaic
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## The 'mosaic' package masks several functions from core packages in order to add
## additional features. The original behavior of these functions should not be affected by this.
##
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
##
## count, do, tally
## The following object is masked from 'package:Matrix':
##
## mean
## The following object is masked from 'package:ggplot2':
##
## stat
## The following objects are masked from 'package:stats':
##
## binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
## quantile, sd, t.test, var
## The following objects are masked from 'package:base':
##
## max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
##
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
##
## count, tally
##
## 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))