Memori dan Scope VariabelPertemuan 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.
Hirarki Memori
Cache
Main Memory:
RAM
Secondary storage:Tape, disk, drum, electronic
disk
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.
Piranti penyimpanan yang non volatile sebagai penyimpanan backup.
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 DataTipe 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• 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..20RentangTahun = 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:• Kumpulan statement atau perintah yang
dapat dieksekusi secara bersamaan dalam satu waktu.
• Dapat digunakan berulang-ulang.
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.