library(mosaicCalc)
## Loading required package: mosaic
## Warning: package 'mosaic' was built under R version 4.2.2
## 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

Topik kalkulus pada dasarnya adalah tentang fungsi matematika dan operasi yang dilakukan padanya. Konsep “fungsi matematika” adalah sebuah ide. Jika kita akan menggunakan bahasa komputer untuk bekerja dengan fungsi matematika, kita perlu menerjemahkannya ke dalam suatu entitas dalam bahasa komputer. Artinya, kita membutuhkan konstruk bahasa untuk merepresentasikan fungsi dan fungsi kuantitas yang diambil sebagai input dan diproduksi sebagai output.

Jika Anda memiliki latar belakang dalam pemrograman, Anda mungkin berpikir bahwa pilihan representasi sudah jelas. Untuk kuantitas, gunakan angka. Untuk fungsi, gunakan fungsi bahasa-R. Memang itulah yang akan kami lakukan, tetapi seperti yang akan Anda lihat, situasinya sedikit lebih rumit dari itu. Sedikit, tapi kerumitan kecil itu perlu ditangani sejak awal.

Bilangan, Jumlah, dan nama

Kompleksitas yang disebutkan di bagian sebelumnya berasal dari penggunaan dan situasi dunia nyata di mana kita ingin dapat menerapkan ide fungsi matematika. Input yang diambil oleh fungsi dan output yang dihasilkannya tidak harus berupa angka. Seringkali, mereka adalah kuantitas .

Perhatikan contoh besaran berikut: uang, kecepatan, tekanan darah, tinggi badan, volume. Bukankah masing-masing besaran ini adalah angka? Tidak terlalu. Pertimbangkan uang. Kita dapat menghitung, menambah, dan mengurangi uang – sama seperti kita menghitung, menambah, dan mengurangi dengan angka. Tetapi uang memiliki properti tambahan: jenis mata uang. Ada Dollar 1 , Renminbi, Euro, Rand, Krona dan seterusnya. Uang sebagai ide adalah abstraksi dari jenis yang terkadang disebut dimensi . Dimensi lainnya adalah panjang, waktu, volume, suhu, luas, sudut, luminositas, suku bunga bank, dan sebagainya. Ketika kita berhadapan dengan suatu besaran yang memiliki dimensi, tidak cukup hanya dengan memberikan angka untuk menyatakan “berapa banyak” dari dimensi tersebut yang kita miliki. Kita juga perlu memberikan satuan. Banyak dari ini akrab dalam kehidupan sehari-hari. Misalnya, dimensi panjang dikuantifikasi dengan satuan meter, atau inci, atau mil, atau parsec, dan seterusnya. Dimensi uang diukur dengan euro, dolar, renminbi, dan sebagainya. Area sebagai dimensi dikuantifikasi dengan meter persegi, atau kaki persegi, atau hektar, atau hektar, dll.

Sayangnya, sebagian besar teks matematika memperlakukan dimensi dan satuan dengan mengabaikannya. Hal ini menyebabkan kebingungan dan kesalahan ketika upaya dilakukan untuk menerapkan ide-ide matematika ke kuantitas di dunia nyata.

Dalam buku ini kita akan menggunakan fungsi dan kalkulus untuk bekerja dengan besaran dunia nyata. Kita tidak dapat mengabaikan dimensi dan satuan. Sayangnya, bahasa komputer umum seperti R dan Python dan JavaScript tidak menyediakan cara sistematis untuk menangani dimensi dan satuan secara otomatis. Di R, misalnya, kita bisa menulis dengan mudah

x <- 7

Fungsi Bahasa R

R, seperti kebanyakan bahasa komputer, memiliki konstruksi pemrograman untuk merepresentasikan 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.

Mari kita lihat versi R dari fungsi matematika, eksponensial. Fungsi tersebut dinamai expdan kita dapat melihat pemrograman yang dikandungnya

exp
## function (x)  .Primitive("exp")

Tidak banyak di sana, kecuali notasi komputer. Di R, fungsi dapat dibuat dengan kata kunci function. Misalnya, untuk membuat fungsi yang menerjemahkan pendapatan tahunan menjadi pendapatan harian, kita dapat menulis:

as_daily_income <- function(yearly_income) {
  yearly_income / 365
}

Nama yang dipilih untuk fungsi, as_daily_income, sewenang-wenang. Kita bisa menamai fungsi itu apa saja. (Merupakan praktik yang baik untuk memberi nama fungsi yang mudah dibaca dan ditulis serta mengingatkan Anda tentang fungsinya.)

Setelah kata kunci function, ada sepasang tanda kurung. Di dalam tanda kurung adalah nama yang diberikan ke input ke fungsi. Hanya ada satu masukan yang as_daily_incomekami panggil yearly_incomehanya untuk membantu mengingatkan kami apa fungsi yang dimaksudkan untuk dilakukan. Tapi kita bisa memanggil input apa saja.

Bagian tersebut function(yearly_income)menentukan bahwa benda yang sedang dibuat akan menjadi a functiondan kita memanggil input yearly_income. Setelah bagian ini muncul badan fungsi. Tubuh berisi ekspresi R yang menentukan perhitungan yang harus dilakukan. Dalam hal ini, ungkapannya sangat sederhana: bagi yearly_incomedengan 365 – (perkiraan) jumlah hari dalam setahun.

Sangat membantu untuk membedakan antara nilai input dan peran yang akan dimainkan oleh input dalam fungsi. Nilai pendapatan tahunan mungkin 61362(dalam, katakanlah, dolar). Untuk berbicara tentang peran input, kami menggunakan kata argument . Misalnya, kita mungkin mengatakan sesuatu seperti, ” as_yearly_incomeadalah fungsi yang membutuhkan satu argumen.”

Mengikuti kata kunci functiondan tanda kurung di mana argumen didefinisikan muncul sepasang kurung kurawal {dan }berisi beberapa pernyataan R. Pernyataan-pernyataan ini adalah isi dari fungsi dan berisi instruksi untuk perhitungan yang akan mengubah input menjadi output.

Inilah fitur yang mengejutkan dari bahasa komputer seperti R … Nama yang diberikan untuk argumen tidak masalah sama sekali, asalkan digunakan secara konsisten di badan fungsi. Jadi pemrogram mungkin telah menulis fungsi R dengan cara ini:

as_daily_income <- function(x) {
  x / 365
  }

atau bahkan

as_daily_income <- function(ghskelw) {
  ghskelw / 365
}

Semua versi yang berbeda ini as_daily_income()akan melakukan hal yang persis sama dan digunakan dengan cara yang persis sama, terlepas dari nama yang diberikan untuk argumen tersebut. 2 Seperti ini:

as_daily_income(61362)
## [1] 168.1151

Seringkali, fungsi memiliki lebih dari satu argumen. Nama argumen dicantumkan di antara tanda kurung setelah kata kunci function, seperti ini:

as_daily_income <- function(yearly_income, duration) {
  yearly_income / duration
}

Dalam kasus seperti itu, untuk menggunakan fungsi kita harus menyediakan semua argumen. Jadi, dengan definisi dua argumen terbaru dari as_daily_income(), penggunaan berikut menghasilkan pesan kesalahan:

as_daily_income(61362, 365)
## [1] 168.1151

Satu lagi aspek argumen fungsi di R … Argumen apa pun dapat diberi nilai default . Sangat mudah untuk melihat bagaimana ini bekerja dengan sebuah contoh:

as_daily_income <- function(yearly_income, duration = 365) {
  yearly_income / duration
}

Dengan nilai default untuk durationfungsi dapat digunakan dengan satu atau dua argumen:

as_daily_income(61362)
## [1] 168.1151
as_daily_income(61362, duration = 366)
## [1] 167.6557

Daftar Pustaka: Kaplan, Daniel. 2020. Computer-age Calculus with R.

https://dtkaplan.github.io/RforCalculus/representing-mathematical-functions.html