Fungsi-Fungsi Built-in

search()
## [1] ".GlobalEnv"        "package:stats"     "package:graphics" 
## [4] "package:grDevices" "package:utils"     "package:datasets" 
## [7] "package:methods"   "Autoloads"         "package:base"
#objects(9)
#help(package="foreign")
#sort(.packages(all.available = TRUE))

Penjelasan:

Distribusi Peluang

1. rnorm

rnorm(n=40, mean=10, s=5) 
##  [1]  5.770445 12.250030 24.212098  6.785240 10.741094 20.300814 11.755866
##  [8] 10.491897 10.099718  6.394933  2.070039 10.028391  8.934940  7.919209
## [15] 15.923922  6.258428 16.387412 12.770225 11.586457  5.857939 11.423315
## [22] 18.437592  8.660852  8.266057 13.858346  8.770383 15.161279  7.097266
## [29]  4.205617  4.069172 10.302756 11.706575 14.532655  8.869458  9.042055
## [36] 19.325185  5.821972 13.030436 16.600387  2.616183

Fungsi rnorm() menghasilkan data acak berdistribusi normal.

Parameter:

  • n = jumlah data yang ingin dibuat

  • mean = rata-rata distribusi

  • sd = simpangan baku (standard deviation)

2. dnorm

dnorm(x = 12, mean = 10, sd = 5)
## [1] 0.07365403

dnorm untuk menghitung nilai densitas di titik tertentu.

Output berupa nilai densitas (PDF), bukan probabilitas.

3. pnorm

pnorm(q = 12, mean = 10, sd = 5)
## [1] 0.6554217

pnorm untuk menghitung nilai CDF di titik tertentu.

  • Fungsi pnorm() memberikan probabilitas kumulatif, yaitu probabilitas variabel acak kurang dari atau sama dengan nilai tertentu.

  • Misalnya, probabilitas bahwa nilai acak Normal ≤ 12.

4. qnorm

qnorm(p = 0.75, mean = 10, sd = 5)
## [1] 13.37245

qnorm untuk menghitung nilai kuantil tertentu.

  • Fungsi qnorm() mencari nilai kuantil, yaitu nilai variabel acak yang membuat probabilitas kumulatif sama dengan p.

  • Contoh di atas mencari nilai x dimana 75% data berada di bawahnya.

Pendefinisian Fungsi Baru

1. Menghitung rata-rata

rata=function(x)   # suatu fungsi utk menghitung rata2 dari suatu data
{
  nilairata=sum(x)/length(x)
  nilairata
}
data=1:10
rata(data)
## [1] 5.5

Fungsi ini menghitung rata-rata dengan menjumlahkan semua elemen data `(sum(x)) lalu membaginya dengan banyaknya elemen (length(x)).

2. Luas persegi panjang

luas=function(p, l)
{
  luaspersegipanjang=p*l
  luaspersegipanjang
}
luas(6, 9)
## [1] 54

Fungsi ini menghitung luas persegi panjang dengan mengalikan panjang (p) dan lebar (l).

3. Menampilkan list data (print list)

dataprint=list(
  datakarakter=letters[2:15],datanumerik=1:5
  )
print(dataprint)
## $datakarakter
##  [1] "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o"
## 
## $datanumerik
## [1] 1 2 3 4 5

Fungsi ini membuat sebuah list yang berisi dua elemen: satu vektor karakter dan satu vektor numerik (angka 1 sampai 5).

4. Menampilkan dan mengubah format data numerik menjadi karakter

dataformat=1:10
dataformat
##  [1]  1  2  3  4  5  6  7  8  9 10
dataformatkarakter=format(dataformat)
dataformatkarakter
##  [1] " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10"

Fungsi format mengubah angka tersebut menjadi karakter dengan spasi tambahan di depan agar rapih jika ditampilkan dalam kolom, sehingga hasilnya berupa string.

5. Membangkitkan data acak normal

bangkitkannormal=function(n=10, mean=10, variansi=64)
{
  data=rnorm(n, mean, sqrt(variansi))
  cat("=============\n")
  cat("List data\n")
  cat("=============\n")
  cat(data, sep="\n")
}
bangkitkannormal()
## =============
## List data
## =============
## -0.5126972
## 20.21541
## 1.630227
## 6.621023
## 20.459
## 8.431113
## 11.65219
## 7.211064
## 21.402
## 2.732549

Fungsi ini menghasilkan n data acak yang mengikuti distribusi Normal dengan rata-rata ‘mean’ dan variansi ‘variansi’.

  • Karena variansi = 64, standar deviasi diambil akar kuadratnya (8)

  • Fungsi rnorm menghasilkan angka acak sesuai distribusi tersebut, lalu ditampilkan satu per satu menggunakan cat.

bangkitkannormal2=function(n=10, mean=10, variansi=64)
{
  data=as.data.frame(rnorm(n, mean, sqrt(variansi)))
  write.table(data, file=............)
}

Fungsi ini membuat data acak sebanyak n yang mengikuti distribusi normal.

  • Data hasil dari rnorm diubah menjadi data frame supaya bisa disimpan dengan mudah.

  • write.table digunakan untuk menyimpan data ke dalam sebuah file.

6. Control flow (if dan else)

nilai = 70
if(nilai >= 80){
  print("A")
} else{
  print("selain A")
}
## [1] "selain A"

Percabangan if-else untuk menentukan apakah nilai lebih besar atau sama dengan 80.

grade=function(nilaiangka)
{
  if(nilaiangka>=80){
    nilaihuruf="A"
    }
  else{
    nilaihuruf="selain A"
  }
  cat("Nilai kamu adalah ", nilaihuruf, "\n")
}
grade(80)
## Nilai kamu adalah  A

Fungsi grade menerima input angka nilai. Jika nilai tersebut 80 atau lebih, maka nilai hurufnya “A”. Kalau kurang dari 80, nilainya “selain A”.

7. Fungsi menentukan tanda angka

fungsitanda=function(x)
{
  signx=NULL
  for(i in 1:length(x))
  {
    if(x[i]>0)
      signx[i]=1
    else if (x[i]<0)
      signx[i]=1
    else signx=0
  }
  signx
}
fungsitanda(0:2)
## [1] 0 1 1

Fungsi untuk menentukan tanda dari setiap elemen vektor x. Untuk setiap elemen: jika lebih besar dari 0, hasilnya 1; jika kurang dari 0 juga hasilnya 1; jika sama dengan 0, hasilnya 0.

8. Bilangan genap atau ganjil

bilangan=function(input)
{
  if(input%% 2 == 0){
    output="genap"
  }
  else{
    output="ganjil"
  }
  cat(input, "adalah bilangan ", output, "\n")
}
bilangan(80)
## 80 adalah bilangan  genap

Fungsi ini memeriksa apakah sebuah bilangan genap atau ganjil menggunakan operator modulus %%.