Iterasi
Taufiq Luthfi Nurrohim
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
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
## (status 2 uses the sf package in place of rgdal)
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
## 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
Iterasi adalah proses perulangan atau pengulangan serangkaian langkah atau tindakan dengan tujuan mencapai hasil tertentu. Dalam konteks komputasi, algoritma, dan pemrograman, iterasi merujuk pada konsep melalui serangkaian elemen atau tindakan secara berulang.
Iterasi sangat umum dalam pemrograman dan dapat diterapkan dalam berbagai konteks, termasuk perulangan melalui elemen-elemen dalam sebuah array, mengeksekusi serangkaian pernyataan sampai kondisi tertentu terpenuhi, atau memproses serangkaian data.
Dalam konteks umum, iterasi dapat merujuk pada pengulangan melalui proses yang melibatkan revisi atau pengembangan secara berulang. Sebagai contoh, dalam pengembangan perangkat lunak, siklus pengembangan yang terdiri dari analisis, desain, implementasi, pengujian, dan perbaikan dapat dianggap sebagai serangkaian iterasi.
Dalam matematika, iterasi juga dapat merujuk pada aplikasi suatu fungsi berulang kali, di mana hasil dari iterasi sebelumnya digunakan sebagai input untuk iterasi berikutnya. Hal ini sering terjadi dalam konteks metode numerik atau dalam menyelesaikan persamaan nonlinear.
Manfaat Proses Iterasi Berikut beberapa manfaat manfaat adanya proses iterasi:
Meningkatkan Fleksibilitas
Proses iterasi memberikan fleksibilitas yang lebih besar dalam merespons perubahan.
Pengulangan Tugas
Proses iterasi memungkinkan eksekusi tugas tertentu berulang kali tanpa menulis kode yang sama berulang kali. Hal ini dapat membantu menghemat penulisan kode dan membuatnya lebih mudah dibaca.
Optimasi Kode
Proses iterasi dapat membantu dalam mengoptimalkan kode, terutama ketika ada tugas yang dapat diulang dengan pola yang sama.
Algoritma Iteratif
Dalam pengembangan algoritma, banyak masalah yang dapat dipecahkan melalui pendekatan iteratif. Algoritma iteratif memungkinkan penyelesaian masalah melalui serangkaian langkah yang diulang sampai kondisi berhenti terpenuhi.
Penanganan Perulangan Kejadian
Dalam pemrograman kejadian (event-driven programming), proses iterasi dapat digunakan untuk menangani berbagai jenis kejadian yang terjadi selama eksekusi program.
Menggunakan Struktur Data
Iterasi memungkinkan kita bekerja dengan berbagai struktur data, seperti vektor, daftar, matriks, dan kerangka data, untuk melakukan operasi yang konsisten pada setiap elemennya.
Contoh Sederhana Iterasi Berikut adalah beberapa contoh sederhana dari iterasi:
#Iterasi menggunakan loop for
for (i in 1:5) {
print(paste("Iterasi ke-", i))
}
## [1] "Iterasi ke- 1"
## [1] "Iterasi ke- 2"
## [1] "Iterasi ke- 3"
## [1] "Iterasi ke- 4"
## [1] "Iterasi ke- 5"
Contoh ini menggunakan loop for untuk melakukan iterasi dari 1 hingga 5. Pada setiap iterasi, teks “Iterasi ke-” dicetak bersama dengan nomor iterasi.
#Iterasi menggunakan fungsi apply
numbers <- c(1, 2, 3, 4, 5)
squared_numbers <- sapply(numbers, function(x) x^2)
print(squared_numbers)
## [1] 1 4 9 16 25
Contoh ini menggunakan fungsi sapply untuk menghitung kuadrat dari setiap angka dalam vektor numbers. Hasilnya adalah vektor baru (squared_numbers) yang berisi hasil kuadrat.
#Iterasi menggunakan lapply
fruits <- list("Apple", "Banana", "Orange")
lengths_of_fruits <- lapply(fruits, function(fruit) nchar(fruit))
print(lengths_of_fruits)
## [[1]]
## [1] 5
##
## [[2]]
## [1] 6
##
## [[3]]
## [1] 6
Contoh ini menggunakan fungsi lapply untuk menghitung panjang (jumlah karakter) dari setiap string dalam daftar fruits. Hasilnya adalah daftar baru (lengths_of_fruits) yang berisi panjang masing-masing string.
#Iterasi menggunakan while loop
counter <- 1
while (counter <= 5) {
print(paste("Iterasi ke-", counter))
counter <- counter + 1
}
## [1] "Iterasi ke- 1"
## [1] "Iterasi ke- 2"
## [1] "Iterasi ke- 3"
## [1] "Iterasi ke- 4"
## [1] "Iterasi ke- 5"
Contoh ini menggunakan loop while untuk melakukan iterasi selama counter kurang dari atau sama dengan 5. Pada setiap iterasi, teks “Iterasi ke-” di-print bersama dengan nomor iterasi, dan nilai counter ditingkatkan.
#Iterasi menggunakan fungsi replicate
replicate_example <- replicate(3, {
sample(1:6, 1)
})
print(replicate_example)
## [1] 3 3 4
Contoh ini menggunakan fungsi replicate untuk menghasilkan vektor yang berisi 3 sampel acak dari angka 1 hingga 6. Setiap elemen dalam vektor adalah hasil dari satu sampel acak.