PERTEMUAN ALPRO KEEMPATBELAS
Untuk pertemuan
alpro terakhir kemarin qt,bercerita ttng bagaimanakah masa depan kami
setelah lulus perguruan tinggi ini,intinya pengen menjadi apa gitu,
heheheheeh...tetapi kemarin qt juga mempelajari materi tentang Array
Rekursive.
Nah
apakah Array rekursive itu.....?
Array
adalah sebuah struktur data yang terdiri atas banyak variabel dengan
tipe data sama, dimana masing-masing elemen variabel mempunyai nilai
indeks. Setiap elemen array mampu untuk menyimpan satu jenis data
(yaitu: variabel).
Sifat Array
Array
merupakan struktur data yang statis, yaitu jumlah elemen yang ada
harus ditentukan terlebih dahulu dan tak bisa di ubah saat program
berjalan.
Array
atau larik di definisikan sebagai pemesanan alokasi memory
berurutan.definisi ini kurang tepat, karena terjadi kerancuan antara
struktur data dan representasinya. Memang benar array hampir selalu
di implementasikan menggunakan memory berurutan tapi tidak selalu
demikian.
Semua elemem array
bertipe sama. Array cocok untuk organisasi kumpulan data homogen yang
ukuran atau jumlah elemen maksimumnya telah diketahui dari awal.
Homogen adalah
bahwa setiap elemen dari sebuah array tertentu haruslah mempunyai
tipe data yang sama.
KARAKTERISTIK
ARRAY
a)
Mepunyai batasan dari pemesanan alokasi memori (bersifat
statis)
b)
Mempunyai tipe data sama (bersifat homogen)
c)
Dapat diakses secara acak.
DEKLARASI ARRAY
Ada tiga hal yang
harus di ketahui dalam mendeklarasikan array, yaitu :
a)
Type data array
b)
Nama variable array
c)
Subkrip / index array.
Contoh deklarasi
dari array adalah sebagai berikut :
int A[5] ; artinya
variabel A adalah kumpulan data sebanyak 5 bilangan bertipe
integer.
JENIS
ARRAY
1.
ARRAY DIMENSI SATU
Deklarasi
: Type_Data Nama_Variabel [index]
Rumus untuk
menentukan jumlah elemen dalam array adalah :
n
p (Index Array)
i = 1
p
= Perkalian dari index sebelumnya (untuk arraybdimensi dua dan tiga).
PEMETAAN (MAPPING)
ARRAY DIMENSI SATU KE STORAGE
Rumus
: @A[i] = B + (i – 1) * L
Dimana
: @A[i]
: Posisi array yang dicari
B
: Posisi awal index di memori
computer
i
: Subkrip atau index array
yang di cari
L
: Ukuran atau besar memori
suatu tipe data
2.
ARRAY DIMENSI DUA
Deklarasi
: Type_Data Nama_Variabel [index1] [index2]
Menentukan
jumlah elemen dalam array dimensi dua :
n
p (Index Array)
i = 1
p
= Perkalian dari statemen sebelumnya
PEMETAAN (MAPPING)
ARRAY DIMENSI DUA KE STORAGE
Terbagi dua cara
pandang (representasi) yang berbeda :
·
Secara kolom per kolom (coloumn major order / CMO)
@M[i][j]
= M[0][0] + {(j – 1) * K + (i – 1)} * L
·
Secara baris per baris (row major order /
RMO)
@M[i][j]
= M[0][0] + {(i – 1) * N + (j – 1)} * L
Keterangan
:
@M[i][j] = Posisi
array yang di cari, M[0][0 = Posisi alamat awal index array, i =
Baris, j = Kolom, L = Ukuran memory type data, K = Banyaknya elemen
per kolom, N = Banyaknya elemen per baris.
3.
ARRAY DIMENSI TIGA
Deklarasi
: type_Data Nama_Variabel [index1][index2][index3]
Menentukan jumlah
elemen dalam array dimensi tiga :
n
p (Index Array)
i = 1
p
= Perkalian dari statemen sebelumnya
PEMETAAN (MAPPING)
ARRAY DIMENSI TIGA KE STORAGE
Rumus
: @M[n][m][p] = M[0][0][0] + {((n – 1) * (index1)) + ((m – 1) *
(index2)) + ((p – 1) * (index3)} * L
PENGERTIAN
REKURSIF
Rekursif berarti
bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi
dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin
untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung
pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif
bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus
dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan
teknik pemrograman yang penting dan beberapa bahasa pemrograman
mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi,
pemanggilan ke dirinya sendiri bisa berarti proses berulang yang
tidak bisa diketahui kapan akan berakhir.
Kelebihan
Perulangan Rekursif:
•
Sangat
mudah untuk melakukan perulangan dengan batasan yang luas dalam
artian melakukan perulangan dalam skala yang besar.
•
Dapat
melakukan perulangan dengan batasan fungsi.
Kekurangan
Perulangan Rekursif:
•
Tidak
bisa melakukan nested loop atau looping bersarang.
•
Biasanya
membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan
tertentu saja.
•
Trace
error sulit.
•
Memerlukan
stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel
lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya
akan menyebabkan stack tak cukup lagi (Stack Overrun).
•
Proses
agak berbelit-belit karena terdapat pemangilan fungsi yang
berulang-ulang dan pemanggilan data yang ditumpuk.
Komentar
Posting Komentar