# 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)
}