REKURSIF
1.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.
Contoh paling sederhana dari proses rekursif ini adalah proses menghitung nilai factorial dari suatu bilangan bulat positif dan mencari deret Fibbonacci dari suatu bilangan bulat.
- Nilai factorial secara rekursif dapat ditulis sebagai
0 ! = 1
N ! = N x (N-1) !
yang secara pemrograman dapat ditulis sebagai
Faktorial(0) = 1 (1)
Faktorial(N) = N*Faktorial(N-1) (2)
Persamaan (2) di atas adalah contoh hubungan rekurens (recurrence relation), yang berarti bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil. Persamaan (1) tidak bersifat rekursif, disebut nilai awal atau basis. Setiap fungsi rekursif paling sedikit mempunyai satu nilai awal, jika tidak fungsi tersebut tidak bisa dihitung secara eksplisit.
- Bilangan Fibbonacci didefinisikan sebagai berikut
1 1 2 3 5 8 13 21 34 55 89 …
dari barisan tersebut dapat dilihat bahwa bilangan ke-N (N>2) dalam barisan dapat dicari dari dua bilangan sebelumnya yang terdekat dengan bilangan N, yaitu bilangan ke-(N-1) dan bilangan ke-(N-2), sehingga dapat dirumuskan sebagai
Fibbonacci(1) = 1 (1)
Fibbonacci(2) = 1 (2)
Fibbonacci(N) = Fibbonacci(N-1) + Fibbonacci(N-2) (3)
Dengan persamaan (1) dan (2) adalah basis dan persamaan (3) adalah rekurensnya
Rekursif Versus Iteratif
Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai keuntungan dan kekurangan yang bisa saling diperbandingkan. Adalah cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling mudah disbanding yang lain. Boleh dikatakan pemilihan cara iterative maupun rekursif merupakan kesenangan seorang programmer dan tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang bersangkutan.
Perhatikanlah contoh berikut :
Contoh 1.
function FACT(N : integer) ® integer
{mengirimkan bilangan factorial dengan cara rekursif}
Deklarasi
Deskripsi
if (N=0) then
return 1 {Basis}
else
return(N*FACT(N-1)) {Rekurens}
endif
Contoh 2.
function FIBO(N : integer) ® integer
{mengirimkan bilangan fibbonacci dengan cara rekursif}
Deklarasi
Deskripsi
if ((N=1) or (N=2)) then
return 1 {Basis}
else
return(FIBO(N-1)+ FIBO(N-2)) {Rekurens}
endif
Contoh 3.
function FACT(N : integer) ® integer
{mengirimkan bilangan factorial dengan cara iteratif}
Deklarasi
x,i : integer
Deskripsi
x ¬ 1
for i = 1 to N do
x ¬ i*x
endfor
return x
Contoh 4.
function FIBO(N : integer) ® integer
{mengirimkan bilangan fibbonacci dengan cara iteratif}
Deklarasi
Fibbonacci, Akhir, Bantu, i : integer
Deskripsi
If N=0 then
return 0
else
i¬1
Fibbonacci ¬1
Akhir ¬0
while (i¹N)do
Bantu ¬ Fibbonacci
i ¬ i + 1
Fibbonacci ¬ Fibbonacci + Akhir
Akhir ¬ Bantu
Endwhile
return Fibbonacci
endif
struktur data - cetak karakter rekursif dengan C
#include <stdio.h>void main()
{int h,i,j;
char c;
printf("masukkan karakter yang ingin di cetak: "); scanf("%s",&c); printf("masukkan berapa kali karakter di cetak: "); scanf("%i",&h); for(i=h;i>=0;i--)
{for(j=0;j<=i;j++)
{ printf("%c",c); } printf("\n"); }}2.Fungsi rekursif
Pada pembahasan-pembahasan sebelumnya, telah dibahas tentang fungsi. Tapi pada saat saya presentasi ada sebuah pertanyaan “Apa saja manfaat menggunakan Fungsi Rekursi?”. Karena saya hanya tahu manfaat fungsi tapi bukan fungsi rekursif saya mencoba menjawabnya. dan jawaban saya adalah “Karena fungsi rekursi ini mirip dengan perulangan, jadi kelebihan/manfaatnya yaitu pada penghematan penulisan listing program jika dibandingkan dengan looping/perulangan”.
Tapi setelah cari-cari akhirnya saya mendapatkan manfaat fungsi rekursif serta perbandingannya dengan looping/perulangan:| REKURSIF | ITERATIF |
| Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri. | Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan aka terhenti. |
| Kelebihan perulangan rekursif Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besarDapat melakukan perulangan dengan batasan fungsi | Kelebihan perulangan iteratif Mudah dipahami dan mudah dilakukan debuging ketika ada perulangan yang salahDapat melakukan nested loop atau yang disebut dengan looping bersarang Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas |
| Kekurangan perulangan rekursif Tidak bisa melakukan nested loop atau looping bersarangBiasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum) Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk | Kelemahan perulangan iterative Tidak dapat menggunakan batasan berupa fungsiPerulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri |
Perbedaan dan Persamaan Rekursif dan Iteratif :
Persamaan
- Sama-sama merupakan bentuk perulangan.
- Dilakukan pengecekan kondisi terlebih dahulu sebelum mengulang.
Perbedaan
- Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF.
- Iteratif dapat berjalan pada program yang terdiri dari prosedur (Tidak terdapat fungsi) sedangkan rekursif merupakan fungsi.
3. Program C++ DFS Rekursif
#include#include
bool dikunjungi[11];
int jumsimpul,jumsisi,asal,tujuan;
int mat[11][11];
int n;
void DFS_rekursif(int v){
int w;
cout<<<" ";
dikunjungi[v]=true;
for (w=1;w<=n;w++){
if(mat[v][w]=1)
if(!dikunjungi[w])
DFS_rekursif(w);
}
}
void main()
{
for(int i=1;i<=10;i++)
for(int j=1;j<=10;j++)
mat[i][j]=0;
cout<<"JUMLAH SIMPUL : ";
cin>>jumsimpul;
cout<<"JUMLAH SISI : ";
cin>>jumsisi;
for(int i=1;i<=jumsisi;i++){
cout<<"SIMPUL ASAL : ";cin>>asal;
cout<<"SIMPUL TUJUAN : ";cin>>tujuan;
mat[asal][tujuan]=1;
mat[tujuan][asal]=1;
}
n=jumsimpul;
cout<<"TEST AWAL";
for (int i=1;i<=jumsimpul;i++)
dikunjungi[i]=false;
DFS_rekursif(1);
cout<<"TEST AKHIR";
getch();
}
Program packal
program terbilang_rekursi;useswincrt;function terbilang(x:longint):string;function bilang(x:longint):string;begincase x of0:bilang:='';1:bilang:='satu';2:bilang:='dua';3:bilang:='tiga';4:bilang:='empat';5:bilang:='lima';6:bilang:='enam';7:bilang:='tujuh';8:bilang:='delapan';9:bilang:='sembilan';10:bilang:='sepuluh';11:bilang:='sebelas';end;end;beginif x<12 thenterbilang := ' ' + bilang(x)else if x<20 thenterbilang:=terbilang(x-10)+'belas'else if x<100 thenterbilang:=terbilang(x div 10)+'puluh'+terbilang(x mod 10)else if x<200 thenterbilang:='seratus'+terbilang(x-100)else if x<1000 thenterbilang:=terbilang(x div 100)+'ratus'+terbilang(x mod 100)else if x<2000 thenterbilang:='seribu'+terbilang(x-1000)else if x<1000000 thenterbilang:=terbilang(x div 1000)+'ribu'+terbilang(x mod 1000)else if x<1000000000 thenterbilang:=terbilang(x div 1000000)+'juta'+terbilang(x mod 1000000)elseterbilang:=terbilang(x div 1000000000)+'milyar'+terbilang(x mod 1000000000);end;vari:longint;lanjut:char;beginrepeatwrite('masukkan angka:');readln(i);writeln('terbilang:',terbilang(i));write('Lagi? (Y/T)');readln(lanjut);until (lanjut='t')or(lanjut='T');end.ITERAKTIF1.Pengertian iteraktifPengertian iteratif
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok instruksi di mana perulangan tersebut akan berhenti jika batasan syarat sudah tidak terpenuhi.
Kelebihan perulangan iteratif:
• Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah.
• Dapat melakukan nested loop atau yang disebut dengan looping bersarang.
• Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan.
• Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas.
Kelemahan perulangan iteratif:
• Tidak dapat menggunakan batasan berupa fungsi.
• Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri.
2.program 1
Bentuk fungsi iteratif :
#include <cstdlib>
#include <iostream>
using namespace std;
int jumlah(int n) {
int hasil = 0;
for (int i=0; i<n; i=i+2)
hasil = hasil + i;
return hasil;
}
void cetak(int n) {
for (int i=0; i<n; i=i+2)
cout << i << ” “;
}
int main(int argc, char *argv[])
{
int n = 10;
cout << jumlah(n);
cetak(n);
system(“PAUSE”);
return EXIT_SUCCESS;
SUB PROGRAM (REKURSIF DAN ITERATIF)
SUB PROGRAM
(REKURSIF DAN ITERATIF)
PERBEDAAN REKURSIF DAN ITERATIF
Pada pertemuan lalu, telah disinggung sedikit mengenai pengertian dan contoh penggunaan fungsi rekursif. Fungsi Rekursif merupakan proses perulangan dengan cara memanggil dirinya sendiri. Sedangkan fungsi iteratif adalah proses perulangan dengan menggunakan fungsi for, while dan repeat-until (do-while). Berikut contoh penggunaan fungsi rekursif dan iteratif :
Menghitung nilai faktorial dari sebuah bilangan
n faktorial didefinisikan secara rekursif sebagai berikut
n! = 1 untuk n=0 dan n=1
= n*(n-1)! , n>2
Algoritma
Rekursif Iteratif
Fungsi faktorial(input n:integer):integer
Deskripsi
if (n=0) or (n=1) then
1ßfaktorial
else
n*faktorial(n-1)ßfaktorial Fungsi faktorial(input n:integer):integer
Deskripsi
if (n=0) or (n=1) then
1ßfaktorial
else
i:integer
begin
for i=1 to n do
hasil=hasil*i
end
hasilßfaktorial
Translasi program
REKURSIF ITERATIF
#include
int faktorial(int n){
if ((n==0) || (n==1)){
return 1;
}else{
return (n*faktorial(n-1));
}
(REKURSIF DAN ITERATIF)
PERBEDAAN REKURSIF DAN ITERATIF
Pada pertemuan lalu, telah disinggung sedikit mengenai pengertian dan contoh penggunaan fungsi rekursif. Fungsi Rekursif merupakan proses perulangan dengan cara memanggil dirinya sendiri. Sedangkan fungsi iteratif adalah proses perulangan dengan menggunakan fungsi for, while dan repeat-until (do-while). Berikut contoh penggunaan fungsi rekursif dan iteratif :
Menghitung nilai faktorial dari sebuah bilangan
n faktorial didefinisikan secara rekursif sebagai berikut
n! = 1 untuk n=0 dan n=1
= n*(n-1)! , n>2
Algoritma
Rekursif Iteratif
Fungsi faktorial(input n:integer):integer
Deskripsi
if (n=0) or (n=1) then
1ßfaktorial
else
n*faktorial(n-1)ßfaktorial Fungsi faktorial(input n:integer):integer
Deskripsi
if (n=0) or (n=1) then
1ßfaktorial
else
i:integer
begin
for i=1 to n do
hasil=hasil*i
end
hasilßfaktorial
Translasi program
REKURSIF ITERATIF
#include
int faktorial(int n){
if ((n==0) || (n==1)){
return 1;
}else{
return (n*faktorial(n-1));
}
}
main(){
int n;
cout<<"Masukan n! = ";cin>>n;
cout<<"hasilnya ="<<
return 0;
} #include
int faktorial(int n){
int hasil=1;
if ((n==0) || (n==1)){
return 1;
}else{
for(int i=1;i<=n;i++){
hasil=hasil*i;
}
return hasil;
}
}
main(){
int n;
cout<<"Masukan n! = ";cin>>n;
cout<<"hasilnya ="<<
return 0;
}
Output
Dengan semakin lama Anda berlatih, anda akan mengetahui kapan menggunakan metode perulangan iteratif dan rekursif.
Beberapa kasus berikut diharapkan akan membuka wawasan Anda mengenai program Iteratif dan rekursif.
Mencetak suatu kalimat dengan cara iteratif dan rekursif
REKURSIF ITERATIF
#include
#include
void balik(char *k){
if(*k!='\0'){
balik(&k[1]);
cout<
}
}
main(){
char *kata="Politeknik";
balik(kata);
cout<
return 0;
} #include
#include
void balik(char *k){
int i;
for(i=strlen(k)-1;i>=0;i--){
cout<
}
}
main(){
char *kata="Politeknik";
balik(kata);
cout<
return 0;
}
Output
3. Berikan persamaan dan perbedaan antara keduanya! Berikan juga masing –masing kelebihan dan kelemahan!main(){
int n;
cout<<"Masukan n! = ";cin>>n;
cout<<"hasilnya ="<<
return 0;
} #include
int faktorial(int n){
int hasil=1;
if ((n==0) || (n==1)){
return 1;
}else{
for(int i=1;i<=n;i++){
hasil=hasil*i;
}
return hasil;
}
}
main(){
int n;
cout<<"Masukan n! = ";cin>>n;
cout<<"hasilnya ="<<
return 0;
}
Output
Dengan semakin lama Anda berlatih, anda akan mengetahui kapan menggunakan metode perulangan iteratif dan rekursif.
Beberapa kasus berikut diharapkan akan membuka wawasan Anda mengenai program Iteratif dan rekursif.
Mencetak suatu kalimat dengan cara iteratif dan rekursif
REKURSIF ITERATIF
#include
#include
void balik(char *k){
if(*k!='\0'){
balik(&k[1]);
cout<
}
}
main(){
char *kata="Politeknik";
balik(kata);
cout<
return 0;
} #include
#include
void balik(char *k){
int i;
for(i=strlen(k)-1;i>=0;i--){
cout<
}
}
main(){
char *kata="Politeknik";
balik(kata);
cout<
return 0;
}
Output
- Persamaan antara rekursi dengan iteratif adalah keduanya sama – sama digunakan untuk mengulangi suatu kode atau kumpulan kode pada pembuatan program.
- Kelebihan dan kelemahan masing-masing jenis perulangan tersebut adalah :
| Metode Perulangan | Kelebihan | Kekurangan |
| Rekursi |
|
|
| Iteratif |
|
|
Apa output dari potongan program di atas jika diberikan input bilangan1 = 7 dan bilangan2 = 6? Kemudian ubahlah metode rekursi dari potongan program tersebut menjadi metode iterative!
- Base case adalah Suatu keadaan pada fungsi rekursif dimana langkah penyelesaiannya sudah diketahui sehingga menghentikan proses rekursi tersebut.
- Recursive Case adalah Suatu keadaan pada fungsi rekursif yang penyelesaiannya membutuhkan pemanggilan dirinya sendiri hingga keadaan dalam base casenya terpenuhi.
- Pada potongan program :
Int perkalian(int bilangan1, int bilangan2) { if(bilangan2==1)return bilangan1; else return bilangan1+perkalian(bilangan1,bilangan2-1); }Yang merupakan base case adalah :
if(bilangan2==1)return bilangan1;Yang merupakan recursive case adalah :
else return bilangan1+perkalian(bilangan1,bilangan2-1);- Jika potongan program tersebut disusun secara utuh menjadi :
- Program menampilkan statemen ”Menghitung perkalian dari 2 bilangan”.
- Program menampilkan instruksi kepada user untuk memasukkan input sebanyak 2 kali.
- Program memanggil fungsi perkalian.
- Fungsi perkalian menghitung hasil perkalian 2 input tersebut. Jika bilangan kedua sama dengan 1, fungsi perkalian akan mengembalikan nilai bilangan pertama ke fungsi main. Jika tidak fungsi perkalian akan melakukan rekursi dengan menjumlahkan bilangan pertama dengan hasil fungsi perkalian selanjutnya dimana bilangan kedua dikurangi 1 tiap kali rekursi.
- Fungsi perkalian mengembalikan nilai ke fungsi main.
- Program menampilkan output kepada user.
#include<stdio.h>
#include<conio.h>
int perkalian(int, int); void main() { int bil1, bil2; puts("Menghitung perkalian dari 2 bilangan"); printf("Masukkan bilangan pertama: "); scanf("%d", &bil1); printf("Masukkan bilangan kedua: "); scanf("%d", &bil2); printf("Hasil perkalian antara %d dengan %d adalah: %d\n", bil1, bil2, perkalian(bil1, bil2)); getch(); } int perkalian(int bilangan1, int bilangan2) { if(bilangan2==1)return bilangan1; else return bilangan1+perkalian(bilangan1,bilangan2-1); }
- Program perulangan dengan metode iteratif :
- Program menampilkan statemen ”Menghitung perkalian dari 2 bilangan”.
- Program menampilkan instruksi kepada user untuk memasukkan input sebanyak 2 kali.
- Program memanggil fungsi perkalian.
- Fungsi perkalian menghitung hasil perkalian 2 input tersebut dengan menjumlahkan bilangan pertama dengan dirinya sendiri sebanyak bilangan kedua secara looping(iteratif).
- Fungsi perkalian mengembalikan nilai ke fungsi main.
- Program menampilkan output kepada user.
#include<stdio.h>
#include<conio.h>
int perkalian(int, int); void main() { int bil1, bil2; puts("Menghitung perkalian dari 2 bilangan"); printf("Masukkan bilangan pertama: "); scanf("%d", &bil1); printf("Masukkan bilangan kedua: "); scanf("%d", &bil2); printf("Hasil perkalian antara %d dengan %d adalah: %d\n", bil1, bil2, perkalian(bil1, bil2)); getch(); } int perkalian(int bilangan1, int bilangan2) { int i, hasil=0; for(i=1; i<=bilangan2; i++) hasil+=bilangan1; return hasil; }Pengertian Array
Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen – komponen yang mempunyai tipe data yang sama. Didalam suatu array jumlah komponen banyaknya adalah tetap. Didalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu index yang unik. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.
Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama.
6.2. Deklarasi Array
Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[]” , diikuti dengan kata cadangan of dan tipe data yang dibutuhkan.
Bentuk Umum Penulisan
Tanda_pengenal : array [..tipe index ..] of tipe data;
Contoh :
Var
A : array[1..4] of integer;
B : array[1..5] of string;
C: array[1..10] of real;
Keterangnan :
A,B,C merupakan tanda pengenal/ nama variabel dari array;
1..4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat.
6.3. Alokasi Penggunaan Array
a. Array Static (Static Array)
array static adalah model pendeklarasian array dimana tipe data yang digunakan mempunyai nilai yang tetap. Nilai yang digunakan untuk menentukan jangkauan pada umumnya bernilai integer. Array Static juga bisa disebut Array dengan deklarasi tipe indeks subrange integer.
Bentuk Umum
array[indexType1, ..., indexTypen] of baseType
Keterangan = index type menunjukan tipe data ordinal yang menunjukan batasan atau elemen maksimul terhadap seberapa besar variabel tersebut menyimpan komponen.
Contoh
Var arrayku : array[1..5] of char
Atau juga
type
jangkauan = 1..5;
var
nilai : array[jangkauan] of integer;
b. Array Dinamis (Dynamic arrays)
Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. Dynamic-Array jenis ditandai oleh konstruksi (menyangkut) format
Bentuk Umum
array of baseType
Contoh
var nilai: array of Real;
Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai yang tetap, tetapi hanya diberikan batasan sebagai tipe data real. Untuk mendeklarasikan array tersebut kita harus menempatkan array didalam suatu memori, caranya adalah dengan memanfaatkan fungsi dari perintah sellength.
Selllength(nilai,20)
Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak atau cakupan 20 untuk tipe data real, dengan indeex dimulai dari 0 sampai dengan 20.
Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen – komponen yang mempunyai tipe data yang sama. Didalam suatu array jumlah komponen banyaknya adalah tetap. Didalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu index yang unik. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.
Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama.
6.2. Deklarasi Array
Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[]” , diikuti dengan kata cadangan of dan tipe data yang dibutuhkan.
Bentuk Umum Penulisan
Tanda_pengenal : array [..tipe index ..] of tipe data;
Contoh :
Var
A : array[1..4] of integer;
B : array[1..5] of string;
C: array[1..10] of real;
Keterangnan :
A,B,C merupakan tanda pengenal/ nama variabel dari array;
1..4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat.
6.3. Alokasi Penggunaan Array
a. Array Static (Static Array)
array static adalah model pendeklarasian array dimana tipe data yang digunakan mempunyai nilai yang tetap. Nilai yang digunakan untuk menentukan jangkauan pada umumnya bernilai integer. Array Static juga bisa disebut Array dengan deklarasi tipe indeks subrange integer.
Bentuk Umum
array[indexType1, ..., indexTypen] of baseType
Keterangan = index type menunjukan tipe data ordinal yang menunjukan batasan atau elemen maksimul terhadap seberapa besar variabel tersebut menyimpan komponen.
Contoh
Var arrayku : array[1..5] of char
Atau juga
type
jangkauan = 1..5;
var
nilai : array[jangkauan] of integer;
b. Array Dinamis (Dynamic arrays)
Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. Dynamic-Array jenis ditandai oleh konstruksi (menyangkut) format
Bentuk Umum
array of baseType
Contoh
var nilai: array of Real;
Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai yang tetap, tetapi hanya diberikan batasan sebagai tipe data real. Untuk mendeklarasikan array tersebut kita harus menempatkan array didalam suatu memori, caranya adalah dengan memanfaatkan fungsi dari perintah sellength.
Selllength(nilai,20)
Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak atau cakupan 20 untuk tipe data real, dengan indeex dimulai dari 0 sampai dengan 20.
Thank buat infonya, dari info ini gue kbantu bgt..
BalasHapusSalam kenal ya ,gue Diez. kunjungi saya di Einzebern.wordpress.com.