Array dan Operasinya


🧭 1. Pengertian Array

https://images.openai.com/static-rsc-4/I7yPwQgl0i5CzPbx4EBPWe6NXuJs831k3evCn4EGcwRj3DZltkbvATqJQVFXKryGlfaW6AXBAPBI5qQthQ7R-LzSJ_XhGeoxRhOE71-HGogd2OnFwPd6gg7313N5tm_nib_aocjWw9VKTA72OoAnQi0OaI9bS1gX_yZdm3wyBHicL0Pe282VtTH03jKoYaYv?purpose=fullsize
https://images.openai.com/static-rsc-4/d1CZd1KF2zd_JDBqTUM6WrTmbcyP2NmmO1F4UB9-ewLboC4YxxD4kXSwuBA76bLOUeaJQkrG1u33SkpQDkt7gq9d6BRzErFQLIZp-xyFIuxPk-q3IjLwnGffJ3dnOs-h5OVB9JCQd98HPEwybcIMKQY8y3pYO0EoyrHAVtVf3cM16mQD6fd37eiECNinPVZ5?purpose=fullsize
https://images.openai.com/static-rsc-4/QvwXNLBoABjhcqWtiQk8YM6-5s0iAwZZQOnvEqY5YmEuWdTmXRuOADOz9rB_AdJEl2s-ktl4t2l2LvqLiBq-sgfUb_uoShztCZtZ6c1TpgSGg0skFhChRtp81hhnkWef9XH7pmo5-StvdoDkSjLSU-BHskJ1oTzrcRb5DrAiv4x6yOVZu0HEfyVO2L8BHT0-?purpose=fullsize

6

πŸ“– Definisi

Array adalah struktur data yang menyimpan sekumpulan elemen dengan tipe data yang sama dalam lokasi memori yang berurutan (contiguous).

🧠 Narasi Konseptual

Bayangkan array seperti deretan loker bernomor:

  • Setiap loker menyimpan satu data
  • Nomor loker = indeks
  • Semua loker tersusun rapi dan berurutan

➑️ Hal ini membuat akses data sangat cepat karena lokasi memori dapat dihitung langsung.


🎯 2. Karakteristik Array

πŸ“Š Tabel Karakteristik

KarakteristikPenjelasan
HomogenSemua elemen bertipe sama
IndeksDimulai dari 0 (umumnya)
Ukuran tetapTidak berubah setelah dibuat
Akses langsungElemen dapat diakses langsung

🧠 Penjelasan

  • Array sangat efisien untuk akses data cepat
  • Namun kurang fleksibel untuk penambahan/penghapusan di tengah

🧩 3. Jenis-Jenis Array

https://images.openai.com/static-rsc-4/9XSgnB8bPlV9MNqRxKsaKUIc5LA2xGt9t2DUXSDK3s48X08T_74Yymwcqh7EaA8p1F4vt9xVp74bQt5-6hfGdIiRkW9M_K2wyPLhLbqi6ZXeB3zXjxjcBcsWeKvVO-8iuqlCluBzSLK2eYMTOT9zlt5I_nYCHCJ8whRaFa4-Gtb6EkGbe9VizP0UsNmm47v4?purpose=fullsize
https://images.openai.com/static-rsc-4/GFBwTNiThbevnTri72N4wd3navJjPHtX_N-Vc9vTAHO_bpHRmM7QpbOruNY8F13GYRqSu0nTs1zTcdocpDDeJ5RKV6zq0_BpPehC1vq-7FzP0nQnfa4yXLRPjJuAxhl95HadJNPHb8PtBfyP1tnsUxArifh6yb5e-eX5uBYsmQe3ghdXJrd9YI40-kcVgatP?purpose=fullsize
https://images.openai.com/static-rsc-4/JxcavviPKSIoIgZJoOQNjfYR9EASsZU2_hZ1Wpx5aVQrvJ5zUvW8oGTtpZMxBmyRTiqzzzv-gGBn9yOTuzQrvr5wcGpS3SO_P0_GyOikri4_wOlmAfGEObEFjq7dwk0vBIHnvEPUdLkYX3hE9zGxBb_taWUM6GJYmMNStHl4MT1HJ1iN-cnaIhbdQF9nGBiN?purpose=fullsize

6

πŸ”Ή A. Array 1 Dimensi

Contoh:

[10, 20, 30, 40]

Digunakan untuk data linear.


πŸ”Ή B. Array 2 Dimensi

Contoh (Matriks):

[ [1,2],
[3,4] ]

Digunakan untuk:

  • Tabel
  • Matriks matematika

πŸ”Ή C. Array Multidimensi

Lebih dari 2 dimensi, digunakan dalam:

  • Grafika komputer
  • Machine learning

🧠 4. Representasi Array di Memori

https://images.openai.com/static-rsc-4/e6rDD65S5UIcQzyodw52OnLJWcMMf3Kc7imcvVAjmUTL-uY5SlEfU0oAXw2Rdl5bT0Tb-Xmr40oCtpzURYDsMlxWvRI42ORLSPbZC5NQfs2MMEa7hn1ybNxIJZpLJUUSq9scCH1zXBIZM2DwXdgI9sl4OCTmdA5B5lDi6XAuzmqHpPXd0bnynozRWqJxaYXk?purpose=fullsize
https://images.openai.com/static-rsc-4/I7yPwQgl0i5CzPbx4EBPWe6NXuJs831k3evCn4EGcwRj3DZltkbvATqJQVFXKryGlfaW6AXBAPBI5qQthQ7R-LzSJ_XhGeoxRhOE71-HGogd2OnFwPd6gg7313N5tm_nib_aocjWw9VKTA72OoAnQi0OaI9bS1gX_yZdm3wyBHicL0Pe282VtTH03jKoYaYv?purpose=fullsize
https://images.openai.com/static-rsc-4/g4K3LVMLyWvVvpNejTK1f89pBifLeeji6BSfs8O7-rfXCo3vfrcG26O3Av9nLtJ3_rkzPCL1buEf6u8wSB1Ic296RDYqsLJvuR5b81lPmrjN3LRxGE8JDccEC-WE6DR52CAW8jzaZdmzhFYTci9hoGHjdBpb1_FZYnedjuv83y9G_CfTaMxBtOTWdkq-5rTe?purpose=fullsize

7

πŸ“– Konsep

Alamat elemen array dihitung dengan rumus:Address=Base+(IndexΓ—Size)Address = Base + (Index \times Size)Address=Base+(IndexΓ—Size)

🧠 Narasi

  • Tidak perlu mencari satu per satu
  • Komputer langsung menghitung lokasi memori

➑️ Inilah alasan array memiliki kompleksitas akses O(1)


βš™οΈ 5. Operasi Dasar pada Array

πŸ“Š Tabel Operasi

OperasiDeskripsi
TraversalMengunjungi semua elemen
InsertionMenambahkan elemen
DeletionMenghapus elemen
SearchingMencari elemen
UpdatingMengubah nilai

πŸ” 6. Traversal (Penelusuran)

https://images.openai.com/static-rsc-4/iU0qNCgDaBIJasffE-iWVMGC33sXdPUMmS0arYXD9ppf23wtx8GPlbn3mnYArnJjRsenU6zVgUG_3joAzy1MAKLKB_0XRXBvMe38IAX7FC44V3NRAGAGoNuQNpEHzWZiBmggIY0wPfamPFbi2g1kN8hgk5Ry8mOphcO8fJxMUAz3itNPoDsR4R1AXG9uukwR?purpose=fullsize
https://images.openai.com/static-rsc-4/5RcHe0HzyRs3EPCmLgZBjVzT0A7wQGYYGKaZdEQst4X1GZLlpdQU71T7J7fop9tYCNLTggicoNtQEzEaY4VyGUB8e5W54mYBe4URuULYjscaHPwBdDy4q3fOk4NrqXSRJsZIgRHud2-TFmBDXw_x_ZThl-TNmeObdR_N3dIAY8ioNabBo8Enia2uDAdLn3Zg?purpose=fullsize
https://images.openai.com/static-rsc-4/KOOZ6MdZ10H1U1jfopZ4fctYopg1YQ_9UQY2FKe389GIP4kqVSxwUIFRxgI82qNOkOakVs-5Rf9Wjn3n3VoakYZZpCF_IWVQSCZEY8P0N3J29z93tYCzqXdNGUSaQLAxaeekT0c89tLGexwKg20ZXnp8Aoe6paiSWzE8XDl5BW5237Qr6OM9YYVBoykqJUml?purpose=fullsize

6

πŸ“– Definisi

Mengakses semua elemen array satu per satu.

πŸ’» Contoh (Python)

data = [10, 20, 30, 40]for i in data:
print(i)

🧠 Kompleksitas

➑️ O(n)


βž• 7. Insertion (Penyisipan)

https://images.openai.com/static-rsc-4/mGA1NPzmoZnbe-eXsqrSTB3LeMQmnO1wMdB8mnhwpvakpcKaw6xA4tDjdNV8jR924PqQmYsA8UgfdHBDAf4ZjKvgIl7G4MZk1GlnQMVfTTQ69ugcivakfZ2glrZXX4E63rc23T7KxdlBOqfJ6e_ThSvVhD7zBWnz61R1uwNLGrDFLKEiWsBDMYy-NCQOtxMS?purpose=fullsize
https://images.openai.com/static-rsc-4/xO2EBWLvI35oo8NPGy63f2S13swbwkzW-S1JgDqT3nQLSEVvPu8sDQWtwD6TTP66X6ssIXuKK4MXL38XZ54-GKbEGIdPzTfHHmHXsN-0UeEH89zyWc_bihKaueDS49eQuIGO74v0kxKezazCRMW659TplgjNdAdIq4_FrmzaBwn2gdG0iMO7KDGY_hfUqaod?purpose=fullsize
https://images.openai.com/static-rsc-4/-t7TyVJtqkg5zI725XpOX7FJQYVkWl-rCvtFb6e7iJIkLto9w9lcH-AqQI9dU1v0WuvNFpXBlqZReivymuPrhbHwvPp8L38_jSb_QMsULIHvagKCItDz5pZb0ehkNYAz6PuguvrC-HvLceQJzvpG2LvdNmblohlTFZsbeHy245MzDam4XOP8HdH-LCO2ecTi?purpose=fullsize

6

πŸ“– Konsep

Menambahkan elemen ke dalam array.

🧠 Narasi

Jika menyisipkan di tengah:

  • Elemen lain harus digeser
    ➑️ Membutuhkan waktu lebih lama

πŸ’» Contoh

data = [10, 20, 30]
data.insert(1, 15)
print(data)

🧠 Kompleksitas

  • Awal: O(n)
  • Tengah: O(n)
  • Akhir: O(1) (jika masih ada ruang)

βž– 8. Deletion (Penghapusan)

https://images.openai.com/static-rsc-4/XwyQpUoiSehub4_EAZ8EeNHfdvVpmtTl0l4ggzMa59bU9lr4sZC8LpkFVO9E7Ho5GAd44xH6iBOBwU0OstiL3PVdPlY1zin-vx4TsrQH9NjPYBMuF-03uh25c2fJpKlH8CTB_O707b1OB1Z9p3XzYrcKlGAfgLiecWCLfg04DcfL9Or6kR9mny4VHAwfubo9?purpose=fullsize
https://images.openai.com/static-rsc-4/tXJ5aOTGzZhGOOOX9Xd5QrDMmFnfeRZNbWO9LksEQBjDvWuruaRnRobCmKi7qfrpTlEwuAe0bQ2YV8IMxG-7ydHKUgwEojLurI93uzNCRZSesFS2x7X4nl7LWUhLaliPMhiYT4yGIlDjS0E1rAwijMbUFDAKAfMTYEPfkfco7oS4XEZwW43n6pgCNfbqCcgZ?purpose=fullsize
https://images.openai.com/static-rsc-4/DcUAj-UeI_EfSSIbm8vfNLTi6vhSoxwmV7zwJvcH081ub0m-d9h5Q2TAcc9Z_c0xkJ_ycJdZKkbGh3bgL5Iohy5iyNQjG3dGl_OfEYTMbydQ-xyfPa73Y0_E7dfe0ypMbocl69LvRoU1EobaKm7gJVfyIbWPTzOu8p9ZRy7Z6Z4bb0L7my1aYrJv-8hgfApH?purpose=fullsize

6

πŸ“– Konsep

Menghapus elemen dari array.

🧠 Narasi

Setelah penghapusan:

  • Elemen setelahnya harus digeser

πŸ’» Contoh

data = [10, 20, 30]
data.remove(20)
print(data)

🧠 Kompleksitas

➑️ O(n)


πŸ” 9. Searching (Pencarian)

https://images.openai.com/static-rsc-4/3I3tk2biSV8tQXtr88GwlfgEdCCqFvG11zwZNMzFS3FxXgMRTpHSxMpyQgPgSekLmTpXs9dAj5zusfYyH3JKRPBzfKHgjNdpK9u-NCIh1X3Nawl28arNTuf6NYWu_FijCbz22lywYzZ52Its36C61KJ8X4arNQU7Xcv2EPF6cqQ7LpCqWxheClGf51-SYkkt?purpose=fullsize
https://images.openai.com/static-rsc-4/u6iDeTtLEDtJ_PeUPrBEYKMCJX0t89DfWmhafLAYRUBXX01B1tY2LQ6F-JfRarcBG6Mda4y2Gt1MK697jRo0_y9N0HMgdu36p0aesriXbS_6LHNgMTcEnLiiuVVPs4kvpq3299_n9WQEfON9X92IkwzVNPJRPIPDuuCt5iyhfvExZJmk7HCiQpEQS-5lrc0O?purpose=fullsize
https://images.openai.com/static-rsc-4/UaHgj2KlO4eg56TDQ6SEEDHxkI_KOTrXX7pbIJ2vNuT_iAEjXSf-MlnETIG7ITbt2L3Wvhf7AQqPzloQa_uubbu--AgAFnE8CFYBVmgHdZG9HYpvOqlMoGv8LR1ErNKC6JyDg8oXgw8-lLIaATCtb0Nz76GDStLLykFh3DNp0txutmavLof0DZxIsQQySiF_?purpose=fullsize

7

πŸ”Ή A. Linear Search

  • Mencari satu per satu
  • Kompleksitas: O(n)

πŸ”Ή B. Binary Search

  • Data harus terurut
  • Kompleksitas: O(log n)

πŸ”„ 10. Updating (Perubahan Data)

πŸ“– Konsep

Mengubah nilai elemen array secara langsung.

πŸ’» Contoh

data = [10, 20, 30]
data[1] = 99
print(data)

🧠 Kompleksitas

➑️ O(1)


βš–οΈ 11. Kelebihan dan Kekurangan Array

πŸ“Š Tabel Perbandingan

KelebihanKekurangan
Akses cepat (O(1))Ukuran tetap
Implementasi sederhanaInsert/delete mahal
Hemat memoriTidak fleksibel

πŸ”— 12. Perbandingan Array dengan Struktur Data Lain

πŸ“Š Tabel Perbandingan

StrukturAksesInsertDelete
ArrayO(1)O(n)O(n)
Linked ListO(n)O(1)O(1)

πŸ§ͺ 13. Studi Kasus Nyata

πŸ“Œ Kasus: Data Nilai Mahasiswa

  • Menggunakan array untuk menyimpan nilai
  • Mudah diakses berdasarkan indeks

Namun:

  • Sulit menambah data di tengah

➑️ Alternatif: Linked List


πŸ’» 14. Implementasi Lengkap (Python)

# Inisialisasi array
data = [10, 20, 30, 40]# Traversal
for i in range(len(data)):
print(data[i])# Insertion
data.append(50)# Deletion
data.remove(20)# Searching
if 30 in data:
print("Ditemukan")# Updating
data[0] = 100print(data)

πŸ“š 15. Ringkasan Materi

  • Array adalah struktur data dasar dengan memori berurutan
  • Memiliki akses cepat (O(1))
  • Operasi utama: traversal, insert, delete, search
  • Kurang fleksibel untuk data dinamis
  • Digunakan dalam banyak aplikasi pemrograman

πŸ“ 16. Latihan / Diskusi

✏️ Soal Teori

  1. Jelaskan konsep array dan karakteristiknya
  2. Mengapa array memiliki akses O(1)?
  3. Apa kelemahan utama array?

πŸ’» Soal Praktikum

  1. Buat program array untuk menyimpan 10 angka
  2. Implementasikan insertion dan deletion
  3. Buat pencarian linear

🎯 Penutup

Array adalah fondasi utama struktur data yang harus benar-benar dipahami karena:

  • Digunakan hampir di semua program
  • Menjadi dasar untuk struktur data lain
  • Membantu memahami manajemen memori