Tabel Alokasi Memori Pada Tipe Data Sederhana
Pada kesempatan kali ini akan dibahas Penempatan/Alokasi Data Array, Struktur, dan Union di memori Komputer(RAM) . Tabel di atas menunjukkan besarnya alokasi memori setiap jenis Tipe Data Sederhana.
Penempatan Array di Memori
Array Satu Dimensi
Tipe Data Array 1 Dimensi dengan elemen sebanyak n membutuhkan Memori sebanyak n Byte. Nilai-nilai dari Array char tersebut diletakkan dalam alamat yang berurutan.
Contoh:
- Elemen char[0] diletakkan di Alamat Sel Memori 0x001
- Elemen char[1] diletakkan di Alamat Sel Memori 0x002
Array Dua Dimensi
Tipe Data Array 2 Dimensi dengan elemen sebanyak m x n , membutuhkan Memori sebanyak m x n Byte. Pada Array 2 Dimensi, setiap elemen m akan mengikat elemen sebanyak n.
Contoh:Array Tiga Dimensi
- Elemen char[0][0] diletakkan di Alamat Sel Memori 0x00E
- Elemen char[0][1] diletakkan di Alamat Sel Memori 0x00F
- Elemen char[1][0] diletakkan di Alamat Sel Memori 0x010
- Elemen char[1][1] diletakkan di Alamat Sel Memori 0x011
Tipe Data Array 3 Dimensi dengan elemen sebanyak l x m x n , membutuhkan Memori sebanyak l x m x n Byte. Pada Array 3 Dimensi, setiap elemen l akan mengikat sebanyak m dan setiap elemen m akan mengikat elemen sebanyak n. Pola yang sama digunakan antara Penempatan Memori Array Tiga Dimensi dengan Array Dua Dimensi.
Penempatan Struktur di Memori
Tipe Data Struktur membutuhkan Memori sebanyak jumlah Memori dari elemennya.
struct Rekaman1Tipe Data Rekaman 1 membutuhkan ruang Memori sebanyak 8 Byte. 8 Byte tersebut didapat dari menambahkan masing-masing 4 dari variabel a dan c yang bertipe Int.
{
int a;
int c;
} Data;
Contoh:
- Variabel Data.a diletakkan di alamat Memori 0x001 s/d 0x004
- Variabel Data.c diletakkan di alamat Memori 0x005 s/d 0x008
Penempatan Union di Memori
Tipe Data Union membutuhkan Memori sebanyak Memori terbesar dari Elemennya.
Contoh:Tipe Data Satu memiliki kebutuhan Memori sebanyak 4 Byte ( Type Data terbesar dari elemen-elemennya adalah Int). Elemen b yang bertipe data char menggunakan sebagian kecil dari Memori int a untuk menyimpan Nilainya.
union Satu
{
int a;
char b;
} TheUnion;
Contoh:Tipe Data Union adalah Tipe data yang melakukan Share Memori , sehingga elemen int a dan char b menggunakan Memori Union tersebut secara bergantian. Berbeda dengan Tipe Data Struktur, Tipe Data Union tidak memungkinkan penyimpanan 2 buah data dari 2 buah Elemen Pembentuknya.
-Nilai int a diletakkan di alamat Memori 0x001 (LSB) s/d 0x004 (MSB)
-Nilai char b diletakkan di alamat Memori 0x001
*Keterangan: LSB =Least Significant Byte, MSB= Most Significant Byte.
Contoh Soal dalam Mencari alamat pada Array Tiga Dimensi:
Diketahui Variabel Array Tiga Dimensi : int A[2][4][5]
Diketahui Alamat Array A[0][0][0] : 0x1000
Ditanya Berapa Alamat dari Elemen A[1][2][4]
Jawab:
- Diketahui &A[0][0][0] = 0x1000 , Ditanya &A[1][2][4] adalah?
- Hitung dulu perpindahan Memori dari Total Perpindahan Elemen:
- Pindah Grup= 1-0 = 1 Grup = 1*4*5 *4Byte (Besar Memory Type Data Int) = 80Byte
- Pindah Baris= 2-0 = 2 Baris = 2*5 *4Byte = 40Byte
- Pindah Kolom= 4-0 = 4 Kolom = 4 *4Byte = 16Byte
- Total Perpindahan Memori= 136Byte
- Ubah Total Perpindahan ke dalam bentuk HexaDecimal:
- 136= 8(16^1) + 8(16^0) = H0088
- Alamat Nilai A[1][2][4] yang dicari didapat dengan menjumlahkan Total Perpindahan ke Alamat Awal:
- 0x1000 + H0088 = 0x1088
Please Click This Link Below to Subscribe Ledakan Lemon
SUBSCRIBE
CTRL+D to Bookmark This Page
Click Follow Button on The Left-Top Corner of this page to Follow this Blog
0 komentar: (+add yours?)
Posting Komentar