Pertemuan ke-3 (Memori dan Scope Variabel)

Download Report

Transcript Pertemuan ke-3 (Memori dan Scope Variabel)

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.
Hirarki Memori
Cache
Main
Memory:
RAM
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.
Secondary storage:
Tape, disk, drum, electronic
disk
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 i1 sampai dengan m kerjakan
(3)Untuk j1 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
Numeric
Primitive
Character
Boolean
Tipe Data
Array
Record
Composite
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..20
RentangTahun = 1950..2030
Var
Indeks
Tahun
: BatasIndeks
: 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.