Akademi Manajemen Informatika

Berkenalan apa itu memori heap dan memori stack pada programming. Apa perbedaannya dan Bilaman menggunakan salah satunya.

Daftar Isi:

Begitu sedang belajar bahasa program Rust, saya Bersua dengan materi Ownership. Materi ini membahas fitur Rust seputar alokasi memori. Karena Kagak mau terima begitu saja, saya mundur sedikit masalah apa sih yang ownership selesaikan?.. Rupanya seputar memori heap dan stack.

Kagak Paham apa itu memori heap dan stack?
saya juga!

Dapatlah bahan belajar baru yang akan saya tuangkan di sini. Tulisan tentang memori heap dan stack

Kenapa saya Kagak pernah mendengarnya?

“Kagak pernah mendengar” mungkin sedikit berlebihan, lebih tepatnya jarang. Alasannya karena selama ini urusan memori Begitu menjalankan suatu program hanya Eksis Begitu berkutat dengan “low level language”.

Segala Eksis untung-ruginya. Begitu Ingin menggunakan bahasa program yang terkenal dengan kecepatan layaknya “Rust” Niscaya Eksis hal seperti ini yang Kagak kita temui sebelumnya. Karena itulah perlu sedikit memahami konsep ini, agar Kagak asal memakai bahasanya nanti.

Apa itu heap dan stack?

Ini adalah Langkah bahasa program menyimpan suatu data di memory. Bukan database, tapi data-data dari program yang kita tulis itu sendiri.

Langkah penyimpannya di memori Eksis dua jenis: Stack dan Heap

READ  Menjadi Produktif di CLI (Command-Line Interface)

Apa itu penyimpanan Stack pada komputer?

Stack menyimpan data berdasarkan urutan masuknya. Bayangkan piring yang ditumpuk. Niscaya Langkah menumpuknya harus ke atas (bukan menyelipkan ke Dasar).

Langkah mengambilnya sebaliknya, kita kenal dengan LIFO (last in first out) alias yang terakhir masuk, akan pertama keluar. Ingat tumpukan piring, Langkah ambilnya harus dari atas.

Ciri-Ciri stack:

  • Data yang disimpan ukurannya sudah ketahuan
  • Ukuran data Kagak boleh berubah
  • Biasanya berjalan Mekanis
  • Menyimpan dan mengambil data lebih Segera (karena sudah Jernih prosedurnya ditumpuk seperti piring)

Apa itu penyimpanan Heap pada komputer?

Sementara heap, bayangkan Engkau masuk ke restoran. Pelayannya akan bertanya “berapa orang Pa?“. Tempat duduk Engkau akan disesuaikan dengan jumlah kursi dan orangnya.

Menyimpan data di heap sering diikat dengan kata ‘allocating’. Karena kita harus secara Tertentu mencarikan tempat Kepada data tersebut. Setiap meja di restoran Eksis nomor atau kodenya. Nomor ini kita sebut sebagai address/pointer yang mewakili meja tersebut.

Ciri-Ciri Heap:

  • Data Dapat Kagak diketahui ukurannya
  • Ukuran data Dapat berubah
  • Biasanya perlu dikerjakan sendiri oleh programmernya
  • Menyimpan dan mengambil data butuh kerja extra (karena butuh tempat Tertentu, Kagak Eksis urutan)
READ  CSS Flexbox - panduan lengkap Membikin layout website

Bilaman menggunakan Heap, Bilaman menggunakan Stack?

Kasarnya sih.. Engkau Guna stack Begitu sudah Paham berapa banyak data yang dibutuhkan sebelum compile berjalan dan ukurannya Kagak terlalu besar. Heap sebaliknya.

Setiap bahasa program punya Langkah masing-masing data mana yang disimpan di heap, data mana yang di stack

Lebih detail penggunaan heap dan stack

Heap dan stack adalah dua jenis struktur data yang digunakan dalam pemrograman, dan keduanya Mempunyai penggunaan yang berbeda:

  1. Stack: Stack biasanya digunakan Kepada alokasi memori yang sementara dan bersifat lokal. Misalnya, ketika suatu fungsi dipanggil, ruang Kepada variabel lokal dan parameter fungsi dialokasikan di stack, dan mereka secara Mekanis ‘dihapus’ Begitu fungsi selesai.

Stack juga digunakan Kepada mengendalikan alur program, seperti melacak fungsi mana yang sedang berjalan dan fungsi mana yang memanggil fungsi lain. Penggunaan memori stack biasanya lebih Segera dibandingkan heap karena alokasi dan dealokasi di stack hanya melibatkan penyesuaian pointer, bukan pencarian blok memori. Tetapi, ruang di stack biasanya terbatas.

  1. Heap: Heap digunakan Kepada alokasi memori yang perlu bertahan lebih lelet dari satu panggilan fungsi atau lebih besar dari yang Dapat ditampung oleh stack. Misalnya, Apabila Engkau perlu mengalokasikan array besar atau Apabila Engkau Membikin objek yang perlu bertahan selama siklus hidup aplikasi, Engkau akan menggunakan heap.
READ  Daftar kode Rona HTML dan CSS (Lengkap 140+ visual dan Metode)

Penggunaan memori heap lebih Elastis karena memori Dapat dialokasikan dan dihapus Bilaman saja, tetapi juga lebih lelet dan lebih rumit karena perlu menghindari masalah seperti kebocoran memori dan fragmentasi.

Pemilihan antara stack dan heap biasanya didasarkan pada dua pertimbangan: berapa lelet Engkau perlu menyimpan data dan berapa banyak data yang perlu Engkau simpan. Apabila data hanya perlu disimpan selama durasi panggilan fungsi dan Kagak terlalu besar, maka stack adalah pilihan yang Bagus. Apabila data perlu disimpan lebih lelet atau Apabila Engkau perlu menyimpan blok data yang besar, maka Engkau harus menggunakan heap.

Teladan kongkrit heap dan stack?

Contohnya Engkau mau menyimpan Nomor

let x = 10;

Karena nilainya sudah diketahui dan relatif kecil, ini disimpan di stack.

Sementara, Begitu Engkau misalnya Ingin menerima sesuatu dari input user

let input = InputFromUser()

Nilainya cenderung Kagak diketahui, kita menyimpannya di heap.

Hai saya Hilman, Membikin situs Sekolah Koding (Skodev) dan menulis Kitab Kepada programmer (Halo Koding), Halo Koding . Sudah mengetik-ngetik alias programming sejak 2015. Semoga artikel dan situs ini Dapat bantu karir Engkau ya!