Memori dan Scope Variabel Pertemuan ke-3
Pendahuluan Tingkat efisiensi suatu algoritma menyangkut 2 hal, yaitu: Waktu Tempuh Proses dari suatu algoritma di dalam mencari solusi dari suatu masalah memerlukan waktu tertentu. Hal-hal yang mempengaruhi waktu tempuh: (i) Banyaknya langkah: Makin banyak langkah atau instruksi yang digunakan maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut.
Cont. (ii) Besar dan jenis input data Ukuran atau besar serta jenis dari input yang digunakan akan sangat berpengaruh pada proses perhitungan. (iii) Jenis operasi Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi aritmatika, operasi nalar atau logika, dll.
Cont. (iv) Komputer dan kompilator Komputer dengan kemampuan lambat maka waktu tempuhnya akan menjadi lebih lambat. Kompilator yang digunakan juga akan berpengaruh terhadap waktu tempuh suatu algoritma. Jumlah memori yang digunakan
Memori Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatif sedikit (efisien). Banyaknya langkah yang digunakan dan jenis variabel atau data yang dipakai dalam suatu algoritma akan mempengaruhi penggunaan memori.
Cont. Kebutuhan memori harus diperkirakan selama proses berlangsung hingga diperoleh penyelesaiannya, maka perlu disiapkan storage yang memadai agar proses dari suatu algoritma berlangsung tanpa hambatan. Parameter-parameter terpenting dalam sebuah sistem memori: Kapasitas (capacity): jumlah maksimum unit data yang dapat disimpannya.
Cont. Waktu pengaksesan (access time): waktu yang diperlukan untuk mengakses data. Kecepatan transfer data (data transfer rate): jumlah bit per detik data yang dapat dibaca. Waktu siklus (cycle time): ukuran seberapa sering memori dapat diakses. Biaya (cost): biasa diekspresikan dalam bentuk rupiah per bit.
Tape, disk, drum, electronic disk Hirarki Memori Cache Memori kecil berkecepatan tinggi yang berfungsi sebagai buffer bagi RAM RAM (Random Access Memory) berfungsi untuk menyimpan program yang diolah untuk sementara waktu. Tujuan RAM adalah mempercepat pemrosesan data pada komputer. Main Memory: RAM Piranti penyimpanan yang non volatile sebagai penyimpanan backup. Secondary storage: Tape, disk, drum, electronic disk
Contoh Algoritma dari penjumlahan 2 buah matrik yang berukuran (mxn), yaitu: (1)Nyatakan A[i,j], B[i,j], C[i,j] riil (2)Untuk i1 sampai dengan m kerjakan (3)Untuk j1 sampai dengan n kerjakan (4)C(i,j)A[i,j] + B[i,j] (5)Akhir j (6)Akhir i Jenis operasi yang digunakan adalah operator tambah.
Cont. Banyaknya operasi tambah yang dilakukan adalah mn kali. Banyaknya memori yang digunakan: Variabel yang digunakan adalah variabel berindex dengan dimensi 2 dan bertipe variabel riil dengan tingkat ketelitian tunggal maka banyaknya memori yang dibutuhkan untuk satu variabel adalah 4mn byte. Fungsi F(m,n)=13mn yang merupakan fungsi dari waktu tempuh dan memori yang digunakan oleh algoritma tersebut.
Variabel Variabel adalah tempat di mana kita dapat mengisi atau mengosongkan nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel akan mempunyai nama (identifier) dan nilai. Contoh: username = “joni” Nama = “Ronaldo” Harga = 2500 HargaTotal = 34000
Aturan-aturan Pemberian Nama Variabel Nama variabel harus diawali dengan huruf. Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan karakter underscore (_). Nama variabel tidak boleh mengandung karakter-karakter khusus, seperti ., +, -, *, /, <, >, &, (, ) dan lain-lain Nama variabel tidak boleh menggunakan kata-kata kunci di bahasa pemrograman. Case Sensitive atau InCase Sensitive.
Scope Variabel Karakteristik variabel: Elemen yang dapat menampung nilai. Nilai dapat berubah. Dapat digunakan berulang-ulang. Hanya dapat menampung sebuah nilai saja (tunggal). Jenis variabel: Variabel Global/ Eksternal Dideklarasikan diluar prosedur atau fungsi manapun.
Cont. Dideklarasikan bukan didefinisikan. Dapat dikenali dan diakses oleh semua prosedur atau fungsi. Variabel Lokal/ Internal Tidak dapat dikenali oleh prosedur atau fungsi lain. Hanya dikenal di dalam prosedur atau fungsi tempat variabel didifinisikan.
Cont. Variabel Otomatis Variabel hanya akan diciptakan pada saat fungsi dipanggil. Pada saat fungsi berakhir (selesai dieksekusi), variabel otomatis dihilangkan. Tidak ada inisialisasi secara otomatis (pada saat variabel diciptakan). Inisialisasi oleh pemrograman akan dikerjakan setiap kali fungsi dipanggil.
Cont. Hanya dapat diakses di dalam fungsi yang mendifinisikan. Variabel Statis Pada variabel lokal Variabel tetap hanya dapat diakses pada fungsi yang mendifinisikannya. Variabel tidak hilang saat eksekusi fungsi berakhir nilainya akan tetap dipertahankan, sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya.
Cont. Inisialisasi oleh pemrograman akan dilakukan sekali saja selama program dijalankan, jika tidak ada inisialisasi secara eksplisit, variabel diisi dengan nol. Pada variabel global Jika Variabel eksternal dijadikan sebagai variabel statis, variabel ini dapat diakses oleh semua file yang didifinisikan pada file yang sama dengan variabel eksternal tersebut.
Cont. Bermanfaat pada pemrograman file berganda atau kode program diletakkan pada beberapa file.
Konstanta Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Karakteristik konstanta: Elemen yang dapat menampung nilai. Nilai tetap / tidak berubah. Dapat digunakan berulang-ulang. Hanya dapat menampung sebuah nilai saja (tunggal).
Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer. Ketepatan pemilihan tipe data pada variabel atau konstanta akan sangat menentukan pemakaian sumber daya komputer (terutama memori komputer).
Pengelompokan Tipe Data Primitive Numeric Character Boolean Composite Array Record Image Date Time Dll (Subrange, Enumerasi, dll)
Tipe Data Numeric Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk bilangan atau angka. Jenis yang termasuk dalam tipe data numeric: integer (bilangan bulat) dan float (bilangan pecahan).
Tipe Data Character Tipe data character kadang disebut char atau string. Tipe data string hanya dapat digunakan menyimpan teks atau apapun sepanjang berada dalam tanda petik dua (“...”) atau petik tunggal (‘...’)
Tipe Data Boolean Tipe data boolean digunakan untuk menyimpan nilai True/ False (benar/ Salah). Pada sebagian besar bahasa pemrograman, nilai 0 melambangkan False dan nilai selain 0 menunjukkan True. Tipe data boolean banyak digunakan untuk pengambilan keputusan pada struktur percabangan dengan IF ... THEN atau IF ... THEN ... ELSE
Tipe Data Array Array: Elemen yang dapat menampung nilai. Nilai dapat berubah. Dapat digunakan berulang-ulang. Dapat menampung lebih dari satu nilai (jamak). Memiliki Index untuk dapat mengenali setiap nilai yang tersimpan. Tipe datanya harus sejenis
Tipe Data Record atau Struct Record dikenal dalam bahasa Pascal/ Delphi sedangkan Struct dikenal dalam bahasa C++. Berbeda dengan array, tipe data record mampu menampung banyak data dengan tipe berbeda-beda (heterogen).
Tipe Data Image Image atau gambar atau citra merupakan tipe data grafik. Tipe data ini biasa digunakan pada bahasa-bahasa pemrograman modern terutama yang berbasis visual.
Tipe Data Date Time Variabel atau konstanta yang dideklarasikan denga tipe data Date dapat digunakan untuk menyimpan baik tanggal. Contoh (pada bahasa pemrograman Visual Basic): Dim WaktuLahir As Date WaktuLahir = “01/01/1997” WaktuLahir = “13:03:05 AM” WaktuLahir = “02/23/1998 13:13:40 AM” WaktuLahir = #02/23/1998 13:13:40 AM#
Tipe Data Subrange Type Indeks : BatasIndeks Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai dengan yang ditetapkan programmer. Biasanya tipe data ini mempunyai nilai batas minimum dan nilai batas maksimum. Contoh (dalam bahasa pemrograman Delphi): Type BatasIndeks = 1..20 RentangTahun = 1950..2030 Var Indeks : BatasIndeks Tahun : RentangTahun
Prosedur & Fungsi Prosedur: Kumpulan statement atau perintah yang dapat dieksekusi secara bersamaan dalam satu waktu. Dapat digunakan berulang-ulang. Fungsi:
Cont. Dapat mengembalikan nilai. Banyak digunakan untuk penyelesaian operasi matematik maupun operasi string. Scope and Lifetime of Variables Scope variabel adalah bagaimana sebuah variabel dapat diakses dalam aplikasi yg terdiri dari modul-modul aplikasi. Contoh: sebuah variabel dideklarasikan sebagai Public pada module .Bas dapat diakses dalam form apapun dalam aplikasi tersebut
Cont. Lifetime variabel adalah periode atau masa dimana sebuah variabel akan tetap ada dalam memori komputer. Contoh: local variabel pada sebuah prosedur akan dibuat/disimpan pada memori saat prosedur tersebut diekseskusi dan akan dihapus dari memori pada saat prosedur tersebut selesai dijalankan.
Referensi: http://boldson.staff.gunadarma.ac.id/