Objek Data, Variabel, dan Konstanta Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom
Pengantar Penyimpanan data di komputer (memori, register, dan lainnya) – Organisasi yang sederhana – Barisan bit yang dikelompokkan menjadi byte dan word Memori komputer – Terdiri dari sel-del dasar yang disebut alamat – Isi sel merupakan suatu nilai – Nilai merupakan abstraksi secara matematis yang dapat dibaca dan dimodifikasi selama program dieksekusi Bahasa pemrograman – Organisasi yang kompleks – Array, stack, string, dan lainnya
Objek Data Pengelompokkan satu atau lebih potongan data di dalam virtual komputer pada saat run-time Beberapa objek data dibuat oleh programmer – Variabel, konstanta, array Objek data lainnya dibuat oleh sistem – Buffer, list ruang kosong, stack Objek data menggambarkan suatu container untuk nilai data – Suatu tempat dimana nilai-nilai data disimpan dan dipanggil kembali Objek data dikarakteristikkan oleh suatu kumpulan attribute – Attribute menentukan jumlah dan tipe nilai objek data • Bisa berupa angka tunggal, karakter atau pointer
Objek Data 10011 Objek Data
Nilai Data
000000000010011 Variabel Terikat
Variabel Objek data yang didefinisikan dan diberi nama secara eksplisit oleh programmer Objek data dasar dengan nama Dilihat dari hardware – Variabel merupakan suatu abstraksi dari sel-sel memori – Nama variabel merupakan abstraksi dari alamat memori – Statement assigment merupakan abstraksi dari modifikasi suatu sel Mempunyai 4 bagian – Nama dan Scope – Tipe – L-value – R-value
Nama dan Scope Nama variabel merupakan string dari karakter Scope variabel merupakan range dari instruksi program dimana nama tersebut dikenali Instruksi program dapat memanipulasi suatu variabel di dalam scopenya Variabel akan terlihat (visible) dalam scope Variabel tidak akan terlihat (invisible) di luar scopenya
Example procedure coba() var nilai : integer; begin nilai := 10; end; begin writeln(nilai); end.
Example public class Coba { public static void main(String[] args) { System.out.println(nilai); } public int tes() { int nilai = 10; return nilai; } }
Tipe Kumpulan nilai-nilai yang diasosiasikan ke variabel bersama-sama dengan operasi-operasinya yang dapat digunakan untuk menciptakan, mengakses dan memodifikasi suatu nilai Contoh tipe Integer – Operasi matematis Beberapa bahasa mengijinkan programmer mendefinisikan tipe baru sendiri type vector = array[1..10] of integer
L-value Merupakan daerah penyimpanan yang di binding ke variabel selama eksekusi Lokasi memori yang diasosiasikan dengan variabel Digunakan untuk menangani r-value dari variabel
R-value Suatu nilai yang terkodekan yang disimpan di suatu lokasi yang diasosiasikan dengan variabel (l-value) l-value dan r-value merupakan konsep utama yang berhubungan dengan eksekusi suatu program X=Y X : l-value Y : r-value
Referensi dan Variabel Tanpa Nama Beberapa bahasa mempunyai fasilitas untuk mengizinkan variabelnya dapat diakses melalui r-value dari variabel yang lain Disebut referensi atau pointer Kemungkinan tanpa nama Satu-satunya cara mengakses adalah melalui variabel bernama lainnya
Example type pInt = ^integer; var pIntxx : pInt; x : integer; begin x := 5; pIntxx := @x; pIntxx := pIntxx + 1; end.
Assignment Suatu aksi yang menyebabkan peletakan suatu nilai di suatu lokasi Suatu operasi dasar untuk mengubah binding dari nilai ke objek data Contoh – Pascal • i := 3 – C family • i=3 – Cobol • MOVE 3 TO i
Example A=2 B=3 A=B
A
2
A
2
B
3
B
3
Assignment Secara garis besar, operasi assignment dapat didefinisikan sebagai – Menghitung l-value dari ekspresi pertama operan – Menghitung r-value dari ekspresi kedua operan – Memindahkan r-value yang sudah dihitung ke objek data l-value yang sudah dihitung – Mengembalikan r-value yang sudah dihitung sebagai hasil dari operasi
Konstanta Objek data dengan nama yang sudah terikat dengan suatu nilai secara permanen (tetap) Contoh #define MAX 50 Nilai MAX tidak dapat diubah melalui assignment MAX = 5 Tetapi dapat dilibatkan dalam operasi int N; N = 12; N = N + MAX;
Operator Fungsi yang beroperasi di konstanta, variabel, dan nilai yang akan menghasilkan sesuatu yang baru (hasil) Operator dibedakan tingkatan precedence Contoh A=3+2*4 A = 11