Mengapa perlu insert? Kita berharap sebuah list tidak statis. Kalau ada anggota baru, kita bisa taruh beliau di mana saja. Tetapi apa yang terjadi dalam program kita di atas? Perhatikan potongan program ini:
Temans[0].Nama := ‘Agus’;
Temans[1].Nama := ‘Bagus’;
Temans[2].Nama := ‘Cagus’;
Temans[3].Nama := ‘Egus’;
Temans[4].Nama := ‘Fagus’;
Nah, berarti list tersebut mengandung Agus, Bagus, Cagus, Egus, dan Fagus. Ternyata kita lupa dengan seseorang, namanya Dagus. Kalau kita langsung mengubah dengan cara:
Temans[3].Nama := ‘Dagus’;
Maka nama Egus akan terhapus, dan listnya menjadi:
Agus, Bagus, Cagus, Dagus, dan Fagus.
Kita berharap bisa menyisipkan sebuah anggota di posisi tertentu.
Nah, kalau begitu, maka kita harus memikirkan bagaimana caranya agar ambisi kita terpenuhi. Mungkin bisa dengan cara berpikir seperti ini: Ketika kita hendak meng-insert Dagus di posisi 4, maka:
- Pertama, kopi semua objek dari posisi 4 hingga posisi terakhir, maju satu langkah, sehingga menjadi:
Agus, Bagus, Cagus, Egus, Egus, Fagus.
- Kedua, elemen ke-4 diganti dengan Dagus.
Agus, Bagus, Cagus, Dagus, Egus, Fagus
- Jangan lupa update variabel Count.
Nah, programnya kira-kira seperti ini:
procedure Insert(objek:
// List yang ke indeks diganti objek List[indeks]:=objek;
// Jangan lupa update count-nya Count:=Count + 1; end;
Tentu saja tidak harus seperti ini. Tergantung dari cara kamu mengimplemetasikan listnya. List di sini menggunakan array, maka programnya bisa seperti ini. Kalau menggunakan linked list, akan berbeda lagi. Perhatikan juga bahwa prosedur Insert di atas tidak sempurna, karena tidak dapat menangani indeks di luar list (misalnya melebihi Count).
Biasanya kita memerlukan operasi add juga yang menambahkan elemen di akhir list (bukan di tengah-tengah). Atau push dan pop, dengan push fungsinya sama seperti add, tetapi pop berfungsi untuk menghapus elemen terakhir sekaligus mengambil datanya. Tetapi ini tidak mutlak perlu.
Add new comment