# 1. Sequential Search dengan Boolean
seq_boolean <- function(data, target) {
if (anyNA(data)) {
stop("Data tidak boleh mengandung NA!")
}
for (i in seq_along(data)) {
if (data[i] == target) {
return(TRUE)
}
}
return(FALSE)
}
# 2. Sequential Search tanpa Boolean
seq_tanpa_boolean <- function(data, target) {
for (i in seq_along(data)) {
if (data[i] == target) {
return(i)
}
}
return(NA)
}
# 3. Sequential Search pada data terurut
seq_terurut <- function(data, target) {
for (i in seq_along(data)) {
if (data[i] == target) {
return(i)
}
if (data[i] > target) {
return(NA)
}
}
return(NA)
}
# 4. Sequential Search dengan Sentinel
seq_sentinel <- function(data, target) {
data_tambah <- c(data, target)
i <- 1
while (data_tambah[i] != target) {
i <- i + 1
}
if (i > length(data)) {
return(NA)
}
return(i)
}