# Studi kasus pencarian kode produk simulasi ----

produk <- data.frame(
  kode = c(104, 101, 107, 103, 106, 102, 105),
  nama = c("Telur", "Beras", "Kopi", "Minyak",
           "Garam", "Gula", "Tepung"),
  stok = c(25, 40, 18, 30, 50, 35, 28)
)

target_kode <- 106

pos_asli <- which(produk$kode == target_kode)

if (!is.na(pos_asli)) print(produk[pos_asli, , drop = FALSE])
##   kode  nama stok
## 5  106 Garam   50
urutan <- order(produk$kode)
produk_urut <- produk[urutan, , drop = FALSE]

pos_urut <- which(produk_urut$kode == target_kode)

if (!is.na(pos_urut)) {

  baris_asli <- urutan[pos_urut]

  print(c(posisi_terurut = pos_urut, baris_asli = baris_asli))

  print(produk_urut[pos_urut, , drop = FALSE])
}
## posisi_terurut     baris_asli 
##              6              5 
##   kode  nama stok
## 5  106 Garam   50
target_tidak_ada <- match(999, produk_urut$kode)

if (is.na(target_tidak_ada)) print("Kode 999 tidak ditemukan")
## [1] "Kode 999 tidak ditemukan"
print(match(target_kode, produk$kode))
## [1] 5
print(target_kode %in% produk$kode)
## [1] TRUE
print(which(produk$kode == target_kode))
## [1] 5