Logika Dan Algoritma-libre

63
Logika Dan Algoritma Dengan Pascal 1 KONSEP DASAR LOGIKA DAN ALGORITMA OBJEKTIF Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya pada bidang pemrograman komputer serta keterkaitan antara logika dan Algoritma itu sendiri. APAKAH ITU ALGORITMA itinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi – thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma. DEFINISI ALGORITMA lgoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Kamus besar bahasa Indonesia (Balai Pustaka 1988) secara formal mendefinisikan algoritma sebagai : D A M Mo od du ul l 1 1

Transcript of Logika Dan Algoritma-libre

Page 1: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

1

KKOONNSSEEPP DDAASSAARR

LLOOGGIIKKAA DDAANN AALLGGOORRIITTMMAA

OBJEKTIF

� Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya pada bidang pemrograman komputer serta keterkaitan antara logika dan Algoritma itu sendiri.

APAKAH ITU ALGORITMA

itinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses

menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.

DEFINISI ALGORITMA

lgoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata Logis merupakan kata kunci dalam

Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Kamus besar bahasa Indonesia (Balai Pustaka 1988) secara formal mendefinisikan algoritma sebagai :

D

A

MMoodduull

11

Page 2: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

2

Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

BEDA ALGORITMA DAN PROGRAM

rogram adalah kompulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan

menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa:

Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya. Struktur data disini bisa berupa list, tree, graph, dsb.

MENILAI SEBUAH ALGORITMA

etika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak

(tidak hanya satu). Dan kita memilih mana yang terbaik diantara teknik-teknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Lalu bagaimana mengukur mana algoritma yang terbaik ? Beberapa persyaratan untuk menjadi algoritma yang baik adalah: 1. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses

harus berakurasi tinggi dan benar. 2. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat

mungkin dan frekuensi kalkulasi yang sependek mungkin. 3. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus

saja, tapi juga untuk kasus lain yang lebih general. 4. Bisa Dikembangkan (expandable). Haruslah sesuatu yang dapat kita

kembangkan lebih jauh berdasarkan perubahan requirement yang ada. 5. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma

anda. Susah dimengertinya suatu program akan membuat susah di maintenance (kelola).

6. Portabilitas yang tinggi (Portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.

P

K

program = struktur data + algoritma

Page 3: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

3

MEKANISME PELAKSANAN ALGORITMA OLEH PEMROSES

omputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma hasrus ditulis dalam notasi bahasa pemrograman

sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.

BELAJAR MEMPROGRAM DAN BELAJAR BAHASA PEMROGRAMAN

elajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah,

kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangakan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrograman. Yang dapat dibedakan berdasarkan tujuan dan fungsinya. Diantaranya adalah :

BELAJAR MEMPROGRAM

� Belajar memprogram ≠‚ belajar bahasa pemrograman

K

B

Page 4: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

4

� Belajar memprogram � belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama.

� Belajar memprogram � bersifat pemahaman persoalan, analisis dan sintesis � Belajar memprogram, titik berat � designer program

BELAJAR BAHASA PEMROGRAMAN

� Belajar bahasa pemrograman � belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa

� Belajar bahasa pemrograman , titik berat : coder

PRODUK YANG DIHASILKAN PEMROGRAM :

� Program dengan rancangan yang baik (metodologis, sistematis) � Dapat dieksekusi oleh mesin � Berfungsi dengan benar � Sanggup melayani segala kemungkinan masukan � Disertai dokumentasi � Belajar memprogram, titik berat : designer program

STRUKTUR DASAR ALGORITMA

lgoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah bisa berupa runtunan, pemilihan, dan pengulangan. Ketiga langkah

itulah yang menyusun algoritma. Jadi, sebuah algoritma merupakan kumpulan dari salah satu atau lebih struktur dasar tersebut.

RUNTUNAN (SEQUENCE)

ebuah runtunan terdiri dari satu atau lebih 'instruksi'. Tiap-tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan penulisannya. Sebuah

instruksi, baru bisa dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Kalau urutannya diubah, kemungkinan besar hasil akhirnya akan berubah. Contoh : Misalkan Ada dua buah bejana, A dan B. Bejana A berisi larutan kopi, bejana B berisi larutan susu. Pertukarkan kedua isi bejana itu, sehingga A berisi larutan susu, dan B berisi larutan kopi. Kita tanyakan Algoritma!? Jawabannya: ada tiga langkah, yaitu: 1. Tuangkan larutan dari bejana A ke dalam bejana C 2. Tuangkan larutan dari bejana B ke dalam bejana A

A

S

Page 5: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

5

3. Tuangkan larutan dari bejana C ke dalam bejana B. Selesai.....

PEMILIHAN (SELECTION)

adangkala sebuah instruksi dikerjakan setelah 'kondisi' tertentu terpenuhi. Dalam bahasa pemrograman, ini dikenal dengan "if" dan "then". Kondisi

adalah persyaratan yang dapat dinilai benar atau salah sehingga akan memunculkan 'aksi' yang berbeda dengan 'kondisi' yang berbeda. Contoh : 'if' Widi memperoleh juara kelas 'then' ayah akan membelikannya sepeda 'if' Mobilmu rusak 'then' pakai saja motorku Tampak struktur pemilihan 'if-then' hanya memberikan satu pilihan aksi bila kondisi dipenuhi atau bernilai benar dan tidak memberikan aksi lain bila kondisi salah. Bentuk pemilihan yang lebih umum adalah memilih satu dari dua aksi bergantung pada nilai kondisinya, seperti: 'if' hari hujan 'then' pergilah dengan naik taxi 'else' pergilah dengan naik motor di sini secara logika jika kondisi 'hari hujan' benar, maka aksi 'pergi naik taxi' dilakukan. Sebaliknya jika kondisi 'hari hujan' bernilai salah, maka aksi 'pergi naik motor' akan dilaksanakan.

PENGULANGAN (REPETITION)

alah satu kegunaan pemrograman adalah untuk memudahkan pekerjaan yang harus dilakukan secara berulang.

Bentuk umum perulangan adalah : 'repeat' aksi 'until' kondisi Struktur 'repeat-until' hanya satu diantara beberapa struktur pengulangan yang ada. Terdapat beberapa struktur pengulangan lain seperti 'while-do', 'for' dan sebagainya.

K

S

Page 6: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

6

INDEPENDENSI NOTASI ALGORITMA

otasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Analoginya sama dengan resep membuat kue. Sebuah resep

dapat ditulis dalam bahasa apapun. Bahasa Jepang, Inggris, Perancis, Indonesia, dan lain sebagainya. Apapun bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti. Mengapa demikian ? Karena setiap juru masak (sebagai pemroses) dapat melakukan operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain sebagainya. Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-operasi dasar dalam pemrograman seperti operasi pembacaan data, operasi perbandingan, operasi aritmatika, dan sebagainya. Perkembangan teknologi komputer tidak mengubah operasi-operasi dasar it, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.

STRUCTURED PROGRAM FLOW-CHART

alam merancang suatu Algoritma, dapat digunakan beberapa alat bantu, diantaranya adalah decision table, structured chart, structured program flow-

chart dan pseudocode. Bagan alir program (program flow-chart) adalah suatu bagan yang menggambarkan arus logika dari data yang akan diproses dalam suatu program dari awal sampai akhir. Bagan alir terdiri dari simbol-simbol yang mewakili fungsi-fungsi langkah program dan garis alir (flow lines) menunjukkan urutan dari simbol-simbol yang akan dikerjakan. Berikut ini adalah simbol-simbol program flow-chart menurut ANSI (American National Standard Institute). � Simbol terminal (terminal symbol)

� Digunakan untuk menunjukkan awal dan akhir dari

program

� Simbol persiapan / inisialisasi (preperation symbol)

� Digunakan untuk memberikan nilai awal pada suatu variable atau counter

N

D

Page 7: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

7

� Simbol pengolahan (processing symbol)

� Digunakan untuk mewakili proses pengolahan aritmatika dan pengolahan data

� Simbol input/output (input/output symbol)

� Digunakan untuk mewakili proses input dan output

data / informasi.

� Simbol keputusan (decision symbol)

� Digunakan untuk mewakili operasi perbandingan logika.

� Simbol proses terdefenisi / sub rutin (pre-defined process symbol)

� Digunakan untuk proses yang detilnya dijelaskan terpisah, misalnya dalam bentuk sub-routine.

� Simbol penghubung per-halaman (connector symbol)

� Digunakan untuk menunjukkan hubungan arus proses yang terputus masih dalam halaman yang sama.

� Simbol penghubung antar halaman (off page connector symbol)

� Digunakan untuk menunjukkan hubungan arus proses yang terputus pada halaman yang berbeda.

� Simbol aliran data / logika (flow lines)

� Digunakan untuk memperlihatkan arus proses /

logika dari program.

PSEUDOCODE

seudocode banyak digunakan untuk mewakili urutan-urutan proses dari P

Page 8: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

8

program. Dari segi leksikal Pseudo berarti imitasi dan code dihubungkan dengan instruksi yang ditulis dalam bahasa komputer. Pseudocode digunakan untuk menjembatani jurang antara bahasa sehari-hari programmer dengan bahasa komputer. Pseudocode merupakan suatu bahasa yang memungkinkan programmer untuk berfikir terhadap permasalahan yang harus dipecahkan tanpa harus memikirkan syntax dari bahasa pemrograman yang tertentu. Tidak ada aturan penulisan syntax di dalam pseudocode. Pseudocode digunakan untuk menggambarkan urutan logika dari program tanpa memandang bagaimana bahasa pemrogrammannya. Pseudocode banyak yang menyebutnya sebagai algoritma. Sebenarnya yang disebut dengan algoritma adalah suatu perencanaan lagkah-langkah instruksi tertentu untuk pemecahan suatu masalah. Jadi algoritma tidak saja harus berbentuk pseudocode, tetapi dapat jug diwujudkan dalam bentuk flow chart. Contoh : baca jumlah data tulis judul tabel while data belum habis hitung data yang dibaca baca data nomer mahasiswa, nama dan nilainya tulis nomer mahasiswa dan nama if nilai > 60 tulis “lulus” else tulis “tidak lulus” endif wend tulis garis penutup table selesai catatan : Biasanya kata-kata kunci (keywords) atau kata-kata cadangan (reserved word) ditulis dengan huruf tebal.

TUGAS :

Permasalahan (kasus) Anda adalah seorang guru SD yang ingin membuat rangking nilai ujian dari 9 orang murid anda. Nilai ujian murid anda adalah sebagai berikut :

56 78 43 96 67 83 51 74 32

Page 9: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

9

Buatlah Algoritmanya secara flowchart lalu buat pseudocode-nya dalam pembuatan rangking nilai tersebut

BBEERRKKEENNAALLAANN DDEENNGGAANN

PPEEMMRROOGGRRAAMMAANN PPAASSCCAALL

OBJEKTIF

� Mahasiswa dapat mengenal bahasa pemrograman Pascal serta mengetahui bagaimana struktur serta IDE (integrated Development Environment) dari bahasa pemrograman Pascal.

SEJARAH PERKEMBANGAN PASCAL

ascal adalah bahasa tingkat tinggi (high level language) yang orientasi nya pada segala tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical

University di Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosophi terkenal abad 17 dari Perancis. Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman yang terstruktur (structured programming). Jadi Pascal adalah bahasa yang ditujukan untuk membuat program yang terstruktur. Dalam waktu yang singkat, Pascal telah menjadi bahasa yang populer dikalangan pelajar universitas dan merupakan bahasa yang diajarkan di beberapa perguruan tinggi. Beberapa profesional komputer juga mulai beralih ke bahasa Pascal. Kenyataannya, Pascal merupakan bahasa yang paling cepat populer dibanding dengan bahasa-bahasa komputer tingkat tinggi yang lainnya. Standar Pascal adalah bahasa Pascal yang didefmisikan oleh K. Jensen dan Niklaus Wirth. Penerapan nyata dari standar Pascal banyak yang berbeda seperti

P

MMoodduull

22

Page 10: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

10

apa yang telah didefinisikan oleh. K. Jensen dan Niklaus Wirth. Standar Pascal di Eropa didefinisikan oleh ISO (International Standards Organization) dan di Amerika oleh kerjasama antara ANSI (American National Standar Institute) dengan IEEE (Institute of Electrical and Electronic Engineers). Beberapa versi dari Pascal telah beredar di pasaran, diantaranya UCSD Pascal (University of California at San Diego Pascal), MS-Pascal (Microsoft Pascal), Apple Pascal, TURBO Pascal dan lain sebagainya. Sampai saat ini untuk komputer-komputer mikro dan personal, TURBO Pascal merupakan versi bahasa Pascal yang paling populer dan banyak digunakan. Kompiler TURBO Pascall banyak digemari, karena terutama bersifat interaktif, seperti interpreter saja layaknya. Selain itu TURBO Pascal mengikuti definisi dari standar Pascal seperti yang didefinisikan oleh K. Jansen dan Niklaus Wirth di Pascal User Manual dan Report. TURBO PASCAL adalah copyright oieh BORLAND Inc.

MENGENAL EDITOR (IDE) BAHASA PASCAL (TURBO PASCAL 7.0)

Betuk Ide dari Turbo Pascal 7.0 terlihat seperti gambar dibawah ini :

Turbo Pascal 7.0 memiliki 10 buah menu utama yang terdiri dari : File, Edit, Search, Run, Compile, Debug, Tools, Options, Window dan Help. Untuk memilih

Page 11: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

11

salah satu dari menu itu anda bisa menekan tombol Alt + F (untuk memanggil menu file), atau menekan Alt + [huruf pertama dari menu]. Jika anda ingin kembali ke menu utama anda bisa saja menekan tombol F10, untuk pindah dari menu satu ke menu yang lain anda juga bisa menekan panah kanan atau panah kiri pada keyboard. Contohnya ketika anda berada di menu File maka untuk pindah ke menu Compile anda cukup menggunakan tombol panah kanan atau panah kiri, dan anda juga bisa langsung menekan huruf C. Untuk menutup menu anda bisa menggunakan tombol Esc. Sebetulnya akan lebh mudah jika memanggil sebuah menu dengan menggunakan hotkey, table dibawah ini adalah hotkey yang digunakan dalam turbo pascal :

DAFTAR HOTKEY PADA IDE PASCAL

Kunci Fungsi Ekivalen menu

F1 Mengaktifkan jendela pertolongan.

F2 Menyimpan berkas yang ada pada editor. File / Save

F3 Memanggil program kedalam editor. File / Open

F4 Mengeksekusi program sampai posisi kursor. Run / Go to cursor

F5 Memperbesar atau memperkecil jendela yang aktif.

F6 Mengganti jendela yang aktif.

F7 Melacak kedalam subrutin. Run / Trace into

F8 Melompati pemanggil subrutin.

F9 Mengaktifkan perintah ‘Make’. Compile / Make

F10 Berpindah dari menu-menu ke jendela yang aktif.

Alt + F1 Memanggil jendela pertolongan yang terakhir dibaca.

Alt + F3 Menutup jendela aktif.

Alt + F5 Memperlihatkan hasil eksekusi. Debug / user screen

Alt + F6 Mengganti isi jendela yang aktif.

Alt + F9 Mengkompilasi program. Compile

Alt + C Mengaktifkan menu compile.

Alt + D Mengaktifkan menu debug.

Alt + E Mengaktifkan menu editor.

Alt + F Mengakaktifkan menu file.

Alt + H Menampilkan menu Help

Alt + O Mengaktifkan menu option.

Alt + R Mengaktifkan menu run.

Alt + S Mengaktifkan menu Search

Alt + T Mengaktifkan menu Tools

Page 12: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

12

Alt + W Mengaktifkan menu Window

Alt + X Keluar dari Turbo Pascal dan kembali ke DOS.

Ctrl + F1 Menampilkan menu pertolongan bahasa.

Ctrl + F2 Menghentikan pembetulan. Run / Program reset

Ctrl + F3 Menampilkan isi tumpukan. Debug / Call Stack

Ctrl + F4 Melakukan penghitungan atau mengubah nilai peubah. Debug / Evaluate

Ctrl + F7 Menambahkan ungkapan pada jendela watch. Debug / Add Watch

Ctrl + F8 Add Breakpoint. Debug / Add breakpoint

Ctrl + F9 Menjalankan program. Run / Run

Ctrl + F10 Menampilkan versi layar monitor

MENU FILE

i menu File terdapat pilihan untuk membuka dan memuat file source pascal yang telah ada sebelumnya, membuat file source yang baru, shell ke DOS

menyimpan file dan keluar dari IDE Turbo Pascal. Sub menu yang ada pada menu ini yaitu : � New � Open � Save

� Save As � Save All � Change Dir

� Print � Printer setup � DOS shell

� Exit � Closed file List

MENU EDIT

i menu Edit menyediakan perintah-perintah yang berhubungan dengan proses editing source Pascal seperti cut, copy dan paste pada jendela editor.

Sub menu yang ada pada menu ini yaitu : � Undo � Redo

� Cut � Copy

� Paste � Clear

� Show Clipboard

MENU SEARCH

ada menu Search menyediakan perintah-perintah untuk mencari teks, deklarasi prosedur serta lokasi kesalahan pada file source anda. Sub menu

yang ada pada menu ini yaitu � Find � Replace � Search Again

� Go to Line Number

� Show last compiler error

� Find Error � Find Procedure � Previous

Browser

� Objects � Units � Globals � Symbol

D

D

P

Page 13: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

13

MENU RUN

i Menu Run menyediakan perintah-perintah dalam menjalankan program, memulai dan mengakhiri sesi debugging. Sub menu yang ada pada menu ini

yaitu : � Run � Step Over

� Trace Into � Go to Cursor

� Program Reset � Parameters

MENU COMPILE

unakan perintah-perintah yang ada pada menu ini untuk melakukan proses kompilasi source program, make atau build program. Sub menu yang ada pada

menu ini yaitu : � Compile � Make � Build � Destination

� Target � Primary file � Clear primary file � Information

TUGAS :

1. Jelaskan apa yang dimaksud dengan Bahasa Pemrograman dan Program 2. Jelaskanlah kekurangan serta kelebihan dari Bahasa Pascal. 3. Ketikklah Nim, Nama serta Alamat Anda pada IDE Pascal 7.0, lalu praktikkan

perintah untuk memblok, mengcopy, paste dan cut.

D

G

Page 14: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

14

SSTTRRUUKKTTUURR DDAASSAARR BBAAHHAASSAA

PPEEMMRROOGGRRAAMMAANN PPAASSCCAALL

OBJEKTIF

� Mahasiswa dapat mengetahui struktur dasar dari bahasa pemrograman Pascal, serta teknik penulisan program pada Pascal.

STRUKTUR PROGRAM PASCAL

truktur dari suatu program Pascal terdiri dari sebuah judul program (program heading) dan suatu blok program (program block) atau badan program (body

program) Blok program dibagi lagi menjadi dua bagian, yaitu bagian deklarasi (declaration part) dan bagian pernyataan (statement part). Bagian deklarasi dapat terdiri dari deklarasi label (labels declaration), defenisi konstanta (constants definition), defenisi tipe (type definition), deklarasi variabel (variables declaration), deklarasi prosedur (procedures declaration) dan deklarasi fungsi (function declaration). Secara ringkas, struktur suatu program Pascal dapat terdiri dari: 1. Judul. program 2. Blok program

� Bagian deklarasi � deklarasi label � defenisi konstanta � defenisi tipe � deklarasi variabel

S

MMoodduull

33

Page 15: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

15

� deklarasi prosedur � deklarasi fungsi

� Bagian pernyataan

PROGRAM PASCAL YANG PALING SEDERHANA

uatu program Pascal yang paling sederhana adalah program yang hanya terdiri dari sebuah bagian pernyataan saja. Bagian pernyataan (statement part)

merupakan bagian yang terakhir dari suatu blok. Bagian ini diawali dengan kata cadangan (reserved word) BEGIN dan diakhiri dengan kata cadangan END Jadi suatu program Pascal yang sederhana dapat berbentuk : Begin writeln('Hello World') end. Bila program ini uijalankan, maka akan ditampilkan tulisan di layar sebagai berikul: Saya Pascal Bagian pernyataan ini menunjukkan suatu tindakan yang akan dikerjakan komputer. Tindakan yang dilakukan oleh program tergantung dari instruksi-intruksi yang diberikan. pernyataan atau statemen (statement) merupakan instruksi program. Pemyataan-pernyataan yang akan diberikan untuk dikerjakai komputer ditulis diantara kata cadangan BEGIN dan END. Akhir penulisan END diakhiri dengan titik. Bentuk umum dari bagian pernyataan ini adalah sebagai berikut: begin

statemen-1; ... statement-n;

end. Contoh : Begin

writeln('Saya Pascal'); writeln('-----------');

End. Bila program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai berikut:

Saya Pascal -----------

S

Page 16: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

16

Yang perlu anda perhatikan adalah setiap statemen per barisnya diakhiri dengan titik koma(;) kecuali statemen yang terakhir boleh diakhiri dengan titik koma maupun tidak, bebas.

PENULISAN PROGRAM PASCAL

rogram Pascal tidak mengenal aturan penulisan di kolom tertentu, jadi boleh ditulis mulai kolom berapapun. Penulisan statemen-statemen pada contoh

program yang menjorok masuk beberapa kolom tidak mempunyai pengaruh di proses, hanya dimaksudkan supaya mempermudah pembacaan program, sehingga akan lebih terlihat bagian-bagiannya. Contoh : begin writeln ('Saya Pascal'); writeln ('-----------'); end. Penulisan seperti diataspun boleh bahkan dapat juga disambung dalam satu baris, sebagai berikut : begin writeln('Saya Pascal'); writeln('-----------' ); end. Akan tetapi penulisan seperti tersebut tidaklah diajurkan dan sebisanya untuk dihindari, karena tidak baik untuk dokumentasi program dan sulit membacanya.

JUDUL PROGRAM

i TURBO Pascal, judul program sifatnya adalah optional dan tidak signifikan di dalam 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(output); begin writeln ('Hello World'); writeln ('-----------'); end. Jadi judul program sifatnya sebagai dokumentasi saja, tidak signifikan terhadap proses program. Misalnya program Anda hanya menampilkan hasil saja, tetapi tidak meminta data input, pada judul program dapat didokumentasikan dengan ditulis seperti diatas.

P

D

Page 17: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

17

Parameter tentang komunikasi program dengan lingkungan ditulis didalam tanda kurung buka dan tutup dan dapat ditulis apapun dengan dipisahkan oleh koma. Contoh-contoh penulisan judul program yang benar: program Gaji (input, output); program Laporan (layar, disk, printer, plotter);

BAGIAN DEKLARASI

agian deklarasi digunakan bila di dalam program Anda menggunakan identifier. Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan

fungsi. Kalau suatu program menggunakan identifier, Pascal menuntut supaya identifier tersebut dikenalkan terlebih dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu pada bagian ini. 1. Deklarasi Label

Kalau program Anda menggunakan statemen GOTO untuk meloncat ke suatu statemen yang tertentu, maka dibutuhkan suatu label pada statemen yang dituju dan label tersebut harus dideklarasikan terlebih dahulu pada bagian deklarasi. Mendeklarasikan label diawali dengan kata cadangan LABEL diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri dengan titik koma. Program Contoh_Label(Monitor); label 100, selesai; Begin write('Selamat '); goto 100; writeln('Kalimat ini diloncati'); writeln('Kalimat ini tidak ditulis'); 100: write('Belajar '); write('Bahasa '); goto selesai; writeln('Kalimat ini juga tidak ditulis'); selesai: write('Pascal'); readln; end. Catatan :

B

Page 18: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

18

Standar Pascal hanya mengijinkan label dalam bentuk angka maksimum panjangnya 4 digit, sedang TURBO Pascal dapat berupa angka maupun identifier.

2. Deklarasi Konstanta Bila Anda ingin menggunakan identifier yang berisi nilai-nilai konstanta

maka harus didefinisikan terlebih dahulu pada bagian ini. Definisi konstanta diawali dengan kata cadangan CONST diikuti oleh kumpulan identifier yang diberi suatu nilai konstanta. Program Contoh_Konstanta(Monitor); Const Potongan = 0.2; Gaji = 25000; Pegawai = 'Syaiful'; Begin Writeln('Nama Pegawai = ',Pegawai); Writeln('Besar Potongan = ',Potongan); Writeln('Besar Gaji = ',Gaji); End.

3. Deklarasi Tipe Suatu data yang dipergunakan di program Pascal, identifier yang

digunakan untuk data tersebut harus disebutkan tipenya, yaitu dengan cara men-definisikannya di bagian defmisi ini. Pascal menyediakan beberapa macam tipe dari data, terdiri dari: � Data tipe sederhana (simple-type data)

Data tipe ini menghubungkan sebuah identifier dengan sebuah data. Simple-type data dapat digolongkan menjadi tipe data standar (standard data types) dan tipe data yang didefinisikan oleh pemakai (user-defined data type). Yang termasuk tipe data standar adalah data dengan tipe integer, real, char, string dan boolean. Yang termasuk user defined data type adalah enumerated atau scalar (sejumlah data disebutkan satu per satu) dan sub-range (range dari data).

� Data tipe terstruktur (structured-type data) Data tipe ini terdiri dari beberapa data item yang dihubungkan satu dengan lainnya. Masing-masing grup dari data item dihubungkan dengan suatu identifier tertentu. Ada 4 macam tipe dari data terstruktur, yaitu array, record, file dan set.

� Data tipe penunjuk (pointer-type data) Data ini digunakan untuk membuat data terstruktur tipe dinamik.

Page 19: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

19

Untuk mendefinisikan tipe dari data yang akan dipergunakan di dalam program, kata cadangan TYPE digunakan sebagai judul defenisi tipe dan diikuti oleh satu atau lebih defenisi tipe yang dipisahkan dengan titik koma. Contoh mendefinisikan tipe data sederhana :

Program Contoh_Defenisi_Tipe_Data_Standard; Type Nomer = Integer; Lagi = Boolean; NilaiUjian = Real; Bagian Defenisi Tipe NilaiHuruf = Char; Nama = String[30]; Alamat = String[35]; Begin . . . End.

Dari defmisi tipe tersebut, berarti identifier yang akan digunakan di dalam program adalah : � Nomer dengan tipe integer � Lagi dengan tipe Boolean (logika) � NilaiUjian dengan tipe numerik real � NilaiHuruf dengan tipe char panjang maksimum 1 karakter � Nama dengan tipe string panjang maksimum 30 karakter � Alamat dengan tipe string panjang maksimum 35 karakter

4. Deklarasi Variable Kalau konstanta merupakan identifier berisi data konstanta yang nilainya

sudah ditentukan dan pasti, tidak dapat dirubah di dalam program, maka variable adalah identifier yang berisi data yang dapat berubah-ubah nilainya di program. Setiap variabel di dalam program Pascal harus dideklarasikan sebelum digunakan. Kata cadangan VAR digunakan untuk sebagai judul di dalam bagian deklarasi variabel dan diikuti oleh satu atau lebih identifier yang dipisahkan koma, diikuti dengan titik dua dan tipe dari datanya serta diakhiri denga koma. Var Total, Gaji, Tunjangan : Real; Menikah : Boolean; Bagian Deklara si Jmlh_Anak : Integer; Variable Keterangan : String[25]; begin Gaji := 25000;

Page 20: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

20

Menikah := True; Jmlh_Anak := 3; Tunjangan := 0.25 * Gaji + Jmlh_Anak * 30000; Total := Gaji + Tunjangan; Keterangan := 'Karyawan Teladan'; Writeln(' Gaji Bulanan = Rp.',Gaji); Writeln(' Tunjangan = Rp.',Tunjangan); Writeln(' Total Gaji = Rp.',Total); Writeln(' Sudah Menikah = ',Menikah); Writeln(' Jumlah Anak = ',Jmlh_Anak); Writeln(' Keterangan = ',Keterangan); readln; End.

EELLEEMMEENN--EELLEEMMEENN DDAASSAARR

PPRROOGGRRAAMM PPAASSCCAALL

OBJEKTIF

� Mahasiswa dapat mengetahui elemen-elemen dasar program Pascal, tipe variable, operator serta ekspresi pada Pascal.

PENDAHULUAN

ntuk mempelajari suatu bahasa komputer guna dapat membuat program dengan benar dan dapat mengembangkannya, langkah pertama Anda harus

mengetahui terlebih dahulu struktur dari program yang akan dibuat dengan bahasa tersebut dan hal ini telah Anda pelajari di bab sebelumnya. Selanjutnya langkah kedua adalah Anda harus mengetahui terlebih dahulu elemen-elemen yang membentuk program tersebut.

U

MMoodduull

44

Page 21: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

21

SIMBOL-SIMBOL DASAR

rogram Pascal dapat dibentuk dari simbol-simbol yang terdiri dari huruf-huruf, angka-angka dan simbol-simbol khusus.

Huruf-huruf: A sampai dengan Z, a sampai dengan z dan _ (garis bawah). Angka-angka: 0123456789 (0 sampai dengan 9). Simbol-simbol khusus: + - * / = * < > ( ) [ ] . , : ; ' $ Keterangan : Huruf besar (upper case) dan huruf kecil (lower case) dianggap sama, tidak dibedakan.

KATA-KATA CADANGAN

ata-kata cadangan (reserved words) adalah kata-kata yang sudah di-definisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata

cadangan tidak boleh didefinisikan ulang oleh pemakai, sehingga tidak dapat dipergunakan sebagai pengenal (identifier). Kata-kata cadangan yang dipergunakan adalah : � absolute

and array begin case const div do downto else end

� external file forward for function goto

� inline if in label mod

nil not

� overlay of or packed procedure program record repeat set

� shl � shr � string

then type to until var while with

� xor Keterangan : Kata-kata cadangan yang diberi tanda � menunjukkan kata-kata cadangan yang tidak ada di standard Pascal.

VARIABLE

P

K

Page 22: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

22

emakai dapat mendefinisikan sendiri pengenal untuk pengenal label, pengenal tipe, pengenal konstanta, pengenal variabel, pengenal prosedur dan

pengenal fungsi. Pengenal yang didefinisikan sendiri ini bebas, tetapi dengan ketentuan-ketentuan sebagai berikut: 1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa

huruf. 2. Tidak boleh mengandung blank (spasi). 3. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah 4. Panjangnya maksimum 127 karakter. Misalnya : Nama Langganan � Benar No_Induk � Benar P3K � Benar 05Stambuk � Salah, karena karakter pertama harus huruf Harga&Jual � Salah, tidak boleh mengandung karakter khusus Nama Siswa � Salah, tidak boleh mengandung spasi (blank) Bentuk Umum : Var NamaVariable1,NamaVariable2, ... ,NamaVariableN:Ti peData1; ... NamaVariableN1,NamaVariableN2,...,NamaVariableNN:T ipeDataN Contoh : Var Nilai1, Nilai2, Nilai3 : Integer; Nim : String[9]; Max : Byte;

KONSTANTA

ika dalam membuat suatu program kita sering menggunakan bilangan (numerik) maupun kalimat (string) yang sama berkali – kali, ada baiknya kita

menjadikan bilangan atau kalimat tersebut menjadi suatu konstanta. Pertimbangan lain kita memakai konstanta jika dalam suatu program kita merencanakan adanya pengembangan program kelak dan terdapat bilangan / string yang nilainya mungkin diupdate maka sebaiknya bilangan/string tersebut juga kita jadikan sebagai konstanta.

manfaat konstanta

P

J

Page 23: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

23

enggunaan konstanta akan membuat program kita menjadi lebih mudah dimengerti dan diperbaiki. Dengan menggunakan konstanta, Kita dapat

memberikan nama yang mudah kita ingat dan pahami untuk suatu bilangan kompleks. Misalnya untuk konstanta aritmatik 3.1415926536 kita akan lebih mudah menulis Phi daripada secara explicit menyatakan nilainya. Dan bila kita ingin mengganti nilai Phi tersebut kita cukup mengganti sekali saja yaitu pada bagian pendeklarasian konstanta.

Deklarasi konstanta

onstanta dideklarasikan pada awal program sebelum blok Begin-End program utama dituliskan. Untuk mendeklarasikan konstanta harus diawali

dengan reserverd word const. Bentuk Umum : Const NamaKonstanta1 = NilaiKonstanta1; NamaKonstanta2 = NilaiKonstanta2; … NamaKonstantaN = NilaiKonstantaN; Contoh :

Const Phi = 3.1415926536 Panjang = 100 Lebar = 50 Luas = Panjang * Lebar Judul = “Speak Softly Love”

Seperti yang kita lihat diatas bahwa pendeklarasian konstanta dapat juga berupa hasil operasi dari konstanta sebelumnya yaitu constanta Luas Sesuai dengan namanya “konstanta”, maka nilai dalam konstanta tersebut akan selalu konstan (tetap). Kita tidak dapat mengganti nilainya pada runtime program. Perubahan yang terjadi pada konstanta mensyaratkan peng-compile-an ulang source program.

TIPE DATA SEDERHANA

ascal telah menyediakan beberapa tipe data sederhana yang sudah siap kita pakai. Pada saat mendeklarasikan sebuah variable, kita harus pula menentukan

tipe data dari nilai yang dapat ditampung variable tersebut. Tipe-Tipe data sederhana yang telah disiapkan oleh pascal adalah sbb : • Boolean

P

K

P

Page 24: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

24

• Byte • Char • Integer • Real • String

INTEGER

ipe data integer adalah tipe data yang dapat menampung nilai yang merupakan bilangan bulat. Tipe data integer terbagi lagi atas :

TIPE DATA RANGE UKURAN

(BYTE) FORMAT

ShortInt -128 . . 127 1 Signed 8-bit Integer -32768 . . 32767 2 Signed 16-bit LongInt -2147483648 . . 2147483648 4 Signed 32-bit

Byte 0 . . 255 1 Unsigned 8-bit Word 0 . . 65535 2 Unsigned 16-bit

BOOLEAN

ipe data boolean biasa digunakan untuk merepresentasikan logika, tipe data boolean hanya dapat bernilai True (1) atau False (0). Beberapa macam tipe

data boolean dirangkum pada table dibawah ini :

TIPE DATA RANGE UKURAN (BYTE)

Boolean Byte-Sized 1(8 bit) ByteBool Byte-Sized 1(8 bit) WordBool Word-Sized 2(16 bit) LongBool LongInt-Sized 4(32 bit)

Tipe data ByteBool, WordBool, dan LongBool biasa dipakai dalam pembuatan program untuk windows (compiler Turbo Pascal For Window atau Borldan Delphi). Untuk program DOS pada umumnya menggunakan Tipe Boolean. Dalam suatu ekspresi, operator-operator seperti = , <> , > , < , >= , <= dan ini akan banyak dipakai untuk menentukan hasil dari suatu tipe data boolean.

REAL / FLOATING POINT

T

T

Page 25: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

25

ipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe data real ini juga terbagi menjadi beberapa tipe yang terlihat pada table

dibawah ini :

TIPE DATA RANGE UKURAN (BYTE) DIGIT

Real ± 2.9x10-39 . . 1.7x1038 6 11 – 12 Single ± 1.5x10-45 . . 3.4x1038 4 7 – 8 Double ± 5x10-324 . . 1.7x10308 8 15 – 16

Extended ± 3.4x10-4932 . . 1.1x104932 10 19 – 20 Comp -9.2x1018 . . 9.2x1018 8 19 – 20

KARAKTER

ipe data karakter hanya dapat menampung satu karakter saja dan mengalokasikan satu byte memory.

Bentuk Umum : Var <NamaVariable> : char; Contoh : Var Kalimat : string; Nama : string[25]; Alamat : string[30];

STRING

ipe data string adalah merupakan gabungan (array) dari karakter sebanyak 256 (default). Mengenai array akan dijelaskan pada modul berikutnya.

Bentuk Umum Var <NamaVariable> : string; Contoh : Var Kalimat : string; Nama : string[25]; Alamat : string[30];

T

T

T

Page 26: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

26

Ada baiknya jika kita menentukan berapa banyak karakter dalam tipe string tersebut dibutuhkan. Hal ini berhubungan dengan jumlah memori yang dialokasikan. Seperti pada contoh di atas variable nama mengalokasikan tempat sebanyak 25 karakter, dan itu berarti memory yang dialokasikan sebesar 25 byte. Akan sia – sia jika kita menuliskannya secara default (256 karakter) karena jarang sekali bahkan mungkin tidak ada seseorang yang memiliki nama dengan panjang 256 karakter.

TIPE DATA ENUMERASI

Adalah tipe data baru yang elemennya kita sebutka satu persatu. Bentuk Umum Type <NamaType> = (elemen1,elemen2, . . . , elemenN); Contoh : Type Hari = (Senin, Selasa, Rabu, Kamis, Jum’at, Sab tu); Var HariKerja : Hari; Begin . . . for HariKerja := Senin to Sabtu do . . . end.

Tanda Operasi (Operator)

Operator di dalam Pascal secara umum dikelompokkan kedalam 6 kategori, yaitu : 1. Operator Penugasan 2. Operator Binary Aritmatika 3. Operator Unary Aritmatika 4. Operator Relasi Perbandingan 5. Operator Boolean (logika) 6. Operator Bitwise

OPERATOR PENUGASAN

perator Penugasan (Assignment operator) dalam bahasa Pascal berupa tanda titik dua dan sama dengan (“:=”). Contoh : O

Page 27: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

27

nilai := 80; A := x * y;

Artinya : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian antara x dan y.

OPERATOR Binary ARITMATIKA

Bahasa Pascal menyediakan enam operator binary aritmatika, yaitu : 1. * : untuk perkalian 2. / : untuk pembagian 3. Div : untuk pembagian bulat 4. Mod : untuk sisa pembagian (modulus) 5. + : untuk pertambahan 6. - : untuk pengurangan

OPERATOR UNARY ARITMATIKA

Bahasa Pascal menyediakan dua operator unary aritmatika, yaitu : 1. Unary Minus (“-“) � menunjukkan bilangan negatif baik pada

operand numerik integer maupun numerik real. 2. Unary Positif (“+”) � menunjukkan bilangan positif baik pada

operand numerik integer maupun numerik real namun bersifat optional, artinya jika bilangan tidak bertanda “-“ maka akan dianggap bilangan positif.

OPERATOR RELASI (HUBUNGAN)

Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa Pascal :

1. = � Sama Dengan 2. <> � Tidak Sama Dengan 3. < � Lebih Kecil Dari 4. > � Lebih Besar Dari 5. <= � Lebih Kecil Sama Dengan 6. >= � Lebih Besar Sama Dengan 7. in � Anggota Dari

OPERATOR BOOLEAN (LOGIKA)

Operator Boolean (logika) digunakan untuk membandingkan logika hasil dari operator-operator hubungan. Operator logika ada empat macam, yaitu :

Page 28: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

28

gw

hmvt

.

−=

1. Not � Operator boolean negasi 2. And � Operator boolean logika And 3. Or � Operator boolean logika Or 4. Xor � Operator boolean logika Xor

OPERATOR BITWISE

Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Operator bitwise dalam bahasa Pascal :

1. not � Bitwise negation 2. and � Bitwise and 3. or � Bitwise or 4. xor � Bitwise xor 5. shl � Pergeseran bit kekiri 6. shr � Pergeseran bit kekanan

EKSPRESI PADA PASCAL

kspresi matematika yang sering kita gunakan tidak dapat secara langsung kita masukkan kedalam kode Pascal, untuk hal tersebut kita perlu melakukan

konversi dari ekspresi matematika tersebut menjadi suatu ekspresi yang dapat dikenal oleh Pascal dengan pemakaian operator yang ada padanya. Misalnya :

Untuk mengkonversi persamaan di atas ke dalam sintaks bahasa pemrograman Pascal perhatikan petunjuk berikut ini : 1. Tentukan variabel bebas dan tidak bebasnya. Dalam contoh diatas variabel

bebas adalah m, h, w dan g, sedangkan variabel tidak bebasnya adalah vt. Semua variabel bebas menjadi data masukan (input) dan variabel tidak bebasnya menjadi keluaran (output).

2. Tentukan urutan operasi yang dilakukan oleh rumus tersebut. Dalam contoh di atas, urutan operasinya adalah : a. m - h b. w . g c. m – h

w . g

3. Tegaskan urutan-urutan operasi tersebut dengan menggunakan tanda kurung :

E

Page 29: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

29

R

VVP ×=

N

XZP

)790.0( ×+=

(m – h) (w x g)

4. Tuliskan ekspresi tersebut ke dalam operator (sintaks) bahasa Pascal : (m – h) / (w * g)

5. Tuliskan programnya secara lengkap, misalnya : {deklarasi variable} VAR vt,m,h,w,g : real; BEGIN {inisialisasi variable} m := 65.2; h := 15.5; w := 2.5; g := 9.8; {ekspresi vt dalam pascal} vt := (m-h)/(w*g); writeln('Nilai vt = ',vt); readln; END.

TUGAS

onversi persamaan aritmatik dibawah ini kedalam ekspresi Pascal dan buatlah programnya secara lengkap seperti contoh diatas.

1. 2.

K

Page 30: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

30

+++×=

3

50z TU

2

1 2

CX

Y

ZXXZ

NIT

X

NIT

C++×

×+−+×

=18

2

5.0

)(3

2

3. 4.

SSTTAATTEEMMEENNTT

IINNPPUUTT DDAANN OOUUTTPPUUTT

OBJEKTIF

MMoodduull

55

Page 31: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

31

� Mahasiswa dapat mengetahui beberapa statemen, procedure serta fungsi pada Pascal yang digunakan untuk operasi input dan output.

MEMASUKKAN DATA

ara yang paling banyak digunakan untuk memasukkan data adalah dengan cara mengetikkannya lewat keyboard. TURBO Pascal menyediakan prosedur

untuk maksud tersebut, yaitu peosedur READ dan READLN. Prosedur READ dan READLN mempunyai aturan tertentu untuk beberapa tipe pengenal variabel. Tiap-tiap data yang dimasukkan harus sesuai dengan tipe variabelnya.

Tipe variabel Keterangan Char

Memasukkan sebuah karakter bila lebih akan terpotong, yang dianggap hanya yang pertama

String

Memasukkan string maksimum sepanjang yang didefenisikan

Integer

Memasukkan data numerik bulat diantara nilai -32767 sampai 32767

Real

Memasukkan data numerik real maksimum 30 digit dapat tanpa titik desimal

Boolean

Data tipe ini tidak diijinkan

PROCEDURE READ

Fungsi : � Pada modus berkas (file) akan membaca tiap komponen dari file tersebut

kesuatu variable. � Pada modus text akan membaca satu atau lebih nilai dan menyimpannya

kedalam satu atau lebih variable pula. Syntax : Untuk modus file (berkas) :

procedure Read(F , V1 [, V2,...,Vn ] ); Untuk modus text : procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );

PROCEDURE READLN

C

Page 32: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

32

emiliki fungsi yang sama seperti pada procedure Read hanya pada Readln akan memberikan karakter ganti baris (new line).

Syntax :

procedure Readln([ var F: Text; ] V1 [, V2, ...,Vn ]); Pada waktu memasukkan data, umumnya supaya lebih interaktip, maka dapat ditampilkan terlebih dahulu penjelasan tentang data yang akan dimasukkan. Untuk maksud ini sebelum prosedur READ atau READLN dapat digunakan prosedur WRITE terlebih dahulu untuk menampilkan penjelasan tentang data yang akan dimasukkan lewat prosedur READ atau READLN. Contoh Program : {contoh program pemakaian statement readln dan writ e.} Program Readln_Write(input,output); uses Crt; var s : String; begin clrscr; Write(' Ketikkan sembarang kalimat : '); Readln(s); Writeln(' Kalimat Anda : ',s); Writeln(' Tekan <Enter> Untuk keluar '); Readln; end. Program Celcius(input, output ); { Program ini untuk Mengkonversikan dari derajad ce lcius menjadi derajad fahrenheit } Uses CRT; Var C, F : real; Begin Clrscr; Write(' Berapa Celcius = '); ReadLn(C) ; {proses konversi} F := 1.8 * C + 32; WriteLn;

M

Page 33: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

33

WriteLn(C, ' Celcius adalah ',F,' Fahrenheit') ; Readln; End.

FUNGSI READKEY

Membaca karakter dari keyboard Syntax :

function ReadKey: Char; Catatan : Karakter yang diketikkan tidak akan ditampilkan pada monitor. Contoh Program {Contoh program untuk fungsi Readkey.} Program Kode_ASCII(input,output); uses Crt; var C: Char; begin Clrscr; Writeln('<< Tekan sembarang tombol >>'); C := Readkey; Writeln(' Anda menekan tombol ', C); Writeln(' Dimana kode ASCII-nya ', Ord(C), '.' ); Readln; end.

MENAMPILKAN HASIL

ntuk menampilkan hasil dengan bahasa Pascal digunakan prosedur WRITE atau WRITELN. Perbedaannya adalah, prosedur WRITE menampilkan hasil

tanpa ganti baris dan tampilan berikutnya akan disambung dalam baris yang sama. Sedang prosedur WRITELN digunakan untuk menampilk tampilan per baris. akan ganti baris untuk tampilan berikutnya. Syntax : procedure Write( [ var F: Text; ] P1 [,P2,...,Pn ] ); procedure Writeln([ var F: Text; ] P1 [, P2, ...,Pn ] );

U

Page 34: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

34

Contoh Program ; { Contoh program dengan pemanfaatan statement Write } Program Statement_Write(Output); Uses CRT; Var Kalimat : string[15]; Begin Clrscr; Kalimat := 'Belajar Pascal'; Write(' Kalimat : ') ; Write(Kalimat); Readln; End. {Perbedaan program sebelumnya bila memakai statemen Writeln} Program Statement_Writeln(Output); Uses CRT; Var Kalimat : string[15]; Begin Clrscr; Kalimat := 'Belajar Pascal'; Writeln('Kalimat : ') ; Writeln(Kalimat); Readln; End. Bentuk tampilan yang akan dihasilkan dapat menurut default yang ada atau dapat juga diatur dengan format yang tertentu. Tampilan dapat dihasilkan di layar (monitor) maupun di printer. Tampilan di layar dapat diatur dengan efek-efek tertentu, demikian juga dengan tampilan di printer.

TAMPILAN SECARA DEFAULT

ampilan default merupakan tampilan yang mengikuti bentuk pengaturan default yang sudah ditentukan oleh Pascal.

Contoh Program { Contoh program dengan bentuk tampilan default } Program Tampilan_Default(Output); Uses CRT;

T

Page 35: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

35

Var Bulat1, Bulat2 : integer; Pecahan1, Pecahan2 : Real; Huruf1, Huruf2 : Char; String1, String2 : String[5]; Logika1, Logika2 : Boolean; Begin { inisialisasi tiap variable } Bulat1 := 123; Bulat2 := 12345; Pecahan1 := 123.45; Pecahan2 := -123.45; Huruf1 := 'A'; Huruf2 := 'B'; String1 := 'BASIC'; String2 := 'COBOL'; Logika1 := True; Logika2 := False; { Menampilkan data } Clrscr; WriteLn(Bulat1, Bulat2); WriteLn(Pecahan1, Pecahan2); WriteLn (Huruf1, Huruf2); WriteLn (String1, String2); WriteLn(Logika1, Logika2); Readln; End.

TAMPILAN TERFORMAT

alaupun bentuk default dianggap cukup untuk menampilkan bentuk pada program yang sederhana. tetapi untuk program-program aplikasi dibutuhkan

bentuk format tertentu yang harus diatur kembali. Untuk mengatur format tampilan dengan prosedur WRITE atau WRITELN dapat dipergunakan parameter-parameter tertentu. yang menyebutkan panjang dari tampilannya. Contoh Program { Contoh program dengan bentuk tampilan default } Program Tampilan_Default(Output); Uses CRT; Var Bulat1, Bulat2 : integer;

W

Page 36: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

36

Pecahan1, Pecahan2 : Real; Huruf1, Huruf2 : Char; String1, String2 : String[5]; Logika1, Logika2 : Boolean; Begin { inisialisasi tiap variable } Bulat1 := 123; Bulat2 := 12345; Pecahan1 := 123.45; Pecahan2 := -123.45; Huruf1 := 'A'; Huruf2 := 'B'; String1 := 'BASIC'; String2 := 'COBOL'; Logika1 := True; Logika2 := False; { Menampilkan data } Clrscr; WriteLn(Bulat1:6, Bulat2:6); WriteLn(Pecahan1:8:2, Pecahan2:10:3); WriteLn(Huruf1:3, Huruf2:5); WriteLn(String1:7, String2:9); WriteLn(Logika1:7, Logika2:7); Readln; End.

PENGATURAN LETAK DI LAYAR

eberapa prosedur standar disediakan oleh TURBO Pascal untuk meng-atur tampilan di layar terminal, sehingga tampilan akan lebih baik dan mudah

dibaca hasi outputnya.

PROSEDUR CLRSCR

rosedur ini digunakan untuk membersihkan lavar dari tampilan-tampilan sebelumnya dan meletakkan cursor di posisi ujung kiri atas dari layar,

tepatnya berada pada koordinat (1,1).

B

P

Page 37: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

37

Contoh Program : {Contoh program dengan pemakaian prosedur CLRSCR.} Program Hapus_Layar(output); Uses Crt; Begin Clrscr; Writeln('Hello....'); Writeln('Tekan <ENTER> untuk menghapus layar ! ...'); Readln; ClrScr; Readln; End.

PROSEDUR GOTOXY (XPOS, YPOS)

rosedur ini digunakan untuk meletakkan cursor di posisi layar yang ditunjukkan oleh nilai XPOS dan YPOS. Nilai XPOS menunjukkan posisi

sumbu X (posisi horisontal atau posisi kolom diantara kolom 1 sampai dengan kolom 80). Nilai YPOS menunjukkan posisi sumbu Y (posisi vertikal atau posisi baris. diantara baris 1 sampai dengan baris 25). Contoh Program : {Contoh program dengan pemakaian prosedur GotoXY.} Program Koordinat(output); Uses Crt; Begin Clrscr; {meletakkan kursor pada baris ke 12 dan kolom ke 31} GotoXY(31,12); Writeln('Pemrograman Pascal'); Readln; End.

TUGAS :

� Buatlah sebuah program yang akan meminta input berupa data pribadi mahasiswa yang terdiri dari nim, nama, tempat, tanggal lahir, alamat, nomor telepon dan jenis kelamin. Lalu tampilkan data tersebut secara tabular.

� Dengan procedure GotoXY buatlah program yang akan meminta sembarang kalimat, lalu menampilkan kalimat tersebut tepat ditengah layar monitor, gunakan fungsi lenght(s:string) untuk menghitung jumlah karakter pada string.

P

Page 38: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

38

� Buatlah program yang akan melakukan konversi suhu dari Celcius ke Reamur dan Fahrenheit.

� Buatlah sebuah program yang akan menghitung luas serta volume sebuah balok dimana input adalah panjang, lebar serta tingg.

PPEENNYYEELLEEKKSSIIAANN

KKOONNDDIISSII ((BBRRAANNCCHHIINNGG))

MMoodduull

66

Page 39: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

39

OBJEKTIF

� Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya pada bidang pemrograman komputer serta keterkaitan antara logika dan Algoritma itu sendiri.

PENYELEKSIAN KONDISI

enyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses. Penyeleksian kondisi dapat diibaratkan sebagai katup atau kran yang

mengatur jalannya air. Bila katup terbuka maka air akan mengalir dan sebaliknya bila katup tertutup air tidak akan mengalir atau akan mengalir melalui tempat lain. Fungsi penyeleksian kondisi penting artinya dalam penyusunan bahasa Pascal, terutama untuk program yang kompleks.

STRUKTUR KONDISI “IF…THEN ...”

truktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar,

maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah :

if expr then statement; Contoh Program : { Program struktur kondisi if tunggal untuk memeriksa suatu kondisi } Program Nilai_Mahasiswa(input,output); Uses CRT; Var nilai : real; Begin Clrscr; Write(' Masukan nilai yang didapat = '); Readln(nilai); { penyeleksian nilai } If nilai > 65 Then Writeln(' ANDA LULUS !!!! '); Readln; End.

P

S

Page 40: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

40

Bila program tersebut dijalankan dan kita memasukan nilai 80, maka perintah mencetak perkataan LULUS !!!! akan dilaksanakan, namun sebaliknya bila kita memasukan sebuah nilai yang kurang dari 65 maka program akan berhenti dan tidak dihasilkan apa-apa. Contoh Program : { Program contoh penerapan struktur kondisi if } Program Seleksi(input,output); Uses CRT; Var a,b,c,max : integer; Begin Clrscr; Write(' Entry bil 1 : ');Readln(a); Write(' Entry bil 2 : ');Readln(b); Write(' Entry bil 3 : ');Readln(c); {Menentukan bilangan terbesar } If (a>b) And (a>c) Then max:=a; If (b>a) And (b>c) Then max:=b; If (c>a) And (c>b) Then max:=c; { Cetak bilangan terbesar } Writeln(' Bil terbesar = ',max); { menentukan apakah bilangan tersebut

positif atau negatif } If (max>0) Then Writeln(' Bil tersebut adalah bil positif') ; If (max<0) Then Writeln(' Bil tersebut adalah bil negatif') ; Readln; End.

STRUKTUR KONDISI “IF...THEN...ELSE”

alam struktur kondisi if...Then...else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan

pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut :

D

Page 41: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

41

if expr then statement else statement; Contoh Program : { Program struktur kondisi if ... Then ... Else untuk memeriksa suatu kondisi } Program Nilai_Mahasiswa(input,output); Uses CRT; Var nilai : real; Begin Clrscr; Write(' Masukan nilai yang didapat = '); Readln(nilai); { penyeleksian nilai } If nilai > 65 Then Writeln(' ANDA LULUS !!!! ') Else Writeln(' TIDAK LULUS !!!! '); Readln; End. Bila program tersebut dijalankan dan kita memasukan nilai 80 maka akan dicetak perkataan “LULUS !!!” namun bila kita memasukan nilai yang kurang dari 65 maka akan tercetak perkataan “TIDAK LULUS !!!”. Hal ini berbeda dengan struktur if dimana program akan berhenti bila kita memasukan nilai kurang dari 65.

STRUKTUR KONDISI “CASE ... ELSE ... ”

truktur kondisi Case...Else... digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah

satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada.. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘Else’. Bentuk umum dari struktur kondisi ini adalah : case expression of case: statement; ...

S

Page 42: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

42

case: statement; end Atau : case expression of case: statement; ... case: statement; else statement end Contoh Program : { Contoh program dengan pemakaian statement Case } Program Seleksi_Case(Input,Output); Uses CRT; Var Ch : Char; Begin clrscr; write(' Ketikkan sembarang key pada keyboard.. .'); readln(Ch); write(' Klasifikasi Key yang anda tekan adalah : '); case Ch of 'A'..'Z', 'a'..'z': WriteLn('Huruf'); '0'..'9': WriteLn('Digit'); '+', '-', '*', '/': WriteLn('Operator'); else WriteLn('Special character'); end; readln; End. Bila program dijalankan akan meminta input sembarang karakter yang ditekan dari keyboard lalu akan menentukan tipe karakter tersebut. Contoh Program : Var hari : integer; Begin Clrscr; Writeln('<< Menentukan nama hari >>'); Writeln('1 = Senin 2 = Selasa 3 = Rabu 4 = Kam is'); Writeln('5 = Jum','''','at 6 = Sabtu 7 = Mingg u');

Page 43: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

43

Writeln; Write(' Masukan kode hari (1-7) = '); Readln(hari); Case hari of 1 : Writeln('-> Hari Senin'); 2 : Writeln('-> Hari Selasa'); 3 : Writeln('-> Hari Rabu'); 4 : Writeln('-> Hari Kamis'); 5 : Writeln('-> Hari Jum','''','at'); 6 : Writeln('-> Hari Sabtu'); 7 : Writeln('-> Hari Minggu'); Else Writeln(' Kode hari yang Anda masukan SALAH '); End; Readln; End.

TUGAS :

1. Buatlah program yang akan mencetak bilangan terbesar dari 5 bilangan yang diinputkan oleh user.

2. Buatlah program untuk menentukan akar-akar persamaan kuadrat ax2+bx + c dimana tentukan dahulu determinannya D= b2-4ac maka jika : � D = 0 terdapat dua akar kembar yaitu :

a

bxx

221

−==

� D > 0 terdapat dua akar real berbeda yaitu :

a

Dbx

21

+−= a

Dbx

22

−−=

� D < 0 terdapat dua akar imaginair berbeda yaitu :

ia

D

a

bx

221

−+−= ia

D

a

bx

222

−−−=

SSTTAATTEEMMEENN DDAANN

SSTTRRUUKKTTUURR PPEERRUULLAANNGGAANN

MMoodduull

77

Page 44: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

44

OBJEKTIF

� Mahasiswa mampu menguasai statemen-statemen pada Pascal yang dapat digunakan dalam struktur perulangan, serta membedakan pada kasus perulangan yang bagaimana tepatnya suatu statemen perulangan dipakai.

STRUKTUR PERULANGAN

alam bahasa Pascal tersedia beberapa statemen yang digunakan untuk melakukan proses yang berulang-ulang sebanyak keinginan kita. Misalnya

saja, bila kita ingin menginput dan mencetak bilangan dari 1 sampai 100 bahkan 1000, tentunya kita akan merasa kesulitan. Namun dengan struktur perulangan proses, kita tidak perlu menuliskan perintah sampai 100 atau 1000 kali, cukup dengan beberapa perintah saja. Struktur perulangan dalam bahasa Pascal mempunyai bentuk yang bermacam-macam.

STRUKTUR PERULANGAN “FOR”

truktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur

perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Bentuk umum perulangan for adalah sebagai berikut : for var := Nilai_Awal to Nilai_Akhir do statement atau : for var := Nilai_Awal downto Nilai_Akhir do statement Catatan :

ontrol variable harus dalam bentuk ordinal (bilangan bulat). Untuk perulangan dengan struktur “to” maka kontrol variable akan ditambahi 1 setiap

perulangan, sedangakan dengan struktur “downto” kontrol variable akan dikurangi 1 setiap perulangan Contoh Program : { Program perulangan menggunakan statement for } Uses CRT; Var x : integer; Begin

D

S

K

Page 45: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

45

Clrscr; for x := 1 to 10 do Writeln(x,' BAHASA PASCAL '); Readln; End. Contoh Program : { Mencari total dan rata-rata sejumlah bilangan denga menggunakan statement for } Uses CRT; Var r,x,t : Real; y,i : Integer; Begin Clrscr; for y:=1 to 3 do for i:=0 to 2 do Begin Write(' Masukkan bilangan ke [',y,'-', i,'] : '); Readln(x); t := t + x; End; Writeln(' Total = ',t:10:2); r := t / i; Writeln(' Rata rata = ',r:10:2); Readln; End.

STRUKTUR PERULANGAN “ WHILE”

erulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui.

Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah. Bentuk Umum Struktur Perulangan While : while kondisi do statement Jika pada awal eksekusi struktur while kondisi sudah bernilai salah (false), maka statement milik while tidak akan dieksekusi sama sekali.

P

Page 46: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

46

Contoh Program : { Program perulangan menggunakan statement While } Uses CRT; Var x : integer; Begin Clrscr; {inisialisasi nilai x} x := 1; While x <= 10 do Begin Writeln(x,' BAHASA PASCAL '); {incrementasi nilai x} x := x + 1 { bisa juga dengan fungsi inc(x) } End; Readln; End. Contoh Program : { Program deret bilangan menggunakan statement Whil e } Program Deret(input,output); Uses CRT; Var N_Awal,N_Akhir,Beda : integer; x : integer; Begin Clrscr; {Proses Input Data} Write(' Input Nilai Awal = '); Readln(N_Awal); Write(' Input Nilai Akhir = '); Readln(N_Akhir); Write(' Input Beda = '); Readln(Beda); Writeln; Writeln(' Deret Bilangan : '); {Proses Perulangan} x := N_Awal; While x <= N_Akhir do

Page 47: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

47

Begin Write(x:4); {incrementasi nilai x dengan beda} x := x + Beda { bisa juga dengan fungsi inc(x,Beda) } End; Readln; End.

STRUKTUR PERULANGAN “REPEAT...UNTIL...”

ada dasarnya struktur perulangan Repeat...Until sama saja dengan struktur perulangan while, hanya saja pada proses perulangan dengan while, seleksi

berada di while yang letaknya di atas sementara pada perulangan Repeat Until, seleksi berada di Until yaitu bawah batas perulangan. Jadi dengan menggunakan struktur Repeat...Until sekurang-kurangnya akan terjadi satu kali perulangan. Bentuk Umum Struktur Repeat...Until adalah : repeat statement; statement; ... statement until Kondisi Contoh Program : { Program perulangan menggunakan statement Repeat-U ntil } Uses CRT; Var x : integer; Begin Clrscr; {inisialisasi nilai x} x := 1; Repeat Writeln(x,' BAHASA PASCAL '); {incrementasi nilai x} x := x + 1; { bisa juga dengan fungsi inc(x) } Until x >10; Readln; End.

P

Page 48: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

48

Contoh Program : Var ch : Char; I : Integer; Begin { proses input yang tidak boleh spasi kosong } repeat Clrscr; Write(' Tekan sembarang huruf = '); readln(ch); until Ch <> ' '; { proses input hanya menerima angka antara 0 s /d 9 } repeat Clrscr; Write(' Input sembarang angka = '); ReadLn(I); until (I >= 0) and (I <= 9); End.

TUGAS :

1. Buatlah sebuah program dengan bentuk output seperti dibawah ini Masukkan Banyak Bilangan = 5 <Enter> 1 2 3 4 5 2 3 4 5 3 4 5 4 5 5

2. Secara Matematis pemangkatan adalah proses perkalian bilangan dengan bilangan itu sendiri sebanyak n kali dimana 53 = 5 x 5 x 5. buatlah program pemangkatan dengan prinsip diatas dengan bentuk output sebagai berikut ; Masukkan Bilangan = 5 <Enter> Pangkat Bilangan = 2 <Enter> 5 Pangkat 2 adalah 25

SSTTRRUUKKTTUURR DDAATTAA

AARRRRAAYY ((LLAARRIIKK))

MMoodduull

88

Page 49: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

49

OBJEKTIF

� Mahasiswa dapat memahami struktur data Array, serta pemanfaatannya didalam perancangan program yang terstruktur.

STRUKTUR DATA ARRAY

rray adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama dan

merupakan gabungan dari beberapa variable sejenis serta memiliki jumlah komponen yang jumlahnya tetap. Elemen – elemen dari array tersusun secara sequential dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi.

ARRAY SATU DIMENSI

rray satu dimensi tidak lain adalah kumpulan elemen–elemen yang identik yang tersusun dalam satu baris. Elemen – elemen tersebut memiliki tipe data

yang sama, tetapi isi dari elemen tersebut boleh berbeda. Untuk lebih jelasnya perhatikan gambar berikut :

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 17 21 33 1 48 0 2 16 72 9

Bentuk Umum Type <NamaArray> = array[IdexArray] of TipeData; Contoh : Type Gaji = array[1..10] of longint; Logika = array[boolean] of integer; Pendeklarasian array diawali dengan kata baku type dan diikuti dengan nama array dan tanda sama dengan (=), lalu kata baku array beserta range index dan diakhiri dengan kata baku of beserta tipe datanya. Kita dapat mendeklarasikan sebuah tipe data baru yang terdiri dari elemen yang kita sebutkan satu persatu untuk kemudian dipakai sebagai index array . Tipe data tersebut disebut sebagai tipe data enumerasi. Perhatikan contoh dibawah :

A

A

Page 50: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

50

Type Hari=(Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu); PendapatanHarian = array[Hari] of real Selain itu kita juga dapat mendeklarasikan sebuah tipe data berupa subrange bilangan untuk kemudian dipakai sebagai index dari suatu array seperti berikut. Type Tinggi = 145..210; TinggiManusia = array [tinggi] of byte; Atau kita juga dapat menggunakan konstanta untuk kemudian dipakai dalam index array. Untuk menggunakan konstanta perlu diawali dengan kata baku const. Untuk lebih jelasnya perhatikan contoh berikut. Const Min = 1; Max = 10; Type Arr = array[Min .. Max] of byte; Var Point : arr; Contoh Program : { Program untuk menginput nilai mahasiswa ke dalam array satu dimensi } Program Data_Mahasiswa(Input,Outpu); Uses CRT; Type Nilai_Mhs = array[1..10] of integer; Var Index : integer; Nilai : Nilai_Mhs; Begin Clrscr; { Proses input nilai mahasiswa } Writeln('<< Menginput nilai 10 mahasiswa >>'); for index:=1 to 10 do Begin Write(' Mahasiswa -> ',index:2,' = '); Readln(nilai[index]); End;

Page 51: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

51

Writeln; Write(' Tekan Enter untuk melihat nilai mahasi swa... '); Readln; { Proses menampilkan nilai mahasiswa } CLRSCR; Writeln('<< Nilai mahasiswa yang telah diinput >>'); for index:=1 to 10 do Writeln(' Nilai -> ',index:2,' = ',Nilai[i ndex]:5); Readln; End.

ARRAY DUA DIMENSI

rray dua dimensi, yang sering digambarkan sebagai sebuah matriks adalah merupakan perluasan dari sebuah array satu dimensi. Jika pada array satu

dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang betipe sama sehingga dapat diilustrasikan seperti berikut.

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

[1] 10 2 32 54 84 1 2 65 5 4 [2] 21 45 65 98 23 28 44 99 10 14 [3] 13 95 27 71 73 6 7 88 9 11 [4] 31 33 25 52 55 69 87 73 49 93 [5] 66 22 17 85 29 85 83 30 20 19 [6] 49 36 58 77 48 86 82 3 65 14

Bentuk Umum : Type <NamaArray> = array[IndexArray1,IndexArray2] of TipeData; Contoh : Type Matriks = array[1..2,1..3] of byte; Logika = array[1..5,boolean] of integer; Type Baris = 1..2; Kolom = 1..3;

A

Page 52: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

52

Ordo = array[Baris,Kolom] of byte; Var Matrix : ordo; Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian arary satu dimensi, kecuali pada array dua dimensi terdapat dua index array yang terdapat didalam kurung siku dan masing- masing index boleh berbeda tipe. Untuk lebih jelasnya perhatikan contoh berikut ini. Type Kegiatan = (Main, Belajar, Nonton, Berenang}; Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabt u); AktivitasAnak = array[Hari, Kegiatan] of byte; Var A: AktivitasAnak; Pendeklarasian array AktivitasAnak diatas menggunakan dua buah tipe data yang masing-masing didefenisikan sendiri yaitu kegiatan dan hari. Jika digambarkan struktur array Aktivitas anak tersebut akan nampak seperti berikut.

[Main] [Belajar] [Nonton] [Berenang]

10 12 23 35 [Senin] 21 5 11 44 [Selasa] 32 2 29 8 [Rabu] 20 13 16 6 [Kamis] 14 4 18 25 [Jum’at] 26 9 17 22 [Sabtu]

Untuk dapat mengakses masing – masing elemen dari array AktivitasAnak diatas kita harus mengetahui posisi baris dan kolom dari elemen – elemen yang ingin diakses tersebut. Sebagai contohnya jika kita ingin mengakses data yang di higlight pada tabel diatas (5) dapat kita deklarasikan seperti dibawah ini : A [Selasa, Belajar] Note : Jika kita terbalik menuliskan baris dan kolom index array maka akan

terjadi error. Contoh Program : { Program menginput nilai(bilangan) ke dalam

Page 53: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

53

array dimensi dua dan menampilkannya } Program Matrix(Input,Output); Uses CRT; Type Ordo = array[1..3,1..4] of integer; Var Baris, Kolom : Integer; Matriks : Ordo; Begin Clrscr; { Menginput elemen array secara Row Major Orde r } Writeln('<< Proses memasukkan elemen array >>' ); for baris:=1 to 3 do Begin for kolom:=1 to 4 do Begin Write(' Matriks[',baris,'][',kolom,'] = '); Readln(matriks[baris][kolom]); End; Writeln; End; { Menampilkan elemen Array secara Row Major Or der } Writeln('<< Proses menampilkan isi array >>'); for baris:=1 to 3 do Begin for kolom:=1 to 4 do Begin Write(matriks[baris][kolom]:5); End; Writeln; End; Readln; End. Contoh Program { Program penjumlahan matriks dua dimensi } Program Penjumlahan_Matrix(Input,Output); Uses CRT; Type

Page 54: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

54

Ordo = array[1..3,1..4] of integer; Var A,B,X,Y,C : Ordo; i,j : Integer; Begin Clrscr; {******* Masukkan matriks A *******} Writeln('<< Matriks A >>'); for i:=1 to 3 do Begin for j:= 1 to 4 do Begin Write(' Input data matrik A[',i,'][' ,j,']= '); Readln(A[i][j]); End; End; {******** Masukkan matriks B ********} Writeln('<< Matriks B >>'); for i:=1 to 3 do Begin for j:= 1 to 4 do Begin Write(' Input data matrik B[',i,'][' ,j,']= '); Readln(B[i][j]); End; End; {******** Proses penjumlahan matriks A dan B * *******} for i:=1 to 3 do Begin for j:= 1 to 4 do Begin X[i][j]:=A[i][j]+B[i][j]; End; End; Clrscr; {******** Cetak isi matriks A ********} Writeln('<< matrik A >>');

Page 55: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

55

for i:=1 to 3 do Begin for j:=1 to 4 do Write(A[i][j]:6); Writeln; End; Writeln; {******** Cetak isi matriks B *******} Writeln('<< matrik B >>'); for i:=1 to 3 do Begin for j:=1 to 4 do Write(B[i][j]:6); Writeln; End; Writeln; {** Cetak hasil penjumlahan matriks A dan B ** } Writeln('<< matrik penjumlahan A+B >>'); for i:=1 to 3 do Begin for j:=1 to 4 do Write(X[i][j]:6); Writeln; End; Writeln; Readln; End.

ARRAY TIGA DIMENSI

rray tiga dimensi dapat dianalogikan sebagai suatu benda ruang 2 dimensi . Bentuk Umum :

Type <NamaArray> = array[IndexArray1,IndexArray2,Ind exArray3]of TipeData;

Contoh : Type Kalender = array[Tanggal, Bulan, Tahun] of byte ; Logika = array[1..10,boolean,2..15] of integer;

A

Page 56: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

56

Deklarasi pada array tiga dimensi tidak berbeda dengan deklarasi pada array satu dimensi dan dua dimensi yang telah dijelaskan sebelumnya, kecuali pada index array.

ARRAY BANYAK DIMENSI

ebenarnya array banyak dimensi ini tidak terlalalu sering dipakai seperti halnya array satu dimensi, dua dimensi dan tiga dimensi. Namum hal itu bukan berarti

pascal tidak memperbolehkan kita untuk memakainya. Array banyak dimensi ini pada dasarnya sama dengan array sebelumnya kecuali pada jumlah dimensinya saja. Bentuk Umum : Type <NamaArray> = array[indexArray1, IndexArray2,.. ., IndexArrayN] of Tipe Data; Contoh : Type Waktu = array[Tahun,Bulan,Tanggal,Jam] of integ er Pascal tidak menentukan maksimal banyaknya dimensi suatu array yang dapat kita buat. Namun pascal membatasi besarnya memori yang dapat dipakai untuk array yang kita defenisikan tersebut. Besar memori maksimal yang dapat dipakai untuk tiap array yang kita defenisikan tersebut tidak boleh melebihi atau sama dengan 64 KB (kilo byte), setara dengan 64x1024byte = 65536 byte. Contoh Program : { Program implementasi matriks multi dimensi } Uses CRT; Const Data_Huruf : array[1..3,1..8,1..8] of byte = (((1,1,1,1,1,1,1,1),(1,1,1,1,1,1,1,1), (0,0,0,1,1,0,0,0),(0,0,0,1,1,0,0,0), (0,0,0,1,1,0,0,0),(0,0,0,1,1,0,0,0), (0,0,0,1,1,0,0,0),(0,0,1,1,1,1,0,0)), ((0,1,1,1,1,1,1,0),(1,1,1,1,1,1,1,1), (1,1,0,0,0,0,1,1),(1,1,0,0,0,0,0,0), (1,1,0,1,1,1,1,1),(1,1,0,0,0,0,1,1), (1,1,1,1,1,1,1,1),(0,1,1,1,1,1,1,0)), ((1,1,1,1,1,0,0,0),(1,1,1,1,1,1,1,0),

S

Page 57: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

57

(1,1,0,0,1,1,1,1),(1,1,0,0,0,0,1,1), (1,1,0,0,0,0,1,1),(1,1,0,0,1,1,1,1), (1,1,1,1,1,1,1,0),(1,1,1,1,1,0,0,0))); Var i, j, k : Integer; Begin Clrscr; {* Menampilkan Data } for j:=1 to 8 do Begin for i := 1 to 3 do Begin for k:=1 to 8 do Begin if Data_Huruf[i][j][k] = 1 then Write(#219) else Write(' '); End; Write(' '); End; Writeln; End; Readln; End.

TUGAS :

1. Buatlah program untuk menginput, menghitung serta mencetak perkalian dua matriks dengan ordo bebas.

2. Buatlah program untuk menghasilkan invers dari suatu matriks dengan ordo bebas.

UUSSEERR DDEEFFIINNEE MMoodduull

99

Page 58: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

58

PPRROOCCEEDDUURREE DDAANN FFUUNNCCTTIIOONN

OBJEKTIF

� Mahasiswa dapat mengetahui salah satu teknik pemrograman terstruktur yaitu pada pembuatan Sub Program atau penerapan konsep program modular.

� Mahasiswa dapat membuat Procedure serta Fungsi sendiri dalam Pascal.

PROSEDUR DAN FUNGSI

rosedur maupun fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Prosedur diawali

dengan kata cadangan “Procedure” sedangkan fungsi diawali dengan kata cadangan “Fungction” pada bagian deklarasinya. Perbedaan paling mendasar antara Procedure dan Fungsi bahwa Pada Procedure tidak dapat memulangkan nilai kepada bagian program yang memanggilnya sedangkan pada fungsi dapat memulangkan nilai. Bentuk Umum Pendeklarasian Procedure : Procedure Nama_Prosedur; Begin Statement; . . . Statement; End; Atau : Procedure Nama_Prosedur(Daftar Parameter); Begin Statement; . . . Statement; End; Bentuk Umum Pendeklarasian Fungsi : Function Nama_Fungsi : Type_Data; Begin Statement; . . . Statement; End;

P

Page 59: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

59

Atau : Function Nama_Fungsi(Daftar Parameter): Type_Data; Begin Statement; . . . Statement; End; Contoh Program : { Contoh Pemakaian Procedure dan Fungsi } Uses CRT; Var op1,op2 : integer; Hasil : integer; { Prosedur cetak hasil } Procedure Cetak_hasil(hasil :integer); Begin Write(' Hasil Penjumlahan = ',hasil); End; { Fungsi Tambah } Function Tambah(a: integer; b:integer):integer; Begin Tambah := a + b; End; { Program Utama } Begin Clrscr; Write(' Masukkan Operand 1 = '); Readln(op1); Write(' Masukkan Operand 2 = '); Readln(op2); hasil := Tambah(op1,op2); Cetak_Hasil(hasil); Readln; End.

PARAMETER FORMAL DAN PARAMETER AKTUAL

Page 60: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

60

1. Parameter Formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi atau prosedur.

2. Parameter Aktual adalah variabel (parameter) yang dipakai dalam pemanggilan fungsi atau prosedur

Dalam contoh program pertambahan di atas parameter formal terdapat pada pendefinisisan fungsi dan Procedure. Procedure Cetak_hasil(hasil :integer); Function Tambah(a: integer; b:integer):integer; Sedangkan parameter aktual terdapat pada pemanggilan fungsi atau procedure hasil := Tambah(op1,op2); Cetak_Hasil(hasil);

CARA MELEWATKAN PARAMETER

ara melewatkan suatu parameter dalam Bahasa Pascal ada dua cara yaitu pemanggilan secara nilai (Call by Value) dan Pemanggilan Secara Referensi

(Call by Reference). Pemanggilan Secara Nilai (Call By Value) � Call by value akan menyalin nilai dari parameter aktual ke parameter formal. � Yang dikirimkan ke fungsi atau prosedur adalah nilai dari datanya, bukan

alamat memori letak dari datanya. � Fungsi dan prosedur yang menerima kiriman nilai akan menyimpannya di

alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi atau prosedur.

� Perubahan nilai di fungsi atau prosedur (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya.

� Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi atau prosedur ke fungsi atau prosedur yang dipanggil.

� Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja.

Contoh Program : { Program pemanggilan prosedur atau fungsi secara pengiriman nilai (call by value) } Uses CRT; Var a,b : integer;

C

Page 61: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

61

{ Deklarasi Procedure Tukar } Procedure tukar(x:integer;y:integer); Var z : integer; { variabel sementara } Begin { tukar nilai x dan y } z := x; x := y; y := z; Writeln(' Nilai di akhir fungsi tukar() '); Writeln(' x = ',x,', y = ', y); End; { Program Utama } Begin Clrscr; { inisialisasi nilai a dan b } a := 15; b := 10; Writeln('<< Nilai sebelum pemanggilan fungsi > >'); Writeln(' a = ',a,' b = ',b); tukar(a,b); { pemanggilan prosedur tukar()} Writeln('<< Nilai setelah pemanggilan fungsi > >'); Writeln(' a = ',a,' b = ',b); Readln; End. Pemanggilan Secara Referensi (Call by Reference) � Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat

dari suatu variabel ke dalam fungsi atau prosedur. � Yang dikirimkan ke fungsi atau prosedur adalah alamat letak dari nilai datanya,

bukan nilai datanya. � Fungsi atau prosedur yang menerima kiriman alamat ini akan menggunakan

alamat yang sama untuk mendapatkan nilai datanya. � Perubahan nilai di fungsi atau prosedur akan merubah nilai asli di bagian

program yang memanggil fungsi atau prosedur. � Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari

fungsi atau prosedur pemanggil ke fungsi atau prosedur yang dipanggil dan juga sebaliknya.

� Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.

Page 62: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

62

Contoh Program : { Program pemanggilan prosedur atau fungsi secara pengiriman referensi (call by reference) } Uses CRT; Var a,b : integer; { Deklarasi Procedure Tukar } Procedure tukar(var x:integer;var y:integer); Var z : integer; { variabel sementara } Begin { tukar nilai x dan y } z := x; x := y; y := z; Writeln(' Nilai di akhir fungsi tukar() '); Writeln(' x = ',x,', y = ', y); End; { Program Utama } Begin Clrscr; { inisialisasi nilai a dan b } a := 15; b := 10; Writeln('<< Nilai sebelum pemanggilan fungsi > >'); Writeln(' a = ',a,' b = ',b); tukar(a,b); { pemanggilan prosedur tukar()} Writeln('<< Nilai setelah pemanggilan fungsi > >'); Writeln(' a = ',a,' b = ',b); Readln; End.

PENGGOLONGAN VARIABEL

erdasarkan kelas penyimpanannya variable pada Pascal secara umum dapat dibedakan kedalam dua kelas yaitu :

Variabel lokal Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi.

B

Page 63: Logika Dan Algoritma-libre

Logika Dan Algoritma Dengan Pascal

63

Sifat-sifat variabel lokal : 1. Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap

ketika proses eksekusi terhadap fungsi berakhir. 2. Hanya dikenal oleh fungsi tempat variabel dideklarasikan 3. Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya

random). Variabel global (eksternal) Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi. Sifat-sifat variabel global : 1. Dikenal (dapat diakses) oleh semua fungsi. 2. Jika tidak diberi nilai awal secara otomatis berisi nilai nol.

TUGAS :

1. Buatlah fungsi untuk menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap.

2. Buatlah prosedur yang akan meng-input 10 data numerik lalu akan melakukan pensortiran secara Ascending (dari terkecil ke terbesar).

3. Buatlah suatu fungsi yang akan memulangkan nilai faktorial dari suatu bilangan.