You are on page 1of 59

MODUL 1 KONSEP PEMPROGRAMAN 1.

1 KONSEP PEMPROGRAMAN Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah (Balai Pustaka, 988) Logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Algoritma TUKAR_ISI_BEJANA Diberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukaran isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah. DESKRIPSI 1. Tuangkan larutan dari bejana A ke dalam bejana B. 2. Tuangkan larutan dari bejana B ke dalam bejana A.

A lgoritma

TUKA _ISI_BE R JANA

Diberikan dua buah bejana , A dan B; bejana A berisi larutan b erwarna merah , bejana B berisi laruta berw n arna biru . Pertukaran isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berw arna biru dan bejana B berisi larutan b erwarna merah . DE SKR IPSI 1. Tuangkan 2. Tuangkan 3. Tuangkan larutan dari be jana A ke dalam bejana C. larutan dari be jana B ke dalam bejana A . larutan dari be jana C ke dalam bejana B.

Bejana A

Bejana B

Bejana C

Algoritma Dalam Kehidupan Sehari-hari Cara-cara membuat kue Cara-cara membuat masakan Cara-cara memprogram perkuliahan Cara-cara mendaftar Tugas Akhir Cara mengendara sepeda motor Dll. Proses 1. Membuat Kue Algoritma Resep Kue Contoh Langkah dalam Algoritma ,Masukkan telur ke dalam nampan, kocok hingga 2. Membuat Pakaian Pola Pakaian mengembang, ..., gunting kain dari pinggir bawah ke arah 3. Praktikum Fisika Panduan Praktikum kanan sejauh 5 cm, , Siapkan alat, hubungkan 4. Merakit Mobil Panduan Merakit dengan catu daya, nyalakan, , sambungkan komponen A dengan 5. Kegiatan sehari-hari Jadual Harian komponen B,. , pukul 15.00 : tidur siang, 6. Memainkan Musik Papan Not Balok pukul: 18.00: kencan, Not balok.

Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat

kue

berdasarkan lagu

resep

yang

diberikan

kepadanya, not

pianis balok.

memainkan

berdasarkan

papan

Karena itu, suatu Algoritma harus dinyatakan dalam bentu yang dapat dimengerti oleh pemroses. Jadi pemroses harus : Mengerti setiap langkah dalam Algoritma. Mengerjakan operasi yang bersesuaian dengan langkah tersebut Mekanisme Pelaksanaan Algoritma Oleh Pemroses (Komputer) Algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program Program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Belajar Dan Bahasa Pemrograman Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Belajar Pemrograman adalah belajar memakai suatu bahasa, aturan-aturan tata bahasanya. Belajar Memprogram Belajar memprogram belajar bahasa pemrograman. Belajar memprogram: belajar 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 : design program. Memprogram

Belajar Bahasa Pemrograman

Belajar Bahasa Pemrograman: balajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa.

Belajar bahasa pemrograman, titik berat: Coder. Program sistematis) Dapat dieksekusi oleh mesin. Berfungsi dengan benar. Sanggup melayani segala kemungkinan masukan. Disertai dokumentasi. dengan rancangan yang baik (metodologis,

Produk yang dihasilkan Pemrograman

Algoritma Merupakan Jantung Ilmu Informatika Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu computer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai

dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus : 1. Mengerti setiap langkah dalam Algoritma 2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut. Mekanisme Pelaksanan Algoritma Oleh Pemroses Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah prwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer. Belajar Memprogram Dan Belajar Bahasa Pemrograman Belajar 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 instruksiinstruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan tujuan dan fungsinya. Diantaranya adalah : Belajar Memprogram Belajar memprogram belajar bahasa pemrograman 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 Programming Language Paradigm Imperative Declarative Algoritma Aksi : kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan berakhir pada saat T1) Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan Contoh : Ibu Tati mengupas kentang untuk mempersiapkan makan malam.. (luas

ruang lingkupnya) Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek netto yang direncanakan ( Initial State dan Final State) Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan mengupasnya Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci, siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi. Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan. Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari sudut pandang. Contoh mengupas kentang dapat dijelaskan : Ambil kantong kentang dari rak Ambil panci dari almari Kupas kentang Kembalikan kantong kentang ke rak Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang diambil dari rak sebelum ambil panci) : Ambil kantong kentang dari rak dan ambil panci dari almari Kupas kentang Kembalikan kantong kentang ke rak Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam juga, dan kita mengamati hal-hal yang sama, apakah hal tsb bisa disebut sama ? Ini tergantung jawabannya bisa sama bisa tidak. Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama dengan kemarin Sama karena kemiripan pola yang dilakukan Notasi Algoritma Independen Terhadap Bahasa Pemrograman Dan ditaruh di rak dapur dimana ibu Tati akan

Mesin Komputer Notasi 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. Pemrograman Prosedural, Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma adalah proses yang procedural. Definisi Prosedural menurut Kamus Besar Bahasa Indonesia : 1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas. 2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah. Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di

dalam memori dimanipulasi oleh instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural. Selain paradigma pemrograman procedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman ni merupakan trend baru dan sangat populr akhir-akhir ini. Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan paradigma pemrograman procedural saja. CONTOH KASUS Aksi : kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan berakhir pada saat T1) Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan Contoh : Ibu Tati mengupas kentang untuk mempersiapkan makan malam..(luas ruang lingkupnya) Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek netto yang direncanakan ( Initial State dan Final State)

Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan ditaruh di rak dapur dimana ibu Tati akan mengupasnya Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci, siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi. Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan. Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari sudut pandang. Contoh mengupas kentang dapat dijelaskan : Ambil kantong kentang dari rak Ambil panci dari almari Kupas kentang Kembalikan kantong kentang ke rak Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang diambil dari rak sebelum ambil panci) : Ambil kantong kentang dari rak dan ambil panci dari almari Kupas kentang Kembalikan kantong kentang ke rak Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam juga, dan kita mengamati hal-hal yang sama, apakah hal tsb bisa disebut sama ? Ini tergantung jawabannya bisa sama bisa tidak. Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama dengan kemarin

Sama karena kemiripan pola yang dilakukan sebagainya. CONTOH SOAL

MODUL 2

2.1 Dasar-Dasar Pemrograman Ciri penting algoritma : Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). Algoritma memiliki nol atau lebih masukkan. Algoritma memiliki nol atau lebih keluaran. algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal). Memprogram dan bahasa pemrograman: Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam bahasa itu saja. Notasi Algoritma Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman algoritma dan komputer notasi yang mengeksekusinya. tetapi Notasi dapat bukan bahasa pemrograman

diterjemahkan ke dalam berbagai bahasa pemrograman Notasi algoritma Notasi algoritma dapat berupa : Uraian kalimat deskriptif (narasi) Contoh Algoritma Kelulusan_mhs

Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus. DESKRIPSI : baca nama dan nilai mahasiswa. jika nilai >= 60 maka keterangan = lulus tetapi jika keterangan = tidak lulus. tulis nama dan keterangan Bagan alir (flow chart). Bagan alir (flow chart). Keterangan = ' Lulus' Mulai baca Nama, nilai Nilai >= 60 Keterangan = ' Tidak Lulus' Selesai Tulis Nama, keterangan ya tidak Pseudo-code. Algoritma Kelulusan_mhs {diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus} DEKLARASI : Nama : string Nilai : integer Keterangan : string DESKRIPSI : read (nama, nilai) if nilai >= 60 then keterangan = lulus else keterangan = tidak lulus write(nama, keterangan)

Aturan Penulisan Teks algoritma Aturan Penulisan Teks algoritma Judul algoritma Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut. Deklarasi Bagian untuk mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedur dan fungsi. Deskripsi Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya Algoritma Luas_Kell_Lingkaran {<- ini judul algoritma} {menghitung luas dan keliling lingkaran untuk ukuran jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luas dan kelilingnya, dan mencetak luas lingkaranke piranti keluaran <- ini spesifikasi algoritma} DEKLARASI : const phi = 3.14 {nilai ? } R : real {jari-jari lingkaran} Luas : real {luas lingkaran} Keliling : real {keliling lingkaran} DESKRIPSI : read (R) Luas <- phi * R *R Keliling <- 2 * phi * R write(luas, keliling) Tipe data dalam Java: Primitive types: tipe boolean, char, numerik Reference types: class (termasuk String, Integer), array. Apa perbedaan antara primitive and reference type?

tipe boolean char byte short int long float double

isi true, false unicode char signed integer signed integer signed integer signed integer IEEE 754/floating-point IEEE 754/floating-point

nilai default false \u0000 0 0 0 0 0.0 0.0

besar 1 bit 16 bit 8 bit 16 bit 32 bit 64 bit 32 bit 64 bit

Apakah operator? Berdasarkan jumlah dari operands: Unary Binary Berdasarkan operasi yang dilakukannya: Arithmatic Logical Apakah itu expression? Apakah output dari potongan program berikut? int ii = 1; int jj = 2; double a = (ii + 1) / (jj + 1); double b = (double) (ii + 1) / (jj + 1); double c = (ii + 1) / (double) (jj + 1); double d = (ii + 1.0) / (jj + 1.0); System.out.println (a + " " + b); System.out.println (c + " " + d); Perlu diingat: Tipe data dari sebuah ekspresi bergantung pada operator dan tipe data dari operands.

Urutan evaluasi sebuah ekspresi bergantung pada tingkat precedence operator. Jika dua buah operators memiliki tingkat precedence yang sama, lihat pada associativity operatornya: LR: Left to Right RL: Right to Left Branch (cabang) Digunakan untuk memilih perintah mana yang akan dijalankan berdasarkan kondisi tertentu. Loop (pengulangan) Suatu kelompok program dijalankan secara berulang. Kondisi berhenti menyatakan berapa kali pengulangan dijalankan. if (condition) { statement; if (condition) { statement1 } else { statement2 } next statement } next statement Kesalahan umum: if (x == 0); System.out.println (x is zero);

if (x > 0) System.out.println (x = ); System.out.println (x); testExpr ? yesExpr : noExpr Berguna sederhana Contoh: if (x > 100){ y = x * 0.9; } else { y = x; } Setara dengan: y = (x > 100) ? (x * 0.9) : x; while (condition){ statement; } /* Post condition: ~condition */ Selama nilai ekspresi condition true, maka statement akan dijalankan, kemudian ekspresi condition akan dievaluasi lagi. Saat nilai expression condition false, pengulangan berhenti. Perintah statement tidak lagi dijalankan. Ingat: condition dievaluasi lebih dulu! do { statement; ... } while (condition); /* Post condition: ~condition */ statement dievaluasi. Jika kondisi true statement dijalankan lagi. dijalankan lebih dulu, kemudian condition untuk menyederhanakan perintah if-then-else

Jika kondisi false loop berhenti. Minimal statement dijalankan sekali. for (initialization; condition; update) { statement; } setara dengan perintah while berikut: initialization; while (condition) { statement; update; } for Class Class memiliki: digunakan bila kita sudah tahu berapa banyak pengulangan yang akan dilakukan.

Detail implementasi (blue print) dari sebuah object yang akan dibuat bayangkan sebuah object factory. Class juga menyimpan static methods dan static variables dari object yang akan dibuat. Class menyatakan detail implementasi object Seluruh method dan fields code untuk method yang akan menentukan perilaku dari object. Berdasarkan definisi class object dibuat Field Menyimpan status dari object atau class Terdapat dua jenis field: Instance variable Tiap object punya nilai variable masing-masing object variable

Static variable Satu class hanya punya satu nilai variable, walaupun class tersebut memiliki beberapa object class variable Array Deklarasi Array (array adalah object juga) int [] array1; ingat: mendeklarasikan sebuah reference variable tidak berarti mengalokasikan memory dan membuat object. Membuat array array1 = new int[100]; int[] array2 = { 2, 3, 7, 5 }; Untuk mengakses element dalam array, gunakan index array1[0] = 20; Karena array adalah object juga, operator = tidak mengcopy(clone) array. int[] lhs = new int[100]; int[] rhs = new int[100]; ... lhs = rhs; Exceptions Exception menyatakan bahwa sebuah kejadian aneh telah terjadi. Sebuah object Exception menyimpan informasi tentang keanehan tersebut. throw menandakan keanehan catch tindakan mengatasi keanehan Error vs. Exception Error kesalahan fatal, mis: out of memory Exception masih bisa dibetulkan, mis: EOFException, ArrayIndexOutOfBoundException.

Overloading Memakai nama sama untuk method berbeda Method-method ini dibedakan berdasarkan signature-nya: Jumlah parameter Tipe parameter Urutan parameter Perhatikan bahwa signature tidak tergantung Nama parameter Return type Overloading ditangani pada saat kompilasi (static binding) Overriding Sebuah method yang memiliki nama dan signature yang sama dengan method dari superclass. Method dari subclass dikatakan meng-override method dari superclass. Ditangani pada saat runtime (dynamic binding): instance type menentukan method mana yang digunakan. Polymorphism Dalam mendefinisikan method untuk sebuah subclass, ada tiga kemungkinan: override a method from the superclass: Nama dan signature sama dengan method milik superclass. inherit method from the superclass: Methods yang tidak ditulis ulang otomatis akan diturunkan kepada seluruh subclass. create a new method: Nama dan signature berbeda dengan method milik superclass Interface Sebuah class hanya boleh meng-extend satu superclass, tapi boleh meng-implement banyak interface.

Ketika meng-extend superclass, sebuah class mewarisi interface (definisi method) dan juga implementasinya. Ketika meng-implement interface, sebuah class hanya mewarisi interface (definisi method). Contoh: sifat generik comparable didefinisikan di dalam sebuah interface: public interface Comparable { public int compareTo (Object ob); } compareTo mengembalikan: <0: object this lebih kecil dari parameter ob 0: object this sama nilainya dengan parameter ob >0: object this lebih besar dari parameter ob Contoh: interface public class CircleComparable extends Circle implements Comparable { public CircleComparable (double r) {super (r);} public int compareTo (Object other) { CircleComparable otherCircle = (CircleComparable) other; if (radius < otherCircle.getRadius ()) {return -1;} else if (radius > otherCircle.getRadius ()) {return 1;} else {return 0;} } }

MODUL 3
5. Operator Logika Operator Relasi digunakan untuk menghubungkan dua buah operasi relasi menjadi sebuah ungkapan kondisi. Hasil dari operator logika ini menghasilkan nilai numerik 1 (True) atau 2 (False). Operator && || ! Operator Logika NOT a. Operator Logika AND Operator logika AND digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila semua ekspresi relasi yang dihubungkan bernilai BENAR. b. Operator Logika OR Operator logika OR digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila Keterangan Operator Logika AND Operator Logika OR

salah satu ekspresi relasi yang dihubungkan bernilai BENAR dan bila semua ekspresi relasi yang dihubungkan bernilai SALAH, maka akan bernilai SALAH. Manipulator c. Operator Logika NOT Operator logika NOT akan memberikan nilai kebalikkandari ekspresi yang disebutkan. Jika nilai yang disebutkan bernilai BENAR maka akan menghasilkan nilai SALAH, begitu pula sebaliknya. Berikan Contoh Program Sederhana

MODUL 4
4.1 Pengulangan/Looping 1.Pengulangan Dengan ForNext
Pengulangan proses menggunakan ForNext adalah bentuk pengulangan terkendali dengan variabel kendali yang terus berjalan maju atau mundur. Format penulisan pengulangan ini adalah sebagai berikut: Contoh 1: Untuk menentukan barisan bilangan 1, 2, 3, ., 10 maka bilangan mempunyai nilai awal = 1, nilai akhir=10 dan step antar bilangan = 1, sehingga bisa ditulis dengan Karena step=1, maka secara default tidak perlu dituliskan sehingga perintahnya bias ditulis dengan: Contoh Aplikasi 5.1: Untuk menampilkan barisan bilangan 1 sampai dengan N, dengan N dimasukkan. Hasil barisan ditampilkan pada Label. (1) Buat project baru. Pada form, isi property [Name] dengan formLatihan51 (2) Tambahkan komponen-komponen: 1 label, 1 textbox, 1 buah listBox dan 1 command button (3) Untuk label1, isi property [Caption] dengan N=. Untuk textbox1, kosongkan property [Text]. Untuk command1, isi property [Caption] dengan

Barisan.

Atur

posisi

masing-masing

komponen

seperti

gambar 5.1. berikut: Gambar 5.1. Tampilan latihan 5.1 (4) Click pada command1, tambahkan program untuk membuat barisan bilangan dari 1 sampai dengan N sebagai berikut: Fungsi Val digunakan untuk mengubah tipe data text menjadi tipe data numerik, sedangkan fungsi Str digunakan untuk mengubah tipe data numeric menjadi tipe data text. Property clear pada List1 digunakan untuk membersihkan isi list1, dan property AddItem isi pada list1. List1 digunakan demikin untuk menambahkan Dengan sebelumnya

dibersihkan, kemudian ditambah isinya dengan barisan bilangan yang dibuat. (5) Simpan project dengan nama projectLatihan51. jalankan dan coba isi N yang berbeda-beda, perhatikan hasilnya. Contoh 2: Menampilkan barisan bilangan 20, 19, 18, ...., 3, 2, 1 dapat dilakukan dengan: Contoh 3: Menampilkan barisan bilangan 1, 4, 7, 10, 13, 16, 19, 22, .... 3N+1 dapat dilakukan dengan: Contoh Aplikasi 5.2: Untuk menampilkan huruf A sampai dengan Z menggunakan pengulangan For..Next, dapat dilakukan dengan langkah=langkah sebagai berikut: (1) Buat project baru. Pada form, isi property [Name] dengan formLatihan52 (2) Tambahkan komponen-komponen: 1 buah listBox dan 1 command button

(3) Untuk command1, isi property [Caption] dengan Alfabet. Atur tampilannya seperti gambar 5.2 berikut. Gambar 5.2. Tampilan latihan 5.2 (4) Click pada command1, tambahkan kode untuk menampilkan barisan alfabet menggunakan For..Next. Teknik yang digunakan adalah menggunakan kode ASCII untuk masing-masing karakter, dimana kode ASCII untuk A adalah 65, dan demikian seterusnya kode ASCII ditambah satu-persatu sampai 26 kali. Fungsi CHR adalah fungsi untuk mengambil karakter dari kode ASCII. (5) Simpan project dengan nama projectLatihan52. Jalnkan untuk mengethaui apakah hasilnya sudah benar atru tidak. Contoh 4: Menampilkan barisan fibbonanci sampai N kali (N bilangan bulat positif) dimana nilai saat ini adalah jumlah dari nilai dua suku sebelumnya. Contoh barisan fibonanci: 1 1 2 3 5 8 13 21 34 ... Contoh 5: Menampilkan barisan bilangan kelipatan 3 yang lebih kecil dari 100 dan berhenti saat bilangan tersebut juga kelipatan 7. Untuk menghentikan pengulangan For..Next sebelum mencapai nilai akhir dapat dilakukan dengan perintah Exit For.
Modul Dasar Pemrograman 2 Dengan Visual Basic 50

Contoh 6: Menampilkan barisan N bilangan yang berganti-ganti 1 dan -1 seperti :

adalah sebagai berikut: Atau dengan cara: Contoh 7: Menampilkan barisan N bilangan yang berganti-ganti positif dan negatif seperti : dapat dilakukan dengan cara mengalikan variable kontrol dari looping (i) dan bilangan sebagai berikut:

2. Pengulangan Dengan WhileWend


Pengulangan dengan While... Wend adalah bentuk

pengulangan terkendali dengan proses akan diulang selama kondisi yang diberikan masih dipenuhi. Format penulisan pengulangan ini adalah: Variabel kontrol pada jenis looping pada tidak looping otomatis dengan bertambah/berkurang seperti

For...Next, sehingga penambahan atau pengurangan nilai dilakukan dengan menggunakan akumulator yang dituliskan dengan var = var + step Meskipun hal ini bukan suatu keharusan. Karena tidak setiap looping membutuhkan akumulator, variabel yang terusmenerus bertambah atau berkurang. Contoh 8: Menampilkan bilangan bulat ganjil dari satu sampai dengan 11, ini merupakan looping dengan akumulator yang dapat dituliskan sebagai berikut: Contoh 9: Mencari nilai fungsi f(x) = - x2 + 3x 2 dari x=-1 sampai dengan f(x) mendekati nol, atau dalam arti |f(x)|<0.001, dengan step 0.01, dapat dituliskan dengan:

3. Pengulangan Dengan Do Loop Until


Pengulangan dengan Do Loop Until adalah bentuk

pengulangan terkendali dengan proses akan diulang sampai kondisi yang diberikan dipenuhi. Format penulisan pengulangan ini adalah: Contoh 10: Menampilkan bilangan bulat ganjil dari satu sampai dengan 11, ini merupakan looping dengan akumulator yang dapat dituliskan sebagai berikut: Contoh 11: Mencari nilai fungsi f(x) = - x2 + 3x 2 dari x=-1 sampai dengan f(x) mendekati nol, atau dalam arti |f(x)|<0.001, dengan step 0.01, dapat dituliskan dengan:

4. Pengulangan Bertingkat
Pada dalam matrik, contoh-contoh banyak di atas, hanya dilakukan satu

pengulangan. Padahal aplikasi pemrograman untuk menggunakan baris dan pengulangan yang lebih dari satu misalkan pada pengolahan diperlukan pengulangan pengulangan untuk kolom pada setiap baris. Pengulangan yang adalah di dalam pengulangan inilah yang dinamakan pengulangan bertingkat. Pengulangan bertingkat secara umum dapat dituliskan dengan bentuk penulisan sebagai berikut: Contoh 12. Menampilkan n baris dari barisan bilangan 1 2 3 4 5 sebagai berikut: 12345 12345

12345 .............. Dapat ditulis dengan: Contoh 13. Menampilkan 5 baris dari kombinasi barisan bilangan 1 2 3 4 5 sebagai berikut: 1 12 123 1234 12345 Perhatikan bahwa pada baris ke 1 hasilnya adalah dari 1 sampai dengan 1, pada baris ke 2 hasilnya adalah dari 1 sampai dengan 2, pada baris ke 3 hasilnya adalah dari 1 sampai dengan 3. Sehingga dapat dikatakan untuk baris ke i hasilnya adalah dari 1 sampai dengan i. Dan dapat dituliskan sebagai berikut: Contoh 12. Menampilkan n baris dari barisan bilangan 1 2 3 4 5 sebagai berikut: 12345 54321 12345 54321 .............. Perhatikan bahwa pada baris ganjil hasilnya 1 2 3 4 5 dan pada baris yang genap hasilnya adalah 5 4 3 2 1, maka perlu untuk mengetahui apakah baris itu baris genap/ganjil untuk menentukan nilai awal, nilai akhir dan step. Dapat ditulis dengan: Contoh Aplikasi 5.3:

Membuat program untuk untuk menghitung N bilangan prima, definisi bilangan prima adalah bilangan yang hanya habis dibagi oleh 1 dan bilangan itu sendiri atau bisa dikatakan bahwa bilangan prima adalah bilangan yang tidak tidak habis dibagi oleh bilangan 2 sampai sebelum bilangan itu sendiri. (1) Buat project baru dengan StandardEXE (2) Pada form1, isi property [Name] dengan formLatihan53. (3) Tambahkan komponen-komponen: 1 buah label, 1 textbox, 1 listbox dan 1 command button. (4) Isi porperty masing-masing komponen seperti tabel di bawah ini dan atur posisinya seperti gambar 5.3 berikut Komponen Property Nilai Label1 Caption N = Text1 Text (kosong) Command1 Caption Bil Prima Gambar 5.3. Tampilan latihan 5.3 (5) Click pada command1, tambahkan prorgam untuk membangkitkan N bilangan prima pertama. (6) Simpan project dalam projectLatihan53. Contoh 13: Menampilkan hasil penjumlahan dari deret berikut: 1 + 2 + 3 + 4 + ... + N dapat dilakukan dengan: Penulisan s=s+i dinamakan dengan akumulator, yaitu suatu variabel yang terus menerus bertambah sesuai data. Akumulator ini banyak digunakan dalam penulisan kode program dari rumus-rumus yang menggunakan jumlahan (sigma) sebagai berikut:

xf)( Contoh 14: Menampilkan hasil penjumlahan dari rumus deret yang dituliskan dengan

-=
n x

xs
1 2

)1(

dapat dilakukan dengan:

5.5. Latihan
1. Buatlah program untuk menampilkan barisan N buah bilangan yang dimulai dengan 1, bilangan kedua berselisih 1 dari bilangan pertama, bilangan ketiga berselisih 2 dari bilangan kedua, ... bilangan ke n berselisih (n-1) dari bilangan ke n-1 sebagai berikut: 2. Sebuah obyek berjalan dari posisi x=0 sampai dengan x=10 dia kembali ke x=0, kemudian di kembali x=10, dan demikian seterusnya sampai dia berputar (dari x=0 kebali ke x=0) sebanyak N kali. Buatlah program untuk menampilkan posisi obyek tersebut. 3. Buatlah program untuk menampilkan barisan N bilangan sebagai berikut: 4. Buatlah program untuk menampilkan barisan N buah bilangan biner sebagai berikut: 5. Buatlah program untuk menampilkan barisan N buah bilangan biner sebagai berikut:

6. Buatlah program untuk menampilkan barisan N buah bilangan biner sebagai berikut: 7. Buatlah program untuk menampilkan nilai x yang berjalan dari 0 sampai 1 dengan step 0.1, dan y = x2 3x + 2.
Modul Dasar Pemrograman 2 Dengan Visual Basic 58

8. Buatlah program menampilkan n baris dari barisan bilangan sebagai berikut 9. Buatlah program untuk menentukan dimana x dapat menyebabkan nilai fungsi f(x) = x3 2x2 + x -1 menjadi |f(x)|<0.001 , dengan x berjalan dari -4 sampai dengan 4 dengan step 0.01. 10. Buatlah program untuk menghitung rumus deret sebagai berikut:

-=
10 0 2 x

)5(

xs 11. Buatlah program untuk menghitung rumus deret sebagai berikut:

== +

-=

10 0 10 0

)1(
yx yx

MODUL 5
5.1 ARRAY Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain. VARIABEL ARRAY nama_variabel[indeks] ketentuan nama variabel arrray sama dengan nama variabel biasa. indeks menunjukkan nomor dari variabel . DEKLARASI VARIABEL ARRAY BU Contoh : tipe nama_variabel[indeks]; : float bil[10];

deklarasi variabel array dengan nama bil yang akan menampung 10 data yang bertipe float. Indeks 10 menunjukkan variabel bil terdiri dari 10 elemen, dimana setiap elemen akan menampung sebuah data. Indeks array dimulai dari nol(0) , sedang nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan, sehingga menjadi : float bil[11] INISIALISASI ARRAY 1 DIMENSI Inisialisasi dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen

array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma. int bil[2] = {4,1,8} bil[0] = 4 bil[1] = 1 bil[2] = 8 AUTOMATIC ARRAY adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array. Cara menginisialisasikan standar ANSI C: 1. Diinisialisasikan int bil[2]={0,0,0}; main() 2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY. main() { static int bil[2]={0,0,0}; ......... Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0). Contoh : main() { di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY. array dari compiler yg tidak mengikuti

int y; int hitung=0; int x[0]; for(y=0;y<5;y++) { hitung+=y; x[y]=hitung; printf("%3d - %3d\n",y,x[y]); } } OUTPUT: 0- 0 1- 1 2- 3 3- 6 4- 10 MENDEFINISIKAN JUMLAH ELEMEN ARRAY DALAM VARIABEL Besarnya variabel indeks dapat ditentukan dengan menggunakan preprocessor directives #define #define N 40 main() { int no[N],gaji[N],gol[N],status[N],juman[N]; Bila besari indeks akan diubah menjadi 50, cukup diganti dengan #define N 50 ARRAY 2 DIMENSI nama_variabel [indeks1][indeks2] indeks1 : jumlah/nomor baris

indeks2

: jumlah/nomor kolom indeks1 * indeks2

Jumlah elemen yang dimiliki array 2 dimensi dapat ditentukan dari hasil perkalian

misal : array A[2][3] akan memiliki 2*3 = 6 elemen. main() { float bil [5] [5] ....... dapat dituliskan dengan #define #define N 5 main() { float bil [N] [N] ....... INISIALISASI ARRAY 2 DIMENSI main() { float bil[2] [3] = { { 1,2,3}, { 4,5,6}, } elemen bil [0] [0] = 1 elemen bil [0] [1] = 2 elemen bil [0] [2] = 3 elemen bil [1] [0] = 4 elemen bil [1] [1] = 5 elemen bil [1] [2] = 6 /*baris 0*/ /*baris 1*/

Contoh : main() { int x[3][5]; int y,z; int hitung=0; for(y=0;y<3;y++)

{ printf("y = %d\n",y); for(z=0;z<5;z++) { hitung+=z; x[y][z] = hitung; printf("%/t%3d - %3d\n",z,x[y][z]); } } } OUTPUT: y=0 0- 0 1- 1 2- 2 3- 6 4- 10 y=1 0- 10 1- 11 2- 13

3- 16 4- 20 y=2 0- 20 1- 21 2- 23 3- 26 4- 30 STRING dan ARRAY 1. Pada string terdapat karakter null(\0) di akhir string 2. String sudah pasti array, array belum tentu string CONTOH - CONTOH : 1. array dengan pengisian input melalui keyboard baca_input() { float nilai[10]; for(i=0;i<10;i++) scanf("%d",&nilai[i]); } 2. Fungsi yang mencetak isi array dari akhir ke awal cetak_array() { float nilai[10]; for(i=9;i>=0;i--) scanf("%3f",nilai[i]); } 3. Menghitung rata - rata isi array nilai rata_rata() {

float nilai[10],jum*rata; for(i=0,jum=0;i<=9;i++) jum+=nilai[i]; rata=jum/i; } 4. Mencari nilai terbesar besar() float temp,nilai[10]; { for(temp=nilai[0],i=1;i<=9;i++) if(nilai[i] > temp) temp=nilai[i]; } return(temp)

MODUL 6 II. Contoh Penulisan Algoritma dengan Kode Semu (PseudoCode) Berikut ini adalah salah satu contoh penulisan algoritma : const pi = 3.1415926535897932384626433832795 function luas_lingkaran(r) {Algoritma yang menghasilkan luas suatu lingkaran apabila diberikan jari-jarinya r} l pi*r*r return l procedure tukar_nilai(a, b) {Algoritma yang mempertukarkan isi a dan isi b} ca ab bc Algoritma yang ditulis dengan cara seperti di atas sering disebut dengan kode semu (pseudo-code). Kode semu pun tidak memiliki bentuk yang baku, masing-masing orang bisa menuliskan kode semu dalam bentuk yang berbeda. Dari contoh di atas tampak bahwa suatu algoritma dapat dinyatakan sebagai sebuah fungsi (function) atau prosedur (procedure). Perbedaan fungsi dan prosedur adalah fungsi menghasilkan suatu nilai kembali sedangkan prosedur tidak. Fungsi maupun prosedur seringkali mempunyai parameter yang dapat digunakan untuk melewatkan suatu nilai ke/dari fungsi/prosedur. Pada kedua contoh di atas r, a, maupun b merupakan contoh parameter.

Pada contoh di atas fungsi luas_lingkaran akan menghasilkan nilai kembali 25 jika nilai parameter masukan r adalah 5. Sedangkan prosedur tukar_nilai sama sekali tidak menghasilkan nilai kembali, tetapi prosedur tersebut akan mempertukarkan nilai dari variabel-variabel yang dijadikan parameternya. Misalnya variabel x pada awalnya bernilai 10 dan variabel y bernilai 7, maka setelah dilakukan prosedur tukar_nilai(x, y) maka variabel x menjadi bernilai 7 dan variabel y menjadi bernilai 10. Suatu fungsi ditandai dengan adanya kata return. Pada contoh di atas terdapat kata const, kata const merupakan salah satu contoh dari apa yang dinamakan deklarasi. Deklarasi adalah bagian dari algoritma yang mendefinisikan nama-nama yang akan digunakan pada algoritma. Deklarasi ada bermacam-macam, antara lain : 1. Deklarasi konstanta Konstanta memiliki nilai yang tetap, tidak dapat diubah di bagian manapun dari algoritma. Contoh deklarasi konstanta : {deklarasi konstanta} const pi = 3.1415926535897932384626433832795 function luas_lingkaran(r) {Algoritma yang menghasilkan luas suatu lingkaran apabila diberikan jari-jarinya r} l pi*r*r return l {deklarasi konstanta} const e = 2.7182818284590452353602874713527 Catatan :

Bagian yang berada di dalam kurung kurawa {} disebut dengan komentar. Fungsi komentar adalah untuk memberikan penjelasan pada algoritma. Komentar bukan termasuk dari langkah-langkah algoritma yang akan dieksekusi. Bahkan komentar dapat dibuang begitu saja tanpa mempengaruhi kebenaran algoritma. 2. Deklarasi tipe Tipe yang dimaksud di sini adalah tipe-tipe data yang digunakan di dalam algoritma. Ada dua jenis tipe data yaitu tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang tidak perlu dideklarasikan lagi, biasanya sudah dikenal secara umum dan didukung langsung oleh perangkat keras komputer. Tipe bentukan adalah tipe yang perlu dideklarasikan, biasanya belum dikenal secara umum dan tidak mendapat dukungan langsung dari perangkat keras. Contoh tipe dasar antara lain integer, real, char, dan boolean. Contoh tipe bentukan adalah record, enumerasi, array, dan lain lain. Berikut ini adalah contoh deklarasi suatu tipe bentukan : {deklarasi tipe} type kompleks = record nyata: real imajiner: real function norma_kompleks(c: kompleks) {Algoritma yang menghasilkan norma dari suatu bilangan kompleks} n c.nyata*c.nyata + c.imajiner*c.imajiner return n type person = record name: string age: integer male: boolean type tab = array [1..50] of integers type gender = enum {male, female} type matriks = array [1..20, 1..20] of integers

type pointerperson = person Kadang-kadang suatu tipe dideklarasikan hanya sebagai nama alias dari tipe yang lain : type bilanganbulat = integers type jeniskelamin = gender Pembahasan mengenai berbagai jenis tipe terdapat pada bagian selanjutnya. 3. Deklarasi variabel Variabel adalah tempat yang digunakan untuk menampung suatu nilai. Setiap variable memiliki tipe tertentu. Berbeda dengan konstanta, nilai dari variabel dapat diubah di berbagai bagian dari algoritma. Contoh deklarasi variabel adalah sebagai berikut : type kompleks = record nyata: real imajiner: real {deklarasi variabel} a: kompleks b: kompleks procedure tukar {Algoritma untuk menukar isi a dan b} temp: real {deklarasi variabel} temp a.nyata a.nyata b.nyata b.nyata temp temp a.imajiner a.imajiner b.imajiner b.imajiner temp const n = 250 {deklarasi variabel} i: integer

f: real c: char b: booelan s: string r: array [1..30] of integers v: array [1..n] of integers array u[1..100] array w[1..n] 6 t: tab l: gender m: matriks Deklarasi variabel dapat dilakukan di sebarang tempat. Variabel yang dideklarasikan di dalam suatu fungsi/prosedur disebut sebagai variabel lokal sedangkan variabel yang dideklarasikan tidak di dalam fungsi/prosedur disebut variabel global. Variabel local dikenali hanya di dalam fungsi yang bersangkutan dan tidak akan dikenali di luar fungsi tersebut. Varibel global dapat dikenali di sebarang tempat dari algoritma. Dalam banyak kasus, deklarasi variabel tidak selalu harus dilakukan. Kadang-kadang notasi algoritmik menjadi lebih sederhana dan lebih jelas apabila variabelvariabel yang ada pada algoritma tidak dideklarasikan terlebih dahulu. 4. Deklarasi fungsi/prosedur Pada contoh di atas, setiap algoritma mengandung sebuah fungsi/prosedur yang dapat disebut Maka sebagai fungsi/prosedur yang utama. Kadang-kadang juga harus fungsi/prosedur utama memanggil sebuah fungsi/prosedur yang lain. fungsi/prosedur dipanggil tersebut dideklarasikan di dalam algoritma. Contoh algoritma yang memiliki lebih dari satu fungsi :

const pi = 3.1415926535897932384626433832795 function luas_lingkaran(r) l pi*r*r return l function isi_silinder(r, t) {Algoritma yang menghasilkan volume silinder apabila diberikan jarijari alas r dan tinggi t} a luas_lingkaran(r) v a*t return v Berikut ini adalah contoh algoritma yang cukup rumit penulisannya : const N = 100 type tabs = array [1..N] of integers T: tabs procedure isi_data for i 1 to N do T[i] random(10*N) function isi_dan_cari_minimum {Algoritma untuk mengisi elemen-elemen T secara random kemudian mencari nilai minimum dari elemen-elemen T tersebut} isi_data min T[1] for i 2 to N do if T[i] < min then min T[i] return min 5.2.2. Prosedur Sederhana Prosedur sederhana adalah sebuah subprogram yang tidak mempunyai parameter masukan maupun parameter keluaran. Berikut ini adalah skema prosedure sederhana: procedure A; { nama prosedur adalah A } var varlok1, varlok2, : tipevar; begin { statement }

end; Pada skema di atas, terlihat bahwa dalam prosedur dapat digunakan variable yang dideklarasikan juga dalam prosedur tersebut, variable-variabel ini disebut variable local. Contoh program Program Perhitungan_2_bil; uses crt; var bil1,bil2: integer; Procedure jumlahkan; var hasilJum: integer; begin hasilJum := bil1+bil2; writeln('hasil penjumlahan: ',hasilJum); end; BEGIN clrscr; writeln('masukan 2 bilangan'); write('bilangan pertama: '); readln(bil1); write('bilangan kedua : '); readln(bil2); jumlahkan; END. Keluaran program masukan 2 bilangan bilangan pertama: 5 bilangan kedua : 7

hasil penjumlahan: 12 Penjelasan program Bil1, bil2 adalah variable global, sedangkan hasilJum adalah variable local untuk prosedur jumlahkan

5.2.3. Prosedur yang menerima masukan Sebuah prosedur dapat menerima masukan yang digunkan dalam proses sesuai tugasnya. Prosedur semacam ini dikatakan prosedur yang mempunyai parameter masukan. Berikut ini adalah skema prosedure yang menerima masukan: procedure B(param1, param2, : tipeparam); var varlok1, varlok2, : tipevar; begin { statement } end; Contoh program Program Perhitungan_4_bil; uses crt; var bil1,bil2,bil3,bil4: integer; Procedure jumlahkan(angka1,angka2: integer); var hasilJum: integer; begin hasilJum := angka1+angka2; writeln('hasil penjumlahan: ',hasilJum); end;

BEGIN clrscr; writeln('masukan 4 bilangan'); write('bilangan pertama: '); readln(bil1); write('bilangan kedua : '); readln(bil2); write('bilangan ketiga : '); readln(bil3); write('bilangan keempat: '); readln(bil4); writeln; writeln('bilangan pertama dan kedua'); jumlahkan(bil1,bil2); writeln; writeln('bilangan ketiga dan keempat'); jumlahkan(bil3,bil4); END. Keluaran program masukan 4 bilangan bilangan pertama: 5 bilangan kedua : 8 bilangan ketiga : 2 bilangan keempat: 7 bilangan pertama dan kedua hasil penjumlahan: 13 bilangan ketiga dan keempat hasil penjumlahan: 9

5.2.4. Prosedur yang menerima masukan dan menghasilkan keluaran

Prosedur yang paling komplek adalah yang menerima masukan dan menghasilkan keluaran. Prosedur seperti ini disebut prosedur yang mempunyai parameter masukan dan parameter keluaran. Berikut ini adalah skema prosedur yang menerima masukan dan menghasilkan keluaran: procedure C(param1, param2, : tipeparam; var paramx, paramy, : tipeparam); var varlok1, varlok2, : tipevar; begin { statement } end; Pada skema prosedur di atas didefinisikan dua macam parameter, yaitu: parameter nilai (value parameter) : param1, param2 parameter acuan (reference parameter): paramx, paramy

Contoh program Program Perhitungan_4_bil; uses crt; var bil1,bil2,bil3,bil4,bil12,bil34,bil1234: integer; Procedure jumlahkan(angka1,angka2: integer; var hasilJum: integer); begin hasilJum := angka1+angka2; end; BEGIN

clrscr; writeln('masukan 4 bilangan'); write('bilangan pertama: '); readln(bil1); write('bilangan kedua : '); readln(bil2); write('bilangan ketiga : '); readln(bil3); write('bilangan keempat: '); readln(bil4); write('jumlah bilangan pertama dan kedua : '); jumlahkan(bil1,bil2,bil12); writeln(bil12); write('jumlah bilangan ketiga dan keempat: '); jumlahkan(bil3,bil4,bil34); writeln(bil34); write('jumlah semua bilangan END. Keluaran program masukan 4 bilangan bilangan pertama: 5 bilangan kedua : 8 bilangan ketiga : 2 bilangan keempat: 7 jumlah bilangan pertama dan kedua : 13 jumlah bilangan ketiga dan keempat: 9 jumlah semua bilangan Penjelasan program Perhatikan contoh di atas, lihat parameter angka1, angka2, hasilJum di dalam pendeklarasian prosedur jumlahkan yang sesuai dengan parameter bil1, bil2, bil12 pada pemakaian prosedur di dalam tubuh program. Dalam hal ini dapat didefinisikan dua macam parameter, yaitu: : 22 : '); jumlahkan(bil12,bil34,bil1234); writeln(bil1234);

parameter formal, di dalam deklarasi prosedur: angka1, angka2, hasilJum parameter actual, pada pemanggilan prosedur: bil1, bil2, bil12

5.3 Tugas buatlah program dengan prosedur untuk menyelesaikan persamaan berikut y=[(a+b)*(c+d)]*[(p+q)*(r+s)];

III. Struktur Dasar Algoritma Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut ditulis dalam bentuk instruksi-instruksi di dalam fungsi atau prosedur. Sekelompok instruksi dapat membentuk sebuah blok instruksi. Sebuah blok instruksi dapat dianggap sebagai satu kesatuan yang tidak terpisah. Instruksi-instruksi yang tergabung dalam sebuah blok ditulis menjorok untuk membedakan dengan instruksi-instruksi di dekatnya yang tidak termasuk sebagai anggota blok. Bentuk instruksi yang sering ditemui adalah : ab Bentuk tersebut merupakan instruksi untuk mengisi variabel a dengan nilai (isi) dari variabel b. Bentuk yang mirip dengan instruksi di atas adalah : ab+c Bentuk tersebut merupakan instruksi untuk mengisi variabel a dengan hasil penjumlahan dari isi variabel b dengan isi variabel c. Simbol seperti dan + sering disebut sebagai operator. Operator disebut sebagai operator penugasan (assignment) dan operator +

disebut sebagai operator penjumlahan. Suatu operator bertugas melakukan operasi, operator akan melakukan operasi penugasan sedangkan operator + akan melakukan operasi penjumlahan. Data yang dikenai operasi oleh operator disebut sebagai operand, dengan demikian a, b, atau c pada contoh di atas disebut sebagai operand. Satu atau gabungan beberapa operasi sering disebut dengan ekspresi. Jadi ekspresi terdiri dari satu atau lebih operator maupun operand. Bentuk-bentuk instruksi yang lain masih banyak, begitu pula dengan jenis-jenis operasi dan operator. Setiap orang boleh membuat instruksi, operasi, dan operatornya sendiri asal mudah dipahami dan dimengerti oleh orang lain. Langkah-langkah yang ada di dalam algoritma membentuk tiga buah struktur dasar, yaitu : a. runtutan (sequence) b. pemilihan (selection) c. pengulangan (repetition) a. Runtutan Runtutan adalah instruksi-instruksi yang dikerjakan secara berurutan. Berurutan di sini berarti sesuai dengan urutan penulisannya, yakni sebuah instruksi dijalankan setelah instruksi sebelumnya selesai dikerjakan. Contoh algoritma yang hanya terdiri dari runtutan adalah sebagai berikut : procedure menampilkan_tiga_kata write(Aku) write(Cinta) write(Indonesia) ekspresi a+bc

operator operand const pi = 3.1415926535897932384626433832795 function luas_lingkaran(r) l pi*r*r return l b. Pemilihan Pemilihan terjadi ketika suatu instruksi dikerjakan apabila suatu kondisi terpenuhi. Misalnya instruksi A dikerjakan karena kondisi X terpenuhi (yang juga berarti instruksi A tidak dikerjakan bila kondisi X tidak terpenuhi). Dalam kasus yang lain instruksi A dikerjakan bila kondisi X terpenuhi, atau instruksi B yang dikerjakan bila kondisi X tidak terpenuhi. Contoh algoritmanya adalah sebagai berikut : procedure tampilkan_kalimat(i) if i = 0 then write(Aku ) write(Cinta ) write(Indonesia) Pada contoh di atas, bila i bernilai 2 maka kondisi dari if (yaitu i = 0) tidak terpenuhi sehingga kalimat tidak akan ditampilkan. procedure pilih_kalimat(i) if i = 0 then write(Aku ) write(Cinta ) write(Indonesia ) else write(Aku ) write(Cinta ) write(Malaysia)

Pada contoh di atas, bila i bernilai 2 maka kondisi dari if tidak terpenuhi sehingga kalimat yang ditampilkan adalah Aku Cinta Malaysia procedure pilih_dari_tiga_kalimat(i) if i = 0 then write(Aku ) write(Cinta ) write(Indonesia) else if i = 1 then write(Aku ) write(Cinta ) write(Malaysia) else write(Aku ) write(Cinta ) write(Timor Leste) Pada contoh di atas, bila i bernilai 2 maka kondisi dari if yang pertama tidak terpenuhi sehingga dilanjutkan ke bagian else yang pertama. Pada bagian else yang pertama ditemui if yang kedua. Kondisi dari if yang kedua juga tidak terpenuhi sehingga kalimat yang ditampilkan adalah Aku Cinta Timor Leste Bentuk if yang bersarang (ada if di dalam if) seperti pada contoh algoritma yang terakhir, kadang-kadang dapat dituliskan dalam bentuk lain seperti berikut : procedure pilih_dari_tiga_kalimat(i) case i = 0 : write(Aku ) write(Cinta ) write(Indonesia) i=1: write(Aku ) write(Cinta )

write(Malaysia) else write(Aku ) write(Cinta ) write(Timor Leste) c. Pengulangan Pengulangan terjadi ketika ada suatu instruksi yang dilakukan terusmenerus selama suatu kondisi terpenuhi. Bentuk pengulangan yang sering dijumpai ditampilkan pada contoh-contoh di bawah ini : procedure tampilkan_n_kata(n) for i 1 to n do write(contoh) procedure tampilkan_n_nomor(n) for i 1 to n do write(Nomor ) write(i) procedure tampilkan_n_kata(n) repeat n times write(contoh lain) procedure tampilkan_n_nomor(n) for i n downto 1 do write(Nomor , i) Algoritma-algoritma di atas melakukan penulisan sebanyak n putaran. Pada setiap putaran algoritma-algoritma tersebut menuliskan kata maupun nomor. Putaran pada pengulangan sering disebut dengan iterasi. Jadi algoritma-algoritma di atas melakukan n kali iterasi, mulai dari iterasi pertama sampai iterasi ke-n. Pada contoh-contoh di atas juga tampak adanya suatu kesamaan, yaitu jumlah pengulangan telah diketahui lebih dahulu yaitu sebanyak n kali. Contoh yang lain adalah sebagai berikut :

procedure tampilkan_nomor(n) for i 3 to n step 2 do write(i) Algortima di atas melakukan pengulangan sebanyak ( ) ( ) 1 2 3 + n kali. Jika n diberi nilai 15 maka algoritma di atas menampilkan angka-angka 3 5 7 9 11 13 15 Contoh yang lain lagi adalah sebagai berikut : procedure tampilkan_nomor(n) C {1, 3, 5, 7, 9} for each i C do write(i) Catatan : Bagian yang ada di antara tanda kurung kurawa {} apada algoritma di atas bukanlah komentar, tetapi menyatakan himpunan (set). procedure tampilkan_nomor(n) for each i bilangan ganjil di antara 0 dan 10 do write(i) Kedua algortima di atas berfungsi untuk menampilkan angka ganjil di antara 0 dan 10. Untuk pengulangan yang jumlah iterasinya biasanya digunakan bentuk while dan repeat. procedure tampilkan_beberapa_kali i random(10) while i 5 do write(contoh) i random(10) Algoritma di atas menggunakan pengulangan bentuk while. Sebelum melakukan pengulangan, dilakukan pengecekan terlebih dahulu pada kondisi dari while. Bila kondisi terpenuhi maka iterasi dimulai, belum diketahui,

dan bila kondisi tidak terpenuhi maka pengulangan tidak akan pernah dilakukan. Setiap kali akan memasuki iterasi baru (pada awal iterasi), dilakukan pengecekan lagi pada kondisi. Iterasi dilanjutkan jika kondisi masih terpenuhi dan pengulangan berakhir ketika kondisi tidak terpenuhi. Algoritma di atas mungkin akan menampilkan kata contoh sebanyak 1 kali, 100 kali, 60 kali, atau bahkan tidak menampilkan kata contoh sama sekali. procedure tampilkan_lebih_dari_sekali repeat write(contoh) i random(10) until i 5 Algoritma di atas menggunakan pengulangan bentuk repeat. Pada bentuk repeat, pengulangan langsung memasuki iterasi yang pertama. Pada akhir iterasi, dilakukan pengecekan pada kondisi dari repeat. Iterasi dilanjutkan jika kondisi terpenuhi dan pengulangan berakhir jika kondisi tidak terpenuhi. Algoritma di atas akan menampilkan kata contoh sedikitnya 1 kali. Kadang-kadang diperlukan untuk mengakhiri pengulangan tanpa menghiraukan jumlah iterasi yang sudah ditempuh maupun kondisi yang ada pada suatu saat. Pengulangan dapat dipaksa berakhir dengan menggunakan instruksi break. procedure tampilkan_nomor for i 1 to 10 do write(i) if i = 5 then break Pengulangan pada algoritma di atas akan berakhir setelah memasuki iterasi ke-5 sehingga yang angka-angka yang ditampilkan adalah

12345 procedure tampilkan_nomor i1 while i < 10 do write(i) if i = 5 then break ii+1 Algoritma di atas juga menampilkan angka-angka 12345 Selain instruksi break juga terdapat instruksi continue yang berfungsi untuk melanjutkan pengulangan langsung menuju ke iterasi selanjutnya dengan mengabaikan instruksiinstruksi yang terletak setelah instruksi continue. procedure tampilkan_nomor_dan kuadratnya for i 1 to 6 do write(i) if i > 3 then continue write(i*i) Algoritma di atas akan menampilkan angka-angka 112439456

You might also like