Kamis, 23 Juni 2011

variabel memori, array dan argumentasi

Variabel Memori
Variabel merupakan komponen penting pada pemrograman, Variabel digunakan dalam program untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat dirubah selama eksekusi program berlangsung.
Jika suatu variable diisi dengan nilai di luar jangkauannya maka nilai yang akan disimpan akan diubah sesuai dengan jangkauannya. Misalnya, bila suatu variable bertipe integer diberi nilai 75000, yang tersimpan pada variable tersebut berupa 9494. Sebab nilai positif terbesar pada tipe integer yaitu 32767. Hal ini bekerja sebagaimana speedometer pada kendaraan bermotor. Pada spedometer, apabila nilai maksimumnya terlampaui akan dimulai dari nilai terendahnya, yakni nol
Komponen sebenarnya juga ditampung dalam variable seperti yang anda
maksud, jadi dalam contoh ada 2 set variable, variable adsMain & dsMain
Dan variable VDataset & VDataSource. Yang membedakan kedua set variable
ini adalah untuk variable adsMain dan dsMain, dia akan menempati memori
lebih banyak karena berisi instance dari kelas tersebut. Sedangkan pada
variable VDataset & VDatasource, hanya berisi Alamat yang menunjuk ke
Alamat dari instance kelas diatas tadi. Jadi akan menempati memori lebih
sedikit. Tapi memang kedua variable ini pastinya menempati Alamat memori
yang berbeda.


Array
Adalah pengaturan sistematis dari obyek, biasanya dalam baris dan kolom. Serta serangkaian unsur-unsur dari jenis yang sama ditempatkan di lokasi memori yang berdekatan yang dapat secara individual direferensikan dengan menambahkan indeks unik pengenal.
Itu berarti bahwa, misalnya, kita dapat menyimpan 5 nilai bertipe int dalam array tanpa harus mendeklarasikan 5 variabel yang berbeda, masing-masing dengan identifier yang berbeda. Daripada itu, menggunakan array, kita dapat menyimpan 5 nilai yang berbeda dari jenis yang sama, int misalnya, dengan identifikasi unik.
Umumnya, koleksi item data yang dapat dipilih oleh indeks dihitung pada saat run-time, termasuk:
Array struktur data
Pengaturan barang di spasi alamat yang sama di memori komputer
Array tipe data
Di gunakan dalam bahasa pemrograman untuk menentukan variabel yang dapat diindeks
Array asosiatif
Struktur model abstrak data yang generalizes indeks array untuk sewenang-wenang atau berbagai jenis di atas, seperti
Bit array atau vektor bit
Array dinamis , dialokasikan pada waktu berjalan
Paralel array catatan, dengan setiap bidang disimpan sebagai array terpisah
Jarang array , dengan unsur-unsur yang paling dihilangkan, untuk menyimpan matriks tipis
Variable-length array
Bergerigi array , dimana memiliki panjang baris yang berbeda secara individual atau terkait berbagai konsep:
Array prosesor , komputer untuk mengolah data array (jangan dikelirukan dengan array processor)
Array pemrograman , menggunakan notasi aljabar matriks dalam program (tidak sama dengan pengolahan array)
Array mengiris , ekstraksi sub-array dari array atau juga:
Global Array , perpustakaan untuk pemrosesan paralel
Intel Array Visualizer , sepotong perangkat lunak grafis ilmiah
Inisialisasi array.
Ketika mendeklarasikan array regular dari lingkup lokal (dalam satu fungsi, misalnya), jika kita tidak menentukan lain, unsur-unsur yang tidak akan diinisialisasi ke nilai default, sehingga konten mereka akan belum ditentukan sampai kita menyimpan beberapa nilai di dalamnya. Elemen-elemen array global dan statis, di sisi lain, secara otomatis diinisialisasi dengan nilai standar, yang untuk semua jenis fundamental ini berarti mereka penuh dengan nol.


sumber : http://rynaldobisnis.blogspot.com/2011/06/pengertian-tentang-variabel-memori.html

Senin, 23 Mei 2011

ALGORITMA PENCARIAN BINER (BINARY SEARCH)

Pencarian Biner (Binary Search) pada array yang sudah terurut

Pencarian Biner (Binary Search) dilakukan untuk :

♪ memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.

♪ Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).

♪ Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.

ALGORITMA

Kamus

Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 }

Type A = array [ 1 ..... N ] of integer

Cari, BatasAtas, BatasBawah, Tengah : Integer

Ketemu : boolean

ALGORITMA

Input (cari) { meminta nilai data yang akan dicari}

BatasAtas ¬ 1 { indeks array dimulai dari 1 }

BatasBawah ¬ N

Ketemu ¬ False

While (BatasAtas < BatasBawah) and (not ketemu) do

Tengah ¬ (BatasAtas + BatasBawah) div 2

If A [Tengah] = cari then

Ketemu ¬ true

Else

If ( A [Tengah] < cari ) then { cari di bagian kanan }

BatasAtas ¬ Tengah + 1

Else

BatasBawah ¬ Tengah – 1 { cari di bagian kiri }

Endif

Endif

EndWhile

If (ketemu) then

Output ( ‘Data berada di index nomor’, Tengah )

Else Output ( ‘Data tidak ditemukan’ )

Endif


Contoh Nilai-Nilai data yang sudah terurut :

A

2

5

8

12

15

25

37

57

1

2

3

3

5

6

7

8

Kasus 1 : cari = 12

Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4

A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan

Kasus 2 : cari = 15

Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4

A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5

Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 8) div 2 = 6

A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah - 1 = 6 - 1 = 5

Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 5) div 2 = 5

A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan

Kasus 3 : cari = 10

Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4

A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah - 1 = 4 - 1 = 3

Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 3) div 2 = 2

A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3

Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (3 + 3) div 2 = 3

A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan

Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali. Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.

sumber : mita.staff.gunadarma.ac.id