Senin, 07 Juni 2010

Contoh program for ... to.. do..

Program nama;
Uses wincrt;
Var
x,i,j : integer;
Begin
j := 0;
Readln (x);
For i := 1 to x do
Writeln (i:4, i*i:4);
Readln;
For i := 1 to x do
j := j + i;
Writeln (j);
End.

Macam-macam tipe data

Dalam bahasa Pascal, secara garis besar dikenal dua macam tipe data yaitu :

- tipe data sederhana (primitive type):
adalah tipe data yang hanya mampu menyimpan satu nilai tiap satu variabelnya.
Contoh tipe data sederhana adalah tipe numerik (integer dan real), tipe data karakter, tipe data boolean dan tipe data ennumerasi.

- tipe data kompleks (complex type):
adalah tipe data yang mampu menyimpan lebih dari satu nilai dalam tiap satu variabelnya.
Contoh tipe data kompleks adalah string, array (larik), record dan object.

Bentuk umum dari deklarasi tipe data adalah
Type pengenal = tipe
Keterangan:
pengenal : nama pengenal yang menyatakan tipe data.
tipe : tipe data yang berlaku dalam Turbo Pascal.

4.1 Tipe Data Sederhana

4.1.1 Tipe Ordinal
Semua tipe sederhana disebut tipe ordinal kecuali real. Karakteristik tipe data ordinal antara lain :
- Semua kemungkinan nilai dari suatu tipe ordinal merupakan himpunan berurutan dan setiap nilai berkaitan dengan ordinalitasnya yaitu nilai integral.
- Fungsi standard ord dapat diterapkan pada sembarang tipe ordinal untuk mengetahui ordinalitasnya.
- Fungsi standard pred dapat diterapkan untuk mengetahui predesesor.
- Fungsi standard succ dapat diterapkan untuk mengetahui suksesor.

4.1.2 Tipe Integer
Tipe integer adalah tipe data yang nilainya tidak mempunyai titik desimal. Ada lima tipe data yang termasuk dalam kelompok ini seperti terlihat pada tabel di bawah ini.
Tabel 2.1 Tipe integer
Tipe Batas Nilai Ukuran dalam byte
byte 0..255 1
shortint -128..127 1
integer -32768..32767 2
word 0..65535 2
longint -2147483648..2147483647 4
Tipe data juga menentuka operasi yang bisa dikerjakan. Pada tipe integer operator-operator yang bisa dikerjakan antara lain:

Tabel 2.2 Operator-operator pada tipe integer
Operator : Kegunaan
+ : Penjumlahan
- : Pengurangan
* : Perkalian
div : Pembagian
mod : Sisa pembagian

4.1.3 Tipe Boolean
Data tipe boolean mempunyai dua nilai yakni benar dan salah. Dengan memakai operator and, or atau not maka dapat dibentuk ungkapan boolean yang lebih rumit.

4.1.4 Tipe Char
Tipe char digunakan untuk mendefinisikan tipe data yang nilainya merupakan himpunan karakter yang dikenal komputer seperti yang tersaji dalam tabel ASCII. Dalam program, konstanta bertipe char ditulis diantara tanda petik, misalnya ‘A’ . Perlu diingat bahwa data bertipe char hanya terdiri dari 1 karakter.

4.1.5 Tipe Terbilang
Disebut tipe terbilang karena semua nilai disebut satu persatu, contoh
Type Toko = (baru, ramai, sukses, rapi, gadjah)
Perlu diperhatikan bahwa dalam tipe terbilang semua data harus diletakkan di antara kurung, urutan datanya harus diperhatikan karena akan mempengaruhi fungsi pred dan succ.

4.1.6 Tipe Subjangkauan
Tidak jarang terjadi batas nilai yang mungkin untuk suatu perubah merupakan bagian atau subjangkauan dari tipe data yang telah didefinisikan, contoh nilai ujian adalah dari 0 sampai 100.
type Nilai = 0..100;

4.1.7 Tipe Real
Konstanta bertipe real adalah bilangan yang berisi titik desimal. Dalam Pascal paling sedikit harus ada satu digit sebelum dan sesudah titik desimal, tidak boleh ada koma dan nilainya bisa positif atau negatif.

Dalam Turbo Pascal terdapat lima macam tipe real yaitu real, single, double, extended dan comp seperti terlihat pada tabel di bawah ini.

Tipe Batasan Nilai Angka Signifikan Ukuran dalam byte
real 2.9 x 10E-39..1.7 x 10E38 11-12 6
single 1.5 x 10E-45..3.4 x 10e38 7-8 4
double 5.0 x 10E-324..1.7 x 10E308 15-16 8
extended 1.9 x 10E-4951..1.1 x 10E4932 19-20 10
comp -2E63 + 1..2E63 – 1 19-20 8

Operator-operator pada tipe real adalah :

Operator : Kegunaan
+ : Penjumlahan
- : Pengurangan
* : Perkalian
/ : Pembagian

4.2.2 Tipe Data Kompleks

4.2.2.1 Tipe String
Data yang bertipe string adalah data yang berisi sederetan karakter yang banyaknya karakter bisa berubah-ubah sesuai kebutuhan yaitu dari 1 sampai 255 karakter.
Bentuk umum dari deklarasi tipe string adalah:
type pengenal = string <[panjang]>
Keterangan:
pengenal : nama tipe data.
panjang : bilangan bulat yang menentukan banyaknya karakter, bila parameter panjang karakter tidak ditulis maka dianggap 255 karakter.

4.2.2.2 Tipe Larik
Larik (array) adalah tipe terstruktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing komponen dalam larik dinyatakan sebagai nomor indeks.
Bentuk umum dari tipe larik adalah
type pengenal = array [tipe_index] of tipe;
pengenal : nama tipe data.
tipe_index : tipe data untuk nomor index.
tipe : tipe data komponen.

Contoh,
type Vek = array [1..100] of integer;
4.2.2.3 Tipe Rekaman
Sama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik dengan rekaman adalah dalam larik semua elemennya harus bertipe sama tetapi dalam rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lainnya.
Bentuk umum deklarasi rekaman adalah
type pengenal = record
medan1 :tipe1;
medan2 :tipe2;
.
.
.
medann :tipen;
end;

Keterangan:
pengenal : pengenal yang menunjukkan tipe data yang akan dideklarasikan.
medan1,…, medann : nama medan yang akan digunakan.
tipe1,…, tipen : sembarang tipe data yang telah dideklarasikan sebelumnya.
Contoh deklarasi rekaman,
type Tgl_Kalender = record
Tanggal :1..31;
Bulan : 1..12;
Tahun : 1900..2000;
end;

4.2.2.4 Tipe Himpunan
Tipe himpunan adalah kumpulan obyek yang mempunyai tipe data yang sama dan urutan penulisannya tidak diperhatikan.Setiap onyek di dalam suatu himpunan disebut dengan anggota atau elemen himpunan
Bentuk umum deklarasi himpunan adalah
type pengenal = set of tipe_data;
atau dapat juga langsung dideklarasikan dalam bagian deklarasi perubah seperti berikut

var pengenal = set of tipe_data;
Keterangan:
pengenal : nama perubah atau pengenal yang akan dinyatakan sebagai tipe himpunan.
tipe_data : tipe data dari anggota himpunan, harus bertipe ordinal.
Contoh deklarasi himpunan adalah sebagai berikut.
type Irama = (jazz, rock, blues, country, classic);
Musik = set of Irama;
Nilai = set of 0..10;
Untai = set of char;
Huruf = set of ‘A’..’Z’;
Sakit = (pusing, mual, lemas, lesu, letih);
Penyakit = set of sakit;

4.2.2.5 Tipe Berkas
Berkas (file) adalah kumpulan sejumlah komponen yang bertipe data sama yang jumlahnya tidak tentu dan biasanya tersimpan dalam suatu media penyimpan luar. Jumlah komponen dalam berkas dapat ditambah jika diperlukan.
Dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu program. Berkas dapat berupa berkas yang disimpan di dalam cakram magnetis, pita magnetis, kartu plong dan sejenisnya atau berupa piranti logika yang selama ini kita gunakan, yaitu dengan statemen input dan output, yang menunjukkan piranti masukan keluaran standar (papan ketik dan layar tampilan).
Bentuk umum dari deklarasi berkas adalah
type pengenal = file of pengenal1;

Keterangan:
pengenal : pengenal yang akan dinyatakan sebagai tipe data berkas.
pengenal1 : tipe data komponen berkas.

Contoh code repeat.. until

Program suhu;
Uses wincrt;
Var
c, f, r : real;
Begin
writeln(' C F R');
writeln(' ---------------------');
c := 0;
repeat
f := (9/5) * c + 32;
r := (4/5) * c;
writeln (c:8:1, f:8:1, r:8:1);
c := c + 0.5;
until c > 10;
writeln(' ---------------------');
end.

Perulangan

sebuah program terkadang harus melakukan hal yang sama berkali-kali. Agar program tidak menjadi terlalu panjang karena setiap proses menjadi baris program, maka diperlukan adanya kemampuan otomatisasi dalam kode program.
Dengan adanya otomatisasi dalam program, maka dapat dilakukan pengerjaan proses sama berkali-kali yang berada dalam beberapa statemen hanya dengan menuliskannya sekali saja.
Karena perulangan merupakan suatu hal yang sering ditemui dalam program, maka bahasa Pascal juga menyediakan kemampuan tersebut.
Dalam Pascal terdapat 3 cara melakukan perulangan yaitu :
- For .. to .. do
- While .. do
- Repeat .. until.
Seperti pada percabangan, ketiga jenis perulangan juga memungkinkan perulangan secara tersarang, serta dapat menjalankan suatu blok berisi beberapa statemen proses untuk setiap perulangannya.
For .. to .. do biasa digunakan apabila telah diketahui dengan pasti cacah perulangan yang akan dilakukan baik dari sebuah baris statemen atau suatu blok statemen. Perulangan/kalang menggunakan kata cadangan ini dapat berupa perulangan positif (For .. to .. do) atau perulangan negatif (For .. downto .. do).

Kata cadangan yang digunakan
Program : spesifikasi nama program dan parameternya, bersifat dekoratif dan tidak terlalu mempengaruhi keseluruhan program itu sendiri
Uses : mendefinisikan nama unit yang akan direferensi oleh program
Var : menghubungkan sebuah identifier dan tipenya dengan suatu lokasi di memori dimana nilai-nilai dari tipe tersebut dapat disimpan
Begin : memulai suatu blok program
End : mengakhiri suatu blok program
For : mendefinisikan nilai awal perulangan
To : mendefinisikan nilai akhir perulangan (perulangan positif)
Downto : mendefinisikan nilai akhir perulangan (perulangan negatif)
While : mendefinisikan ekspresi yang mengendalikan perulangan eksekusi suatu statemen atau blok statemen
Do : digunakan untuk menyebutkan aksi yang akan dilakukan perulangan
Repeat : mendefinisikan statemen atau blok statemen yang akan terus diulang sampai keadaan perhentiannya dipenuhi
Until : mendefinisikan keadaan perhentian untuk perulangan yang dimulai dengan Repeat
If : menyebutkan kondisi untuk suatu statemen agar dapat dieksekusi
Then : menyebutkan statemen aksi yang harus dijalankan saat kondisi terpenuhi
Else : menyebutkan statemen aksi yang dapat dieksekusi saat statemen aksi lain tidak dieksekusi karena kondisinya tidak terpenuhi

- sistematika penulisan :

Program nama;
Uses wincrt;
Var
x,i,j : integer;
Begin
j := 0;
Readln (x);
For i := 1 to x do
Writeln (i:4, i*i:4);
Readln;
For i := 1 to x do
j := j + i;
Writeln (j);
End.

Seleksi Kondisi

Dalam bahasa Pascal, seleksi kondisi dapat dilakukan dengan 2 cara, yaitu menggunakan kata cadangan: "If .. then" dan Case .. of".

Kegunaan :
- If .. then biasa digunakan untuk melakukan seleksi kondisi dengan 1 atau 2 pilihan.
- Case .. of biasa digunakan bila akan melakukan seleksi kondisi terhadap beberapa pilihan sekaligus (lebih dari 2 pilihan).
- Bukan berarti kata cadangan If .. then tidak dapat digunakan untuk melakukan seleksi kondisi terhadap lebih dari 2 pilihan, tetapi menggunakan Case .. of akan lebih efisien bila menghadapi seleksi kondisi untuk lebih dari 2 pilihan.
- Baik dalam If .. then maupun Case .. of, suatu aksi hanya akan dijalankan apabila kondisi penentunya tercapai (bernilai true), dan tidak akan dijalankan apabila kondisi penentunya tidak tercapai (bernilai false).
- Bila terdapat alternatif pilihan aksi dan kondisinya sesuai, maka aksi tersebut akan dijalankan. Bila tidak terdapat kondisi yang sesuai sama sekali, maka tidak satupun pilihan aksi yang akan dijalankan. Terkadang diperlukan adanya pilihan aksi terakhir apabila tidak satupun kondisinya terpenuhi.

Kata cadangan yang digunakan
• Program :spesifikasi nama program dan parameternya, bersifat dekoratif dan tidak terlalu mempengaruhi keseluruhan program itu sendiri
• Uses :mendefinisikan nama unit yang akan direferensi oleh program
• Var :menghubungkan sebuah identifier dan tipenya dengan suatu lokasi di memori dimana nilai-nilai dari tipe tersebut dapat disimpan
• Begin :memulai suatu blok program
• End :mengakhiri suatu blok program
• If :menyebutkan kondisi untuk suatu statemen agar dapat dieksekusi
• Then :menyebutkan statemen aksi yang harus dijalankan saat kondisi terpenuhi
• Else :menyebutkan statemen aksi yang dapat dieksekusi saat statemen aksi lain tidak dieksekusi karena kondisinya tidak terpenuhi
• Case :menyebutkan statemen ekspresi yang akan mencari kondisi yang sesuai berdasarkan pilihan statemen kondisi yang tersedia
• Of :kata cadangan yang digunakan bersama Case untuk menyebutkan pilihan kondisi yang sesuai serta aksi yang akan dijalankan apabila suatu kondisi terpilih
• Or :operator logika yang dapat digunakan untuk membantu seleksi kondisi

Prosedur yang digunakan
• Write :menuliskan suatu variabel ke dalam sebuah komponen file, dalam file teks digunakan untuk menuliskan satu nilai atau lebih ke suatu file
• Writeln :mengeksekusi prosedur write, kemudian mengeluarkan sebuah penanda end-of-line (EOL) ke file program
• Read :membaca suatu komponen file menjadi suatu variabel, dalam file teks digunakan untuk membaca satu nilai atau lebih menjadi satu atau lebih variabel
• Readln :mengeksekusi prosedur read, kemudian bergerak ke baris berikutnya dalam file program

Contoh Program

- Contoh pertama Menggunakan If ... Then .. Else..
Program bilangan;
Uses wincrt;
Var
a, b, c, max : integer;
Begin
Writeln ('Masukkan 3 bilangan: ');
Readln (a,b,c);
Writeln;
If a > b then
if a > c then
max := a
else
max := c
else
if b > c then
max := b
else
max := c;
Writeln ('Bilangan terbesar: ',max);
End.

- contoh program dengan menggunakan Case.. Of..

Program penilaian;
Uses wincrt;
Var
Masukan : real;
nilai : integer;
huruf : char;
ket : string;
Begin
Write ('Tuliskan nilai berbentuk angka: ');
Readln (Masukan);
nilai := (round(Masukan));
Case nilai of
81 .. 100:
Begin
huruf := 'A';
ket := 'Istimewa';
End;
61 .. 80:
Begin
huruf := 'B';
ket := 'Baik';
End;
41 .. 60:
Begin
huruf := 'C';
ket := 'Cukup';
End;
21 .. 40:
Begin
huruf := 'D';
ket := 'Kurang';
End;
0 .. 20:
Begin
huruf := 'E';
ket := 'GAGAL';
End
Else
Begin
huruf := '?';
ket := 'tidak ada (salah masukan angka)';
End;
End;
Writeln ('Nilai anda: ',huruf);
Writeln ('Tingkatan: ',ket);
End.

TIPE DATA

Tipe data ini menunjukkan suatu nilai yang dapat digunakan oleh variabel, dengan kata lain, tipe ini menentukan nilai yang dapat disimpan oleh variabel. Selain nilai, juga akan disimpan operator-operator yang dapat dilakukan pada tipe data tersebut. Data dapat disimpan dalam bentuk konstanta atau dalam suatu variabel. Konstanta akan disimpan dalam pengenal konstanta dan nilainya tidak berubah dalam program. Data yang disimpan dalam suatu variabel nilainya dapat berubah.
Terdapat berbagai macam tipe data yang dapat digunakan pada program yang ditulis dalam bahasa Pascal. Diantaranya adalah tipe ordinal (terdiri atas tipe integer, tipe boolean, tipe karakter, tipe terbilang, dan tipe subrange), tipe real, tipe string, tipe array, tipe record, tipe set, tipe file, dan tipe pointer. Operator yang dapat digunakan diantaranya adalah +, -, *, /, div, mod, not, and, or, xor, shl, shr, =, <>, <, >, <=, >=, dan in.

Kata cadangan yang digunakan
Program : spesifikasi nama program dan parameternya, bersifat dekoratif dan tidak terlalu mempengaruhi keseluruhan program itu sendiri
Uses :mendefinisikan nama unit yang akan direferensi oleh program
Var :menghubungkan sebuah identifier dan tipenya dengan suatu lokasi di memori dimana nilai-nilai dari tipe tersebut dapat disimpan
Begin :memulai suatu blok program
End :mengakhiri suatu blok program
In :operator yang memberikan operasi “anggota dari”
And :operator yang memberikan operasi logika “dan”
Or :operator yang memberikan operasi logika “atau”
Div :operator untuk pembagian dan membulatkan hasilnya ke bawah
Mod :operator untuk pembagian dan memberikan sisa hasil baginya
Shl :operator untuk menggeser bit ke kiri
Shr :operator untuk menggeser bit ke kanan
Not :operator operasi logika untuk membalik status
Xor :operator operasi logika XOR

Prosedur yang digunakan
Write :menuliskan suatu variabel ke dalam sebuah komponen file, dalam file teks digunakan untuk menuliskan satu nilai atau lebih ke suatu file
Writeln :mengeksekusi prosedur write, kemudian mengeluarkan sebuah penanda end-of-line (EOL) ke file program
Read :membaca suatu komponen file menjadi suatu variabel, dalam file teks digunakan untuk membaca satu nilai atau lebih menjadi satu atau lebih variabel
Readln :mengeksekusi prosedur read, kemudian bergerak ke baris berikutnya dalam file program

Fungsi yang digunakan
Sqr :menghasilkan nilai kuadrat dari suatu argumen
Sqrt :menghasilkan nilai akar dari suatu argument





contoh kode membuat perhitungan Luas persegi panjang

Program menghitungluaspersegipanjang;
Uses wincrt;
Var
a, b, c : real;
Begin
writeln ('Menghitung Luas persegi panjang');
write ('Nilai panjang? ');
readln (a);
write ('Nilai lebar? ');
readln (b);
c := sqrt (sqr(a) * sqr(b));
writeln ('Luas persegi panjangadalah:',c);
End.

Pengertian algoritma

Seringkali kita menyepelehkan dasar pemrograman ini, namun tidak dapat dipungkiri bahwa algoritma adalah sudah menjadi dasar dari pembuatan program.sebelum kita melangkah lebih jauh tentang pemrograman seyogyanya kita mesti tau dasar-dasar dari aau pemrograman terlebih dahulu.

A.Pengertian Algoritma
adalah urutan langkah-langkah penyelesaian masalah yang disusun secara sistematis,logis dan mempunyai nilai salah atau benar .

Kata Algoritma berasal dari bahasa arab yaitu Algorism yang berarti proses menghitung dengan angka arab. Sedangkan Algorist adalah orang yang menghitung dengan menggunakan angka arab. Algoritma itu sendiri berasal dari nama seorang ahli matematika dari Uzbekistan yaitu Abu Abdullah Muhammad Ibn Musa al-Khwarizmi yang dibaca oleh orang barat menjadi Algorism dan orang Indonesia melafalkannya menjadi Algoritma.

B. Beberapa cara penyusunan algoritma :
Ada beberapa cara untuk menyusun suatu algoritma yaitu :
•Dengan untaian kalimat deskriptif
•Dengan pseudocode
•Dengan Flowchart.

C. Kriteria Algoritma yang baik:
•Tepat, benar, sederhana, standar dan efektif.
•Logis, terstruktur dan sistematis.
•Semua operasi terdefinisi.
•Semua proses harus berakhir setelah sejumlah langkah dilakukan.
•Ditulis dengan bahasa yang standar pemrograman dan mudah untuk diimplementasikan sehingga tidak menimbulkan arti ganda.

D. Metode penyusunan Algoritma :
Adapun Metode yang digunakan dalam pembuatan/penyusunan Algoritma adalah :
•Divide and Conquer, yaitu membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil yang mudah untuk dipecahkan.
•Dynamic programming, pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal dan mengandung beberapa bagian permasalahan yang tumpang tindih .
•Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan apa yang dilihat terbaik pada saat itu.

Program sederhana dengan menggunakan While..or.. do..

program whileordo;
uses
wincrt;
var c:char;
begin
clrscr;
c:='y';
while (c='y') or (c='Y') do begin
writeln('.....UNTUKMU LOGIKAKU......');
writeln('by.Bang-Iconk');readln;
writeln('Terhenyakku akan bahasamu');
writeln('Unik,menarik dan tentu bukan bahasa semu'); readln;
writeln('("JIKA INI MAKA ITU, BILA INI BILA,MAKA BILA INI JIKA MAKA")');readln;
writeln('Oupsss...'); readln;
writeln('Logika yang kupunya tiada mampu tuk menggapai'); READLN;
writeln('Jari jemariku menari');
writeln('Mencari BUG area hitam yang kau tandai');readln;
writeln('Lama logikaku berputar dengan berbagai macam pendekatan struktural');
writeln('Akhiirnya kutemukan maknamu dalam lingkaran procedural'); readln;
writeln('Bukanlah variable namun....');
writeln('ENGKAULAH KONSTANTA YANG TAK TERGOYAHKAN');readln;
writeln('Ulangi Lagi Atau Selesai...tekan(Y/N)?');
Readln(c);
clrscr;
end;
end.