Jumat, 06 Mei 2011

kuliah,kreativitas dan organisasi (soft skill)

JAKARTA, KOMPAS.com - Pergerakan zaman yang semakin dinamis menuntut para pelajar, mahasiswa, dan tenaga pengajar untuk mengikuti dan mengimbangi perubahan itu. Fokus pada prestasi akademik saja tidak cukup.
Perusahaan ketika merekrut karyawan tidak hanya melihat kecakapan akademis dalam pendidikan formal, karena pendidikan formal tidak membentuk seseorang memiliki soft skills.
-- Indrawan Nugroho

Saat ini, lingkungan pendidikan tak hanya dituntut menyajikan kecakapan secara akademis, tetapi juga kreatif dan memperkuat soft skills. Perlu adanya suatu motivasi untuk mendorong siswa, mahasiswa, maupun tenaga pengajar agar mampu mencapai itu semua.

"Cara memotivasi kreativitas sebenarnya akan muncul ketika ada gairah pada apa yang dilakukan. Ketika kita berharap seseorang mengeluarkan kreativitasnya, terlebih dahulu harus kita dorong gairahnya," kata Direktur Utama Kubik Training and Consultancy, Indrawan Nugroho, di acara "Menguak Revolusi SDM di balik Keberhasilan Bisnis XL", Kamis (5/5/2011) sore, di Jakarta.

Indra mengatakan, pendidik misalnya, harus mampu menunjukkan kepada siswa dan mahasiswa, bahwa apa yang mereka lakukan bukan semata-mata melakukan pekerjaan. Pendidik harus memperlihatkan, bahwa mereka mengerjakan sebuah misi, kecintaan terhadap sesuatu yang akan menjadi bahan bakar kreativitasnya.

"Maka, sebelum kita paksa atau minta untuk kreatif, kita sentuh dulu hatinya, supaya mereka tahu pekerjaannya adalah sesuatu yang mempunyai makna yang dalam. Ketika gairah itu sudah ada, maka kreativitas itu akan muncul dengan sendirinya," ujar Indra.

Menurutnya, soft skills dapat didorong dengan cara sederhana. Siswa atau mahasiswa harus ikut organisasi.

"Jangan hanya kuliah belajar dari kelas ke kelas, dari perpustakaan ke perpustakaan. Mereka harus keluar, ceburkan diri ke dalam organisasi, ketemu dengan sebanyak mungkin orang, lakukan kesalahan, dari situ mereka akan punya soft skills yang bagus," ujarnya.

"Karena problemnya adalah, perusahaan sekarang ketika merekrut karyawan tidak hanya melihat kecakapan akademis dalam pendidikan formal. Karena pendidikan formal tidak membentuk seseorang memiliki soft skills, untuk itu semua harus di kombinasikan dengan organisasi," tambahnya.

Indra mengatakan, ketika ingin masuk dunia kerja, level organisasi turut diperhatikan dan merupakan suatu nilai yang mahal. Intinya, lanjut dia, soft skills adalah sesuatu yang harus dilatih setiap hari dengan melakukan banyak cara.

"Mahasiswa masuk organisasi, pengajar ikut asosiasi, sehingga banyak bertemu orang-orang yang ahli. Jika Anda mahasiswa, saatnya sekarang melakukan kesalahan," ujarnya.

Selasa, 26 April 2011

Antrian

I. JUDUL PRAKTIKUM : ANTRIAN (`QUEUE)
II. TUJUAN PRAKTIKUM :
1. Mengetahui apa pengertian dari antrian
2. Mengetahui prinsip dari pengerjaan antrian
3. Mengetahui operasi-operasi dasar pada antrian
4. Mengetahui pengertian front dan tail pada antrian
5. Mengetahui bagaimana cara membuat procedure tambah,procedure hapus dan procedure tulis pada antrian
6. Dapat membuat program sederhana menggunakan antrian


























III. DASAR TEORI
Antrian Secara umum adalah daftar elemen yang sedang menunggu proses. Di dalam routing LAN dan WAN, adalah merupakan paket yang sedang dalam antrian untuk dikirimkan ke interface router.
Queue / Antrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada satu ujung (disebut dengan sisi belakang atau rear) dan penghapusan atau pengambilan elemen dilakukan lewat ujung lain (disebut dengan sisi depan atau front).
Antrian menggunakan prinsip Pertama Masuk Pertama Keluar – First In First Out (FIFO). Dengan kata lain urutan masuk sama dengan urutan keluar. Antrian banyak dijumpai dalam kehidupan sehari-hari. Mobil-mobil yang mengantri digerbang tol untuk membeli karcis tol; orang-orang yang mengantri di loket untuk membeli karcis film juga membentuk antrian. Pada antrian kita tidak menentukan batasan seberapa banyak antrian itu akan
berakhir tapi jika kita menggunakan array untuk mengimplementasikan queue/ tumpukan kita harus membatasi jumlah antrian yang dapat masuk. Ini dikarenakan array memiliki batasan (upperbound) yang menjadi penghambat jika kita menggunakan antrian. Oleh sebab itu kita akan mengimplementasikan antrian ini dengan menggunakan link list. Dengan menggunakan link list tepatnya Single Link List maka elemen dapat dimasukkan secara tidak terbatas. Kita menggunakan Header Single Link List yang seperti Stack pada posisi Header dapat kita pergunakan untuk menyimpan informasi mengenai banyaknya elemen dalam Queue.
Notasi Pada Queue
Notasi yang dapat digunakan didalam Queue Q adalah :
1. FRONT(Q) menunjukkan posisi terdepan dari suatu antrian.
Contoh jika kita mempunyai antrian Q = [A,B,C,D,E] maka FRONT(Q) = A.
2. REAR(Q) menunjukkan posisi terakhir dari suatu antrian.
Contoh jika kita mempunyai antrian Q = [A,B,C,D,E] maka REAR(Q) = E.
3. NOEL(Q) menunjukkan jumlah elemen di dalam Antrean Q.
Contoh jika kita mempunyai antrian Q = [A,B,C,D,E] maka NOEL(Q) = 5.
Deklarasi Queue Dalam Link List
Pendeklarasian Queue di dalam link list sama seperti kita mendeklarasikan link list. Menggunakan pointer sebagai variabel yang menunjuk ke elemen antrian selanjutnya.
Deklarasi Queue menggunakan Linked List di dalam Pascal :
Type
Queue = ^Simpul
Simpul = Record
Info : Char;
Next : Queue;
End;
Var
Head, Tail : Queue;
Max : Byte;

Link list yang kita gunakan ialah jenis Header Single Link List. Kita menggunakan jenis link list ini karena pada bagian header dapat kita manfaatkan untuk menyimpan informasi mengenai banyaknya elemen dalam Antrian (NOEL(Q)).
Operasi Dasar Pada Queue
Ada 4 operasi dasar yang dapat dilakukan pada struktur data antrian, yaitu:
1. CREATE(Q)
CREATE(Q) adalah suatu operator yang digunakan untuk membentuk dan menunjukkan suatu antrian hampa. Contoh :
NOEL(CREATE(Q)) = 0
FRONT(CREATE(Q)) = Tidak Terdefinisi
REAR(CREATE(Q)) = Tidak Terdefinisi
Berikut ini merupakan procedure CREATE simpul pada Pascal :
Procedure CREATE(Var Head, Tail : Queue);
Begin
New(Head);
Head^.Info := 0;
Head^.Next := Head;
Tail := Head;
End;
2. ISEMPTY(Q)
ISEMPTY(Q) adalah operator yang menentukan apakah antrian Q hampa atau tidak. ISEMPTY(Q) di terapkan di dalam pascal menjadi sebuah function yang bertipe boolean sehingga hasil dari function ini akan bernilai True jika antrian dalam keadaan kosong / hampa (NOEL(Q) = 0) dan akan bernilai False jika antrian dalam keadaan terisi / tidak kosong (NOEL(Q) > 0).
Contoh :
ISEMPTY(CREATE(Q)) = True
Berikut ini merupakan procedure ISEMPTY simpul pada Pascal :
Function ISEMPTY(Head : Queue);
Begin
ISEMPTY := (Head^.Next = Head);
End;

3. INSERT(E,Q)
INSERT(E,Q) adalah operator yang digunakan untuk memasukkan elemen E pada antrian Q di posisi depan dari antrian. Hasil dari operator ini adalah antrian yang lebih panjang.
Berikut ini merupakan procedure INSERT simpul pada Pascal :
Procedure INSERT(Elemen : Byte; Var Head, Tail : Queue);
Var Temp : Queue;
Begin
New(Temp);
Temp^.Info := Elemen;
Temp^.Next := Head;
Tail := Temp;
Inc(Head^.Info);
End;
4. REMOVE(Q)
REMOVE(Q) adalah operator yang menghapus elemen bagian depan dari antrian Q. Hasilnya merupakan antrian yang lebih pendek. Pada setiap operasi ini, harga dari NOEL(Q) berkurang satu, dan elemen kedua dari Q menjadi elemen terdepan. Jika NOEL(Q) = 0, maka REMOVE(Q) memberikan suatu kondisi erroe, yakni suatau UNDERFLOW. Contoh :
REMOVE(CREATE(Q)) = UNDERFLOW.
Berikut ini merupakan procedure REMOVE simpul pada Pascal :
Procedure REMOVE(Var Head : Queue);
Var Temp : Queue;
Begin
If Not (ISEMPTY(Head)) Then
Begin
Temp := Head^.Next;
Head^.Next := Temp^.Next;
Dispose(Temp);
Dec(Head^.Info);
End;
End;
Untuk memahami pengertian antrian sekaligus penerapan operator-operator queue dan notasi-notasinya perhatikan ilustrasi berikut :
CREATE(Q) = Membuat Antrian Baru
ISEMPTY(Q) = Apakah Antrian dalam keadaan kosong ?
REMOVE(Q) = Mengeluarkan elemen terdepan dari dalam antrian.
INSERT(1,Q) = Memasukkan elemen 1 kedalam antrian.
INSERT(2,Q) = Memasukkan elemen 2 kedalam antrian.
INSERT(3,Q) = Memasukkan elemen 3 kedalam antrian.
REMOVE(Q) = Mengeluarkan elemen terdepan dari dalam antrian.
INSERT(4,Q) = Memasukkan elemen 3 kedalam antrian.
ISEMPTY(Q) = Apakah Antrian dalam keadaan kosong ?
Untuk operasi-operasi selanjutnya menggunakan prinsip yang sama seperti ilustrasi diatas ini.
Jenis-jenis Antrian
Selain antrian yang telah kita bahas di atas, masih ada dua tipe antrian lagi yang penggunaannya juga banyak di dalam kehidupan sehari hari atau dalam dunia komputer itu sendiri, diantaranya adalah :
1. DEQUE
DEQUE adalah antrian dimana elemennya bisa masuk dan keluar lewat kedua ujungnya (berbeda dengan queue yang hany bisa masuk lewat ujung belakang dan keluar lewat ujung depan). Biasanya DEQUE disajikan dengan menggunakan Double link list yang memiliki dua buah pointer yang menunjuk ke posisi sebelumnya dan sesudahnya. Gambar 5.1 menunjukkan struktur umum dari sebuah DEQUE.
DEQUE juga mempunyai dua jenis variasi yaitu :
a. Deque input terbatas : suatu deque yang membatasi pemasukkan elemen hanya pada satu ujung dari list, sementara penghapusan elemen boleh dilakukan pada kedua ujung list.
b. Deque output terbatas : merupakan kebalikan dari deque input terbatas yaitu suatu deque yang membatasi penghapusan elemen hanya pada satu ujung dari list, sementara pemasukkan elemen boleh dilakukan pada kedua ujung list.
2. ANTRIAN BERPRIORITAS
Antrian berprioritas adalah suatu queue yang setiap elemennya telah diberikan sebuah prioritas, dan urutan proses penghapusan elemen adalah berdasarkan aturan berikut :
a. Elemen yang prioritasnya lebih tinggi, diproses lebih dahulu dibandingkan dengan elemen yang prioritas lebih rendah.
b. Dua elemen dengan prioritas yang sama, diproses sesuai dengan urutan mereka sewaktu dimasukkan ke dalam priority queue. Salah satu contoh antrian berprioritas ini adalah sistem berbagi waktu (time sharing system), dimana program yang mempunyai prioritas tinggi akan dikerjakan lebih dahulu dan program-program yang berprioritas sama akan membentuk antrian yang biasa.
Salag satu contoh program antrian yaitu:
program animation_queue;
uses wincrt;
const max_elemen =10;
type antri = array [1..max_elemen] of char;
var
antrian : antri;
q : antri;
d : char;
isi : antri;
depan, belakang, pilih : integer;
elemen : char;
procedure kotak;
var
i: integer;
begin
gotoxy(20,15);
for i:= 1 to max_elemen * 4 + 1 do
write('-');
gotoxy(20,16);
for i:= 1 to max_elemen do
write('| ');
writeln('|');
gotoxy(20,17);
for i:= 1 to max_elemen * 4 +1 do
write('-');
gotoxy(8,16);writeln('<---- Out'); gotoxy(22+max_elemen*4+1,16); writeln('<---- In'); end; procedure letakkan(x: char; r:integer); begin gotoxy(18+4*r,16); write(x); end; function kosong(q: antri): boolean; begin kosong:=(depan=belakang) end; procedure tambah(var antrian: antri;x:char); begin if belakang=max_elemen then belakang:=1 else belakang:=belakang+1; if not (kosong(antrian)) then begin antrian[belakang]:=x; letakkan(x,belakang); end else begin gotoxy(40,9); write('OVERFLOW'); repeat {menunggu sampai ada tombol ditekan} until keypressed; gotoxy(40,9); write(' ':30); belakang:=belakang-1; if belakang=0 then belakang:=max_elemen end end; function qkosong(q:antri):boolean; begin qkosong:= (depan = belakang); end; procedure Dequeue(var q:antri; ed:char); begin if not(qkosong(q)) then begin if depan = max_elemen then depan :=1 else depan := depan+1; ed := isi[depan]; end; end; procedure tampil(q: antri); var i,awal : integer; begin CLRSCR; writeln('Queue to Data'); if depan = max_elemen then awal :=1 else awal := depan +1; for i:=awal to belakang do writeln(i:3,' ':5,isi[i],' '); READLN; end; function hapus(var antrian: antri):char; begin if depan=max_elemen the depan:=1 else begin depan:=depan+1; hapus:=antrian[depan] end end; {program utama} begin clrscr; kotak; depan:=0; belakang:=0; repeat for pilih:=5 to 9 do begin gotoxy(40,pilih);write(' ':39); end; gotoxy(1,1); writeln(' MENU '); writeln('==================='); writeln; writeln(' 1. Add a New Element (Enqueue)'); writeln(' 2. Vanish An Element (Dequeue) '); writeln(' 3. FINISH and EXIT'); writeln;writeln; writeln(' YOURS CHOICE:'); writeln; write ('-------THANK YOU FOR USING THIS PROGRAM---------'); writeln; write (' THE PROGRAM CREATED BY '); writeln; write (' RAHMAD KURNIAWAN '); writeln; write (' http://rahmad.co.nr '); writeln; repeat gotoxy(22,9);writeln(' '); gotoxy(22,9);readln(pilih); until (pilih>=1) and(pilih<=3);
case pilih of
1 : begin
gotoxy(40,4);
writeln ('--------------');
gotoxy(40,5);
writeln('ADD AN ELEMENT');
gotoxy(40,6);
writeln('---------------');
gotoxy(40,8);
write('ENTER AN ELEMENT:');
readln(elemen);
tambah(antrian,elemen);
end;
2 : begin
if not(kosong(antrian)) then
begin
Dequeue(q,d);
tampil(q);
end
else
begin
gotoxy (30,9);
writeln ('UNDER FLOW');
elemen:=readkey;
gotoxy (30,9);write (' ':30);
end
end
end;
until pilih=3
end.



DAFTAR PUSTAKA
http://Google.com/antrian.
Akses : Selasa , 25 Oktober 2010 21: 19.
http://google.com/ Modul Praktikum Struktur Data – IT045329 .
Akses : Selasa ,25 oktober 2010. 13.00.
http://wikipedia.co.id/Antrian pada pascal.
Akses : Senin, 11 Oktober 2010 21: 15.
Tim Asisten. 2010. Modul Praktikum Pemrograman Komputer II. Inderalaya : Mitra Kharisma.

Maafkan Aku

Oleh : Musthopa Kemal Ibrahim

Maafkan aku yang tak pernah paham mau mu
Maafkan aku yang tak pernah tahu ingin mu
Maafkan aku yang tak pernah mengerti maksud mu
Maafkan aku yang tak pernah hiraukan mu
Maafkan aku yang selalu acuh pada mu
Maafkan aku yang tak tanggap akan cinta mu
Dan Maafkan aku yang tak pernah inginkan mu

Sebenarnya yang ku inginkan hanyalah keindahan
Tanpa peduli akan arti dari sebuah ketulusan
Yang ku tahu dulu ku tak inginkan mu
Dan yang ku tahu sekarang aku begitu menyesal karena itu
Sebuah pengorbanan yang kau berikan tapi tak pernah ku hiraukan

Jujur aku menyesal
Menyesal karena kelakuan ku
Menyesal karena ego ku
Menyesal karena Keangkuhan ku
Dan aku menyesal karena kemunafikan ku

Tapi itu terlambat bagi ku
Yang ada hanyalah rintihan yang tak akan pernah kau dengar
Aku sadar mungkin aku layak mendapatkan nya
Karena sifat ku aku begitu

Yang ku ingin sekarang ...
Tetaplah kau terbang bersama sayap mu
Arungi samudera bersama cinta mu
Dan tinggalkan aku yang merintih dan mungkin tak berarti untukmu
Dan aku mohon jangan pernah hiraukan aku.

Minggu, 09 Januari 2011

Record

I.JUDUL PRAKTIKUM : RECORD
2.TUJUAN PRAKTIKUM :
1.Mengetahui apa itu Record
2.Mengetahui cara penggunaan dan kegunaan record
3.Dapat membuat program sederhana dengan record

III.DASAR TEORI
Record
Record dapat dikatakan sebagai suatu kumpulan data item yang masing-masing mempunyai jenis data berbeda.
Data item yang merupakan elemen record biasanya disebut dengan FIELD.
Cara Mendeklarasikan Record
Bentuk umum deklarasi suatu variabel berjenis record adalah sbb :
TYPE identifier = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
……………………..
nama_field_n : jenis;
END;
Contoh :
1. VAR nilai : RECORD
Nilai_1 : integer;
Nilai_2 : integer;

END;
2. TYPE date = RECORD
Tanggal : 1..31;
Bulan : 1…12;
Tahun : 1900..2000;
END;
VAR event1,event2 : ARRAY [1..10] OF date;
3. TYPE account = RECORD
cust_no : integer;
cust_type : char;
cust_balance : real;
END;
VAR customer : account;
MEMPROSES VARIABEL BERJENIS RECORD
Perhatikan deklarasi variabel berikut :
TYPE nilai : RECORD
Nilai1 : real;
Nilai2 : real;
END;
VAR x,y : nilai;
Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan field designatornya, yg terdiri dari atas :
Nama_record.nama_field
Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah :
x.nilai1
x.nilai2
y.nilai1
y.nilai2
Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah :
READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);
Selanjutnya, misal ingin dibuat program sederhana untuk menjumlahkan dua bilangan kompleks a dan b yang hasilnya disimpan di c.
Secara aljabar penjumlahan dua bilangan kompleks adalah sebagai berikut :
a = x1 + iy1
b = x2 + iy2 +
c = (x1 + x2 ) + I(y1 + y2)
Maka bentuk garis besar programnya adalah sebagai berikut :
Program contoh ;
Type bk = record
Bag_nyata : integer;
Bag_imajiner : integer;
End;
Var a,b,c : bk;
Begin
Read (a.bag_nyata, a.bag_imajiner, b.bag_nyata, b.bag_imajiner);
c.bag_nyata := a.bag_nyata + b.bag_imajiner;
c.bag_imajiner := a.bag_imajiner + b.bag_imajiner;
writeln(c.bag_nyata,’ +’,’i’,c.bag_imajiner);
End.
STATEMENT “WITH”
Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement WITH.
Dengan statement ini penulisannya akan lebih sederhana.
Halaman : 2Pemrograman PASCAL : Record & Set
Bentuk Umum penulisan statement WITH ini adalah :
WITH nama_record DO statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD
No : integer;
Kode : char;
Juml : integer;
Harga : real;
END;
VAR p,q : x;
Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya menjadi :
WITH p,q DO read (no, kode, juml, harga);
Bandingkan jika digunakan cara sebelumnya :
Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);
CONTOH :
Pernyataan seperti :
Data.npm :=‘22297566’
Data.Nama:=‘Abdul Kadir’
Data.Fakultas:=‘Teknik’
Dapat diganti dengan :
WITH Data Do
Begin
npm :=‘22297566’
Nama:=‘Abdul Kadir’
Fakultas:=‘Teknik’
end;
Apabila di dalam pernyataan WITH terdapat lebih dari satu record, haruslah pada kedua record tersebut tidak ada field dengan nama yang sama. Sebagai contoh :
Type
BarangX=RECORD
Batu:integer;
Kayu:real;
END;
BarangY=RECORD
Halaman : 3Pemrograman PASCAL : Record & Set
Batu:string[10];
Kayu:char;
END;
Var
brg_X:barangX;
brg_Y:barangY;
Karena kedua variabel record brg_X dan brg_Y memiliki nama field yang sama, Jika misalnya kemudian dikenakan pernyataan :
WITH brg_X, brg_Y Do
Begin
writeln(batu);
writeln(kayu);
End;
dapat menyebabkan hasil tidak seperti yang diharapkan.
Record yang Bervariasi
Yaitu suatu record dengan field yang bisa berubah pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwa beberapa field yang berada dalam
record tidak pernah muncul dalam serempak, hanya akan ada satu field yang terpakai dalam satu saat.
Record varian akan memberikan fasilitas untuk menentukan field yang diperlukan pada saat program berjalan (RUN-TIME), berdasarkan keperluannya.
Bentuk umum Record Varian :
TYPE namarecord = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
nama_field_n : jenis;
Case Tagfield:jenis Of
nama_tagfield : (Nama_field:jenis);
nama_tagfield : (Nama_field_1, Nama_field_2:jenis);
……………………..
nama_tagfield : (Nama_field_n:jenis);
END;
Contoh :
Type status=(T,P,J);
gaji=RECORD
napeg :string[25];
nopeg :string[10];
bagian :string[15];
CASE stat :status OF
T:(gaji:integer);
P:(gajiperjam,jmlmax:integer);
J:(upahperjam,lembur:integer);
end;
Halaman : 4Pemrograman PASCAL : Record & Set
Array tipe record
type barang=RECORD
namabrg:string[20];
jmlbrg:byte;
hargabrg:real;
total:real;
end;
var jual:array [1..10] of barang
i,j:integer;
tot1:real;
Begin
I:=1;
write(‘Nama barang :’);readln(jual[i].nmbrg);
Repeat
write(‘Jumlah barang :’);readln(jual[i].jmlbrg);
write(‘Harga barang :’);readln(jual[i].hrgbrg);
jual[i].total:=jual[i].jmlbrg* jual[i]. jual[i].hrg.brg;
inc (I);
write(‘Nama barang :’);readln(jual[i].nmbrg);
until (jual[i].nmbrg=‘0’) or (I=11);
dec(i);
clrscr;
writeln (‘------------------------------------------------------------’);
writeln (‘No nama barang jumlah harga total’);
writeln (‘------------------------------------------------------------’);
for j:=1 to I do
begin
gotoxy(1,j+3);write (j);
gotoxy(5,j+3);write(jual[i].nmbrg);
gotoxy(26,j+3);write(jual[i].jmlbrg:10);
gotoxy(37,j+3);write(jual[i].hrgbrg:10:2);
gotoxy(48,j+3);write(jual[i].total:10:2);
tot1:=tot1 + jual[j].total ;
end;
writeln (‘------------------------------------------------------------’);
writeln(‘ Total :’,tot1:10:2’);
writeln (‘------------------------------------------------------------’);
end.
Array dalam record
Type barang= RECORD
nmbrg:string[20];
jmlbrg:array[1..3]of byte;
hrgbrg:real;
total:real;
end;
var jual:barang;
tbarang, i:integer;
Begin
clrscr;
write(‘Nama Barang :’);readln(jual.nmbrg);
for i:=1to 3 do
begin
write(‘Jumlah barang ’,I,’ : ’);readln(jual.jmlbrg[i]);
tbarang:=tbarang+jual.jmlbrg[i];
end;
Halaman : 5Pemrograman PASCAL : Record & Set
write(‘Harga barang :’);readln(jual.hrgbrg);
jual.total:=tbarang*jual.hrgbrg;
writeln(‘Total Harga Barang = ‘, jual.total:10:2);
end.
Coba lihat sendiri perbedaan antara array tipe record dan array dalam record dari dua contoh program di atas !


Daftar Pustaka
http://google.com/Record
Akses:Minggu,11 April 2010,Jam 12.15

http://www.Wikipedia.com/Recor.
Akses : Minggu,11 April 2010, 12.33

Tim Asisten. 2010. Modul Praktikum Pemograman Komputer I. Inderalaya. Unsri
I.JUDUL PRAKTIKUM : RECORD
2.TUJUAN PRAKTIKUM :
1.Mengetahui apa itu Record
2.Mengetahui cara penggunaan dan kegunaan record
3.Dapat membuat program sederhana dengan record




























III.DASAR TEORI
Record
Record dapat dikatakan sebagai suatu kumpulan data item yang masing-masing mempunyai jenis data berbeda.
Data item yang merupakan elemen record biasanya disebut dengan FIELD.
Cara Mendeklarasikan Record
Bentuk umum deklarasi suatu variabel berjenis record adalah sbb :
TYPE identifier = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
……………………..
nama_field_n : jenis;
END;
Contoh :
1. VAR nilai : RECORD
Nilai_1 : integer;
Nilai_2 : integer;

END;
2. TYPE date = RECORD
Tanggal : 1..31;
Bulan : 1…12;
Tahun : 1900..2000;
END;
VAR event1,event2 : ARRAY [1..10] OF date;
3. TYPE account = RECORD
cust_no : integer;
cust_type : char;
cust_balance : real;
END;
VAR customer : account;
MEMPROSES VARIABEL BERJENIS RECORD
Perhatikan deklarasi variabel berikut :
TYPE nilai : RECORD
Nilai1 : real;
Nilai2 : real;
END;
VAR x,y : nilai;
Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan field designatornya, yg terdiri dari atas :
Nama_record.nama_field
Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah :
x.nilai1
x.nilai2
y.nilai1
y.nilai2
Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah :
READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);
Selanjutnya, misal ingin dibuat program sederhana untuk menjumlahkan dua bilangan kompleks a dan b yang hasilnya disimpan di c.
Secara aljabar penjumlahan dua bilangan kompleks adalah sebagai berikut :
a = x1 + iy1
b = x2 + iy2 +
c = (x1 + x2 ) + I(y1 + y2)
Maka bentuk garis besar programnya adalah sebagai berikut :
Program contoh ;
Type bk = record
Bag_nyata : integer;
Bag_imajiner : integer;
End;
Var a,b,c : bk;
Begin
Read (a.bag_nyata, a.bag_imajiner, b.bag_nyata, b.bag_imajiner);
c.bag_nyata := a.bag_nyata + b.bag_imajiner;
c.bag_imajiner := a.bag_imajiner + b.bag_imajiner;
writeln(c.bag_nyata,’ +’,’i’,c.bag_imajiner);
End.
STATEMENT “WITH”
Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement WITH.
Dengan statement ini penulisannya akan lebih sederhana.
Halaman : 2Pemrograman PASCAL : Record & Set
Bentuk Umum penulisan statement WITH ini adalah :
WITH nama_record DO statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD
No : integer;
Kode : char;
Juml : integer;
Harga : real;
END;
VAR p,q : x;
Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya menjadi :
WITH p,q DO read (no, kode, juml, harga);
Bandingkan jika digunakan cara sebelumnya :
Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);
CONTOH :
Pernyataan seperti :
Data.npm :=‘22297566’
Data.Nama:=‘Abdul Kadir’
Data.Fakultas:=‘Teknik’
Dapat diganti dengan :
WITH Data Do
Begin
npm :=‘22297566’
Nama:=‘Abdul Kadir’
Fakultas:=‘Teknik’
end;
Apabila di dalam pernyataan WITH terdapat lebih dari satu record, haruslah pada kedua record tersebut tidak ada field dengan nama yang sama. Sebagai contoh :
Type
BarangX=RECORD
Batu:integer;
Kayu:real;
END;
BarangY=RECORD
Halaman : 3Pemrograman PASCAL : Record & Set
Batu:string[10];
Kayu:char;
END;
Var
brg_X:barangX;
brg_Y:barangY;
Karena kedua variabel record brg_X dan brg_Y memiliki nama field yang sama, Jika misalnya kemudian dikenakan pernyataan :
WITH brg_X, brg_Y Do
Begin
writeln(batu);
writeln(kayu);
End;
dapat menyebabkan hasil tidak seperti yang diharapkan.
Record yang Bervariasi
Yaitu suatu record dengan field yang bisa berubah pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwa beberapa field yang berada dalam
record tidak pernah muncul dalam serempak, hanya akan ada satu field yang terpakai dalam satu saat.
Record varian akan memberikan fasilitas untuk menentukan field yang diperlukan pada saat program berjalan (RUN-TIME), berdasarkan keperluannya.
Bentuk umum Record Varian :
TYPE namarecord = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
nama_field_n : jenis;
Case Tagfield:jenis Of
nama_tagfield : (Nama_field:jenis);
nama_tagfield : (Nama_field_1, Nama_field_2:jenis);
……………………..
nama_tagfield : (Nama_field_n:jenis);
END;
Contoh :
Type status=(T,P,J);
gaji=RECORD
napeg :string[25];
nopeg :string[10];
bagian :string[15];
CASE stat :status OF
T:(gaji:integer);
P:(gajiperjam,jmlmax:integer);
J:(upahperjam,lembur:integer);
end;
Halaman : 4Pemrograman PASCAL : Record & Set
Array tipe record
type barang=RECORD
namabrg:string[20];
jmlbrg:byte;
hargabrg:real;
total:real;
end;
var jual:array [1..10] of barang
i,j:integer;
tot1:real;
Begin
I:=1;
write(‘Nama barang :’);readln(jual[i].nmbrg);
Repeat
write(‘Jumlah barang :’);readln(jual[i].jmlbrg);
write(‘Harga barang :’);readln(jual[i].hrgbrg);
jual[i].total:=jual[i].jmlbrg* jual[i]. jual[i].hrg.brg;
inc (I);
write(‘Nama barang :’);readln(jual[i].nmbrg);
until (jual[i].nmbrg=‘0’) or (I=11);
dec(i);
clrscr;
writeln (‘------------------------------------------------------------’);
writeln (‘No nama barang jumlah harga total’);
writeln (‘------------------------------------------------------------’);
for j:=1 to I do
begin
gotoxy(1,j+3);write (j);
gotoxy(5,j+3);write(jual[i].nmbrg);
gotoxy(26,j+3);write(jual[i].jmlbrg:10);
gotoxy(37,j+3);write(jual[i].hrgbrg:10:2);
gotoxy(48,j+3);write(jual[i].total:10:2);
tot1:=tot1 + jual[j].total ;
end;
writeln (‘------------------------------------------------------------’);
writeln(‘ Total :’,tot1:10:2’);
writeln (‘------------------------------------------------------------’);
end.
Array dalam record
Type barang= RECORD
nmbrg:string[20];
jmlbrg:array[1..3]of byte;
hrgbrg:real;
total:real;
end;
var jual:barang;
tbarang, i:integer;
Begin
clrscr;
write(‘Nama Barang :’);readln(jual.nmbrg);
for i:=1to 3 do
begin
write(‘Jumlah barang ’,I,’ : ’);readln(jual.jmlbrg[i]);
tbarang:=tbarang+jual.jmlbrg[i];
end;
Halaman : 5Pemrograman PASCAL : Record & Set
write(‘Harga barang :’);readln(jual.hrgbrg);
jual.total:=tbarang*jual.hrgbrg;
writeln(‘Total Harga Barang = ‘, jual.total:10:2);
end.
Coba lihat sendiri perbedaan antara array tipe record dan array dalam record dari dua contoh program di atas !


Daftar Pustaka
http://google.com/Record
Akses:Minggu,11 April 2010,Jam 12.15

http://www.Wikipedia.com/Recor.
Akses : Minggu,11 April 2010, 12.33

Tim Asisten. 2010. Modul Praktikum Pemograman Komputer I. Inderalaya. Unsri

Pernyataan Kondisi dalam turbo Pascal

I. JUDUL PRAKTKUM: PERNYATAAN KONDISI DALAM TURBO PASCAL
II. TUJUAN PRAKTIKUM:
1. Untuk mengetahui jenis-jenis pernyataan kondisi yang ada pada program pascal.
2. Agar dapat melakukan penyeleksian kondisi pada bahasa pemograman pascal.
3. Mengetahui apa yang dimaksud dengan penyeleksian kondisi.
4. Mengetahui statement yang digunakan dalam pascal untuk melakukan penyeleksian suatu kondisi.


III.DASAR TEORI
Percabangan I : If ….. Then …. Else …..
Pernyataan percabangan/kendali/bersyarat merupakan pernyataan yang akan mengeksekusi suatu pernyataan yang mengikutinya bila suatu persyaratan dipenuhi. Salah satu pernyataan kendali untuk pengambilan keputusan dalam Pascal adalah pernyataan If … Then … Else …

Bentuk umum :

IF kondisi THEN
Statemen 1
ELSE
Statemen 2
dimana :
kondisi : ungkapan boolean yang menghasilkan nilai benar atau salah statemen 1, statemen 2 : pernyataan-pernyataan tunggal/majemuk. Dalam Pascal, pernyataan majemuk adalah kumpulan dari beberapa pernyataan yang diawali dengan kata baku BEGIN dan diakhiri oleh kata baku END, yang dianggap sebagai sebuah pernyataan tunggal.
Maksudnya : bila kondisi bernilai TRUE (benar) maka akan dikerjakan statemen 1 dan statemen 2 dilewati, sedangkan jika kondisi bernilai FALSE (salah) maka akan dikerjakan statemen 2 dan statemen 1 dilewati.
Untuk pernyataan IF yang berkalang (ada pernyataan IF yang lain dalam pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum dan yang paling dekat dengan ELSE tersebut, serta terletak dalam blok pernyataan yang sama.
Contoh 1 : Program untuk mencari akar persamaan kuadrat di bawah ini
Program PersamaanKuadrat;
uses crt;
var a,b,c,d,x1,x2 :real;
begin
clrscr;
writeln('Menghitung akar-akar persamaan kuadrat');
writeln('Nilai a,b,c dimasukkan dengan jeda spasi');
write('Masukkan nilai a,b,c:');
readln(a,b,c);
d:=b*b-4*a*c;
if d<0 then writeln('tidak ada akar real') else begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); writeln('x1 =',x1:6:2); writeln('x2 =',x2:6:2); end; readln; end. Contoh Hasil Eksekusi : - jika d = 0 Menghitung akar-akar persamaan kuadrat Nilai a,b,c dimasukkan dengan jeda spasi Masukkan nilai a,b,c:1 4 2 x1 = -0.59 x2 = -3.41 - jika d < 0 : Menghitung akar-akar persamaan kuadrat Nilai a,b,c dimasukkan dengan jeda spasi Masukkan nilai a,b,c:1 2 6 tidak ada akar real Catatan : 1. Di dalam IF boleh ada IF (pernyataan IF yang berkalang) 2. Jika diinginkan kondisi = FALSE tidak mengerjakan apa-apa, maka ELSE tidak perlu dituliskan. 3. Pernyataan ELSE tidak diakhri dengan ; (titik koma) begitu pula baris pernyataan sebelum ELSE. Percabangan II : Case ….. Of ….. Pernyataan CASE …. OF …. Digunakan untuk pengambilan keputusan jika terdapat lebih dari dua alternatif jawaban yang tersedia. Bentuk umum : CASE ungkapan OF Label 1 : Statemen 1 Label 2 : Statemen 1 ……….. ……….. ……….. Label n : Statemen n END; dimana : ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil integer, char, boolean atau tipe terbilang (kecuali real). Label : konstanta yang mempunyai tipe yang sama dengan ungkapan Statemen : pernyataan yang mengikuti berupa rangkaian instruksi yang harus dikerjakan jika nilai konstanta dalam label sama dengan nilai variable Maksudnya jika ungkapan bernilai label 1, maka dikerjakan statemen1, jika bernilai label 2 akan dikerjakan statemen 2 dan seterusnya. Pernyataan CASE …. OF …. boleh diikuti ELSE. Perlu diketahui, ELSE dalam pernyataan CASE …. OF …. Hanya bersifat pilihan, dalam artian boleh disertakan boleh tidak. Jika ELSE disertakan, pernyataan yang mengikuti ELSE akan dieksekusi hanya bila nilai dari syarat-pemilih tidak ada dalam semua label. Struktur case of mempunyai suatu ungkapan logika yang dapat disebut selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mana mempunyai tipe yang sama dengan selector.Statemn yang mempunyai case label yang bernilai sama dengan nilai selector akan diproses sedangkan statemen yang lainnya tidak. Perbedaan dengan struktur if adalah apabila statemen if menyeleksi suatu kondisi dan sudah terpenuhi ,setelah memproses statemen dalam lingkungan yang sudah terpenuhi tersebut,proses penyeleksian masih dilakukan terhadap statemen if berikutny yang lain.Sedangakan pada struktur case of apabila salah satu kondisi terpenuhi (nilai case label sama dengan nilai selector) dan statemen tersebut sudah diproses,selanjutnya statemen-statemen yang lainnya dalam lingkungan case tidak akan diseleksi lagi. Struktur Case….-Of…Else Adalah pengembangan dari struktur Case-Of….dan uga merupakan pengembangn dari standard pascal.Pada Struktur case of apabila tida ada kondisi yang terpenuhi maka tidak ada statemen didalam lingkungan case-of yang sudah diprosesnya.Dengan struktur Case-Of …Else,apabila tidak ada kondisi yang terpenuhi ,maka statemen didalam lingkungan case of adalah statemen yang da di Else. Contoh 1 :Program nilai_ujian; uses crt;l var nama : string[25]; nim : string[8]; nilai: integer; begin clrscr; write('Masukkan nama mahasiswa : '); readln(nama); write('Masukkan nomor induk mahasiswa : '); readln(nim); write('Masukkan nilai ujian : '); readln(nilai); writeln; case nilai div 10 of 10,9 : writeln('Nilai huruf = A'); 8 : writeln('Nilai huruf = B'); 7 : writeln('Nilai huruf = C'); 6 : writeln('Nilai huruf = D'); 5,4,3,2,1,0 : writeln('Nilai huruf = E'); end; readln; end. Contoh 2 : Program konversi; uses crt; var menit, jam, kaki, meter, fahrenheit, celcius : real; pilihan :char; begin clrscr; writeln('Pilihan konversi:'); writeln('1) Menit ke jam'); writeln('2) Kaki ke meter'); writeln('3) Derajat Fahrenheit ke Celcius'); write('pilihan ? '); readln(pilihan); case pilihan of '1' : begin write('menit= '); readln(menit); jam:=menit/60; writeln('nilai ini sama dengan ',jam:4:1,' jam'); readln; end; '2' : begin write('kaki= '); readln(kaki); meter:=0.3048*kaki; writeln('nilai ini sama dengan ',meter:4:1,' meter'); readln; end; '3' : begin write('Derajat Fahrenheit = '); readln(fahrenheit); celcius:=5/9*(fahrenheit-32); writeln('nilai ini sama dengan ',Celcius:4 :1,' Celcius'); readln; end; else writeln('Tidak melakukan konversi'); end; end. Pernyataan Bercabang Pernyataan bercabang yaitu sebuah pernyataan berkondisi dimana terdapat satu atau lebih kondisi dan terdapat lebih dari satu ekpresi yang akan dilakukan terhadap hasil kondisi yang disyaratkan. Penjelasannya, bila sebuah kondisi terpenuhi maka program akan program akan melakukan ekspresi 1 dan bila tidak terpenuhi maka program akan melakukan ekspresi lain. Kondisi dalam pernyataan bercabang dapat lebih dari satu. Sintaksnya ditulis sebagai berikut: #Pernyataan dengan dua kondisi If [kondisi] then [ekspresi_1] else [ekspresi_2]; #Pernyataan dengan tiga kondisi If [kondisi_1] then [ekspresi_1] else if [kondisi_2] then [ekspresi_2] else [ekspresi_3]; #Pernyataan dengan labih dari tiga kondisi If [kondisi_1] then [ekspresi_1] Else if [kondisi_2] then [ekspresi_2] …… Else if [kondisi_n] then [ekspresi_n] Else [ekspresi_(n+1)]; Langsung saja kita berikan contoh sebagai berikut: Pernyataan dengan dua kondisi Akan diminta sebuah input dari user, user akan diminta memasukkan nilai kuliahnya. Bila nilai yang dimasukkan lebih dari 50 maka ia dinyatakan lulus, dan sebaliknya bila kurang dari itu maka ia dinyatakan tidak lulus. Programnya dapat dibuat kurang lebih sebagai berikut: uses crt; var input:integer; begin write(’Masukkan nilai anda : ‘);readln(input); if input>50 then writeln(’anda lulus’)
else writeln(’maaf anda belum lulus..silahkan mendalami lagi’);
readln;
end.
Pada program diatas, program terdapat dua kondisi, yaitu dimana kondisi nilai “input>50” terpenuhi atau bernilai true, dan kondisi bernilai false atau tidak terpenuhi. Pernyataan ‘lulus’ akan dilakukan bila kondisi nilai>50 terpenuhi, dan bila kondisi tersebut tidak terpenuhi maka akan dimunculkan pernyataan ‘tidak lulus’.
Pernyataan dengan lebih dari dua kondisi
Pada kasus dengan tiga kondisi ini, yaitu terdapat syarat pertama yang harus dipenuhi, syarat kedua yang terpenuhi, syarat ketiga dan seterusnya yang terpenuhi, atau tidak ada syarat yang terpenuhi. Untuk tiga kondisi diatas maka akan dilakukan ekspresi sesuai kondisinya. Pada struktur percabangan, syarat kedua akan dijalankan bila syarat pertama tidak terpenuhi. Bila syarat pertama sudah terpenuhi, maka program akan keluar dari blok percabangan. Begitupun selanjutnya, syarat ketiga dan seterusnya baru akan dijalankan bila syarat sebelumnya tidak terpenuhi, dan bila syarat terpenuhi maka kondisi selanjutnya diabaikan.
Contoh program akan ditampilkan sebagai berikut: Akan dimasukkan tiga buah bilangan dari keyboard. Dari tiga buah bilangan tersebut akan ditentukan mana bilangan yang terbesar.
uses crt; var a,b,c,max:integer;
begin write(’bilangan pertama : ‘);readln(a); write(’bilangan kedua : ‘);readln(b);
write(’bilangan ketiga : ‘);readln(c);
if (a>b)and(a>c) then max:=a else
if (b>a)and(b>c) then max:=b else
max:=c;
writeln(’bilangan terbesar adalah ‘,max);
readln; end.
Perhatikan program diatas, pada baris ke tujuh program akan memeriksa apakah a merupakan bilangan terbesar atau bukan. Untuk mengetahui apakah a merupakan bilangan terbesar atau bukan maka nilai a haruslah dibandingkan dengan kedua nilai yang lain yaitu b, dan c. Bila salah satu dari nilai b atau c tidak lebih besar dari a, maka dipastikan a bukanlah bilangan terbesar. Hal ini juga akan dilakukan pada nilai yang lain, bila ternyata nilai b juga diketahui bukan nilai yang terbesar maka dapat dipastikan juga bahwa c adalah nilai yang terbesar.
Catatan: pada kasus ini diasumsikan tidak ada nilai yang sama. Untuk kasus dengan terdapat dua nilai yang sama, agak mirip, namun bila pada proses terdapat dua nilai terbesar yang sama maka dianggap salah satunya adalah nilai terbesar.

Pernyataan Perulangan

I.JUDUL PRAKTIKUM : PERNYATAAN PERULANGAN
II.TUJUAN PRAKTIKUM :
1.Mengetahui apa itu pernyataan perulangan
2.Mengetahui Macam-macam dari perulangan
3.Dapat menjelaskan perbedaan dari tiap perulangan
4.Dapat membuat program sederhana dari pernyataan perulangan




























III.DASAR TEORI
Apa yang anda lakukan apabila akan membuat program yang mencetak kata”Hallo” hingga 10X?Tulis sebanyak 10x pula!Anda benar,tapi apabila hingga 1000x apakah anda akan mnuliskannya hingga 1000x pula?Tentu akan merepotkan jika melakuannya dan membuat program anda terlampau besar.
Perulangan (Loop) merupkan bentuk yang sering ditemui dalam suatu program aplikasi.
Struktur Pengulangan:
Strukturpengulangan terdiri atas dua bagian”:
1.kondisi pengulangan,yaitu ekspresi Boolean yang harus dipenuhi untuk melaksanakan pengulangan.Kondisi ini ada yang dinyatakan secara eksplisit oleh pemrogram atau dikelola sendiri oleh computer (Implisit).
2.Badan (Body) pengulangan,yaitu satu atau lebih aksi yang akan diulang.
Secara alamiah,suatu proses bisa berupa proses berurutan dari awal hingga selesai,pilihan berdsarkan kondisi tertentu atau pengulangan berdasarkan batasan tertentu pula.Pascal menyediakan beberapa konstruksi perintah untuk melakukan proses-proses itu,yaitu:
A. Pernyataan for
Pernyataan pengulangan yang paling sering digunakan adalah for. Pernyataan ini digunakan jika kita telah mengetahui berapa kali kita akan mengulang satu atau beberapa pernyataan. Bentuk umum pernyataan for adalah sebagai berikut:
for pencacah := nilai_awal to nilai_akhir do Begin
(pernyataan-pernyataan yang akan diulang)
end;
Sekedar tambahan, blok berisi pernyataan-pernyataan yang harus diulang sering disebut juga kalang (loop).
1. Pernyataan For Positif
Bentuk Umumnya:
For indeks := Nilai awal to nilai akhir do
Begin
Statemen 1
Statemen 2
Statemen 3
……….
Statemen n
End;
Contoh :
Perulangan positif untuk satu statement :
uses wincrt;
var
i : integer;
begin
for i := 1 to 5 do
writeln ('Belajar Pemrograman’); readln;
end.
Maka bila program diatas dicompile Hasilnya :
Belajar pemrograman
Belajar pemrograman
Belajar pemrograman
Belajar pemrograman
Belajar pemrograman
Penjelasan: Berati statemen Belajar pemrogramanakan diulang sebanyak 5 kali yaitu dengan menghitung nilai i dari i ke1 sampai nilai i
terakhir yaitu i ke 5.
2. Pernyataan For Negatif Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke kecil. Statement yang digunakan adalah For-DownTo-Do Bentuk umumnya:
For indeks:=nilai akhir to nilai awal do
Begin
Statemen 1
Statemen 2
Statemen 3
………..
Statemen n
End;
contoh:
uses wincrt;
var
i : integer;
begin
for i := 10 downto 1 do write (i:3);
end.

Hasil :
10 9 8 7 6 5 4 3 2 1
B. Pernyataan for bersarang
Kita juga bisa menuliskan pernyataan for di dalam penyataan for. Kontruksi semacam ini sering disebut dengan penyataan for bersarang. Perhatikan contoh berikut:
for x := 1 to 3 do
for y :=1 to 2 do
writeln (x, ‘ ‘ y);
Looping for yang luar (dengan pencacah variabel x)akan menjalankan looping yang dalam (dengan pencacah y) sebanyak 3 kali. Dan pada setiap pengulangan di layar akan dituliskan nilai x dan y. Berikut ini adalah keluaran dari program di atas:
1 1
1 2
2 1
2 2
3 1
3 2
Pada saat x bernilai 1, y diulang sebanyak 2 kali.Jadi pada layar akan tertulis 1 1 dan 1 2. Demikianjuga pada saat x bernilai 2, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 2 1 dan 2 2. Hal yang sama terjadi pada saat x bernilai 3, y diulang
sebanyak 2 kali. Sehingga pada layar tertulis 3 1dan 3 2.
C. Pernyataan while-do
Pernyataan pengulangan ini biasanya digunakan bila kita belum tahu pasti berapa banyak kita akan mengulang pernyataan-pernyataan. Berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih Terpenuhi, pengulangan akan terus dilakukan.Statemen While….do digunakan untuk melakukan proses pengulangan suatu statemen atau blok statemen secara terus menerus selama kondisi ungkapan logika pada while masuh terpenuhi.
Bentuk umum pernyataan pengulangan while adalah sebagai berikut:
Whiledo
Begin
Statemen 1
Statemen 2
Statemen 3
…………
Statemen n
end;
kondisi sendiri merupakan suatu ekspresi bertipe Boolean, artinya hanya dapatbernilai benar (true) atau salah (false).
Contoh:
while (x > 0) do
begin
x := x - 1;
y := y - 1;
end;
Program ini akan mengulang dua pernyataan :
(x := x - 1) dan (y := y - 1) selama nilai x masih positif.
D. Perulangan While - Do tersarang
Perulangan While - Do tersarang (nested While - Do) merupakan perulangan While - Do yang satu di dalam perulangan While - Do yang lainnya.
Contoh :
uses wincrt;
var
a, b : integer;
begin
clrscr;
a:=1;
b:=1;
while a < 4 do {loop selama a masih lebih kecil dari 4} begin a := a + 1; while b < 3 do {loop selama b masih lebih kecil dari 3} begin write (a:3,b:2); b:=b+1; end; end; readln; end. E. Pernyataan repeat……until Pernyataan pengulangan ini hampir sama dengan pernyataan pengulangan while, dan biasanya digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis. Adapun perbedaan antara struktur Repeat…..Until dengan struktur While-Do adalah: a.Paling sedikit statemen-statemen didalam perulangan Repeat…Until diproses sekali,karena seleksi kondisi ada pada statemen until yang terletak dibawah.Sedangkan pada struktur While-do paling sedikit dikerjakan nol kali,karena seleksi kondisi ada pada statemen yang terletak diatas,sehingga apabila kondisi sudah tidak terpenuhi maka tidak akan masuk kedalam lingkungan perulangan. b.Pada Repeat…Until dapat tidak dipergunakan blok statemen (Tidak diperukan begin dan End untuk menunjukkan batas perulangannya),karene batas perulangannya sudah ditunjukkan Repeat samapi dengan Until (Repeat dan Until sebagai pengganti Begin dan End). pernyataan repeat..until mengulang pernyataan selam kondisi belum terpenuhi. Bentuk umum penyataan repeat..until adalah sebagai berikut: Repeat Statemen 1 Statemen 2 Statemen 3 ………… Statemen n Until
Contoh :
repeat
x := x - 1;
y := y - 1;
until (x <= 0); Program ini akan mengulang dua pernyataan (x := x - 1) dan (y := y - 1) sampai nilai x lebih kecil atau sama dengan 0. F. Repeat - Until tersarang Repeat - Until tersarang adalah suatu perulangan Repeat - Until yang satu berada didalam perulangan Repeat - Until yang lainnya. Contoh : uses wincrt; var a,b,c : real; begin writeln('========================================'); writeln(' sisi a sisi b sisi c '); writeln('========================================'); a := 1; repeat { perulangan luar } b := 0; repeat { perulangan dalam } c := sqrt (a * a + b * b); writeln (a:6:2, b:9:2, c:9:2); b := b + 5; until b > 25; { berhenti jika b lebih besar dari 5 untuk perulangan dalam }
a := a + 1;
until a > 3; { berhenti jika a lebih besar dari 3 untuk
perulangan luar }
writeln('========================================');
end.
Rangkuman :
1. Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memungkinkan kita untuk menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja.
2. Ada beberapa pernyataan perulangan :
a. Pernyataan for
b. Pernyataan for bersarang
c. Pernyataan while do
d. Pernyataan while do bersarang
e. Pernyataan repeat until
f. Pernyataan repeat until bersarang



Daftar Pustaka

http://google.com/Pernyataan Perulangan.doc
Akses:Minggu,21 Maret 2010,Jam 10.15

http://www.Maxzum.blogspot.com/pengulangan.
Akses : Minggu,21 Maret 2010, 10.08

Tim Asisten. 2010. Modul Praktikum Pemograman Komputer I. Inderalaya. Unsri

Pengenalan Dasar Turbo Pascal

III.DASAR TEORI
Konsep Dasar Bahasa Pascal
I. Struktur Dan Komponen Dasar Program Pascal.
Struktur dari suatu program Pascal terdiri dari sebuah judul program dan suatu
blok program atau badan program. Badan program dibagi lagi menjadi dua bagian, yaitu
bagian deklarasi dan bagian pernyataan (statement).
A. Struktur program :
Judul Program PROGRAM nama-program;
Blok Program
Bagian deklarasi
deklarasi label LABEL nama-label;
deklarasi konstanta CONST…………..;
deklarasi tipe TYPE …………….;
deklarasi variable VAR ……………...;
deklarasi prosedur PROCEDURE nama-prosedur;
……………………………….;
deklarasi fungsi FUNCTION nama-fungsi;
………………………….;
Bagian Pernyataan
Begin
(statement)
…………;a
…………;
end.
Contoh : Menghitung perkalian dua bilangan bulat
PROGRAM Perkalian {Judul}
VAR A,B,Hasil : Integer; {Deklarasi variabel}
BEGIN
A := 2; {Statemant}
B := 1; {Statemant}
Hasil := A + B; {Statement}
Writeln (A,B,Hasil); {Statement}

END.
Judul program sifatnya adalah optional, dan bila ditulis, harus terletak pada awal dari
program dan diakhiri dengan titik koma.
Bagian deklarasi digunakan bila di dalam program digunakan pengenal ( identifier).
Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Kalau suatu
program menggunakan identifier, Pascal menuntut supaya identifier tersebut
diperkenalkan terlebih dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu
pada bagian ini.
Beberapa aturan dalam program Pascal :
• Akhir sebuah program Pascal ditandai dengan tanda baca titik (.) setelah END yang paling akhir.
• Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.
Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk koma (;)
• Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }
B. Statement (pernyataan)
Adalah instruksi atau gabungan instruksi, yang menyebabkan komputer
melakukan aksi.
Type statement dalam Pascal terdiri atas :
1. Sederhana :
- menandai sebuah item data ke sebuah variabel (assigment statement)
contoh : X := Y * 2
- pemanggilan procedure dan goto statement
2. Terstruktur:
- Compound Statement
contoh : Begin
y := 2+1;
write (y);
End.
- Repetitive Statement
contoh : For I := 1 to 10 do
write (‘test’);
- Conditional Statement
contoh : If x > 10 then write (‘belajar turbo pascal’)
else write (‘saya tidak belajar turbo pascal’) ;
B. Komponen Dasar Program Pascal
Pola susun bahasa Pascal dibentuk dengan menggunakan komponen bahasa
pemrograman yang umum, yaitu :
1. Simbol Dasar
2. Reserved Word (kata pasti)
3. Identifier (penyebut)
1. Simbol Dasar.
Simbol dasar terdiri atas :
1. Simbol huruf, yaitu huruf A sampai dengan Z atau a sampai dengan z.
(huruf besar dan kecil).
2. Simbol angka atau digit yaitu : 0,1,2,3,4,5,6,7,8,9.
3. Simbol khusus, yaitu
+ - * / ; := , ‘ = < > <= >= <> : { } ( ) [ ]
2. Reserved Word (kata pasti)
Reserved Word adalah suatu kata yang secara mutlak tidak boleh diartikan lain dan
harus digunakan sebagaimana yang telah didefinisikan atau ditentukan kegunaanya
oleh bahasa Pascal. Reserved word ini tidak boleh didefinisikan ulang oleh pemakai,
sehingga tidak dapat dipergunakan sebagai pengenal (identifier)
Reserved Word ini jumlahnya berbeda untuk masing-masing bahasa Pascal.
Contoh beberapa reserved word yang telah didefinisikan oleh bahasa pascal antara
lain
AND ELSE LABEL SET
ARRAY END OF TYPE
BEGIN FUNCTION OR UNTIL
CASE FOR PROCEDUREVAR
CONST GOTO PROGRAM WHILE
DO IF RECORD WITH
DOWNTO IN REPEAT dsb
3. Identifier (sebutan/pengenal)
Identifier merupakan sebuah kata yang digunakan sebagai nama atau sebutan
terhadap sesuatu didalam program. Pemakai dapat mendefinisikan sendiri suatu nama
sebagai identifier.
Identifier ini terdiri atas :
1. Identifier Standar, yaitu identifier yang telah didefinisikan oleh bahasa pascal.
Contoh dari Identifier standar ini antara lain:
ABS LN
ARCTAN ODB
BOOLEAN PRED
CHAR ROUND
CHR READ
COS READLN
EOF SQR
EOLN SQRT
EXP SUCC
2. Identifier Non Standar; yaitu identifier yang didefinisikan oleh pemakai bahasa
pascal; misalnya;
3. nama suatu program
4. nama suatu konstanta
5. nama suatu variabel
6. nama suatu procedure
Identifier ini bebas, tetapi dengan ketentuan-ketentuan sebagai berikut :
7. terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa
huruf. Huruf besar dan huruf kecil dianggap sama.
8. Tidak boleh mengandung blank.
9. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah.
10. Panjangnya bebas, tetapi hanya 63 karakter pertama yang dianggap signifikan.
Contoh :
Identifier Keterangan
NasiBungkus Benar
Belajar_Pascal Benar
NO2 Benar
1_dua Salah, karakter pertama harus huruf
Andi&tono Salah, tidak boleh mengandung simbol khusus
Penjuanglan bar Salah, tidak boleh mengandung spasi
II. Jenis – jenis data
Jenis – jenis data yang dikenal dalam bahasa pascal antara lain yaitu:
1. Jenis data sederhana
a. Jenis data yang standar; yaitu :
• Integer
• Real
• Karakter
• Boolean
b. Jenis data yang non standar (user defined), yaitu;
• Enumerated
• Sub-range
2. Jenis data berstuktur, yaitu:
a. Array
b. Record
c. Set
d. File
3. Jenis Data Pointer
INTEGER
Jenis data ini terdiri atas integer positif, integer negatif dan nol. Merupakan nilai
bilangan bulat.
Pada TURBO PASCAL jenis data ini di bagi atas beberapa bagian, yaitu :
Tipe Ukuran memori
(dalam byte) Jangkauan nilai
BYTE 1 0..255
SHORTINT 1 -128..127
INTEGER 2 -32768..32767
WORD 2 0..65535
LONGINT 4 -2147483648..2147483647
Operator Integer terdiri atas : + , - , * , / , DIV dan MOD
REAL
Penulisan untuk jenis data ini selalu menggunakan titik desimal. Nilai konstanta numerik
real berkisar dari 1E-38 sampai dengan 1E+38 dengan mantissa yang signifikan sampai
dengan 11 digit. E menunjukkan nilai 10 pangkat. Nilai konstanta numerik real
menempati memori sebesar 6 byte.
Contoh :
123.45
12E5
12E+5
Pada TURBO PASCAL, jenis data ini dibedakan atas :
Tipe Ukuran memori(dalam byte) Jangkauan nilai Digit signifikan
SINGLE 4 1.5x10E-45 .. 3.4x10E38 7-8
DOUBLE 8 5.0x10E-324 .. 1.7x10E308 15-16
EXTENDED 10 1.9x10E-4951 .. 1.1x10E4932 19-20
COMP 8 -2E+63+1 .. 2E+63-1 19-20
Operator untuk jenis data ini terdiri atas : + , - , * dan /
KARAKTER
Yang dimaksud dengan jenis data ini adalah karakter tunggal atau sebuah karakter yang
ditulis diantara tanda petik tunggal, seperti misalnya ‘A’,’a’,’!’,’5’ dsb.
STRING
Nilai data string merupakan urut-urutan dari karakter yang terletak di antara tanda petik
tunggal. Nilai data string akan menenpati memori sebesar banyaknya karakter stringnya
ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak
disebutkan, maka dianggap panjangnya adalah 255 karakter.
Contoh :
Var
Kampus : string[10];
Begin
Kampus := ‘Gunadarma’;
Write(Kampus);
End.
BOOLEAN
Jenis data ini mempunyai nilai TRUE atau FALSE.
Operator untuk jenis data ini adalah :
1. Logical Operator, yaitu : NOT, AND dan OR
2. Relational Operator, yaitu : >, <, >=, <=, <> dan =
JENIS DATA NON-STANDARD (USER DEFINED)
1. ENUMERATED.
Jenis data ini terdiri atas barisan identifier yang terurut dimana setiap identifier
tersebut dianggap sebagai suatu individual data item (elemen data yang berdiri
sendiri).
Pada saat mendeklarasikan jenis data ini kita harus menuliskan semua elemenelemennya.
Bentuk umum deklarasinya adalah :

TYPE nama = (data_item_1, data_item_2, ……., data_item_n);
Contoh :
TYPE hari = (sen,sel,rab,kam,jum,sab,ming);
TYPE warna = (red,blue,green,yellow,black,white);
Setelah jenis data ini dideklarasikan, maka selanjutnya kita dapat mendeklarasikan
suatu variabel yang berjenis data sama dengan jenis data ini.
Misalnya :
TYPE nama_hari = (sen,sel,rab,kam,jum,sab,ming);
VAR libur : nama_hari;
Fungsi standar yang dapat digunakan pada jenis data ini adalah :
PRED, SUCC dan ORD
Misalnya :
PRED (sel) = sen
SUCC (sen) = sel
ORD (sen) = 0
2. SUB-RANGE.
Jenis data ini berupa range dari suatu kumpulan data yang mempunyai urutan..
Bentuk umum deklarasinya adalah :
TYPE nama = data_item_pertama .. data_item_terakhir;
Contoh :
1. TYPE jam_kuliah = 1 .. 10;
tanggal = 1 .. 31;
abjad = ‘A’ .. ‘Z’;
2. TYPE
bulan = (jan,feb,mar,apr,mei,jun,jul,agt,sep,okt,nov,des);
hari = (sen,sel,rab,kam,jum,sab,ming);
ata = agt .. jan;
pta = feb .. jun;
hari_kerja = sen .. jum;
TANDA OPERASI
Tanda operasi (operator) di dalam bahasa Pascal dikelompokkan ke dalam 9 kategori,
yaitu
1. Assignment operator.
2. Binary operator.
3. Unary operator.
4. Bitwise operator.
5. Relational operator.
6. Logical operator.
7. Address operator.
8. Set operator.
9. String operator.
Assignment operator
Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti
oleh tanda sama dengan (:=).
Binary operator
Digunakan untuk mengoperasikan dua buah operand. Operand dapat berbentuk
konstanta ataupun variabel. Operator ini digunakan untuk operasi aritmatika yang
berhubungan dengan nilai tipe data integer dan real.

Operator Operasi Tipe operand Tipe hasil
* Perkalian real,real real
integer,integer integer
real,integer real
DIV Pembagian bulat integer,integer integer
/ Pembagian real real,real real
integer,integer real
real,integer real
MOD Sisa pembagian integer,integer integer
+ Pertambahan real,real real
integer,integer integer
real,integer real
- pengurangan real,real real
integer,integer integer
real,real real

Contoh :
15*5 hasilnya 75
20/3 hasilnya 6.6666666667E+00
20 div 3 hasilnya 6
20 mod 3 hasilnya 2

Unary operator
Operator ini hanya menggunakan sebuah operand saja. Dapat berupa unary minus
dan unary plus. Unary minus digunakan untuk menunjukkan nilai negatif, baik pada
operang numerik real maupun integer. Unaru plus adalah operator untuk memberai tanda
plus.
Contoh :
-5 +7
-2.5 +2.5
Bitwise operator
Digunakan untuk operasi bit per bit pada nilai integer. Terdiri dari operator NOT,
AND, OR, XOR, Shl, Shr.
Relational operator
Relational operator digunakan untuk membandingkan hubungan antara dua buah
operand dan akan didapatkan hasil tipe boolean, yaitu True atau False. Terdiri dari
operator : =, <, >, <=, >=, <>
Logical operator
Terdapat 4 buah logical operator yaitu : NOT, AND, OR dan XOR. Operator ini
bekerja dengan nilai-nilai logika, yaitu True dan False.
Set operator
Digunakan untuk operasi himpunan.
String operator
Digunakan untuk operasi string. Hanya ada sebuah operator string saja, yaitu
operator + yang digunakan untuk menggabungkan dua buah nilai string.
Contoh :
Nama1 := ‘Arief ‘;
Nama2 := ‘Kurniawan’;
Nama3 := Nama1 + Nama2;
2.4. Konstanta, Variabel dan Ekspresi.
Konstanta.
Konstanta adalah suatu identifier non-standar yang nilainya telah ditetapkan dalam suatu
program dan dideklarasikan pada bagian deklarasi.
Bagian umum deklarasinya adalah :
CONST identifier = nilai;
Variabel.
Variabel adalah suatu identifier non-standar yang nilainya tidak tetap atau nilainya
merupakan hasil dari suatu proses.
(variabel yang dimaksudkan disini sama seperti halnya arti variabel pada aljabar).
Bentuk umum deklarasinya adalah :
1. Jika hanya 1 (satu) variabel yang dideklarasikan :
VAR identifier : jenis data;
2. Jika lebih dari 1 (satu) variabel dan masing-masing memiliki jenis data yang sama :
VAR id-1, id-2, …., id-3 : jenis data;
3. Jika beberapa variabel yang berbeda jenis datanya :
VAR identifier-1 : jenis data;
Identifier-2 : jenis data;
.
.
.
identifier-n : jenis data;
4. Jika variabel yang dideklarasikan berjenis data non-standar :
TYPE id = (data_item_1,data_item_2,…,data_item_n);
VAR id-v : id;
SUB-RANGE :
TYPE id = data_item_pertama .. data_item_terakhir;
VAR id-v : id;
Ekspresi.
Sebuah ekspresi merupakan kumpulan dari operand-operand (seperti : bilangan,
konstanta, variabel dll) yang bersama-sama dengan operator membentuk suatu bentuk
aljabar dan menyatakan suatu nilai.
Ada 2 (dua) jenis ekspresi dalam bahasa Pascal, yaitu :
1. Ekspresi numerik / aritmatika, yaitu suatu ekspresi yang menghasilkan nilai
numerik / aritmatika.
2. Ekspresi Boolean atau ekspresi logika, yaitu suatu ekspresi yang menghasilkan
nilai boolean / logika (true/false).
Contoh :
1. (b * b – 4 * a * c) / (2*a) / (2 * a) ekspresi numerik, jika a,b dan c adalah
bilangan (variabel bernilai numerik).
2. Upah < 1000.0 ekspresi boolean (“upah” adalah suatu variabel bernilai real).
Turbo Pascal oleh ipotes
Halaman : 12
2.5. Input dan output (Standar I/O).
Dalam bahasa Pascal untuk keperluan input (membaca input) digunakan identifier
standar READ atau READLN.
Identifier standar ReadLn sedikit berbeda dengan Read. ReadLn digunakan untuk
memasukkan data perbaris, artinya setelah tombol Enter ditekan, maka akan ganti baris,
sedangkan Read tidak ganti baris, masih dalam baris yang sama.
Sedangkan untuk keperluan output (mencetak output) digunakan identifier standar
WRITE atau WRITLN.
Perbedaan Write dengan WriteLn adalah bahwa Write menampilkan hasil tanpa ganti
baris dan tampilan berikutnya akan disambung dalam baris yang sama. Sedang WriteLn
digunakan untuk menampilkan tampilan perbaris, akan ganti baris untuk tampilan
berikutnya.
Bentuk umum penulisannya :
1. READ (variabel input) ;
Atau
READLN (variabel output);

2. WRITE (variabel output);
WRITELN (variabel output);

Procedure And Function

I.JUDUL PRAKTIKUM : PROCEDURE DAN FUNCTION
II.TUJUAN PRAKTIKUM :
1.Mengetahui apa itu procedure
2.Mengtahui apa itu Function
3.mengetahui macam-macam serta kegunaan dari procedure dan function
4.Dapat membuat program sederhana menggunakan procedure dan function



III.DASAR TEORI
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 :
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.
Halaman : 5Pemrograman PASCAL : Procedure & Function
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 riteln(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
la 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 kuantitasHal 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 aritmatika
• 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).


Daftar Pustaka

http://arsyil.deagdigdug.com/2009/06/08/algoritma-dan-pernyataan-array/
Akses:Jumat,02 April 2010,Jam 13.11

http://www.geocities.com/caturujian/PASCAL.doc
Akses : Selasa 16 Maret 2010, 11.08

Tim Asisten. 2010. Modul Praktikum Pemograman Komputer I. Inderalaya. Unsri

Pernyataan Array

I.JUDUL PRAKTIKUM : PERNYATAAN ARRAY
II.TUJUAN PRAKTIKUM :
1.Mengetahui apa itu pernyataan array
2.Mengetahui cara mendeklarasikan Array
3.Mengetahui cara mengakses data array
4.Dapat membuat program sederhana menggunakan pernyataan array


III.DASAR TEORI
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.
Fungsi Array
Sebagai langkah efisiensi penggunan memori komputer,sebab data elemen array dialokasikan pada suatu deretan sel memori tertentu. Hal ini jauh lebih efisien dibandingkan dengan jika kita mendefinisikan masing – masing data pada suatu variabel tersendiri yang pastinya akan banyak menyita memori.
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.
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 Subscript
Array subscript adalah nilai atau expresi (pernyataan) dalam tanda kurung setelah nama array untuk menunjukkan elemen array mana yang harus diakses (indeks).
Contoh :
x[2] 􀃆 2 = array subscript
n=10;
x[n – 8] 􀃆 n – 8 = array subscript
Deklarasi Array Multidimensi
Array dapat pula digunakan untuk menangani kumpulan
data yang memiliki dimensi lebih dari satu, misalnya
untuk penanganan pada matriks.
Bentuk umumnya :
tipe_var nama_var[ukuran 1][ukuran 2] ...
Contoh :
int iMatriks[2][2]={
{10, 2},
{2, 4}};
Mengakses Elemen Array
Untuk dapat mengakses elemen - elemen array sebagian besar sama seperti tipe variabel lainnya, tapi kita harus menyertakan indeksnya yang bisa didapat secara langsung atau menggunakan subscript.
Contoh :
...
int x[2];
x[1]=10;
printf(“%d”, x[1]);
...
Inisialisasi Array
Array dapat diinisialisasi secara langsung pada saat pertama kali dideklarasikan (efisien untuk array berdimensi sedikit).
Contoh :
int x[2]={1, 2};
Array dapat dideklarasikan terlebih dahulu, baru
kemudian diisi elemennya.
Contoh :
int x[2];
x[0]=1;
x[1]=2;
Studi Kasus program dengan Array
a. Hasil ketika form Dijalankan
Gambar 5.1 Form Konversi Tanggal
b. Desain Properties
Object Caption/Text Name
Label 1 Tanggal Label1
Label 2 Bulan Label2
Label 3 Tahun Label3
Label 4 Hari Pada Tanggal tersebut Adalah Label4
GroupBox1 Entry Tanggal Groupbox1
Edit1 - Etgl
Edit2 - Ebln
Edit3 - Etahun
Edit4 - Ehari
Command1 OK bok
c. Listing Program
Program untuk Command OK
procedure TForm12.bhariClick(Sender: TObject);
type
x = string[7];
const
faktorbln : array[1..12] of byte = (0,3,3,6,1,4,6,2,5,0,3,5);
hari : array[0..8] of
x=('Minggu','Senin','Selasa','','Rabu','Kamis','','Jum''at','Sabtu');
var
hr : string;
nama : string[255];
j1,j2,j3,j4 : integer;
tanggal,bulan,tahun : integer;
begin
tanggal := strtoint(etgl.Text);
bulan := strtoint(ebln.Text);
tahun := strtoint(ethn.Text);
if tahun > 1900 then tahun := tahun - 1900;
j1 := trunc(tahun * 365.25);
j2 := j1 + faktorbln[bulan];
if (tahun/4 = int(tahun/4)) and (bulan < 3) then j2 := j2-1; j3 := j2 + tanggal; j4 := trunc(frac(j3/7) * 10); hr := Hari[j4]; ehari.Text := hr; end; Untuk memperoleh informasi dari sekumpulan data dapat dilakukan dengan metode statistik deskriptif. Informasi dari kumpulan data yang diinginkan antara lain: -jumlah -rata-rata -nilai tengah -minimum -maksimum -modus Membuat Array Suatu array dapat dibuat dengan menggunakan konstruksi array. Sebagai contoh array jurusan diatas dapat dibentuk dengan menggunakan pernyataan sebagai berikut ini : $jurusan = array (“Elektronika”, “Telekomunikasi”, “Elektro Industri”, “Teknologi Informasi”, “Teknik Kimia”); Cara yang lain, anda bias menggunakan cara sebagai berikut : $jurusan[] = “Elektronika” $jurusan[] = “Telekomunikasi” $jurusan[] = “Elektro Industri” $jurusan[] = “Teknologi Informasi” $jurusan[] = “Teknik Kimia” Angka yang diletakkan di dalam tanda [] biasanya disebut kunci atau indeks. PHP, secara bawaan menggunakan indeks dimulai dengan nol. “Elektronika” “Telekomunikasi” “Elektro Industri” “Teknologi Informasi” “Teknik Kimia” Dalam prakteknya, indeks tidak harus dimulai dari nol. Bahkan anda bias menciptakan indeks yang tidak berurut. $bilangan[7] = 100; $bilangan[13] = 150; $bilangan[20] = 45; Tampak pada indeks yang digunakan dimulai dari 7, dan berikutnya tidak menggunkaan indeks 8 dan 9, melainkan 13 dan 20. hal ini boleh – boleh saja. Perlu diketahui, bila anda menuliskan pernyataan seperti : $bilangan[7] = 100; $bilangan[13] = 150; $bilangan[20] = 45; $bilangan[] = 57; Maka angka 21 akan disimpan ke elemen array yang memiliki indeks berupa 21 (20 + 1). Mengambil isi Array Untuk mengambil isi array, anda bias menggunakan notasi : $nama_array[indeks] Contoh : Print ($jurusan[0]); Akan menampilkan isi elemen pertama array jurusan. Mengetahui Jumlah elemen Array PHP menyediakan fungsi bernama count yang berguna untuk mendapatkan jumlah elemen array. Fungsi ini memerlukan argument berupa array bersangkutan. Sebagai contoh : Index $jurusan $musik = array (“Jazz”, “Blues”, “Fusion”); Printf(“Jumlah elemen : %d”, count($musik)); Akan menampilkan : Jumlah elemen = 3 Mengakses Elemen Array menggunakan kalang Untuk menampilakan array yang berjumlah banyak, tidaklah praktis jika memakai sederetan instruksi sebagai berikut : print ("nama_array[0]
]n");
print ("nama_array[1]
]n");
...
print ("nama_array[20]
]n");
Cara yang lebih baik adalah dengan menggunakan fungsi for. Adapun perintahnya sebagai berikut :
For ($i = 0; $i <= 20 ; $i++) Print(“nama_array[$i]
”);
Array dengan Indeks berupa string
PHP memperkenankan indeks bertipe string. Sebagai contoh, anda bisa membuat array seperti berikut :
$hari[“Sunday”] = “Minggu”;
$hari[“Monday”] = “Senin”;
$hari[“Tuesday”] = “Selasa”
$hari[“Wednesday”] = “Rabu”
Pada contoh diatas,
• Elemen berindeks “Sunday” berisi string “Minggu”;
• Elemen berindeks “Sunday” berisi string “Senin”;
• Elemen berindeks “Tuesday” berisi string “Selasa”;
• Elemen berindeks “Wednesday” berisi string “Rabu”;
Array Multidimensi
PHP memungkinkan sebuah elemen array mengandung array dan bahkan jumlah elemen array yang dikandung oleh elemen array bisa berbeda.
Contoh :
• LabSI : Budi, Agung
• LabAI : Dini, Sri
• LabJarkom : Rasyid, Bambang
• LabGIS : Dina, Retno
Keseluruhan data peserta disimpan dalam array, tetapi array yang berdimensi dua.



Daftar Pustaka

http://dwi.its-sby.edu/the_untold_stories/
Akses:Selasa,06 April 2010,16.32
http://Google.com/Pernyataan Array.
Akses:Selasa,06 April 2010,16.40
Tim Asisten. 2010. Modul Praktikum Pemograman Komputer I. Inderalaya. Unsri

Sabtu, 08 Januari 2011

Film terbaik yang akan dirilis di 2011

Kungfu Panda II (Mei 2011) :
Sekuel Kungfu Panda ini dipastikan akan menarik banyak penonton untuk menyaksikannya di bioskop. Po (suaranya diisi oleh Jack Black) Sang pendekar Panda menghadapi Lord Shen (Gary Oldman) yang memiliki sebuah senjata rahasia yang sangat berbahaya. Lord Shen terobsesi untuk menguasai seluruh negeri dan berencana menghancurkan ilmu bela diri Kung Fu. Po mendapat bantuan dari The SoothSayer (Michelle Yeoh), Master Skunkman (James Woods), Master Croc (Jean-Claude Van Damme), dan Master Thundering Rhino oleh (Victor Garber) . Aksi-aksi seru dan lucu PO bersama kawan-kawannya menggagalkan rencana jahat Lord Shen itu ditampilkan secara ciamik dalam film ini.

Pirates of Caribbean : On the Strangers Tide (Mei 2011)
Kapten Jack Sparrow (Johny Deep) berpetualang bersama Angelica (Penelope Cruzz) mencari mata air kehidupan yang konon tidak membuat seseorang bertambah tua sedikitpun. Masalah kian runyam ketika Jack menyadari bahwa Angelica tak lain adalah putri dari bajak laut Blackbeard (Ian McShane), musuh besar Jack Sparrow. Tapi perjalanan sudah dimulai dan Jack tak akan mengurungkan niatnya sedikitpun untuk melaksanakan niatnya.

X-Men : First Class (Juni 2011) :
Penggemar Wolverine (diperankan oleh Hugh Jackman) mesti bersiap-siap kecewa dalam film yang merupakan prekuel dari film-film X-Men sebelumnya karena tokoh tersebut tidak muncul dalam film ini. X-Men : First Class memang mengisahkan awal mula epik X-Men yakni mengangkat masa muda Charles Xavier dan Erik Magnus Lensherr sebelum didirikannya Xavier School For Gifted Youngster . School of Mutant Resources mereka dirikan seusai menamatkan sekolah di Oxford untuk meneliti dan mempelajari fenomena baru yang terjadi pada manusia yaitu "homo superior", yaitu manusia jenis mutan yg memiliki gen X. Siswa yang belajar di sekolah khusus itu awalnya adalah Jean Grey, Scott Summers, Hank McCoy, Ororo Munroe, Raven Darkholme, Mortimer Toynbee dan Emma Frost. Perbedaan pemahaman dan idealisme membuat kedua sahabat ini menuai konflik hingga akhirnya justru menjadi seteru yang saling menghancurkan.

Harry Potter and The Deathly Hallows, Part 2 (Juli 2011) :
Ini adalah film yang ditunggu-tunggu oleh para penggemar Harry Potter sebagai edisi pamungkas rangkaian film Harry Potter sebelumnya, setelah sebelumnya mengikuti episode pertama menjelang akhir tahun 2010. Film ini masih tetap diperankan oleh Daniel Radcliffe, Emma Watson, Rupert Grint.

Transformers 3 : Dark Of The Moon (Juli 2011) :
Dua serial film Transformers sebelumnya berhasil menuai sukses besar dan pada episode ketiga ini para penggemar Megan Fox harus siap-siap kecewa karena artis sexy yang pada 2 episode sebelumnya berperan sebagai Mikaela Banes, kekasih sang tokoh utama, Sam Witwicky, tidak terlibat dalam Transformer 3. Meski tanpa Megan Fox lagi, film ini kembali akan menggelar aksi-aksi spektakuler dan efek sinematografi canggih lebih dashyat dari 2 film sebelumnya. Jadi bersiaplah saksikan kehebatan robot Optimus Prime, Bumble Bee, Iron Hide, Ratchet, Sides Wipes,Megatron, Starscream, dan Soundwave berjibaku dalam film ini.

Captain America : The First Avenger (Agustus 2011)
Chris Evans pemeran manusia api dalam film “Fantastic Four” akan berperan sebagai Steve Rogers alias Captain America. Kisah ini menampilkan setting tahun 1940-an dimana Steve Rogers – seorang prajurit yang tidak bisa turun ke medan perang untuk melawan Nazi karena fisiknya dianggap tidak layak—diminta untuk menjalani sebuah program rahasia militer yang dapat mengubah dirinya menjadi manusia super.

Spy Kids 4: All The Time in the World (Agustus 2011)
Jessica Alba akan berperan sebagai Marissa Cortez Wilson (Jessica Alba) mantan agen rahasia yang menikah dengan reporter televisi pemburu agen mata-mata terkenal Wilbur (Joel McHale) dan ibu tiri dari dua anak kembar yang sangat cerdas Rebecca (Rowan Blanchard) dan Cecil (Mason Cook) dalam film Spy Kids 4 yang disutradarai oleh Robert Rodriguez. Jeremy Piven yang berperan sebagai tokoh antagonis dalam film ini mengancam akan mengambil alih bumi dan menghentikan waktu. Marissa dipanggil oleh Markas Besar OSS untuk mencegah aksi kejahatan tersebut dengan didampingi oleh Carmen (Alexa Vega) dan adiknya Juni Cortez (Daryl Sabara), anggota Spy Kids yang sudah beranjak remaja.

Mission Impossible 4: Ghost Protocol (Desember 2011) :
Aktor tampan Tom Cruise kembali akan membintangi film kolosal Mission Impossible IV berjudul “Ghost Protocol” yang rencananya akan ditayangkan perdana oleh Paramount Pictures 6 Desember 2011. Pada film yang gambarnya diambil di Dubai, Praha dan Canada ini, Tom akan didampingi oleh artis pendukung seperti Aktor Jeremy Renner dan aktris Paula Patton.

Fast and Furious V (April 2011) :
Vin Diesel dan Paul Walker akan kembali beraksi dalam film kebut-kebutan mobil dengan adegan-adegan berbahaya memacu adrenalin yang disutradarai oleh Justin Lin dan skenarionya ditulis oleh Chris Morgan ini. Petualangan Dominic Toretto dan Brian O’Conner yang melarikan diri dari petugas hukum akan menjadi daya tarik film yang akan dirilis pada akhir April 2011 ini.