Web viewDeklarasi sub-program (PROCEDURE dan ... Statemen adalah perintah untuk pengerjaan program...
Transcript of Web viewDeklarasi sub-program (PROCEDURE dan ... Statemen adalah perintah untuk pengerjaan program...
1. Sejarah PASCAL
Merupakan pengembangan dari bahasa ALGOL 60, bahasa pemrograman
untuk sains komputasi. Tahun 1960, beberapa ahli komputer bekerja untuk
mengembangkan bahasa ALGOL, salah satunya adalah Dr. Niklaus Wirth
dari Swiss Federal Institute of Technology (ETH-Zurich), yang merupakan
anggota grup yang membuat ALGOL. Tahun 1971, dia menerbitkan suatu
spesifikasi untuk highly-structured language (bahasa tinggi yang
terstruktur) yang menyerupai ALGOL. Dia menamainya dengan PASCAL
(seorang filsuf dan ahli matematika dari Perancis) Pascal bersifat data
oriented, yaitu programmer diberi keleluasaan untuk mendefinisikan data
sendiri. Pascal juga merupakan teaching language (banyak dipakai untuk
pengajaran tentang konsep pemrograman). Kelebihan yang lain adalah
penulisan kode Pascal yang luwes, tidak seperti misalnya FORTRAN, yang
memerlukan programmer untuk menulis kode dengan format tertentu.
Bentuk dasar program Pascal adalah seperti berikut:
program TITLE ; begin pernyataan; pernyataan end.
2. PASCAL sebagai bahasa terstruktur
Sebagai bahasa terstruktur, PASCAL mempunyai ciri-ciri sebagai berikut:
1. Berurutan Susunan dari kode-kode dalam teks Pascal harus ditulis
secara urut dari atas, pernyataan-pernyataan yang ditulis lebih awal akan
dieksekusi lebih dahulu. Oleh karena itu, suatu pernyataan yang
menyangkut suatu variabel di dalam program, maka variable itu harus
terdefinisi dahulu sebelumnya. Hal ini terutama menyangkut pada
pemanggilan sub-program oleh sub-program yang lain. Bisa dibaca lebih
lanjut pada bagian sub-program.
2. Blok dengan batas-batas yang jelas. Pascal memberikan
pembatas yang jelas pada tiap-tiap blok, seperti pada blok program utama,
sub-program, struktur kontrol (pengulangan/ pemilihan), dll. Pemakaian
kata kunci begin untuk mengawali operasi pada blok dan end untuk
menutupnya memudahkan programmer menyusun programnya dengan
mudah.
Seperti contoh:
If X>0 then begin Write ( ‘ bilangan positif’); Writeln ( ‘ program selesai’);
end;
3. Satu pintu masuk dan satu pintu keluar pada blok pemilihan dan
pengulangan. Contoh di atas juga mengilustrasikan pintu masuk tunggal
pada suatu blok pemilihan yaitu suatu test logika X>0, dengan pintu
keluaran yang satu pula (satu disini maksudnya bukan dua baris perintah
output tapi suatu paket perintah yang dirangkai dengan begin .. end.
3. Bakuan PASCAL
Dibakukan oleh ISO pada tahun 1983 dan dikembangkan dalam beberapa
versi, diantaranya: USCD PASCAL, MS PASCAL, TURBO PASCAL dll.
Dengan semakin berkembangnya teknologi dalam komputasi, Pascal
dimanfaatkan untuk pengembangan DELPHI (berasal dari nama suatu kota
di masa Yunani kuno), suatu bahasa pemrograman visual yang
menonjolkan pada efek grafis dan orientasi pada objek-objek yang siap
dipakai, karena memiliki Visual Component Library (VCL).
4. Struktur Bahasa PASCAL secara umum
Pascal mempunyai struktur sebagai berikut:
1. Bagian Judul Program
2. Bagian Deklarasi
a. Deklarasi tipe data (TYPE) b. Deklarasi variabel (VAR) c. Deklarasi
konstanta (CONST) d. Deklarasi label (LABEL) e. Deklarasi sub-
program (PROCEDURE dan FUNCTION)
3. Bagian Program Utama Perintah-perintah.
Teks Pascal setidaknya memiliki bagian Judul Program, bagian Deklarasi,
dan Bagian Program Utama yang berupa perintah-perintah. Sedangkan
untuk bagian deklarasi menyesuaikan dengan isi dari program itu sendiri.
Contoh program PASCAL:
program TAMBAH_00; { Menjumlahkan dua bilangan yang nilainya
diberikan dalam perintah} var X, Y, Z: integer; { Deklarasi variabel X,Y dan
Z sebagai bilangan bulat } BEGIN { Program Utama Mulai } X := 50;
{ Perintah memberikan nilai 50 pada var. X } Y := 25; { Perintah
memberikan nilai 25 pada var. Y } Z := X + Y; { Perintah menjumlahkan X
dan Y serta menyimpan hasilnya ke Z} END. { Akhir Program Utama }
Pada contoh ini nilai X dan Y tidak bisa sembarang,
Pascal merupan salah satu program yang terkemuka karena struktur penulisannya yang mengalir seperti algoritma, saat ini kita akan mempelajari perbedaan antara case dan if pada pascal 1.5 (TPW 1.5). sebelum itu perhatikan keterangan berikut ini struktur dasarnya.
Program namaprogram; ? judul programVar jenis : variable; ? jenis variabelBegin ; ? memulai programClrscr ? membersihkan layar (boleh digunakan dan tidak)Isi ? isi programEnd. ? akhir program
KeteranganWrite ? menapilkan tulisanWriteln ? menapilkan tulisan pada garis baruRead ? menginput dataReadln ? manginput data pada garis baruVar ? variable
CASE
program case1;uses wincrt;var nip,nama : string;pendapatan,pajak : real;gol : char;beginclrscr;writeln(‘——— DAFTAR PAJAK ———-’);writeln(‘_________________________________’);write (‘NIP : ‘);readln(nip);write (‘Nama Karyawan : ‘);readln(nama);write (‘Golongan [A,B,C] : ‘);readln(gol);
write (‘Pendapatan : ‘);readln(pendapatan);case upcase(gol) of‘A’ : beginwriteln(‘Golongan ini bebas pajak’);pajak := 0;end;‘B’ : pajak := 0.1 * pendapatan;‘C’ : pajak := 0.2 * pendapatan;else write(‘Salah melakukan Penginputan data ‘);end;writeln(‘Pajak : Rp. ‘,pajak:9:2);end.
Tampilan saat case Di running
Sedangkan untuk program IF
program if1;uses wincrt;var nip,nama : string;pendapatan,pajak : real;gol : char;beginclrscr;writeln(‘——— DAFTAR PAJAK ———-’);writeln(‘_________________________________’);write (‘NIP : ‘);readln(nip);write (‘Nama Karyawan : ‘);readln(nama);
write (‘Golongan [A,B,C] : ‘);readln(gol);write (‘Pendapatan : ‘);readln(pendapatan);if (gol = ‘A’ )or (gol = ‘a’) thenpajak := 0else if (gol = ‘B’) or (gol = ‘b’) thenpajak := 0.1 * pendapatanelse if (gol = ‘C’) or (gol = ‘c’) thenpajak := 0.2 * pendapatanelse write(‘Salah melakukan Penginputan data ‘);writeln(‘Pajak : Rp. ‘,pajak:9:2);end.
Pascal adalah sebuah bahasa pemograman tempo dulu. Mungkin itu saja yang
dapat saya definiskan, karena saya yakin pembaca lebih tahu mengenai definisi
lengkap dari Pascal. Saya ingin berbagi ilmu walaupun cuma sedikit tentang
pemograman dengan Pascal. Melalui tulisan ini, saya mencoba untuk mengulas
program, prosedur dan fungsi menarik yang bisa Anda coba dan terapkan dalam
pemograman Pascal. Beberapa yang dapat saya sampaikan, diantaranya:
1. Fungsi-fungsi String
2. Fungsi-fungsi Date
3. Fungsi-fungsi Konversi
4. Program Permainan
Program pascal tidak mengenal aturan penulisan di kolom tertentu, jadi
boleh ditulis mulai kolom berapapun. Penulisan statement-statement pada contoh
program yang menjorok masuk beberapa kolom tidak mempunyai pengaruh
diproses, hanya dimaksudkan supaya mempermudah pembacaan program,
sehingga akan lebih terlihat bagian-bagiannya, dan baik untuk dokumentasi.
Judul program sifatnya optional dan tidak signifikan didalam program. Jika ditulis
dapat digunakan untuk memberi nama program dan daftar dari parameter tentang
komunikasi program dengan lingkungannya yang sifatnya sebagai dokumentasi
saja. Judul program bila ditulis harus terletak pada awal dari program dan diakhiri
dengan titik koma.
Contoh :
Program contoh ;
Begin
Writeln ( ‘Gunadarma’ );
Writeln( ‘---------------‘ );
End .
1.3 Deklarasi
Bagian deklarasi digunakan bila didalam program menggunakan pengenal
(identifier) yang dapat berupa label, konstanta, tipe, variable, prosedur dan fungsi.
1.3.1 Deklarasi Konstanta
Definisi konstanta diawali dengan kata cadangan Const diikuti oleh kumpulan
identifier yang diberi suatu nilai konstanta. Data konstanta nilainya sudah
ditentukan dan pasti, tidak dapat dirubah didalam program.
Contoh :
Program contoh_konstanta;
Const
Potongan = 0.2 ;
Gaji = 25000 ;
Namaperusahaan = ‘PT ABC’ ;
Begin
Writeln ( ‘Potongan =’, Potongan ) ;
Writeln ( ‘Gaji =’, Gaji ) ;
Writeln ( ‘Nama =’, Namaperusahaan) ;
End .
1.3.2 Deklarasi Variabel
Variabel adalah identifier yang berisi data yang dapat diubah-ubah nilainya
didalam program. Menggunakan kata cadangan Var sebagai judul didalam bagian
deklarasi variable dan diikuti oleh satu atau lebih identifier yang dipisahkan koma,
diikuti dengan titik dua dan tipe dari datanya diakhiri dengan titik koma.
Contoh :
Var
Total, Gaji, Tunjangan : real ;
Jumlahanak : integer ;
Keterangan : string [25] ;
Begin
Gaji : = 500000 ;
Jumlahanak : = 3 ;
Tunjangan : = 0.25 * Gaji + Jumlahanak * 30000 ;
Total : = Gaji + Tunjangan ;
Keterangan : = ‘Karyawan Teladan’ ;
Writeln ( ‘ Gaji bulanan = Rp. ‘ , Gaji ) ;
Writeln ( ‘ Tunjangan = Rp. ‘ , Tunjangan ) ;
Writeln ( ‘ Total gaji = Rp. ‘ , Total ) ;
Writeln ( ‘ Keterangan = Rp. ‘ , Keterangan ) ;
End .
1.3.3 Deklarasi Tipe
Pascal menyediakan beberapa macam tipe data, yaitu :
1. tipe data sederhana, terdiri dari :
a. tipe data standar : integer, real, char, string, Boolean.
b. Tipe data didefinisikan pemakai : enumerated atau scalar, subrange
2. Tipe data terstruktur : array, record, file, set
3. Tipe data penunjuk
Contoh :
Type
Pecahan = real ;
Bulat = integer ;
Huruf = string [25] ;
Begin
End .
1.3.4 Deklarasi Label
Jika program menggunakan statement Goto untuk meloncat ke suatu statement
yang tertentu, maka dibutuhkan suatu label pada statement yang dituju dan label
tersebut harus di deklarasikan terlebih dahulu pada bagian deklarasi. Menggunakan
kata cadangan Label diikuti oleh kumpulan identifier label dengan dipisahkan oleh
koma dan diakhiri dengan titik koma.
Contoh :
Label
Output : Bahasa
Pascal
100, selesai ;
Begin
Writeln ( ‘Bahasa’ ) ;
Goto 100 ;
Writeln ( ‘Cobol’ ) ;
100 :
Writeln ( ‘Pascal’ ) ;
Goto selesai ;
Writeln ( ‘Fortran’ ) ;
Selesai :
End .
1.3.5 Deklarasi Prosedur
Prosedur merupakan bagian yang terpisah dari program dan dapat diaktifkan
dimanapun didalam program. Prosedur dibuat sendiri bilamana program akan
dibagi-bagi menjadi beberapa blok-blok modul. Prosedur dibuat didalam program
dengan cara mendeklarasikannya dibagian deklarasi prosedur. Menggunakan kata
cadangan Procedure.
Contoh :
Procedure tambah ( x, y : integer ; var hasil : integer ) ;
Begin
Hasil : = x + y ;
End ;
Output :
2 + 3 = 5
{program utama}
var
z : integer ;
Begin
Tambah ( 2, 3, z ) ;
Writeln ( ‘ 2 + 3 = ‘, z );
End .
1.3.6 Deklarasi Fungsi
Fungsi juga merupakan bagian program yang terpisah mirip dengan prosedur,
tetapi ada beberapa perbedaannya. Kata cadangan yang digunakan Function.
Contoh :
Function Tambah ( x, y : integer ) : integer ;
Begin
Tambah : = x + y ;
End ;
{program utama}
Begin
Writeln ( ‘ 2 + 3 = ‘ , Tambah ( 2, 3)) ;
End .
1.4 Unit
Suatu unit adalah kumpulan dari konstanta, tipe-tipe data, variable, prosedur dan
fungsi-fungsi. Tiap-tiap unit tampak seperti suatu program Pascal yang terpisah.
Unit standar sudah merupakan kode mesin (sudah dikompilasi), bukan kode
sumber Pascal lagi dan sudah diletakkan di memori pada waktu menggunakan
pascal. Untuk menggunakan suatu unit, harus diletakkan suatu anak kalimat Uses
diawal blok program, diikuti oleh daftar nama unit yang digunakan.
1.4.1 Unit System
Sebenarnya adalah pustaka dari runtime Turbo Pascal yang mendukung semua
proses yang dibutuhkan pada waktu runtime. Unit system berisi semua prosedur
dan fungsi standar turbo pascal. Unit system ini akan secara otomatis digunakan
didalam program, sehingga boleh tidak disebutkan didalam anak kalimat Uses.
1.4.2 Unit Crt
Digunakan untuk memanipulasi layer teks ( windowing, peletakkan cursor dilayar,
color untuk teks, kode extanded keyboard dan lainnya). Unit standar crt hanya
dapat digunakan oleh program yang digunakan dikomputer IBM PC, IBM AT,
IBM PS/2 atau yang kompatibel dengannya.
Contoh :
Uses crt ;
Begin
Clrscr ;
Writeln ( ‘Hallo’ ) ;
Writeln ( ‘-------‘ ) ;
End .
Fungsi standar yang menggunakan unit Crt adalah :
KeyPressed
ReadKey
WhereX
WhereY
1.4.3 Unit Printer
Merupakan unit yang sangat kecil dirancang untuk penggunaan printer didalam
program.
Contoh :
Uses printer ;
Begin
Writeln ( Lst, ‘Hallo’ ) ;
Writeln ( Lst, ‘-------‘ ) ;
End .
1.4.4 Unit Dos
Digunakan bila akan menggunakan prosedur-prosedur dan fungsi-fungsi standar
yang berhubungan dengan DOS call, semacam DetTime, SetTime, DiskSize,
DiskFree dan lainnya.
Contoh :
Uses Dos ;
Begin
Writeln ( DiskFree(0), ‘ byte sisa isi disk ‘ ) ;
End .
1.4.5 Unit Graph
menyediakan suatu kumpulan rutin grafik yang canggih, sehingga dapat
memanfaatkannya untuk keperluan-keperluan pembuatan grafik.
contoh :
Uses graph ;
Var
DriveGrafik, ModeGrafik : integer ;
I, x, y : integer ;
Begin
DriveGrafik : = detect ;
…….
…….
End .
. DASAR PEMROGRAMAN
Untuk membuat sebuah program kita pastinya membutuhkan sebuah atau beberapa software yang mendukung pembuatan program tersebut dan sesuai dengan kemampuan kita dalam bahasa pemrograman. Bahasa pemrograman diklasifikasikan menjadi 3 jenis yaitu :
Low – level programing language
Tingkat bahasa pemrograman ini disebut “rendah” (low level) dikarenakan kurangnya abstraksi atau kurangnya penggambaran oleh kode instruksi yang ada antara bahasa natural (manusia) dan bahasa mesin. Dan karena itu bahasa ini sering disebut bahasa mesin.
High – level programing language
Bahasa pemrograman di tingkat ini sudah memiliki abstraksi yang luas dan memiliki kemiripan dengan bahasa natural (manusia) terutama bahasa inggris. Dan bahasa ini sangat mudah di gunakan dan biasanya bahasa pemrograman ini digunakan untuk orang awam yang ingin belajar bahasa pemrograman.
Very high – level programing language.
Bahasa ini memiliki abstraksi yang sangat tinggi dari pada High – level language
dan biasanya digunakan untuk menunjang produktivitas para programer
profesional. Nah .. untuk pembelajaran tahap awal kita akan membahas tentang
salah satu bahasa pemrograman tingakt tinggi yaitu bahasa pemrograman
PASCAL. Sebelum itu kita harus belajar tentang algoritma pemrograman yang
biasanya diimplementasikan denganFlowchart atau Pseudocode. Pembuatan
algoritma ini bertujuan untuk mempermudah pembuatan program, algoritma juga
bisa dikatakan sebagai kerangka awal sebuah program. I.1 Flowchart Flowchart
merupakan skema penggambaran tahap – tahap esekusi dalam sebuah program
yang akan kita buat dalam bentuk simbol. Beberapa macam simbol itu adalah :
Pseudocode adalah penulisan algoritma menggunakan gaya bahasa
pemrograman pemrograman tertentu. Contoh deskripsi algoritma di atas
bila ditulis menggunkan gaya bahasa PASCAL akan berbentuk:
BEGIN { mulai }
{ input } read(R); { proses } jika R <= 0 then tulis("Data salah !") selain itu
l_Lingkaran = PHI x R x R; { output } tulis(l_Lingkaran); END; { selesai }
BAHASA PASCAL
1. Sejarah PASCAL
Merupakan pengembangan dari bahasa ALGOL 60, bahasa pemrograman
untuk sains komputasi. Tahun 1960, beberapa ahli komputer bekerja untuk
mengembangkan bahasa ALGOL, salah satunya adalah Dr. Niklaus Wirth
dari Swiss Federal Institute of Technology (ETH-Zurich), yang merupakan
anggota grup yang membuat ALGOL. Tahun 1971, dia menerbitkan suatu
spesifikasi untuk highly-structured language (bahasa tinggi yang
terstruktur) yang menyerupai ALGOL. Dia menamainya dengan PASCAL
(seorang filsuf dan ahli matematika dari Perancis) Pascal bersifat data
oriented, yaitu programmer diberi keleluasaan untuk mendefinisikan data
sendiri. Pascal juga merupakan teaching language (banyak dipakai untuk
pengajaran tentang konsep pemrograman). Kelebihan yang lain adalah
penulisan kode Pascal yang luwes, tidak seperti misalnya FORTRAN, yang
memerlukan programmer untuk menulis kode dengan format tertentu.
Bentuk dasar program Pascal adalah seperti berikut:
program TITLE ; begin pernyataan; pernyataan end.
2. PASCAL sebagai bahasa terstruktur
Sebagai bahasa terstruktur, PASCAL mempunyai ciri-ciri sebagai berikut:
1. Berurutan Susunan dari kode-kode dalam teks Pascal harus ditulis
secara urut dari atas, pernyataan-pernyataan yang ditulis lebih awal akan
dieksekusi lebih dahulu. Oleh karena itu, suatu pernyataan yang
menyangkut suatu variabel di dalam program, maka variable itu harus
terdefinisi dahulu sebelumnya. Hal ini terutama menyangkut pada
pemanggilan sub-program oleh sub-program yang lain. Bisa dibaca lebih
lanjut pada bagian sub-program.
2. Blok dengan batas-batas yang jelas. Pascal memberikan
pembatas yang jelas pada tiap-tiap blok, seperti pada blok program utama,
sub-program, struktur kontrol (pengulangan/ pemilihan), dll. Pemakaian
kata kunci begin untuk mengawali operasi pada blok dan end untuk
menutupnya memudahkan programmer menyusun programnya dengan
mudah.
Seperti contoh:
If X>0 then begin Write ( ‘ bilangan positif’); Writeln ( ‘ program selesai’);
end;
3. Satu pintu masuk dan satu pintu keluar pada blok pemilihan dan
pengulangan. Contoh di atas juga mengilustrasikan pintu masuk tunggal
pada suatu blok pemilihan yaitu suatu test logika X>0, dengan pintu
keluaran yang satu pula (satu disini maksudnya bukan dua baris perintah
output tapi suatu paket perintah yang dirangkai dengan begin .. end.
3. Bakuan PASCAL
Dibakukan oleh ISO pada tahun 1983 dan dikembangkan dalam beberapa
versi, diantaranya: USCD PASCAL, MS PASCAL, TURBO PASCAL dll.
Dengan semakin berkembangnya teknologi dalam komputasi, Pascal
dimanfaatkan untuk pengembangan DELPHI (berasal dari nama suatu kota
di masa Yunani kuno), suatu bahasa pemrograman visual yang
menonjolkan pada efek grafis dan orientasi pada objek-objek yang siap
dipakai, karena memiliki Visual Component Library (VCL).
4. Struktur Bahasa PASCAL secara umum
Pascal mempunyai struktur sebagai berikut:
1. Bagian Judul Program
2. Bagian Deklarasi
a. Deklarasi tipe data (TYPE) b. Deklarasi variabel (VAR) c. Deklarasi
konstanta (CONST) d. Deklarasi label (LABEL) e. Deklarasi sub-
program (PROCEDURE dan FUNCTION)
3. Bagian Program Utama Perintah-perintah.
Teks Pascal setidaknya memiliki bagian Judul Program, bagian Deklarasi,
dan Bagian Program Utama yang berupa perintah-perintah. Sedangkan
untuk bagian deklarasi menyesuaikan dengan isi dari program itu sendiri.
Contoh program PASCAL:
program TAMBAH_00; { Menjumlahkan dua bilangan yang nilainya
diberikan dalam perintah} var X, Y, Z: integer; { Deklarasi variabel X,Y dan
Z sebagai bilangan bulat } BEGIN { Program Utama Mulai } X := 50;
{ Perintah memberikan nilai 50 pada var. X } Y := 25; { Perintah
memberikan nilai 25 pada var. Y } Z := X + Y; { Perintah menjumlahkan X
dan Y serta menyimpan hasilnya ke Z} END. { Akhir Program Utama }
Pada contoh ini nilai X dan Y tidak bisa sembarang, karena didefiniskan
tertentu. Agar nilai X dan Y bisa bebas ditentukan, nilai X dan Y dibaca dari
default input.
program TAMBAH_01; { Menjumlahlan dua buah bilangan yang dibaca dari
default input } var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai
bilangan bulat } BEGIN { Program Utama Mulai } read(X); { Membaca nilai
X lewat key-board } read(Y); { Membaca nilai Y lewat key-board } Z := X +
Y; { Menjumlahkan X dan Y serta menyimpan hasilnya ke Z } write(Z);
{ Menyajikan Z ke layar monitor } END. { Akhir Program Utama }
Dasar Bahasa PASCAL
Unsur-unsur Pemrograman
a. Mendapatkan data dengan membaca data dari default input (key board,
file atau sumber data lainnya). b. Menyimpan data ke dalam memori
dengan struktur data yang sesuai, c. Memproses data dengan instruksi
yang tepat. d. Menyajikan atau mengirimkan hasil olahan data ke default
output (monitor, file atau tujuan lainnya).
Dalam mengolah data diperlukan pengelolaan instruksi terstruktur:
a. Beberapa instruksi dikelompokkan dalam satu blok atau model yang
mengerjakan tugas tertentu. b. Beberapa perintah dilaksanakan dengan
persyaratan tertentu. c. Beberapa perintah dilaksanakan berulang dengan
jumlah pengulangan tertentu.
Identifier Digunakan untuk nama: Program, Sub-program (procedure dan
function), nama: Variable, Constant, Type, Label.
Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam
program. Ketentuan penulisan identifier
a. Nama identifier harus dimulai dengan karakter huruf alfabet: a sampai z,
A sampai Z atau karakter '_' (underscore - garis bawah) b. Karakter
berikutnya boleh karakter numerik (0 .. 9) atau kombinasi alphanumerik
(huruf-numerik). c. Panjang nama, pada berbagai versi Pascal umumnya
antara 32 - 63. d. Tidak boleh menggunakan karakter istimewa: + - * / | \ =
< > [ ] . , ; : ( ) ^ @ { } $ # ~ ! % & ` " ' dan ? Contoh penulisan: Penulisan
yang benar: X _PQR Beta Sudut_Alpha luasLingkaran Penulisan yang
salah: 3D sisi-Kanan B
Tipe Data dan Operator
Tipe Data menunjukkan suatu nilai yang dpat digunakan oleh sutu variable yang
bersangkutan.
Tipe Data dalam Pascal :
1. Tipe Data Sederhana, terdiri dari :
a. Tipe data standar :
– integer : merupakan tipe data berupa bilangan bulat
- real : merupakan jenis bilangan pecahan
– char : merupakan karakter yg ditulis diantara tanda petik tunggal. Ex : ‘A’, ‘a’,
’5′ dll
– string : merupakan urut-urutan dari karakter yang terletak di antara tanda petik
tunggal.
– boolean : merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE
atau FALSE .
b. Tipe data didefinisikan pemakai
2. Tipe Data Terstruktur, terdiri dari :
a. Array
b. Record
c. File
d. Set
3. Tipe Data PointerOperator
Tanda operasi (operator) di dalam bahasa Pascal di kelompokkan dalam :
1. Assignment operator (operator pengerjaan) menggunakan simbol titik dua
diikuti oleh tanda sama dengan (:=). Contoh –> A:=B;
2. Binary operator digunakan untuk mengoperasikan dua buah operand yang
berbentuk konstanta ataupun variable. Operator ini digunakan untuk operasi
arithmatika yang berhubungan dgn nilai tipe data Integer dan Real. Operasi yang
dilakukan adalah : Pertambahan (+), Pengurangan (-), Perkalian (*), Pembagian
Bulat (DIV), Pembagian Real (/) dan Modulus atau Sisa Pembagian (MOD)
3. Unary operator, operator ini menggunakan sebuah operand saja dapat berupa
unary minus dan unary plus. Contoh : +2.5, a+(+b) dll
4. Bitwise operator digunakan untuk operasi bit per bit pada nilai integer.
Operator yang digunakan (NOT, AND, OR, XOR, Shl, Shr
Dasar Program Pascal
Unsur-unsur Pemrograman
a. Mendapatkan data dengan membaca data dari default input (key board, file atau
sumber data lainnya).
b. Menyimpan data ke dalam memori dengan struktur data yang sesuai,
c. Memproses data dengan instruksi yang tepat.
d. Menyajikan atau mengirimkan hasil olahan data ke default output (monitor, file
atau tujuan lainnya).
Nama yang dipergunakan du dalam program Pascal disebut dengan pengenal
atau Identifier. Identifier digunakan untuk nama: Program, Sub-program
(procedure dan function), nama: Variable, Constant, Type, Label.
Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam program.
Ketentuan penulisan identifier
a. Nama identifier harus dimulai dengan karakter huruf alfabet: a sampai z, A
sampai Z atau karakter ‘_’ (underscore – garis bawah)
b. Karakter berikutnya boleh karakter numerik (0 .. 9) atau kombinasi
alphanumerik (huruf-numerik).
c. Panjang nama, pada berbagai versi Pascal umumnya antara 32 – 63.
d. Tidak boleh menggunakan karakter istimewa: + – * / | \ = < > [ ] . , ; : ( ) ^ @ { }
$ # ~ ! % & ` ” ‘ dan ? Contoh penulisan:
Penulisan yang benar: NamaMahasiswa, Gaji_Karyawan, PX4, dll.
Penulisan yang salah: 3X, A & B, C Z dll.
Variable adalah identifier yang berisi data yang dapat berubah-ubah nilainya di
dalam program. Deklarasi Variable adalah :
a. Memberikan nama variabel sebagai identitas pengenal
b. Menentukan tipe data variabel
Contoh deklarasi variabel: var X : integer;
R : real;
C : char;
T : boolean;
Konstanta adalah identifier yang berisi data yang nilainya tidak berubah di dalam
program.
Deklarasi Konstanta adalah:
a. Memberikan nama konstanta sebagai identitas pengenal
b. Menentukan nilai konstanta
Contoh deklarasi konstanta: conts MaxSize = 100; {integer}
ExitC = ‘Q’; {char}
Reserved Words atau kata-kata cadangan pada Pascal adalah kata-kata yang sudah
didefinisikan oleh Pascal yang mempunyai maksdu tertentu.Suatu Unit adalah
kumpulan dari konstanta, tipe-tipe data, variabel, prosedur dan fungsi-fungsi. Unit
standar pada Pascal yang bisa langsung digunakan adalah System, Crt, Printer Dos
dan Graph. Untuk menggunakan suatu unit, maka kita harus meletakkan clausa
atau anak kalimat Uses di awal blok program, diikuti oleh daftar nama unit yang
digunakan. Pada materi ini yang akan dibahas adalah unit Crt. Unit ini Color pada
teks, kode extended keyboard dan lain sebagainya.digunakan untuk memanipulasi
layar teks (windowing, peletakan cursor di layar,
Beberapa Statemen Turbo Pascal
Statemen adalah perintah untuk pengerjaan program pascal.
Statemen terletak di bagian deklarasi statemen dengan diawali oleh kata cadangan
BEGIN dan diakhiri dengan kata cadangan END. Akhir dari setiap statemen
diakhiri dengan titik koma [;].
Statemen statemen dalam bahasa Pascal terdiri dari pernyataan yang berupa fungsi
dan prosedur yang telah disediakan sebagai perintah standar Turbo Pascal.
1. Statemen-statemen yang digunakan untuk input/output.
# Read/Readln [prosedur].
Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke
dalam suatu variabel.
Sintaks: Read/Readln(x); (ingat, selalu diakhiri dengan titik koma [;])
Keterangan : x = variabel.
Read = pada statemen ini posisi kursor tidak
pindah ke baris selanjutnya.
Readln = pada statemen ini posisi kursor akan
pindah ke baris selanjutnya setelah di
input.
# Write/Writeln [prosedur].
Digunakan untuk menampilkan isi dari suatu nilai variable di
layar.
Sintaks: Write/Writeln(x);
Keterangan : x = variabel.
Write/Writeln= statement ini digunakan untuk mencetak variable ke dalam monitor
2. Statemen-statemen yang digunakan untuk pengaturan letak layar.
# ClrScr [prosedur].
Perintah ini digunakan untuk membersihkan layar.
sintaks: ClrScr; ��[Clear screen]
PROSESOR
sejarah perkembangan prosesor Intel dan para clone-nya yang berhasil disarikan
Debut Intel dimulai dengan processor seri MCS4 yang merupakan cikal bakal dari
prosesor i4040. Processor 4 bit ini yang direncanakan untuk menjadi otak calculator , pada tahun
yang sama (1971), intel membuat revisi ke i440. Awalnya dipesan oleh sebuah perusahaan
Jepang untuk pembuatan kalkulator , ternyata prosesor ini jauh lebih hebat dari yang diharapkan
sehingga Intel membeli hak guna dari perusahaan Jepang tersebut untuk perkembangan dan
penelitian lebih lanjut. Di sinilah cikal bakal untuk perkembangan ke arah prosesor komputer.
Berikutnya muncul processor 8 bit pertama i8008 (1972), tapi agak kurang disukai karena
multivoltage.. lalu baru muncul processor i8080, disini ada perubahan yaitu jadi triple voltage,
pake teknologi NMOS (tidak PMOS lagi), dan mengenalkan pertama kali sistem clock generator
(pake chip tambahan), dikemas dalam bentuk DIP Array 40 pins. Kemudian muncul juga
processor2 : MC6800 dari Motorola -1974, Z80 dari Zilog -1976 (merupakan dua rival berat),
dan prosessor2 lain seri 6500 buatan MOST, Rockwell, Hyundai, WDC, NCR dst. Z80 full
compatible dengan i8008 hanya sampai level bahasa mesin. Level bahasa rakitannya berbeda
(tidak kompatibel level software). Prosesor i8080 adalah prosesor dengan register internal 8-bit,
bus eksternal 8-bit, dan memori addressing 20-bit (dapat mengakses 1 MB memori total), dan
modus operasi REAL.
Thn 77 muncul 8085, clock generatornya onprocessor, cikal bakalnya penggunaan single
voltage +5V (implementasi s/d 486DX2, pd DX4 mulai +3.3V dst).
i8086, prosesor dengan register 16-bit, bus data eksternal 16-bit, dan memori addressing
20-bit. Direlease thn 78 menggunakan teknologi HMOS, komponen pendukung bus 16 bit sangat
langka , sehingga harganya menjadi sangat mahal.
Maka utk menjawab tuntutan pasar muncul i8088 16bit bus internal, 8bit bus external.
Sehingga i8088 dapat memakai komponen peripheral 8bit bekas i8008. IBM memilih chip ini
untuk pebuatan IBM PC karena lebih murah daripada i8086. Kalau saja CEO IBM waktu itu
tidak menyatakan PC hanyalah impian sampingan belaka, tentu saja IBM akan menguasai pasar
PC secara total saat ini. IBM PC first release Agustus 1981 memiliki 3 versi IBM PC, IBM PC-Jr
dan IBM PC-XT (extended technology). Chip i8088 ini sangat populer, sampai NEC
meluncurkan sebuah chip yang dibangun berdasarkan spesifikasi pin chip ini, yang diberi nama
V20 dan V30. NEC V20 dan V30 adalah processor yang compatible dengan intel sampai level
bahasa assembly (software).
Chip 8088 dan 8086 kompatibel penuh dengan program yang dibuat untuk chip 8080, walaupun
mungkin ada beberapa program yang dibuat untuk 8086 tidak berfungsi pada chip 8088
(perbedaan lebar bus)
Lalu muncul 80186 dan i80188.. sejak i80186, prosessor mulai dikemas dalam bentuk
PLCC, LCC dan PGA 68 kaki.. i80186 secara fisik berbentuk bujursangkar dengan 17 kaki
persisi (PLCC/LCC) atau 2 deret kaki persisi (PGA) dan mulai dari i80186 inilah chip DMA dan
interrupt controller disatukan ke dalam processor. semenjak menggunakan 286, komputer IBM
menggunakan istilah IBM PC-AT (Advanced Technology)dan mulai dikenal pengunaan istilah
PersonalSystem (PS/1). Dan juga mulai dikenal penggunaan slot ISA 16 bit yang dikembangkan
dari slot ISA 8 bit , para cloner mulai ramai bermunculan. Ada AMD, Harris & MOS yang
compatible penuh dengan intel. Di 286 ini mulai dikenal penggunaan Protected Virtual Adress
Mode yang memungkinkan dilakukannya multitasking secara time sharing (via hardware
resetting).
Tahun 86 IBM membuat processor dengan arsitektur RISC 32bit pertama untuk kelas PC.
Namun karena kelangkaan software, IBM RT PC ini “melempem” untuk kelas enterprise, RISC
ini berkembang lebih pesat, setidaknya ada banyak vendor yang saling tidak kompatibel.
* Lalu untuk meraih momentum yang hilang dari chip i8086, Intel membuat i80286,
prosesor dengan register 16-bit, bus eksternal 16-bit, mode protected terbatas yang dikenal
dengan mode STANDARD yang menggunakan memori addressing 24-bit yang mampu
mengakses maksimal 16 MB memori. Chip 80286 ini tentu saja kompatibel penuh dengan chip-
chip seri 808x sebelumnya, dengan tambahan beberapa set instruksi baru. Sayangnya chip ini
memiliki beberapa bug pada desain hardware-nya, sehingga gagal mengumpulkan pengikut.
Pada tahun 1985, Intel meluncurkan desain prosesor yang sama sekali baru: i80386.
Sebuah prosesor 32-bit , dalam arti memiliki register 32-bit, bus data eksternal 32-bit, dan
mempertahankan kompatibilitas dengan prosesor generasi sebelumnya, dengan tambahan
diperkenalkannya mode PROTECTED 32-BIT untuk memori addressing 32-bit, mampu
mengakses maksimum 4 GB , dan tidak lupa tambahan beberapa instruksi baru. Chip ini mulai
dikemas dalam bentuk PGA (pin Grid Array)
Prosesor Intel sampai titik ini belum menggunakan unit FPU secara
internal . Untuk dukungan FPU, Intel meluncurkan seri 80×87. Sejak 386 ini mulai muncul
processor cloner : AMD, Cyrix, NGen, TI, IIT, IBM (Blue Lightning) dst, macam-macamnya :
i80386 DX (full 32 bit)
i80386 SX (murah karena 16bit external)
i80486 DX (int 487)
i80486 SX (487 disabled)
Cx486 DLC (menggunakan MB 386DX, juga yang lain)
Cx486 SLC (menggunakan MB 386SX)
i80486DX2
i80486DX2 ODP
Cx486DLC2 (arsitektur MB 386)
Cx486SLC2 (arsitektur MB 386)
i80486DX4
i80486DX4 ODP
i80486SX2
Pentium
Pentium ODP
* Sekitar tahun 1989 Intel meluncurkan i80486DX. Seri yang tentunya sangat populer,
peningkatan seri ini terhadap seri 80386 adalah kecepatan dan dukungan FPU internal dan skema
clock multiplier (seri i486DX2 dan iDX4), tanpa tambahan instruksi baru. Karena permintaan
publik untuk prosesor murah, maka Intel meluncurkan seri i80486SX yang tak lain adalah
prosesor i80486DX yang sirkuit FPU-nya telah disabled . Seperti yang seharusnya, seri
i80486DX memiliki kompatibilitas penuh dengan set instruksi chip-chip seri sebelumnya.
* AMD dan Cyrix kemudian membeli rancangan prosesor i80386 dan i80486DX untuk membuat
prosesor Intel-compatible, dan mereka terbukti sangat berhasil. Pendapat saya inilah yang
disebut proses ‘cloning’, sama seperti cerita NEC V20 dan V30. AMD dan Cyrix tidak
melakukan proses perancangan vertikal (berdasarkan sebuah chip seri sebelumnya), melainkan
berdasarkan rancangan chip yang sudah ada untuk membuat chip yang sekelas.
* Tahun 1993, dan Intel meluncurkan prosesor Pentium. Peningkatannya terhadap i80486:
struktur PGA yang lebih besar (kecepatan yang lebih tinggi , dan pipelining, TANPA instruksi
baru. Tidak ada yang spesial dari chip ini, hanya fakta bahwa standar VLB yang dibuat untuk
i80486 tidak cocok (bukan tidak kompatibel) sehingga para pembuat chipset terpaksa melakukan
rancang ulang untuk mendukung PCI. Intel menggunakan istilah Pentium untuk meng”hambat”
saingannya. Sejak Pentium ini para cloner mulai “rontok” tinggal AMD, Cyrix . Intel
menggunakan istilah Pentium karena Intel kalah di pengadilan paten. alasannya angka tidak bisa
dijadikan paten, karena itu intel mengeluarkan Pentium menggunakan TM. AMD + Cyrix tidak
ingin tertinggal, mereka mengeluarkan standar Pentium Rating (PR) sebelumnya ditahun 92 intel
sempat berkolaborasi degan Sun, namun gagal dan Intel sempat dituntut oleh Sun karena dituduh
menjiplak rancangan Sun. Sejak Pentium, Intel telah menerapkan kemampuan Pipelining yang
biasanya cuman ada diprocessor RISC (RISC spt SunSparc). Vesa Local Bus yang 32bit adalah
pengembangan dari arsitektur ISA 16bit menggunakan clock yang tetap karena memiliki clock
generator sendiri (biasanya >33Mhz) sedangkan arsitektur PCI adalah arsitektur baru yang
kecepatan clocknya mengikuti kecepatan clock Processor (biasanya kecepatannya separuh
kecepatan processor).. jadi Card VGA PCI kecepatannya relatif tidak akan sama di frekuensi
MHz processor yang berbeda alias makin cepat MHz processor, makin cepat PCI-nya
* Tahun 1995, kemunculan Pentium Pro. Inovasi disatukannya cache memori ke dalam prosesor
menuntut dibuatnya socket 8 . Pin-pin prosesor ini terbagi 2 grup: 1 grup untuk cache memori,
dan 1 grup lagi untuk prosesornya sendiri, yang tak lebih dari pin-pin Pentium yang diubah
susunannya . Desain prosesor ini memungkinkan keefisienan yang lebih tinggi saat menangani
instruksi 32-bit, namun jika ada instruksi 16-bit muncul dalam siklus instruksi 32-bit, maka
prosesor akan melakukan pengosongan cache sehingga proses eksekusi berjalan lambat. Cuma
ada 1 instruksi yang ditambahkan: CMOV (Conditional MOVe) .
* Tahun 1996, prosesor Pentium MMX. Sebenarnya tidak lebih dari sebuah Pentium dengan unit
tambahan dan set instruksi tambahan, yaitu MMX. Intel sampai sekarang masih belum
memberikan definisi yang jelas mengenai istilah MMX. Multi Media eXtension adalah istilah
yang digunakan AMD . Ada suatu keterbatasan desain pada chip ini: karena modul MMX hanya
ditambahkan begitu saja ke dalam rancangan Pentium tanpa rancang ulang, Intel terpaksa
membuat unit MMX dan FPU melakukan sharing, dalam arti saat FPU aktif MMX non-aktif, dan
sebaliknya. Sehingga Pentium MMX dalam mode MMX tidak kompatibel dengan Pentium.
Bagaimana dengan AMD K5? AMD K5-PR75 sebenarnya adalah sebuah ‘clone’ i80486DX
dengan kecepatan internal 133MHz dan clock bus 33MHz . Spesifikasi Pentium yang didapat
AMD saat merancang K5 versi-versi selanjutnya dan Cyrix saat merancang 6×86 hanyalah
terbatas pada spesifikasi pin-pin Pentium. Mereka tidak diberi akses ke desain aslinya. Bahkan
IBM tidak mampu membuat Intel bergeming (Cyrix, mempunyai kontrak terikat dengan IBM
sampai tahun 2005)
Mengenai rancangan AMD K6, tahukah anda bahwa K6 sebenarnya adalah rancangan milik
NexGen ? Sewaktu Intel menyatakan membuat unit MMX, AMD mencari rancangan MMX dan
menambahkannya ke K6. Sayangnya spesifikasi MMX yang didapat AMD sepertinya bukan
yang digunakan Intel, sebab terbukti K6 memiliki banyak ketidakkompatibilitas instruksi MMX
dengan Pentium MMX.
* Tahun 1997, Intel meluncurkan Pentium II, Pentium Pro dengan teknologi MMX yang
memiliki 2 inovasi: cache memori tidak menjadi 1 dengan inti prosesor seperti Pentium Pro ,
namun berada di luar inti namun berfungsi dengan kecepatan processor. Inovasi inilah yang
menyebabkan hilangnya kekurangan Pentium Pro (masalah pengosongan cache) Inovasi kedua,
yaitu SEC (Single Edge Cartidge), Kenapa? Karena kita dapat memasang prosesor Pentium Pro
di slot SEC dengan bantuan adapter khusus. Tambahan : karena cache L2 onprocessor, maka
kecepatan cache = kecepatan processor, sedangkan karena PII cachenya di”luar” (menggunakan
processor module), maka kecepatannya setengah dari kecepatan processor. Disebutkan juga
penggunaan Slot 1 pada PII karena beberapa alasan :
Pertama, memperlebar jalur data (kaki banyak – Juga jadi alasan Socket 8), pemrosesan pada
PPro dan PII dapat paralel. Karena itu sebetulnya Slot 1 lebih punya kekuatan di Multithreading /
Multiple Processor. ( sayangnya O/S belum banyak mendukung, benchmark PII dual
processorpun oleh ZDBench lebih banyak dilakukan via Win95 ketimbang via NT)
Kedua, memungkinkan upgrader Slot 1 tanpa memakan banyak space di Motherboard sebab bila
tidak ZIF socket 9 , bisa seluas Form Factor(MB)nya sendiri konsep hemat space ini sejak 8088
juga sudah ada .Mengapa keluar juga spesifikasi SIMM di 286? beberapa diantaranya adalah
efisiensi tempat dan penyederhanaan bentuk.
Ketiga, memungkinkan penggunaan cache module yang lebih efisien dan dengan speed tinggi
seimbang dengan speed processor dan lagi-lagi tanpa banyak makan tempat, tidak seperti AMD /
Cyrix yang “terpaksa” mendobel L1 cachenya untuk menyaingi speed PII (karena L2-nya
lambat) sehingga kesimpulannya AMD K6 dan Cyrix 6×86 bukan cepat di processor melainkan
cepat di hit cache! Sebab dengan spec Socket7 kecepatan L2 cache akan terbatas hanya secepat
bus data / makin lambat bila bus datanya sedang sibuk, padahal PII thn depan direncanakan
beroperasi pada 100MHz (bukan 66MHz lagi). Point inilah salah satu alasan kenapa intel
mengganti chipset dari 430 ke 440 yang berarti juga harus mengganti Motherboard.
mata kuliah
Modul Praktek
Pemrograman DasarPembahasan 1
Pengenalan Pascal
Sejarah Pascal
Berakar dari Bahasa Algol dan PL/1 pada tahun 60-an di benua Eropa
Pascal disusun oleh Prof.Niklaus Wirth pada tahun 70 dan dipublikasikan tahun 71
Diujicoba pada Komputer CDC 6000
Turbo Pascal bersifat Compiler dan termasuk bahasa tingkat tinggi
Struktur Bahasa Pascal
Judul
Program ;
Uses ;
Bagian Deklarasi
Label ;
Const ;
Type ;
Var ;
Procedure ;
Function ;
Bagian Pernyataan
Begin
;
End.
Contoh Program
Listing Programnya
Uses Crt;
Begin
WriteLn( ‘Saya’ );
Write( ‘Belajar’ );
WriteLn( ‘Turbo’ );
Write( ‘Pascal’ );
Write( ‘Versi 7.0’ );
End.
Tekan Ctrl F9 untuk ekseskusi program
Tekan F5 untuk melihat hasilnya
Hasilnya :
Saya
Belajar Turbo
Pascal Versi 7.0
Tugas:
Buatlah Program cetak dilayar Biodata diri anda
Pembahasan 2
PERINTAH DASAR – IDENTIFIER - DEKLARASI
Perintah Dasar/Sederhana Pascal
Write ( ‘Text/tulisan’,Variabel);
Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris
WriteLn( ‘Text/Tulisan’,Variabel);
Perintah untuk menampilkan/cetak dilayar monitor lalu pindah baris kebawah
Read(Variabel);
Perintah untuk menginput/mengisi data tanpa pindah baris
ReadLn(Variabel);
Perintah untuk menginput/mengisi data lalu pindah baris
Identifier/Pengenal Data
Digunakan untuk penamaan elemen-elemen deklarasi seperti Label, Constanta, type, variabel, procedure, function
Syarat Identifier
Diawali huruf
Tidak boleh ada spasi/blank
Tidak boleh menggunakan reserved word
Tidak boleh menggunakan simbol khusus,
kecuali underscore(tanda bawah)
Panjang maximal 63 character
Pembahasan 3
PENGUNAAN USES CRT – TIPE SEDERHANA - OPERATOR
Penggunaan Unit CRT (Cathoda Ray Tube)
CLRSCR ;
Untuk membersihkan layar
Delay (nilainya);
Untuk menghentikan program dalam satuan milisecond
Gotoxy(x,y);
Untuk menempatkan kursor diposisi x dan y
Window(x1,y1,x2,y2)
Untuk membuat batasan jendela pada layar
Tipe Data Bahasa Pascal
Bilangan Bulat [integer] Terdiri dari
Tipe Jangkauan nilainyaShortint -128 .. 127Byte 0 .. 255Integer -32768 .. 32767Word 0 .. 65535Longint -21747483648 ..
21747483647
Bilangan Pecahan [real] terdiri dari single, real, double, extended
Character satu huruf/simbol saja
String lebih dari satu huruf/simbol
Boolean data berisi True/False
Operator-Operator Pascal
Assignment Operator (Operator Pengerjaan) :=
Contoh A:=5 Nama:=Budi
Binari Operator * / + - DIV MOD
Unary Operator (Operator Tunggal)
Contoh -5 +2.5
Bitwise Operator NOT, AND, OR, XOR, SHL, SHR
Relasi Operator (Operator Relasi) = <> > <= >= IN
Logical Operator (Operator Logika) NOT, AND, OR, XOR
Address Operator (Operator Alamat) @ ^
Set Operator (Operator Himpunan) + - *
String Operator +
Contoh Nama1:= ‘Syaiful Anwar’; Nama2:= ‘Anwar’;
Nama3 := Nama1 + Nama2 ;
Hasilnya Nama3 SyaifulAnwar
10); WRITELN(15 DIV 2); WRITELN(15 MOD 2); WRITELN(15/2); WRITELN(12
AND 23); WRITELN(12 OR 23); READLN; END. Hasilnya False True 7 1 7.5000000E+00 4
31" width="197" align="left" height="750" hspace="12">Tugas Program
1. Buatlah Program Luas Segi Tiga
2. Buatlah Program Luas dan Keliling Lingkaran
3. Buatlah Program Persegi Panjang
Pembahasan 4
DEKLARASI TIPE - DEKLARASI LABEL
Deklarasi Type
Pengenal (identifier) dari data yang digunakan harus diperkenalkan Tipenya. Jika ingin menggunakan tipe data dengan nama yang dibuat oleh pemakai, maka harus disebutkan tipe data standarnya.
Deklarasi Label
Deklarasi label digunakan untuk melompati beberapa perintah program. Memiliki arah dan tujuan yaitu dengan menggunakan GOTO
Tugas :
Tugas Program
1. Rubah Program Labelnya dgn Layout sbb
TEXT2 TEXT4 TEXT6
2. Buat luas dan Keliling lingkaran dengan menggunakan deklarasi type dan Var
Pembahasan 5
FORMAT TIPE DATA– LOKASI CURSOR
Tampilan Terformat
Untuk mengatur bentuk tampilan dari tampilan default ke bentuk yang diinginkan atau Batasan cetak
Parameter Char:n
Batasan cetak/ bentuk tampilan/ jarak tampil data char
Parameter String:n
Batasan cetak/ bentuk tampilan/ jarak tampil data string
Parameter Boolean:n
Batasan cetak/ bentuk tampilan/ jarak tampil data Boolean
Parameter Integer:n
Batasan cetak/ bentuk tampilan/ jarak tampil data Integer
Parameter Real:n:m
Batasan cetak/ bentuk tampilan/ jarak tampil data Real
Uses Crt;
Const Kampus=‘Bsi’; {Tipe String}
Nrata=2.5; {Tipe Real}
Ntotal=55; {Tipe Integer}
Cek =True; {Tipe Boolean}
Huruf =‘A’; {Tipe Char}
BEGIN
Clrscr;
Writeln(‘Nama Kampus :’,Kampus);
Writeln(‘Nama Kampus :’,Kampus:3);
Writeln(‘Nama Kampus :’,Kampus:6);
Writeln(‘Nilai Rata :’,Nrata);
Writeln(‘Nilai Rata :’,Nrata:3:0);
Writeln(‘Nilai Rata :’,Nrata:6:1);
Writeln(‘Nilai Total :’,Ntotal:2);
Writeln(‘Nilai Total :’,Ntotal:5);
Writeln(‘Cek Boolean :’,Cek);
Writeln(‘Cek Boolean :’,Cek:7);
Writeln(‘Huruf Abjad :’,Huruf);
Writeln(‘Huruf Abjad :’,Huruf:3);
Readln;
End.
Contoh Program Lokasi Cursor
BEGIN
CLRSCR;
GOTOXY(10,2);
WRITE(‘JUDUL INI TERCETAK DI KOLOM 10 BARIS 2’);
READLN;
END.
Pembahasan 6
BRANCHING IF TUNGGAL/MAJEMUK – CASE OF
Bracnhing/ Penyeleksian Kondisi
Untuk menyeleksi kondisi-kondisi suatu proses makan diperlukan perintah IF. Adapun bentuk-bentuk IF sbb:
Statement IF
Bentuk Umum : If Then ;
contoh : IF N>=60 Then Ket:=‘Lulus’;
Bentuk Umum : If Then
Else ;
contoh : IF N>=60 Then Ket:=‘Lulus’
Else Ket:=‘Gagal’;
Nb : apabila dalam satu statement lebih dari 1 baris perintah maka statemen tsb dimasukkan blok
Branching Majemuk
Bentuk Umum : If Then
Else If Then
Else ;
contoh :
Else IF N>74 Then Mutu:=‘Baik’
Else IF N>60 Then Mutu:=‘Cukup’
Else Mutu:=‘Kurang’;
Statement Case…OF
OF Konstanta1 : ; Konstanta2 : ; Konstanta3 : ; Konstanta4 : ; END;" width="246"
align="left" height="138" hspace="12">
Pembahasan 7
LOOPING ( PERULANGAN )
1. Statement For....Do (Perulangan Counter)
B.U : For variabel_kontrol : = nilai_awal To nilai_akhir Do
Statement ;
B.U : For variabel_kontrol:= nilai_awal DownTo nilai_akhir Do
Statement ;
2. Statement While ... Do (Perulangan Kondisi Terpenuhi)
B.U : While ungkapan_logika Do
Statement ;
3. Statement Repaet...Until (Perulangan Kondisi Tidak Terpenuhi)
B.U : Repeat
Statement ;
Until ungkapan_logika ;
Program Repeat;
Uses crt ;
Var
i : byte ;
begin
clrscr ;
I : = 1 ;
Repeat
writeln ( I ) ;
I : = I +1; Until I >= 5
readln ;
end .Program While ;
Uses crt ;
Var
i : byte ;
begin
clrscr ;
I : = 0 ;
While I <= 5 Do
begin
writeln(I);
I : = I +1 ;
end ;
readln ;
end .Program For_DownTo;
Uses crt ;
Var
i : byte ;
begin
clrscr ;
for i : = 5 downto 5 do
writeln (‘ Pascal ‘) ;
readln ;
end .
Program For_To ;
Uses crt ;
Var
i : byte ;
begin
clrscr ;
for i : = 1 to 5 do
writeln (‘ Pascal ‘) ;
readln ;
end .
Tugas :
1. Buat deret bilangan ganjil dan deret bilangan genap2. Buatlah deret bilangan Fibonanci 1 1 2 3 5 8 13 21 34 553. Buatlah deret
1 2 3 4 5 b. 1 c. 5 d. 1 2 3 4 5
1 2 3 4 1 2 4 5 2 3 4 5
1 2 3 1 2 3 3 4 5 3 4 5
1 2 1 2 3 4 2 3 4 5 4 5
1 1 2 3 4 5 1 2 3 4 5 5
4. Buatlah deret
1 . 2 1 . 4 1 . 6 1 . 8
2 . 2 2 . 4 2 . 6 2 . 8
Pembahasan 8
HIMPUNAN / SET
Himpunan termasuk salah satu tipe data terstruktur,yang terdiri dari sejumlah elemen yang bertipe data sama.
Pendefinisian tipe data himpunana diawali dengan kata tercadang Set dan Of,kemudian didikuti dengan tipe elemen.
Bentuk umum : SET OF tipe_elemen
Elemen Himpunan mempunyai bentuk eperti : [daftar_elemen] yang mana etiap elemen harus bertipe sama.
Operator hubungan dalam himpunan
Himp1 = Himp2 Dua Himpunan Dikatakan sama jika jumlah elemen sama dan masing-masing elemen sama.Hasilnya True bila Himp1 sama dengan Himp2
Himp1 <> Himp2 Dua Himpunan Dikatakan tidak sama jika jumlah elemen tidak sama dan masing-masing elemen tidak sama. Hasilnya True bila Himp1 tidak sama dengan Himp2
Himp1 <= Himp2 Hasil bernilai True jika semua elemen dari Himp1 terdapat pada Himp2
Himp1 >= Himp2 Hasil bernilai True jika semua elemen dari Himp2 terdapat pada Himp1
Elemen In Himp Memeriksa elemen adalah anggota himpunan Himp atau tidak.Hasil true jika elemen adalah anggota dari Himp
Operator Operasi Himpunan
Himp1 * Himp2 Operasi Interseksi himpunan.untuk memperoleh himpunan yang terdiri dari elemen yang merupakan anggota himpunan Himp1 dan sekaligus juga merupakan anggota Himp2
Himp1 + Himp2 Operasi penggabungan himpunan.Untuk memperoleh himpunan yang terdiri dari gabungan elemen anggota Himp1 dan Himp2
Himp1 - Himp2 Operasi selisih himpunan.Untuk memperoleh himpunan yang terdiri dari elemen anggota Himp1 yang bukan anggota himpunan Himp2
Contoh Ungkapan Hasil[1,2,3,4,5] * [1,3,5,7] [1,3,5][1,2,3,4,5] * [6,7,8,9,10] [][1,2,3] * [] [][1,2,3,4,5] + [6,7] [1,2,3,4,5,6,7][1,2,4] + [1,2,3] [1,2,3,4][1,2,3,4,5] - [1,2] [3,4,5][1,2,3,4,5] - [4,5,6,7] [1,2,3]
[4,5,6,7] - [1,2,3,4,5] [4,6,7]
Contoh Program Himpunan
Program Himpunan;
Uses Crt;
Type Hs = Set Of 1..9;
Var H1,H2,H3 : Hs;
BEGIN
CLRSCR;
H1:=[1,2,3,4,5];
H2:=[3,5,6,7,8];
H3:=H1+H2;
IF H3=[1..8] Then Writeln('H1+H2 Adalah [1..8]') Else Writeln('Salah');
Readln;
H3:=H1-H2;
IF H3=[1,2,4] Then Writeln('H1-H2 Adalah [1,2,4]') Else Writeln('Salah');
Readln;
H3:=H1*H2;
IF H3=[3,5] Then Writeln('H1*H2 Adalah [3,5]') Else Writeln('Salah');
Readln;
END.
Pembahasan 9
ARRAY / LARIK
Array ( larik ) adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempuyai tipe sama.
B.U : Array [ 1 . . 20 ] of tipe_data ; (Dimensi 1)
B.U : Array [1 . . 3 , 1 . . 2] of tipe_data; (Dimensi 2)
Contoh Program Array :
Uses crt ;
Var
Nama : array [1..30 ] of string ;
Tugas, uts, uas, absen : array [1..30] of integer ;
Rata : array [1..30] of real ;
x , jd : byte;
BEGIN
CLRSCR ;
Write ( ‘ Masukan Jumlah data : ‘ ) ; readln ( jd ) ;
For x : = 1 to jd do
begin
Writeln ( ‘ ***************************** ‘ ) ;
Writeln ( ‘ PENILAIAN UJIAN MAHASISWA AsiA ‘ ) ;
Writeln ( ‘ ***************************** ‘ ) ;
Write ( ‘ Input Nama : ‘ ) ; readln (nama[x] ) ;
Write ( ‘ Input Nilai Tugas : ‘ ) ; readln (tugas[x] ) ;
Write ( ‘ Input Nilai Absen : ‘ ) ; readln (absen[x] ) ;
Write ( ‘ Input Nilai UTS : ‘ ) ; readln (uts[x] ) ;
Write ( ‘ Input Nilai UAS : ‘ ) ; readln (uas[x]) ;
Rata[x]:=(0.1*tugas[x])+(0.2*absen[x])+(0.3*uts[x])+(0.4*uas[x]);
End ;
CLRSCR ;
For i : = 1 to j do
Begin
Writeln ( ‘ ***************************** ‘ ) ;
Writeln ( ‘ PENILAIAN UJIAN MAHASISWA AsiA ‘ ) ;
Writeln ( ‘ ***************************** ‘ ) ;
Writeln ( ‘ Nama : ‘ , nama[i] ) ;
Writeln ( ‘ Nilai Tugas : ‘ , tugas[i] ) ;
Writeln ( ‘ Nilai Absen : ‘ , absen[i] ) ;
Writeln ( ‘ Nilai UTS : ‘ , uts[i] ) ;
Writeln ( ‘ Nilai UAS : ‘ , uas[i]) ;
Writeln ( ‘ **************************** ‘ ) ;
Writeln ( ‘ Rata-rata : ‘ , rata : 1: 0 ) ;
Readln ;
End;
END.
Pembahasan 10
PROCEDURE
Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram ( program bagian ). Parameter pada procedure ada 2 :
Bentuk Umum :
PROGRAM Judul_Program ;
BEGIN
..............
END.
Parameter didalam prosedur terdiri dari 2 yaitu :
PROCEDURE judul_prosedur ;
Begin
.............
End ;
a. Parameter bersifat Lokal artinya bahwa nilai yang terdapat didalam suatu modul program hanya dapat digunakan pada modul yang bersangkutan sehingga tidak dapat digunakan pada modul lain.
b. Parameter bersifat Global artinya bahwa nilai dapat digunakan pada semua modul maka nilai tersebut harus dideklarasikan di atas modul yang akan menggunakannya.
Pemanggilan parameter pada prosedur terdiri dari 2 yaitu :
a. Parameter Secara Nilai ( By Value )
Bersifat satu arah, jika terjadi perubahan pada subprogram, maka tidak akan mempengaruhi program utama.
b. Parameter Secara Acuan ( By Reference )
Bersifat dua arah, jika terjadi perubahan pada subprogram, maka program utamanya akan ikut berubah.
Contoh Program Prosedure Standar
Uses Crt;
Const Bsi='Bina Sarana';
Begin
Clrscr;
Writeln(Copy(Bsi,6,4)); mengambil sebagian dari string
Writeln(Pos('Sarana',Bsi)); mencari posisi string
Writeln(Length(Bsi)); panjang string
Writeln(Concat(Bsi,' Informatika')); mengabungkan string
Readln;
End.
Pembahasan 11
FUNGSI
Fungsi secara garis besar sama dengan prosedure baik parameter maupun pemanggilan parameternya hanya yang membedakannya adalah nama fungsi harus dideklarasikan dengan type datanya.
Bentuk Umum :
Function Identifier ( daftar_ parameter ) : type data;
Contoh :
Uses crt ;
Bagian Fungsi
Function Hitung ( Var A, B : integer ) : integer ;
Begin
Hitung : = A+B ;
End ;
Var
X, Y : integer ;
Program Utama
BEGIN
Write ( ‘ Nilai X ? ‘ ) ; readln ( X ) ;
Write ( ‘ Nilai Y ? ‘ ) ; readln ( Y ) ;
Writeln ;
Writeln ( X, ‘ + ‘, Y , ‘ =’, Hitung ( X, Y )) ;
Readln ;
END.
Parameter pada fungsi sama dengan parameter yang ada pada prosedure yaitu :
a. Pemanggilan secara Nilai ( By Value )
Contoh :
Uses crt ;
Function Hitung ( X, Y, Z : integer ) : integer ;
Begin
Z : = X+Y ;
Writeln ( ‘ Nilai X = ‘, X ) ;
Writeln ( ‘ Nilai Y = ‘, Y ) ;
Writeln ( ‘ Nilai Z = ‘, Z ) ;
End ;
Var
A, B, C : integer ;
BEGIN
A : = 5 ; B : = 7 ; C : = 3 ;
Hitung ( A, B, C ) ;
Writeln ( ‘ Nilai A =’, A, ‘ Nilai B = ‘, B, ‘ Nilai C = ‘, C ) ;
Readln ;
END.
c. Pemanggilan secara Reference ( Acuan )
Contoh :
Uses crt ;
Function Hitung ( var A, B, C : integer ) : integer ;
Begin
Hitung : = A+B ;
C : = A * B ;
End ;
Var
X, Y, Z : integer ;
BEGIN
Write ( ‘ Nilai X : ‘ ) ; readln ( X ) ;
Write ( ‘ Nilai Y : ) ; readln ( Y ) ;
Writeln ;
Writeln ( X , ‘ + ‘ , Y, ‘=’, Hitung ( X, Y, Z )) ;
Writeln ( X, ‘ * ’,Y, ‘=’, Z ) ;
Readln ;
END.
Contoh Function Standar Aritmatika & Transfer
Uses Crt;
Const A=2; B=-2;
C=4; D=2.5;
E=2.3; F=2.7;
G='A';
Begin
Clrscr;
Writeln('Absnya : ',A, '=' ,Abs(A)); Argumen Mutlak
Writeln('Absnya : ',B, '=' ,Abs(-B));
Writeln('Expnya : ',A, '=' ,Exp(A)); Eksponensial Argumen
Writeln('Lnnya : ',A, '=' ,Ln(A)); Logaritma Natural Argumen
Writeln('Sqrnya : ',A, '=' ,Sqr(A)); Kuadrat Argumen
Writeln('Sqrtnya : ',C,'=' ,Sqrt(C)); Akar Argumen
Writeln('Pinya : ',Pi); angka Pi=3.14
Writeln('Intnya : ',D, '=' ,Int(D)); bagian bulat angka real
Writeln('Truncnya : ',D, '=' ,Trunc(D)); bagian bulat angka real
Writeln('Fracnya : ',D, '=' ,Frac(D)); bagian pecahan real
Writeln('Roundnya : ',E, '=' ,Round(E)); bulatkan angka real
Writeln('Roundnya : ',F, '=' ,Round(F));
Writeln('Ordnya : ',G, '=' ,Ord(G)); Character ke ordinal
Writeln('Chrnya : ',A, '=' ,Chr(67)); ordinal ke character
Readln;
End.
Contoh Dengan Format
Uses Crt;
Const A=2; B=-2;
C=4; D=2.5;
E=2.3; F=2.7;
G='A';
Begin
Clrscr;
Writeln('Absnya : ',A, '=' ,Abs(A));
Writeln('Absnya : ',B, '=' ,Abs(-B));
Writeln('Expnya : ',A, '=' ,Exp(A):5:2);
Writeln('Lnnya : ',A, '=' ,Ln(A):5:2);
Writeln('Sqrnya : ',A, '=' ,Sqr(A));
Writeln('Sqrtnya : ',C,'=' ,Sqrt(C):1:0);
Writeln('Pinya : ',Pi:4:2);
Writeln('Intnya : ',D:3:1, '=' ,Int(D):1:0);
Writeln('Truncnya : ',D:3:1, '=' ,Trunc(D));
Writeln('Fracnya : ',D:3:1, '=' ,Frac(D):3:1);
Writeln('Roundnya : ',E:3:1, '=' ,Round(E));
Writeln('Roundnya : ',F:3:1, '=' ,Round(F));
Writeln('Ordnya : ',G, '=' ,Ord(G));
Writeln('Chrnya : ',A, '=' ,Chr(67));
Readln;
End.
Pembahasan 12
RECORD
Adalah kumpulan item data (field) yang masing-masing dapat mempunyai tipe data yang beda
Contoh
Type
Lgn= Record
Kode : integer;
Nama : string[35];
Piutang : real;
End;
Var Langganan : Lgn;
Menggunakan Tipe Data Record
Tiap-tiap komponen field dari record dapat dipergunakan dengan cara menuliskan
Pengenalrecord.pengenalfield
Contoh
Langganan.Nama := ’Maulana’ ;
PengenalField
PengenalRecord
Penulisan statemen diatas dapat menyebabkan statement menjadi panjang
Contoh lain :
Lingkaran.Keliling := 2 * Pi * JariJari ;
Menggunakan Statemen With Do menjadi :
With Lingkaran Do
Begin
Keliling := 2 * Pi * JariJari ;
End;
Contoh :
Uses Crt;
Type
Recsis = Record
Nama : string[15];
Nu : byte;
End;
Var DataSis : Array[1..10] of RecSis;
X, JD : Byte ;
Pred : String[6] ;
BEGIN
CLRSCR ;
Write( ’ Jumlah Data : ’ ) ; Readln(JD) ;
For X := 1 To JD Do
Begin
Write( ’ Nama Siswa : ’ ) ; ReadLn(Datasis[x].Nama) ;
Write( ’ Nilai Ujian : ’ ) ; ReadLn(Datasis[x].Nu) ;
End;
For X := 1 To JD Do
Begin
With Datasis[X] Do
Begin
IF Nu > 60 Then Pred := ’Lulus’ ;
Else Pred := ’Gagal’ ;
WriteLn(X, ’ ’ , Nama:10, ’ ’ ,Nu:2, ’ ’ , Pred:6);
End;
End;
ReadLn;
END.
Pembahasan 13
FILE
Suatu File terdiri dari urutn komponen yang mempunyai tipe sama. Berbeda dengan larik yang jumlah komponennya sudah pasti, jumlah komponen dalam file sifatnya luwes, yaitu dapat ditambah dan dikurangi sewaktu-waktu
File Teks
Merupakan file yang berisi kumpulan dari karakter yang dibentuk dalam baris-baris dan masing-masing baris diakhiri dengan tanda akhir dari baris berupa karakter carriage return dan karakter line feed. File teks sebenarnya merupakan file dengan tipe char; tetapi mempunyai perbedaan, yaitu nilai yang bukan tipe char dapat direkam dan dibaca oleh File Teks
Prosedur Standar File Teks
Append : digunakan untuk membuka file yang telah ada untuk keperluan menambah data ke dalam file
Write : digunakan untuk merekam data ke file
Flush : digunakan untuk segera merekam data yang ada di buffer ke file Teks
Read : untuk membaca satu atau lebih nilai dari file ke dalam satu atau lebih variabel
SetTextBuf : digunakan untuk membuat buffer yang baru sebagai pengganti dari internal buffer untuk file variabel
Fungsi Standar File Teks
EoLn : untuk mengetahui apakah posisi dari file berada di end-of-line marker atau tidak
SeekEOF : untuk menghasilkan status akhir dari File
SeekEoLn : untuk menghasilkan status akhir baris
Contoh :
Uses Crt ;
Label a,b ;
Var
Vfbarang : text ;
Nabrg : string [20 ];
Hrg : longint ;
Jml : integer ;
X, y : byte ;
Ttl, gth : longint ;
Lagi : char ;
Pil : byte ;
BEGIN
A:
Clrscr ;
Writeln ( ‘ MENU PILIHAN FILE TEXT ‘ ) ;
Writeln ( ‘ 1. Rekam Data File Baru ‘ ) ;
Writeln ( ‘ 2. Tambah Data File ‘ ) ;
Writeln ( ‘ 3. Lihat Data’ ) ;
Writeln ( ‘ 4. Exit’ ) ;
Write ( ‘ Silakan Pilih Menu [ 1/2/3/4 ] : ‘ ); readln ( pil ) ;
Case pil of
1..2 : begin
Assign (vfbarang,’barang.txt’ ) ; { variabel file barang }
IF pil =1 then
Rewrite ( vfbarang )
Else
Append (vfbarang ) ;
Lagi : = ‘Y’ ; X : = 0 ;
While (lagi =’Y’) or (lagi = ‘T’) do
begin
write ( ‘ Nama Barang : ‘ ) ; readln ( nabrg );
write ( ’ Harga Barang : ’ ) ; readln ( hrg ) ;
write ( ’ Jumlah Barang : ’ ) ; readln ( jml ) ;
write ( vfbarang, nabrg:1 5 , hrg : 10, jml : 4 ) ;
write ( ’ Isi Data Lagi [ Y/T ] : ’ ) ; readln ( lagi ) ;
end ;
close (vfbarang) ;
goto a ;
end ;
end;
3 : begin
Assign ( vfbarang , ’ barang.txt ’ ) ;
Reset ( vfbarang ) ;
Writeln(’ DATA PENJUALAN BARANG ’ ) ;
Writeln(’**************************************** ’) ;
Writeln(’No Nama Barang Harga Jumlah Total ’ ) ;
Writeln(’*************************************** ’ ) ;
{ proses dan cetak data detail }
y : = 0 ; fth : = 0 ;
While not eof ( vfbarang ) do
Begin
Read ( vfbarang, nabrg, hrg, jml ) ;
Total : = hrg * jml ;
gth : = gth + ttl ;
Inc ( y) ;
Write (y, ’ ’ ,nabar:15, ’ ’ ,hrg:7,’ ’,jml:3, ’ ’,ttl) ;
End ;
{ garis penutup subtotal }
Writeln(’**************************************** ’ ) ;
Writeln (’Grand Total: Rp. ’, gth ) ;
Writeln(’**************************************** ’ ) ;
Close(vfbarang ) ;
Readln ;
goto a ;
end ;
4 : Goto b ;
End ;
Readln ;
b:
END.
File Bertipe
Berbeda dengan file teks yang hanya dapat diakses secara urut, file bertipe disamping dapt pulajuga diakses secara urut(sequential acces, dapat juga
diakses secara aaak (randam access). Dan Tipe dari file bertipe dapat berupa tipe integer, real, char, string array, record
Write : digunakan untuk merekam satu atau lebih nilai ke dalam file
Read : digunakan untuk membaca atau lebih, nilai dari file
Seek : Digunkan untuk mengarahkan penunjuk file ke suatu komponen tertentu di dalam file
Trunccate : digunakan untuk menghapus sejumlah komponen atau record mulai dari posisi record tertentu
FileSize : digunakan untuk menghasilkan jumlah dari komponen atau record
Contoh Program Bertipe Input Data
Uses Crt;
Type MHS = Record
NM : string[15];
UTS,UAS : byte;
End;
Var FileMHS : File of MHS;
RecMHS : MHS;
No, Bts, JD, T, RN : Byte;
BEGIN
CLRSCR;
Write('Jumlah Data : '); ReadLn(JD);
Assign(FileMHS,'C:\MHS.DAT');
ReWrite(FileMHS);
For No := 1 To JD Do
Begin
With RecMHS Do
Begin
Write('Nama : '); ReadLn(NM);
Write('UTS : '); ReadLn(UTS);
Write('UAS : '); ReadLn(UAS);
End;
Write(FileMHS,RecMHS);
End;
Close(FileMHS);
ReadLn;
END.
Lalu disimpan
Contoh Program Bertipe Tampil Data
Uses Crt;
Procedure Judul;
Begin
WriteLn('DAFTAR NILAI MAHASISWA');
WriteLn('--------------------------------------------------------------------');
WriteLn('No. Nama Mahasiswa UTS UAS Total Rata Predikat Kelulusan');
WriteLn('--------------------------------------------------------------------');
End;
Type MHS=Record
NM : string[15];
UTS,UAS : byte;
End;
Var FileMHS : File of MHS;
RecMHS : MHS;
No,Brs,JD,T,R,RN : byte;
P : string[10];
K : string[5];
BEGIN
CLRSCR;
Judul;
Assign(FileMHS,'C:\MHS.DAT');
Reset(FileMHS);
No:=0;
While Not EOF (FileMHS) Do
Begin
With RecMHS Do
Begin
Read(FileMHS,RecMHS);
T:= UTS+UAS; R:= T div 2; inc(No);
Case R of
00..59 : P:='Kurang';
60..74 : P:='Cukup';
75..84 : P:='Baik';
85..100: P:='Amat Baik';
End;
WriteLn(No:3,' ',NM:15,' ',UTS:3,' ',UAS:3,' ',T:3,' ',R:3,' ',P:10,' ',K:5);
End;
End;
ReadLn;
Close(FileMHS);
END.
Pembahansan 14
PEMBUATAN UNIT BARU
Contoh Program Pembentukan Unitku
Unit Unitku;
Interface
Uses Crt;
Procedure Bersihkan;
Function Ls3(A,T:Integer):Real;
Implementation
Procedure Bersihkan;
Begin
Clrscr;
End;
Function Ls3(A,T:Integer):Real;
Begin
Ls3:=A*T/2;
End;
End
Lalu simpan
Contoh Program Pemakaian Unit Baru
Uses Unitku;
Var A,T :Integer;
Begin
Bersihkan;
Write('Nilai Alas :');Readln(A);
Write('Nilai Tinggi :');Readln(T);
Write('Luas Segitiga :',Ls3(A,T):5:1);
Readln;
End..
RESUME
TEKNIK PENCARIAN (SEARCHING) & TEKNIK
PENGURUTAN (SORTING)
PENGERTIAN SEARCHING
Searching (Pencarian Data) sering juga disebut table look-up atau
storage and retrieval information adalah suatu proses untuk
mengumpulkan sejumlah informasi di dalam pengingat komputer
dan kemudian mencari kembali informasi yang diperlukan secepat
mungkin.
Tempat pencarian data dapat berupa array dalam memori, bisa juga
pada file pada external storage.
METODE SEARCHING
Ada 2 Pengelompokkan Metode
1. Berdasarkan Tempat Pencarian
pencarian internal (internal searching)
pencarian eksternal (external searching)
2. Berdasarkan Sifat Pencarian
Pencarian statis (static searching)
Pencarian Dinamis (dynamic searching)
TEKNIK PENCARIAN
Pencarian Berurutan (Sequential Searching)
• Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang
akan menelusuri semua elemen-elemen array dari awal sampai
akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.
Pencarian Biner (Binary Search)
• Adalah teknik pencarian data dengan cara membagi data menjadi
dua bagian setiap kali terjadi proses pencarian.
PENGERTIAN SORTING
Pengurutan data (sorting) didefinisikan sebagai suatu proses untuk menyusun kembali humpunan obyek menggunakan aturan tertentu.
METODE SORTING
Metode pengurutan yang digunakan dapat diklasifikasikan menjadi
dua katagori yaitu :
• pengurutan internal, yaitu pengurutan dengan menggunakan larik
(array). Larik tersimpan dalam memori utama komputer
• pengurutan eksternal, yaitu pengurutan dengan menggunakan
berkas (sequential access file). Berkas tersimpan dalam pengingat luar,
misalnya cakram, atau pita magnetik).
TEKNIK SORTING
Pengurutan berdasarkan perbandingan (comparison –based sortisorting) : Bubble sort: Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.
dan exchange sort : Exchange sort membandingkan suatu elemen dengan elemen-elemen lainnya dalam array tersebut, dan melakukan pertukaran elemen jika
perlu. Jadi ada elemen yang selalu menjadi elemen pusat (pivot).
Pengurutan berdasarkan prioritas (priority queue sorting method) : Selection sort : Merupakan kombinasi antara sorting dan searching
Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau Terbesar akan dipertukarkan ke posisi yang tepat dalam array.
dan Heap Sort : Algoritma heapsort tidak memerlukan rekursif yang besar atau, menggunakan banyak tabel (array).
Pengurutan berdasarkan penyisipan dan penjagaan terurut (insert and keep sorted method) : Insertion sort : Mirip dengan cara orang Mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya.
dan Tree sort : Merupakan teknik pengurutan data yang terdiri dari root / akar sepohon yang tersusun secara hierarki (terkait) .
Pengurutan berdasarkan pembagian dan penguasaan ( devide and conquer method) : Quick sort :Quick
Sort mengurutkan menggunakan berbasiskan strategi Divide and
Conquer untuk membagiarray menjadi dua sub-array., Merge sort .
Pengurutan berkurang menurun
(diminishing increment sort method) : Shell
sort (pengembangan
insertion) : Mengurutkan data dengan cara
membandingkan suatu data dengan data lain
yang memiliki jarak tertentu sehingga dibentuk
sub-list, kemudian dilakukan pertukaran jika
diperlukan.
contoh program
program diameter;
uses crt;
var
a:real;
begin
clrscr;
writeln('===MENGHITUNG DIAMETER LINGKARAN===');
writeln('');
write('masukan luas lingkaran =');readln(a);
writeln(' ');
writeln('===================================');
writeln('L = pi*r^2 ');
writeln( a:0:2, ' =',pi:0:2,' x r^2');
writeln( sqrt(a):0:2,' =',pi:0:2,' x r');
writeln( 'r =',pi:0:2,' x ',sqrt(a):0:2);
writeln( 'r =',(sqrt(a)/pi):0:2,'m');
writeln('');
writeln('===================================');
writeln('d = 2 x r');
writeln(' = ',2,' x ',(sqrt(a)/pi):0:2);
writeln(' = ',2*(sqrt(a)/pi):0:2,' m');
writeln('===================================');
readln;
end.
program akar_pangkat;
uses crt;
var
x,y:real;
begin
clrscr;
writeln('===================================');
write('masukan angka 1 =');readln(x);
write('masukan angka 2 =');readln(y);
writeln('');
writeln('===================================');
writeln(' X = akar^n(m)');
writeln('LogX= Log akar^n(m)');
writeln(' = Log akar^',x:0:2,'(',y:0:2,')');
writeln(' = Log',y:0:2,'^1/',x:0:2);
writeln(' = 1/',x:0:0,' x Log',y:0:2);
writeln(' = 1/',x:0:0,' x ',ln(y)/ln(10):0:2);
writeln(' = ',1/x*ln(y)/ln(10):0:4);
writeln('===================================');
readln;
end.
program tugas1;
uses crt;
var
a,b:integer;
c,x:integer;
begin
clrscr;
writeln('===================================');
write('masukan a =');readln(a);
write('masukan b =');readln(b);
write('masukan c =');readln(c);
write('masukan x =');readln(x);
writeln('');
writeln('===================================');
writeln('Y= ax^2+bx+c');
writeln(' = ',a, ' x ' ,x,'^2+ ' ,b, ' x ' ,x,' + ',c);
writeln(' = ',a, ' x ' ,sqr(x), ' + ' ,b, ' x ' ,x,' + ',c);
writeln(' = ',a*sqr(x)+b*x+c);
writeln('===================================');
readln;
end.
program tugas2;
uses crt;
var
a,b,c:real;
begin
clrscr;
writeln('=========================================');
write('masukan a =');readln(a);
write('masukan b =');readln(b);
write('masukan c =');readln(c);
writeln('');
writeln('=========================================');
writeln('X =(-b +akar(b^2-4ac)/2a)');
writeln(' =(',(-1*b):0:0,'+akar(',sqr(b):0:0,'-',4,'x',a:0:0,'x',c:0:0,')/',2,'x',a,')');
writeln(' =(',(-1*b):0:0,'+akar(',(sqr(b)-4*a*c):0:2,')/',(2*a):0:2);
writeln(' =(',(-1*b):0:0,'+',sqrt(sqr(b)-(4*a*c)):0:2,'/',2*a,')');
writeln(' = ',((((-1*b)+sqrt(sqr(b)-4*a*c)/2*a))) :0:2);
writeln('=========================================');
readln;
end.
program tugas2;
uses crt;
var
a,b,c:integer;
tot:real;
begin
clrscr;
writeln('=========================================');
write('masukan a =');readln(a);
write('masukan b =');readln(b);
write('masukan c =');readln(c);
writeln('');
tot:=(-1*b)+sqrt(sqr(b)-(4*a*c)/2*a);
writeln('=========================================');
writeln('X =(-b +akar(b^2-4ac)/2a)');
writeln(' =(',(-1*b),'+akar(',sqr(b),'-',4,'x',a,'x',c,')/',2,'x',a,')');
writeln(' =(',(-1*b),'+akar(',(sqr(b)-4*a*c),')/',(2*a));
writeln(' =(',(-1*b),'+',sqrt(sqr(b)-(4*a*c)):0:2,'/',2*a,')');
writeln(' = ',tot/(2*a) :0:4);
writeln('=========================================');
readln;
end.
program tugas3;
uses crt;
var
a,b,c:integer;
tot:real;
begin
clrscr;
writeln('================================================');
write('masukan a =');readln(a);
write('masukan b =');readln(b);
write('masukan c =');readln(c);
writeln('');
tot:=((-1*b)-sqrt(sqr(b)-4*a*c))/2*a;
writeln('================================================');
writeln('X =-b -akar(b^2-4ac)/2a');
writeln(' =(',(-1*b),'-akar(',sqr(b),'-',4,'x',a,'x',c,')/',2,'x',a,')');
writeln(' =(',(-1*b),'-akar(',(sqr(b)-4*a*c),')/',2*a);
writeln(' =(',(-1*b),'-',sqrt(sqr(b)-(4*a*c)):0:2,'/',2*a,')');
writeln(' = ',tot/(2*a) :0:2);
writeln('================================================');
readln;
end.
program tugas4;
uses crt;
var
a,b:real;
begin
clrscr;
writeln('=======================================');
write('masukan bilangan 1 =');readln(a);
write('masukan bilangan 2 =');readln(b);
writeln('');
writeln('=======================================');
writeln('Y = sin(a + b)');
writeln(' = sin(sin(a)xcos(b) + sin(a)xsin(b)');
writeln(' = sin(',sin(a):0:2,'x',cos(b):0:2,' + ',sin(a):0:2,'x',sin(b):0:2,')');
writeln(' = sin(',sin(a)*cos(b)+sin(a)*sin(b):0:2,')');
writeln(' = ',sin(sin(a)*cos(b)+sin(a)*sin(b)):0:4 );
writeln('=======================================');
readln;
end.
program tugas5;
uses crt;
var
a,b:real;
begin
clrscr;
write('masukan bilangan 1 =');readln(a);
write('masukan bilangan 2 =');readln(b);
writeln(' ');
writeln('=================================');
writeln('Y = cos(a + b)');
writeln(' = cos(cos(a)xcos(b) + sin(a)xsin(b)');
writeln(' = cos(',cos(a):0:2,'x',cos(b):0:2,' + ',sin(a):0:2,'x',sin(b):0:2,')');
writeln(' = cos(',cos(a)*cos(b)+sin(a)*sin(b):0:2,')');
writeln(' = ',cos(cos(a)*cos(b)+sin(a)*sin(b)):0:4,')');
writeln('=================================');
readln;
end.
program tugas5;
uses crt;
var
x,m,b:integer;
begin
clrscr;
writeln('==============================');
write('masukan bil 1 =');readln(x);
write('masukan bil 2 =');readln(m);
write('masukan bil 3 =');readln(b);
writeln('');
writeln('==============================');
writeln('L = lim x->a (mx + b)');
writeln(' = lim x->',x,' (',m,'x',x,'+',b,')');
writeln(' = ' ,m*x+b);
writeln('==============================');
readln;
end.
program balok;
uses crt;
var
p,l,t:real;
begin
clrscr;
writeln('=======MENGHITUNG LUAS & VOLUME BALOK========');
writeln('');
write('masukan panjang =');readln(p);
write('masukan lebar =');readln(l);
write('masukan tinggi =');readln(t);
writeln('');
writeln('===========================================');
writeln('maka Luas = 2(pxl)+2(pxt)+2(lxt)');
writeln(' = 2(',p:0:0,'x',l:0:0,')+2(',p:0:0,'x',t:0:0,')+2(',l:0:0,'x',t:0:0,')');
writeln(' = ',2*(p*l):0:0,'+',2*(p*t):0:0,'+',2*(l*t):0:0);
writeln(' = ',((2*(p*l))+(2*(p*t))+(2*(l*t))):0:2);
writeln('');
writeln('===========================================');
writeln('maka Volume = p x l x t ');
writeln(' = ',p:0:0,' x ',l:0:0,' x ',t:0:0);
writeln(' = ',(p*l*t):0:2);
writeln('===========================================');
readln;
end.
program kubus;
uses crt;
var
s:real;
begin
clrscr;
writeln('======MENGHITUNG LUAS & VOLUME KUBUS======');
Writeln('');
write('masukan sisinya =');readln(s);
writeln('');
writeln('==========================================');
writeln('maka Luas = 6 (sisixsisi)');
writeln(' = 6 (',s:0:0,'x',s:0:0,')');
writeln(' = 6 x ' ,(s*s):0:0 );
writeln(' = ',(6*(s*s)):0:2);
writeln('');
writeln('==========================================');
writeln('maka Volume = sisixsisixsisi');
writeln(' = ',s:0:0,'x',s:0:0,'x',s:0:0);
writeln(' = ',(s*s*s):0:2);
writeln('==========================================');
readln;
program segitiga;
uses crt;
var
a,b,c:real;
begin
clrscr;
writeln('=======MENGHITUNG LUAS SEGITIGA========');
write('masukan alas =');readln(a);
write('masukan tinggi =');readln(b);
writeln('');
writeln(' L = 1/2 x (a + t)');
writeln(' = 1/2 x (',a:0:0,' + ',b:0:0,')');
writeln(' = 1/2 x (',(a*b):0:0,')');
writeln(' = ',0.5*(a*b):0:2);
writeln('');
writeln('======MENGHITUNG KELILING SEGITIGA=====');
write('masukan a =');readln(a);
write('masukan b =');readln(b);
write('masukan c =');readln(c);
writeln('');
writeln(' K = a + b + c');
writeln(' = ',a:0:0,' + ',b:0:0,' + ',c:0:0);
writeln(' = ',(a+b+c):0:2);
readln;
end.