BAB
I
KONSEP
DASAR BAHASA PASCAL
1.1
Definisi algoritma
“Algoritma adalah urutan
langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan
logis”.Kata
logis merupakan kata kuncidalam algoritma.Langkah-langkah dalam
algoritma harus logis dan harusdapat ditentukan bernilai salah atau benar.Dalam
beberapa konteks, algoritma adalah spesifikasi urutan langkah untukmelakukan
pekerjaan tertentu.Pertimbangan dalam pemilihan algoritmaadalah, pertama,
algoritma haruslah benar. Artinya algoritma akan memberikankeluaran yang
dikehendaki dari sejumlah masukan yang diberikan. Tidakpeduli sebagus apapun
algoritma, kalau memberikan keluaran yang salah,pastilah algoritma tersebut
bukanlah algoritma yang baik.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya:
1. Pembuatan atau
penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya
penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
2.
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3. Apapun bahasa
pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya
sama.
Beberapa
hal yang perlu diperhatikan dalam membuat algoritma:
1.
Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
Deskripsi tersebut dapat ditulis
dalam notasi apapun asalkan mudah dimengerti dan dipahami.
2. Tidak ada notasi
yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman.
Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
3.
Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri.
Hal ini dikarenakan teks
algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah
ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya
notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman
secara umum.
4. Notasi algoritmik
bukan notasi bahasa pemrograman, karena itupseudocode dalam notasi algoritmik
tidak dapat dijalankan olehkomputer. Agar dapat dijalankan oleh komputer, pseudocode
dalamnotasi algoritmik harus ditranslasikan atau diterjemahkan ke
dalamnotasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orangyang
menulis program sangat terikat dalam aturan tata bahasanya danspesifikasi mesin
yang menjalannya.
5. Algoritma
sebenarnya digunakan untuk membantu kita dalammengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan
hasil pemikiran konseptual, supaya dapatdilaksanakan oleh komputer, algoritma
harus ditranslasikan ke dalamnotasi bahasa pemrograman. Ada beberapa hal yang
harus diperhatikanpada translasi tersebut, yaitu:
a. Pendeklarasian variabel
Untuk mengetahui dibutuhkannya
pendeklarasian variabel dalampenggunaan bahasa pemrograman apabila tidak semua
bahasapemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang
akan digunakan membutuhkanpendeklarasian variabel maka perlu hal ini
dipertimbangkan padasaat pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai
kegunaan yang sama tetapi masingmasingmemiliki kelebihan dan kekurangan yang
berbeda.
d. Aturan sintaksis
Pada saat menuliskan program kita
terikat dengan aturan sintaksisdalam bahasa pemrograman yang akan digunakan.
e. Tampilan hasil
Pada saat membuat algoritma kita
tidak memikirkan tampilan hasilyang akan disajikan. Hal-hal teknis ini
diperhatikan ketikamengkonversikannya menjadi program.
f. Cara pengoperasian compiler
atau interpreter.
Bahasa pemrograman yang digunakan
termasuk dalam kelompokcompiler atau interpreter.
1.2
Flowchar
Alat Bantu
menggambarkan proses di dalam program
Dibagi
menjadi tiga kelompok :
I. Flow Direction Symbols; dipakai untuk
menggabungkan antara symbol yang satu
dengan symbol lainnya
II. Processing
Symbols, menunjukan jenis operasi pengolahan dalam suatu prosedur
Symbol Terminal (Simbol untuk permulaan atau
akhir dari suatu program)
III. Input-output symbols; menyatakan
jenis peralatan yang digunakan sebagai media input atau output.
Symbol display (Symbol yang menyatakan
peralatan output yang digunakan yaitu layar, plotter, printer, dan sebagainya)
1.3
Sejarah singkat bahasa PASCAL
Pascal merupakan pengembangan dari
bahasa ALGOL 60, bahasa pemrograman untuk sains komputasi. Tahun 1960, beberapa
ahli komputer bekerja untuk mengembangkan bahasa ALGOL, salah satunya adalah
Dr. Niklaus Wirth dari Swiss Federal Institute of Technology (ETH-Zurich), yang
merupakan anggota grup yang membuat ALGOL. Tahun 1971, dia menerbitkan suatu spesifikasi
untuk highly- structured language (bahasa tinggi yang terstruktur) yang
menyerupai ALGOL. Dia menamainya dengan PASCAL (seorang filsuf dan ahli
matematika dari Perancis) Pascal bersifat data oriented, yaitu programmer
diberi keleluasaan untuk mendefinisikan data sendiri. Pascal juga merupakan
teaching language (banyak dipakai untuk pengajaran tentang konsep pemrograman).
Kelebihan yang lain adalah penulisan kode Pascal yang luwes, tidak seperti
misalnya FORTRAN, yang memerlukan programmer untuk menulis kode dengan format
tertentu. Bentuk dasar program_Pascal_adalah_seperti_berikut:
program
TITLE ; begin pernyataan; pernyataan ; end.
1.4 Ciri
– Ciri Pascal
Sebagai bahasa terstruktur, PASCAL
mempunyai ciri-ciri sebagai berikut:
1. Berurutan
Susunan dari kode-kode dalam teks Pascal harus ditulis secara urut dari atas,
pernyataan-pernyataan yang ditulis lebih awal akan dieksekusi lebih dahulu.
Oleh karena itu, suatu pernyataan yang menyangkut suatu variabel di dalam
program, maka variable itu harus terdefinisi dahulu sebelumnya. Hal ini
terutama menyangkut pada pemanggilan sub-program oleh sub-program yang lain.
Bisa dibaca lebih lanjut pada bagian sub-program.
2. Blok
dengan batas-batas yang jelas.Pascal memberikan pembatas yang jelas pada
tiap-tiap blok, seperti pada blok program utama, sub-program, struktur kontrol
(pengulangan/ pemilihan), dll. Pemakaian kata kunci begin untuk mengawali
operasi pada blok dan end untuk menutupnya memudahkan programmer menyusun
programnya dengan mudah.
Seperti_contoh:
If X>0 then
begin
Write ( ‘ bilangan positif’);
Writeln ( ‘ program selesai’);
end;
If X>0 then
begin
Write ( ‘ bilangan positif’);
Writeln ( ‘ program selesai’);
end;
3. Satu
pintu masuk dan satu pintu keluar pada blok pemilihan dan pengulangan. Contoh
di atas juga mengilustrasikan pintu masuk tunggal pada suatu blok pemilihan
yaitu suatu test logika X>0, dengan pintu keluaran yang satu pula (satu
disini maksudnya bukan dua baris perintah output tapi suatu paket perintah yang
dirangkai dengan begin .. end.3. Bakuan PASCALDibakukan oleh ISO pada tahun
1983 dan dikembangkan dalam beberapa versi, diantaranya: USCD PASCAL, MS
PASCAL, TURBO PASCAL dll. Dengan semakin berkembangnya teknologi dalam
komputasi, Pascal dimanfaatkan untuk pengembangan DELPHI (berasal dari nama
suatu kota di masa Yunani kuno), suatu bahasa pemrograman visual yang
menonjolkan pada efek grafis dan orientasi pada objek-objek yang siap dipakai,
karena memiliki Visual Component_Library(VCL).
1.5 Struktur_Bahasa_PASCAL.
Secara umum Pascal mempunyai
struktur sebagai berikut:
1. Bagian Judul Program
2. Bagian Deklarasi.
a. Deklarasi tipe data (TYPE)
b. Deklarasi variabel (VAR)
c. Deklarasi konstanta (CONST)
d. Deklarasi label (LABEL)
b. Deklarasi variabel (VAR)
c. Deklarasi konstanta (CONST)
d. Deklarasi label (LABEL)
e. Deklarasi sub-program (PROCEDURE
dan FUNCTION)
3.
Bagian_Program_Utama_Perintah-perintah.
Teks Pascal setidaknya memiliki
bagian Judul Program, bagian Deklarasi, dan Bagian Program Utama yang berupa
perintah-perintah.Sedangkan untuk bagian deklarasi menyesuaikan dengan isi dari
program itu sendiri.
1.6 Unsur-unsur Pemrograman
1.
Mendapatkan data dengan membaca data
dari default input (key board, file atau
sumber data lainnya).
2.
Menyimpan data ke dalam memori
dengan struktur data yang sesuai,
3.
Memproses data dengan instruksi yang
tepat.
4.
Menyajikan atau mengirimkan hasil
olahan data ke default output (monitor, file atau tujuan lainnya).
Dalam mengolah data diperlukan pengelolaan instruksi
terstruktur:
a) Beberapa
instruksi dikelompokkan dalam satu blok atau model yang mengerjakan tugas
tertentu.
b) Beberapa
perintah dilaksanakan dengan persyaratan tertentu.
c) Beberapa
perintah dilaksanakan berulang dengan jumlah pengulangan tertentu. Identifier
Digunakan untuk nama: Program, Sub-program (procedure dan function), nama:
Variable, Constant, Type, Label.
Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam program. Ketentuan penulisan identifier :
a. Nama identifier harus dimulai
dengan karakter huruf alfabet: a sampai z, A sampai Z atau karakter '_'
(underscore - garis bawah)
b. Karakter berikutnya boleh
karakter numerik (0 .. 9) atau kombinasi alphanumerik (huruf-numerik).
c. Panjang nama, pada berbagai versi
Pascal umumnya antara 32 - 63.
d. Tidak boleh menggunakan karakter istimewa: + - * / | \ = <> [ ] . , ; : ( ) ^ @ { } $ # ~ ! % & ` " ' dan ? Contoh penulisan:
d. Tidak boleh menggunakan karakter istimewa: + - * / | \ = <> [ ] . , ; : ( ) ^ @ { } $ # ~ ! % & ` " ' dan ? Contoh penulisan:
Penulisan yang benar: X _PQR Beta
Sudut_Alpha luasLingkaran
Penulisan yang salah: 3D sisi-Kanan B#
Penulisan yang salah: 3D sisi-Kanan B#
Jenis
identifier
a.
Identifier umum
Merupakan identifier yang
didefinisikan sendiri oleh pemrogram. Pemrogram mempunyai kebebasan untuk
menentukan nama identifiernya, dengan syarat nama tersebut tidak sama dengan
identifier standar dan reserved word yang akan dibahas lebih lanjut. Hal ini
untuk mencegah kesalahan yang bisa timbul akibat tumpang tindih identifier
dalam program.
b.
Identifier Standar (Baku)
Merupakan identifier yang
didefinisikan oleh pembuat kompiler Pascal.Biasanya pembuat kompiler
menyediakan suatu library yang sudah ada didalam kompiler.Library berisi
berbagai procedure, fungsi atau unit yang sudah siap pakai. Misalnya Turbo
Pascal Windows 1.5 memiliki suatu unit untuk memproses output yaitu wincrt,
gotoxy, yang dengan mudah bisa dipakai oleh programmer di dalam menuliskan
kode-kode programnya. Dinamai Identifier Standar karena suatu kompiler tidak
harus memilikinya, masing-masing kompiler dimungkinkan mempunyai identifier
yang berbeda untuk suatu tugas yang hampir sama. Misalnya Turbo Pascal versi
DOS menggunakan crt untuk melakukan fungsi yang sama dengan wincrt (TPW 1.5).
Beberapa Identifier Standar yang dimiliki oleh kompiler-kompiler Pascal antara
lain:
c.
Identifier "reserved word", yaitu yang sudah didefinisikan dan
digunakan oleh bahasa PASCAL sendiri (Kita tidak bisa menamai identifier kita
dengan ini).
Deklarasi
Variable:
Mendeklarasikan varibel adalah:
a. Memberikan nama variabel sebagai identitas pengenal
b. Menentukan tipe data variabel
Mendeklarasikan varibel adalah:
a. Memberikan nama variabel sebagai identitas pengenal
b. Menentukan tipe data variabel
Contoh deklarasi variabel:
Var
K
: integer;
R : real;
C : char;
T : String;
R : real;
C : char;
T : String;
LATIHAN:
1.
Tuliskan beberapa contoh
algoritma dalam kehidupan sehari-hari. Tuliskan juga beberapa contoh langkah di
dalam algoritmanya.
2.
Misalkan terdapat dua buah
ember, masing-masing mempunyai volume 5 liter dan 3 liter. Tuliskan algoritma
untuk memperoleh air sebanyak 1 liter dengan hanya menggunakan kedua ember
tersebut.
BAB
II
JENIS-JENIS
DATA SEDERHANA
Tipe data yang
disediakan oleh PASCAL meliputi:
1. Tipe Data Sederhana
Merupakan tipe data dasar yang
sering dipakai oleh program, meliputi: integer (bilangan bulat), real (bilangan
pecahan), char (alphanumerik dan tanda baca), dan boolean (logika). Untuk data
integer dan real masing-masing terbagi menjadi beberapa kategori
a. Bilangan Integer
Merupakan tipe data berupa
bilangan bulat, terbagi atas beberapa kategori seperti terlihat dalam tabel
2.1.Tabel 2.1 menunjukkan jenis data, ukuran dalam memori dan rentang nilainya.
Tabel
2.1. Tipe Data Bilangan Integer
Tipe
Data
|
Ukuran
Tempat
|
Rentang
Nilai
|
Byte
|
1
byte
|
0
s/d +255
|
Shortint
|
1
byte
|
-28
s/d +127
|
integer
|
2
bytes
|
-32768
s/d 32767
|
Word
|
2
bytes
|
0
s/d 65535
|
Longint
|
4
bytes
|
2147483648
s/d 2147483647
|
Contoh bilangan integer adalah:
34 6458 -90 0 1112 Penggolongan tipe data integer tersebut dimaksudkan untuk
membatasi alokasi memori yang dibutuhkan misalkan untuk suatu perhitungan dari
suatu variabel bilangan diperkirakan nilai maksimumnya 32767 kita cukup
mendeklarasikan variabel bilangan sebagai integer (2 byte), daripada sebagai
longint(4 byte). Di dalam kompilernya, Pascal menyediakan konstanta untuk
bilangan Integer yaitu: MaxInt and MaxLongInt, pemrogram bisa menggunakannya di
dalam programnya tanpa harus terlebih dahulu mendefinisikannya.
-MaxInt bernilai 32.767
-MaxLongint bernilai
2.147.483.647.
contoh:
Program
display_maxint;
uses wincrt;
begin writeln (maxint)
end.
Hasilnya: 32.767
b. Bilangan Real uses wincrt;
begin writeln (maxint)
end.
Hasilnya: 32.767
Bilangan real atau nyata merupakan jenis bilangan pecahan, dapat dituliskan secara biasa atau model scientific . Contoh bilangan real: 34.265 -3.55 0.0 35.997E+11, dimana E merupakan simbol perpangkatan 10. Jadi 452.13 mempunyai nilai sama dengan 4.5213e2. Penggolongan tipe data bilangan real dapat dilihat pada tabel 2.2.
Tabel 2.2 Bilangan
Real
Tipe
Data
|
Ukuran
Tempat
|
Rentang
Nilai
|
real
|
6
bytes
|
2.9
x 10-39 s/d 1.7 x1038
|
single
|
4
bytes
|
1.5
x 1045 s/d 3.4 x 1038
|
double
|
8
bytes
|
5.0
x 10-324 s/d 1.7 x 10308
|
extended
|
10
bytes
|
3.4
x 10-4932 s/d 1.1 x 104932
|
comp
|
8
bytes
|
-9.2x
1018 s/d 9.2x 1018
|
c. Char
Tipe data ini menyimpan karakter
yang diketikkan dari keyboard, memiliki 266 macam yang terdapat dalam tabel
ASCII (American Standard Code for Information Interchange). Contoh: 'a' 'B'
'+', dsb. Yang perlu diingat bahwa dalam menuliskannya harus dengan memakai
tanda kutip tunggal.Jenis data ini memerlukan alokasi memori sebesar 1(satu)
byte untuk masing-masing data.
d. Tipe Data Boolean
Merupakan tipe data logika, yang
berisi dua kemungkinan nilai: TRUE (benar) atau FALSE (salah). Turbo Pascal for
Windows memiliki tiga macam jenis ini yaitu: Boolean, WordBool, dan LongBool.
Tipe boolean memakai memori paling kecil, sedangkan WordBool dan LongBool dipakai
untuk menulis program yang sesuai dengan lingkungan Windows.
Tabel 2.3. Tipe Data
Boolean
Tipe
Data
|
Ukuran
Tempat
|
Boolean
|
1
byte
|
WordBool
|
2
byte
|
Longbool
|
3
byte
|
Sebagai bilangan ordinal boolean
true mempunyai nilai 1(satu), sedangkan false nilainya adalah 0(nol).
CONTOH:
Contoh (1) :
Tipe data byte digunakan jika nilai tidak
lebih dari 255
Var
Jumlah : byte ;
Begin
Jumlah : = 200 ;
Writeln (‘ Nilai jumlah = ’, Jumlah);
End.
Contoh (2) :
Bila nilai yang digunakan lebih besar dari
255, tetapi tidak lebih besar dari 32767, maka dapat digunakan tipe integer
Var
Jumlah ; integer ;
Begin
Jumlah : = 25000 ;
Writeln (‘ nilai jumlah = ’, Jumlah) ;
End.
Contoh(3) :
Var
Nilai1, Nilai2 : real ;
Begin
Nilai1 : = 12345678901.2345 ;
Nilai2 : = 12345 ;
Writeln (‘ Nilai 1 = ’, Nilai1) ;
Writeln (‘ Nilai 2 = ‘, Nilai2) ;
End.
Output dari contoh program diatas :
Nilai1 = 1.2345678901E+10
Nilai2 = 1.2345000000E+04
Contoh (4):
Var
Huruf : char ;
Begin
Huruf : = ‘ D ‘ ;
Writeln (‘ Hurufnya adalah : ‘, Huruf ) ;
End.
Output program :
Hurufnya adalah : D
Contoh (5):
Var
Tanggal : string [10] ;
Hari : string [6] ;
Jarak : char ;
Begin
Tanggal : = ’ 19 Februari 2007 ’ ;
Hari : = ‘ Senin ‘ ;
Jarak : = ‘ ‘ ;
Writeln (Tanggal, Jarak, Hari) ;
End.
Contoh (6):
Var
Lagi : Boolean ;
Begin
Lagi : = True ;
Writeln (‘nilai lagi adalah ‘, Lagi) ;
End.
LATIHAN
1.
Definisikan sebuah tipe terstruktur
untuk menyatakan data/variabel yang digunakan dalam penjumlahan dua buah
bilangan.
2.
Definisikan sebuah tipe
terstruktur untuk menyatakan data nasabah di sebuah bank. Data nasabah terdiri
atas field: nomor account, nama nasabah, alamat nasabah, kota nasabah, nomor
telepon nasabah. Untuk setiap field, definisikan tipe data yang cocok.
BAB
III
INPUT
DAN OUTPUT DATA
3.1 Memasukkan Data
Cara yang paling banyak digunakan untuk memasukkan data adalah dengan
mengetikkannya melalui keyboard. Prosedur yang digunakan untuk melakukannya
dalam pascal adalah Read dan Readln.
Perbedaan perintah read dan readln adalah :
Ø Readln : untuk memasukkan data per baris,
setelah menekan tombol enter, maka akan
ganti baris
Ø Read : untuk memasukkan data dan tidak
berganti baris, masih dalam baris yang
sama
3.2 Menampilkan Hasil
Untuk
menampilkan hasil digunakan prosedur standar Write atau Writeln.
Perbedaan perintah write dan writeln adalah :
Ø Write : menampilkan hasil tanpa ganti baris dan tampilan
berikutnya akan disambung dalam baris yang sama
Ø Writeln : untuk menampilkan tampilan per baris, akan
ganti baris untuk tampilan berikutnya.
CONTOH:
1. Program input_output;
uses crt;
var a,b: integer;
begin
clrscr;
write('Masukkan bilangan antara 1 - 100: ');
readln(a);
b:= a * 2;
writeln('Bilangan yang dimasukkan adalah ',
a);
writeln('Bilangan setelah dikali 2 adalah ',
b);
readkey;
end.
2. Program Menghitung_Jarak;
Uses WinCrt;
var
x1,x2,y1,y2:integer;
d:real;
begin
Writeln('Program Menghitung Jarak Titik A dan B');
Writeln('======================================');
Writeln;
Write('Masukan Nilai A (X1): ');readln(x1);
Write('Masukan Nilai B (X2): ');readln(x2);
Write('Masukan Nilai A (Y1): ');readln(y1);
Write('Masukan Nilai B (Y2): ');readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
Writeln;
Writeln('Jadi Jarak Titik A ke B Adalah: ',d:4:2);
end.
Output:
3. Program Konversi_Suhu;
Uses WinCrt;
var f,c:real;
begin
Writeln('Program Konversi Fareinheit Ke Celcius');
Writeln('======================================');
Writeln;
Write('Masukan Suhu dalam Farenheit: ');readln(f);
c:=5/9*(f-32);
Writeln;
Writeln('Jadi Suhu Dalam Celcius Adalah: ',c:4:2);
end.
Output:
LATIHAN:
1.
Buatkan program untuk menampilan identitas kalian.
2.
Buatkan program untuk menjumlahkan dua buah bilangan.
3.
Buatkan program untuk menghitung nilai akhir mata kuliah dengan rincian
nilai akhir= (10% x harian) +(20% x tugas) +(30% x uts) + (40% x uas).
BAB
IV
STRUKTUR
PERULANGAN
Ada macam
notasi kondtruksi pengulangan dalam bentuk pernyataan yaitu:
1.
Pernyataan FOR,
2.
Pernyataan WHILE,
3.
Pernyataan REPEAT,
4.1
Pernyataan FOR
Kontsruksi
FOR digunakan untuk menghasilkan pengulangan sejumlah kali yang telah
dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum
eksekusi.Untuk mencacah sudah berapa kali pengulangan dilakukan, kita
memerlukan sebuah peubah (variabel) pencacah (counter).
4.1.1
FOR menaik
Bentuk umum:
For pencacahßnilai_awal
to nilai_akhit do
Penyataan
endfor
4.1.2
FOR menurun
Bentuk umum;
For pencacahßnilai_akhir
downto nilai_awal do
Penyataan
endfor
4.2
Pernyataan WHILE
Kontsruksi WHILE digunakan untuk menghasilkan pengulangan
sampai kondisi berhenti terpenuhi.
Bentuk umum:
While
kondisi do
Pernyataan
endwhile
4.3
Pernyataan REPEAT
Kontsruksi REPEAT digunakan untuk menghasilkan
pengulangan sampai kondisi berhenti terpenuhi.
Bentuk umum:
Repeat
Pernyataan
Until kondisi
CONTOH:
Program Menghitung_Rata_Rata;
Uses Wincrt;
Var n,x,i,tot:integer;
rata:real;
Begin
Writeln('Program Menghitung Rata-Rata');
Writeln('============================');
Writeln;
Write('Masukkan Jumlah Bilangan: ');readln(n);
Writeln;
Writeln('Masukkan Bilangan: ');
tot:=0;
For i:= 1 to n do
Begin
Readln(x);
tot:=tot+x;
End;
rata:=tot/n;
Writeln;
Writeln('Total Bilangan: ',tot:6);
Writeln('Rata-Rata : ',rata:6:2);
End.
Output:
LATIHAN
1.
Buatkan program untuk
menghitung mundur peluncuran sebuah roket deret dengan menggunkan teknik
pengulangan FOR.
2.
Buatkan program untuk
menghitung rata-rata dari sejumlah data bilangan bulat yang dibaca dari papan
ketik selama data yang dibaca tidak sama dengan nol, dengan menggunkan teknik
pengulangan FOR.
3.
Buatkan program untuk
menghitung jumlah dari sebuah deret dengan menggunkan teknik pengulangan FOR.
BAB
V
STATEMENT
PENYELEKSIAN KONDISI
Adapun statemen penyeleksian kondisi dalam pascal,sebagai
berikut:
5.1 Satu Kasus
Bentuk
Umum:
If
kondisi then
Pernyataan
Endif
5.2 Dua Kasus
Bentuk Umum:
If
kondisi then
Pernyataan
1
Else
Pernyataan 2
Endif
5.3 Tigas Kasus atau Lebih
Bentuk Umum:
If
kondisi1 then
Pernyataan
1
Else
If kondisi 2
then
Pernyataan
2
Else
If kondisi
3 then
Pernyataan
3
Endif
Endif
Endif
5.4 Struktur CASE
Bentuk
umum konstruksi CASE:
Case
ekspresi
Nilai 1: pernyataan 1
Nilai 2: pernyataan 2
Nilai 3:pernyataa 3
....
Nilai n : pernyataan n
Otherwise : pernyataan x
Endcase
CONTOH:
1. Program Menghitung_Pangkat;
Uses Wincrt;
Var i,n,m: integer;
x: real;
Begin
Writeln('Program Menghitung Pangkat');
Writeln('==========================');
Writeln;
Write('Masukkan Jumlah Pangkat : ');readln(n);
Write('Masukkan Bil. Yang DiPangkat : ');readln(m);
Writeln;
x:=1;
if (n>0) then
For i:= 1 to n do
x:=x*m
else if (n=0) then
x:=1
else
begin
n:=-1*n;
For i:= 1 to n do
begin
x:=x*(1/m);
end;
end;
Writeln('Hasil Pangkat: ',x:6:2);
End.
Output:
2.Program Konversi_Waktu1;
Uses WinCrt;
var j,m,d,dm,sisa,sisa1:integer;
begin
Writeln('Program Konversi Waktu 1');
Writeln('========================');
Writeln;
Write('Masukkan Jumlah Detik : ');readln(dm);
if (dm/3600)>0 then
begin
j:=dm div 3600;
sisa:=dm-(j*3600);
end
else
begin
j:=0;
sisa:=dm;
end;
if (sisa/60)>0 then
begin
m:=sisa div 60;
sisa1:=sisa-(m*60);
end
else
begin
m:=0;
sisa1:=sisa;
end;
d:=sisa1;
Writeln;
Writeln('Hasil => ',j,' jam ',m,' menit ',d,' detik');
end.
Output:
LATIHAN:
1. Buatkan program untuk mencetak pesan “genap” jika sebuah
bilangan bulat yang dibaca merupakan bilangan genap.
2. Buatkan program untuk menentukan bilangan terbesar
(maksimum) dari dua buah bilangan.
3. Buatkan program untuk menentukan apakah sebuah bilangan
bulat merupakan bilangan positif, negatif atau nol.
4. Buatkan program untuk mencetak nama-nama bulan
berdasarkan nomor bulannya yaitu bulan 1 sampai 12.
BAB
VI
PROCEDURE dan FUNCTION
Procedure dan Function adalah suatu
program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul
program) yang merupakan sebuah program kecil untuk memproses sebagian dari
pekerjaan program utama.
PROCEDURE
Prosedur diawali dengan kata cadangan
Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan
di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya.
Prosedur banyak digunakan pada program
yang terstruktur, karena :
1. Merupakan
penerapan konsep program modular, yaitu memecah-mecah program yang rumit
menjadi program-program bagian yang lebih sederhana dalam bentuk
prosedur-prosedur.
2. Untuk hal-hal
yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam
prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana halnya sebuah program, suatu
procedure juga memiliki header dan block. Perbedaan bentuknya dengan program
hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure
adalah :
PROCEDURE
nama;
Atau
PROCEDURE nama
(formal parameter : jenis);
Jika kita menggunakan procedure dalam
suatu program, maka procedure tersebut harus dituliskan pada bagian deklarasi.
Contoh : Misal akan dibuat suatu
procedure untuk menentukan bilangan bulat terbesar diantara tiga bilangan
bulat, maka procedure tersebut adalah sebagai berikut :
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a > b THEN max := a ELSE max := b;
IF c > max THEN max := c;
WRITELN(max);
END.
Selanjutnya, di dalam suatu program,
procedure ini dapat digunakan dengan bentuk penulisan sebagai berikut :
Contoh 1:
PROGRAM
contoh_1;
HEADER
program utama
VAR
a,b,c : integer;
PROCEDURE
maksimum;
VAR
max : integer;
BEGIN
IF
a>b THEN max := a ELSE max := b; deklarasi program
IF
c>max THEN max := c; utama
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
Maksimum
statement program utama
END.
Contoh 2 :
PROGRAM
CONTOH_2;
VAR
p,l,t,vol,panj : real;
PROCEDURE
kotak;
VAR
v,pl : real;
BEGIN
v
:= p * l * t ;
pl
:= p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’
: 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,l,t);
kotak;
END.
JANGKAUAN IDENTIFIER
Identifier yang
dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana
identifier tersebut didefinisikan.
Contoh :
1. PROGRAM p;
VAR x : real;
PROCEDURE pl;
VAR y : integer;
begin
………………..; daerah
berlakunya y daerah
………………..; berlakunya x
end;
begin
………………..;
………………..;
end.
y
→ variabel global
2. Program P ;
Var x,y : real; y
(real) berlaku disemua blok …………… program P, kecuali di P1
…………… x (real) berlaku
disemua
blok P, kecuali di P2
Procedure Pl ;
Var y : integer; hanya
berlaku di P1 saja (lokal)
……………..
Begin
………
………
End;
Procedure P2;
Var x : char; hanya
berlaku di P2 saja (lokal)
……………
Begin
………..
………..
End;
Begin
………….
x := ……. x dan y yang
dimaksud adalah x dan y real
y := ……. (variabel
global)
…………
End.
PROCEDURE DENGAN PARAMETER
Nilai di dalam suatu
modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada
modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada
modul atau unit program yang lainnya.
Contoh :
Prosedur Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
Writeln(‘Nilai Y =
‘,Y:6:2);
End;
Begin
Tanya_Hitung;
End.
Hasilnya :
Nilai X ? 5
Nilai Y = 25.00
Keterangan :
Variabel X dan Y
sifatnya adalah lokal untuk prosedur Tanya_hitung, artinya hanya dapat
digunakan pada modul itu saja, Pada modul yang lain tidak dapat digunakan,
contoh :
Prosedur Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
End;
Begin
Tanya_Hitung;
Writeln(‘Nilai Y =
‘,Y:6:2);
End.
Hasilnya :
Error 31: Unknown
identifier
Supaya
nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan
cara :
1. Dibuat bersifat global
Harus dideklarasikan di
atas modul yang menggunakannya.
Procedure kesatu;
Begin
…….
……..
End; (*akhir dari
procedure kesatu……*)
Var
A,B : word;
Procedure kedua;
Begin
……..
……..
End; (*akhir dari
procedure kedua*)
Procedure ketiga;
Begin
……..
……..
End; (*akhir dari
procedure ketiga*)
Begin
……..
……..
End. (*akhir dari modul
utama*)
Pada contoh diatas,
variabel A dab B bersifat global untuk prosedur kedua, ketiga dan utama, tetapi
tidak bersifat global untuk prosedur kesatu, sehingga prosedur kesatu tidak
dapat menggunakan variabel-variabel tersebut.
Var
A,B : real;
Procedure kesatu;
Begin
…….
……..
End; (*akhir dari
procedure kesatu……*)
Procedure kedua;
Begin
……..
……..
End; (*akhir dari
procedure kedua*)
Procedure ketiga;
Begin
……..
……..
End; (*akhir dari
procedure ketiga*)
Begin
……..
……..
End. (*akhir dari modul
utama*)
Pada contoh ini,
variabel A dan B bersifat global untuk semua modul.
2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirim
dari modul utama ke modul prosedur disebut actual parameter, dan parameter yang
ada dan dituliskan pada judul prosedur disebut formal parameter.
2.1 Pengiriman parameter secara nilai
Parameter yang
dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi
nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.
Perhatikan procedure
berikut :
Procedure konversi;
begin
f := (5/9) * c + 32; f
dan c variabel global, c sebagai input dan writeln(c,f); f sebagai output.
end;
Procedure di atas dapat
dipanggil dengan variabel yang berbeda, tetapi penulisannya harus diubah dengan
menggunakan parameter sbb:
Procedure konversi (var
f : real; c : real);
Begin
F := (5/9) * c + 32;
disebut formal parameter
Writeln(c,f);
End;
Selanjutnya procedure
di atas dapat dipanggil dengan parameter lain, misalnya :
konversi (x,y) ;
actual parameter
x dan y disebut sebagai
actual parameter.
Pada eksekusinya x akan
menggantikan c dan y akan menggantikan f.
x dan y ini dapat berupa
:
-
konstanta
-
variabel
-
procedure, atau
-
fungsi
Contoh :
Procedure Hitung(A,B : integer);
Var C : integer;
Begin
C := A + B;
Writeln(‘Nilai C = ‘,C)
End;
Var X,Y : integer;
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Hitung(X,Y);
End.
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
Nilai C = 5
2.2
Pengiriman parameter secara acuan
Bila pengiriman parameter secara acuan (by reference), maka
perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan
mempengaruhi nilai actual parameter .
Procedure hitung(Var A,B,C : integer);
Menunjukkan pengiriman parameter secara acuan.
Contoh :
Procedure Hitung(Var A,B,C : integer);
Begin
C := A + B;
End;
Var X,Y,Z : integer;
Begin
X := 2; Y:= 3;
Hitung(X,Y,Z);
Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
Hasilnya :
X = 2 Y = 3 Z = 5
Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur
terpisah dari bloknya.
Contoh :
Procedure pro1(var I : integer); Forward;
Procedure pro2(var I : integer);
Begin
Writeln(‘prosedur pro’, I);
End;
Procedure pro1;
Begin
Writeln(‘prosedur pro’,I);
End;
Var I : integer;
Begin
I := 1; pro1(I);
I := 2; pro2(I);
End.
Hasilnya :
prosedur pro1
prosedur pro2
Prosedur Standar
Prosedur yang disediakan oleh Turbo Pascal :
1. Prosedur standar EXIT
Digunakan untuk keluar dari suatu blok.
2. Prosedur standar HALT
Digunakan untuk menghentikan proses program baik di program
bagian maupun di program utama.
3. Prosedur standar MOVE
Bentuk umum : MOVE
(Var source,dest; count : word);
Digunakan untuk menyalin suatu blok sebanyak count byte memori
dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.
4. Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu
variabel, sebagai berikut
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi
dengan nilai tipe ordinal Ch sebanyak count byte.
FUNCTION
Blok fungsi hampir sama
dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau
jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal
dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya.
Fungsi-fungsi tersebut
biasanya dikenal dengan Built in Function. Sedangkan function yang akan
bicarakan disini adalah fungsi yang kita buat sendiri.
Berbeda dengan
procedure, function merupakan modul program yang menghasilkan suatu kuantitas.
Hal ini dapat dilihat
dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang
dihasilkan.
Secara umum bentuk
header suatu function adalah :
FUNCTION nama : jenis hasil;
Atau FUNCTION nama (formal parameter : jenis ) :
jenis_hasil;
Contoh :
1.
Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar
di antara dua integer.
Function MAX (x,y :
integer) : integer;
Begin
If x < y then MAX :=
y ;
Else MAX := x;
End;
Selanjutnya kita dapat
menggunakan fungsi di atas dalam suatu program, misalnya dengan menyatakan
sebagai berikut :
P := MAX(a,b);
Z := MAX(a+b,a*b);
Q := MAX(MAX(a,b),c);
…………………………
dsb.
2.
Function LOG (x : real) : real;
Begin
LOG := ln (x) / ln
(10.0);
End;
3.
Function POWER (x,y : real) : real;
Begin
POWER := exp (y * ln
(X))
End;
ab =
POWER (a,b)
ba =
POWER (b,a)
(p + q)r/s =
POWER (p + q, r/s)
………………………………..
dll
Contoh :
Function Hitung(Var A,B
: integer): integer;
Begin
Hitung := A + B;
End;
Var X,Y : integer;
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ? ‘);
Readln(Y);
Writeln;
Writeln(X,’ + ‘,Y,’ =
‘,Hitung(X,Y));
End.
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
1 + 3 = 5
Perbedaan fungsi dengan prosedur adalah :
1.
Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau
pada prosedur pada parameter yang dikirimkan secara acuan). Pada contoh, nama
fungsi tersebut adalah Hitung dan nilai yang dikirim balik berada pada nama
fungsi tersebut. Sehingga nama fungsi ini harus digunakan untuk menampung hasil
yang akan dikirimkan dari fungsi, sebagai berikut :
Hitung := A + B;
Nama fungsi yang berisi
nilai yang akan dikirimkan
2.
Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat
langsung digunakan untuk dicetak hasilnya, sebagai berikut :
Writeln(X,’ + ‘,Y,’ =
‘,Hitung(X,Y));
Nama fungsi yang
langsung digunakan untuk ditampilkan hasilnya.
Atau nilai fungsi
tersebut dapat juga langsung dipindahkan ke pengenal variabel yang lainnya,
sebagai berikut :
Hasil := Hitung(X,Y);
Writeln(X,’ + ‘,Y, ‘ +
‘,Hasil);
Sedang pada prosedur,
nama prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung
digunakan adalah parameternya yang mengandung nilai balik.
REKURSIF
Suatu fungsi atau
prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi atau
prosedur tersebut dapat memanggil dirinya sendiri. Berikut ini sebuah contoh
fungsi dan prosedur yang rekursif.
1.
function faktorial (nilai : integer) : integer;
begin
if nilai <= 0 then
faktorial := 1;
else faktorial := nilai
* faktorial (nilai-1)
end;
Var
N : integer;
Begin
Write(‘Berapa faktorial
? ‘);
Readln(N);
Writeln(N,’ faktorial =
‘,faktorial(N):9:0);
End.
faktorial (4) = 4 *
faktorial (3)
3 * faktorial (2)
2
* faktorial (1)
1 * faktorial (0)
1
= 4 * 3 * 2 * 1 * 1
= 24
2.
Bilangan Fibonanci:
F (0) = 0
F (1) = 1
F (n) = F ( n-1 ) + F
(n-2); untuk n >1
Function fibonacci ( n
: integer ) : integer;
Begin
If n = 0 then fibonacci
:= 0
Else
If n := 1 then
fibonacci := 1
Else fibonacci :=
fibonacci (n-1) + fibonacci (n-2);
End;
3.
Procedure reverse ( num : integer );
Begin
If num < 10 then
write(num)
Else begin
Write(num mod 10);
Reverse(num div 10);
End;
End;
Fungsi Standar
1. Fungsi standar arutmatika
•
Fungsi standar ABS
Bentuk umum : ABS(x);
Digunakan untuk
memutlakkan suatu nilai yang ditunjukkan oleh argumen x.
Contoh :
Begin
X:=-2.3;
Write(‘Nilai X = ‘,X,’
Nilai mutlaknya = ‘,Abs(X):3:1);
End.
•
Fungsi standar EXP
Bentuk Umum : EXP(x:):real;
Digunakan untuk
menghitung nilai pangkat dari bilangan e yaitu sebesar ex.
Hasilnya berupa nilai real.
•
Fungsi standar LN
Bentuk umum : LN(x):real;
Digunakan untuk
menghitung nilai logaritma alam (natural logarithm) dari nilai x. Hasilnya
berupa nilai real.
•
Fungsi standar INT
Bentuk umum : INT(x:real):real;
Digunakan untuk
menghasilkan nilai integer dari x. hasil dari fungsi adalah tipe real dengan
nilai yang berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x.
Contoh :
Begin
X:=9.99;
Write(‘Nilai yang akan
dibulatkan = ‘,X);
Writeln(‘Nilai
pembulatannya = ‘,Int(X):3:2);
End.
Hasil :
Nilai yang akan
dibulatkan = 9.99
Nilai pembulatannya =
9.00
•
Fungsi standar FRAC
Bentuk umum : FRAC(x:):real;
Digunakan untuk
mendapatkan nilai pecahan dari argumen x. Argumen x dapat bernilai real maupun
integer dan hasil dari fungsi adalah real.
Contoh :
Begin
X:=9.99;
Write(‘Nilai X = ‘,X,’
Nilai pecahannya = ‘,Frac(X):4:3);
End.
Hasilnya : Nilai X =
9.99 Nilai pecahannya = 0.990
•
Fungsi standar SQR
Bentuk umum : SQR(x);
Digunakan untuk
menghitung nilai pangkat kuadrat dari argumen x.
Contoh :
Begin
X :=2;
Write(‘Nilai X = ‘,X,’
Nilai kuadratnya = ‘,sqr(x));
End.
Hasilnya : Nilai X = 2
Nilai kuadratnya = 4
•
Fungsi standar SQRT
Bentuk umum : SQRT(x) : real;
Digunakan untuk
menghitung nilai akar dari argumen x, hasilnya berupa real.
•
Fungsi standar PI, SIN, COS, ARCTAN
1. Fungsi Standar Transfer
Digunakan untuk merubah
suatu nilai ke bentuk nilai lain.
•
Fungsi standar CHR
Bentuk umum : CHR(x:byte):char;
Digunakan untuk merubah
nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
Contoh :
X := 66;
Write(‘Nilai X = ‘,x,’
Nilai karakternya = ‘,CHR(X));
Hasilnya : Nilai X = 66
Nilai karakternya = B
•
Fungsi standar ORD
Bentuk umum : ORD(x):longint;
Digunakan untuk merubah
nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII, merupakan
kebalikan dari fungsi CHR.
•
Fungsi standar ROUND
Bentuk umum : ROUND(x:real):longint;
Digunakan untuk
membulatkan nilai dari real x ke nilai longint yang terdekat. Bila nilai
pecahan sama dengan atau lebih besar dari 0.5 akan dibulatkan ke atas, sedang
kalau lebih kecil dari 0.5 akan dibulatkan ke bawah.
Contoh :
Write(’10 dibagi 3
hasil pembulatan terdekat ‘,Round(10/3));
Writeln(’20 dibagi 3
hasil pembulatan terdekat adalah ‘,Round(20/3);
Hasilnya :
10 dibagi 3 hasil
pembulatan terdekat adalah 3
20 dibagi 3 hasil
pembulatan terdekat adalah 7
•
Fungsi standar TRUNC
Bentuk umum : TRUNC(x:real):longint;
Digunakan untuk
membulatkan nilai dari real x ke nilai longint terkecil. Atau dengan kata lain
membulatkan ke bawah.
Contoh :
Write(’10 dibagi 3
hasil pembulatan terdekat ‘,Trunc(10/3));
Writeln(’20 dibagi 3
hasil pembulatan terdekat adalah ‘,Trunc(20/3);
Hasilnya :
10 dibagi 3 hasil
pembulatan terdekat adalah 3
20 dibagi 3 hasil
pembulatan terdekat adalah 6
1. Fungsi Standar Lainnya
Fungsi standar yang
tidak termasuk dalam kelompok pembagian di atas :
•
Fungsi standar Hi, Lo, Swap
•
Fungsi standar Random
Bentuk umum : Random [(range :word)];
Digunakan untuk
menghasilkan angka random berkisar dari nilai lebih besar atau sama dengan nol
dan lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini
adalah real, bila range disebutkan, hasilnya adalah word.
•
Fungsi standar SizeOf
Bentuk umum : SizeOf(x):word;
Digunakan untuk
menunjukkan besarnya byte yang digunakan oleh suatu variabel x, hasilnya berupa
nilai word.
•
Fungsi standar UPCASE
Bentuk umum : UpCase(Ch:char):char;
Digunakan untuk merubah
argumen suatu karakter yang ditunjukkan oleh Ch menjadi bentuk karakter huruf
besar (upper case).
BAB
VII
ARRAY
Array (larik ) adalah tipe
terstruktur yang terdiri dari sejumlah komponen yang
mempuyai tipe sama.
Array Satu Dimensi :mempuyai tipe sama.
Array [ 1 . . 20 ] of tipe_data ; (Dimensi 1)
Arrai Dua Dimensi :
Array [1 . . 3 , 1 . . 2] of tipe_data; (Dimensi 2)
1. Definisi
Array
adalah koleksi data yang tipenya sama, tersusun dalam bentuk barisan linier
berurutan (sequence) dan jumlah elemen atau datanya tidak berubah (statis)
sesuai dengan deklarasi awal. Semua elemen array diidentifikasi dengan sebuah
nama (nama array) dan untuk setiap elemennya diidentifikasi/dibedakan dengan
sebuah index.
2.
Deklarasi.
Bentuk umum deklarasi array adalah:
type tipe_array = array
[range_index] of ipe_data;
var var_array : tipe_array;
var_array
adalah nama variabel array yang dipakai untuk mengidentifikasi array. Pemilihan
nama variabel array mengikuti aturan pemberian nama variabel secara umum.
Range_index
adalah batasan index yang digunakan untuk mengidentifikasi elemen array.
Range_index menentukan jumlah elemen array, yang jumlahnya tidak akan berubah
(statis) mulai saat awal disediakan (program dijalankan) hingga program selesai
dijalankan. Misalnya range 0..9 atau 1..10 atau –1..8 atau ‘A’..’J’ akan
menentukan jumlah elemen array sebanyak 10 buah.
Setiap
elemen array diidentifikasi oleh salah satu index yang berada dalam range yang
telah ditentukan. Penggunaan index yang berada di luar range Index akan
mengakibatkan kesalah, Index ini tidak harus berupa bilangan positif, tetapi
harus berupa bilangan bulat atau data-data yang masuk kategori tipe data
ordinal (seluruh tipe data dasar selain real dan double), seperti semua varian
integer, char, boolean atau tipe data enumerasi yang dibuat sendiri oleh user.
Tipe_data
adalah tipe data untuk elemen array.Tipe data elemen array tidak harus berupa
integer, atau tipe data dasar yang lain, tetapi dapat berupa tipe data
terstruktur seperti array.
.
3. Operasi
Pada Array
- Operasi Memasukkan dan Mengambil
Nilai
Bila
array sudah dideklarasikan dan sudah diberi suatu nama, maka dapat dimanfaatkan
sesuai fungsinya sebagai objek data. Operasi memasukkan nilai adalah operasi
untuk memasukkan nilai data ke dalam elemen-elemen array. Biasanya hal ini
dilakukan dengan operasi penugasan (assignment) dengan objek array terletak
sebagai operan di sebelah kiri tanda ‘:=’.
Sedangkan
operasi mengambil nilai adalah operasi untuk mendapatkan/membaca nilai dari
suatu array.Hal dini dilakukan ketika menggunakan array sebagai operan nada
suatu operasi atau sebagai parameter sebuah fungsi/prosedur.
-
Operasi Mengakses Array
Operasi
mengakses suatu objek data merupakan nama yang lebih umum daripada operasi
memasukkan nilai ataupun membaca nilai. Jadi, operasi mengakses array dapat
berupa memasukkan nilai atau membaca nilai array.Operasi ini dapat dilakukan
pada array secara keseluruhan ataupun pada suatu elemen tertentu.
-
Mengakses Elemen Array Secara Acak/Random
Setiap
elemen array dapat diperlakukan secara individual terlepas dari elemen-elemen
lainnya. Misalnya dalam hal memasukkan data, nilai[7] dapat dimasukkan lebih
dulu daripada elemen lainnya.meskipun akhirnya semua elemen array akan diakses,
namun tidak aturan yang pasti tentang urutan mengaksesnya. Kita bisa saja
mengakses nilai[5] tanpa mengakses komponen array lainnya.
-
Mengakses Elemen Array Secara Sequensial (Berurutan)
Struktur
array yang elemen-elemennya tersusun secara berurutan, memungkinkan kita
mengakses sebagian atau seluruh elemen array secara berurutan.
Untuk
proses mengunjungi elemen array (traversal of array) secara berurutan dapat
dilakukan dengan proses looping (perulangan). Pada model-model di atas,
elemen-elemen array diakses secara berurutan dengan selisih satu index. Jadi
elemen ke-6 akan diakses sebelum atau sesudah elemen ke-5 ataupun ke-7.
Pergeseran index dilakukan dengan menambah atau mengurangi index sebelumnya
dengan 1. Kita juga dapat membuat model yang lain dengan mengubah selisih
indexnya. Misalkan menjadi 2, 3, atau berapa saja sesuai keperluan, asalkan
selalu berada pada range index.
-
Mengakses Array Secara Keseluruhan
Selain
mengakses komponen array, kita juga dapat mengakses array secara keseluruhan
yang akan mempengaruhi semua elemennya sekaligus. Misalkan A dan B adalah dua
buah variabel array yang tipenya sama, dan jumlah elemennya juga sama, maka
dalam Pascal dapat dilakukan operasi penugasan A := B yang berarti memasukkan
nilai dari setiap elemen array B ke semua elemen A pada Index-Index yang
bersesuaian.
4.
Array Multidimensi
Tipe
data elemen array tidak harus berupa tipe data elementer, namun juga dapat
berupa tipe data terstruktur, misalnya array. Sebagai contoh, perhatikan
deklarasi berikut :
Var
Matrix:array[1..3,1..3] of integer;
Bentuk
deklarasi mungkin saja dibuat untuk kasus demikian, tipe nilai_ujian adalah
berupa array dengan dua elemen bertipe integer untuk menyimpan nilai ujian
midterm dan ujian akhir.Sedangkan variabel nilai adalah array dengan sepuluh
elemen bertipe nilai_ujian, yang digunakan untuk menyimpan nilai ujian dari 10
mahasiswa.Elemen-elemen array nilai bertipe array integer.Walaupun terdapat dua
buah array, tetapi setiap deklarasi array hanya dibatasi dengna sebuah range
Index saja.Jumlah elemen array nilai adalah 10, walaupun secara keseluruhan
banyaknya bilangan yang dapat disimpan adalah 20 buah.Array demikian dikenal
sebagai array berdimensi 1.
5.
Penggunaan Konstanta untuk Batas Index Arrray
Deklarasi
konstanta sering digunakan untuk batas bawah dan batas atas pada range Index
array. Setiap kali menggunakan array, kita pasti berharap agar ruang yang kita
sediakan sesuai dengna banyaknya data yang akan disimpan; jangan sampai
berlebihan, ataupun kekurangan.
Sering
kali kita terpaksa harus mengubah batas-batas range Index untuk menyesuaikan
jumlah data. Penggunaan konstanta akan memudahkan bila ada keperluan untuk
mengubah batas-batas range Index array, yaitu cukup mengganti nilai konstanta
tersebut.
CONTOH:
Program Array1;
Uses Wincrt;
Var x : array [1..100] of integer;
n,i :integer;
Begin
Writeln('Program Array');
Writeln('=============');
Writeln;
Write('Masukkan Jumlah Data: ');readln(n);
Writeln;
For i:= 1 to n do
Readln(x[i]);
Writeln;
Write('Data Yang Telah Dimasukkan: ');
For i:= 1 to n do
Write(x[i],' ');
End.
Output:
Program Array2;
Uses Wincrt;
Var x : array [1..100] of integer;
n,i,max,min : integer;
Begin
Writeln('Program Array');
Writeln('=============');
Writeln;
Write('Masukkan Jumlah Data: ');readln(n);
Writeln;Writeln('Data Harus Urut');
For i:= 1 to n do
Readln(x[i]);
Writeln;
Write('Data Yang Telah Dimasukkan: ');
max:=x[1];
min:=x[1];
For i:= 1 to n do
Begin
Write(x[i],' ');
if (max<x[i]) then
max:=x[i]
else
min:=x[i];
End;
Writeln('Nilai Maximal: ',max);
Writeln('Nilai Minimal: ',min);
End.
Output:
LATIHAN
1.
Buatkan program untuk
menampilkan data mahasiswa dengan menggunakan teknik ARRAY.
2.
Buatkan program untuk
menampilkan data agen Bus dengan menggunakan teknik ARRAY.
3.
Buatkan program untuk
menampilkan data Karyawan dengan menggunakan teknik ARRAY.
4.
Buatkan program untuk
menampilkan data bengkel motor dengan menggunakan teknik ARRAY.
5 Best Bitcoin Casino Sites - Casinoworld
BalasHapusBest 인카지노 Bitcoin Casino sites. The febcasino Best Online Casino and Slot Machine Games in 2021. youtube mp3 The Casino List and Bonuses List. We List the Best