PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu...

49
1 | Praktikum Algoritma dan Pemrograman PEMBAHASAN I PENGENALAN PEMROGRAMAN TERSTRUKTUR DAN TURBO PASCAL (1 x Pertemuan) 1.1. Pengenalan Bahasa Pemrograman Komputer adalah sebuah mesin yang hanya mengerti karakter 1 (satu) dan 0 (null) atau bilangan biner. Oleh karena itu, untuk mengoperasikan komputer diperlukan penerjemah bahasa dari bahasa manusia ke bahasa mesin komputer. Penerjemah bahasa tersebut terdiri dari software (perangkat lunak), yang menghubungakan manusia (brainware) dengan hardware (perangkat keras). Software biasa disebut dengan nama program, yaitu merupakan himpunan atau kumpulan instruksi yang dibuat oleh programmer atau bisa juga dikatakan sebagai suatu executable dari suatu software. Dalam pembuatan program terdapat tata cara atau prosedure yang harus dilakukan dalam penulisan program, hal ini biasa disebut dengan bahasa pemrograman. Pada bahasa pemrograman terdapat dua faktor penting, yaitu yang dikenal dengan nama syntax dan semantik. Syntax (sintaks) itu sendiri merupakan aturan gramatikal atau komposisi suatu program yang mengatur tata cara penulisan huruf, angka, dan karakter lainnya. Contoh dalam program pascal, terdapat titik koma ( ; ) diantara dua statement. Sedangkan semantik merupakan bagaimana cara mendefinisikan arti dari program yang benar secara sintaks dari bahasa pemrograman tersebut. Contoh dalam pascal, seperti berikut: Arti semantiknya adalah akan menyebabkan ruang sebanyak 10 dengan elemen real di variabel nilai dari 1-10. Secara umum bahasa pemrograman dibedakan menjadi 4 (empat) generasi, antara lain: Generai I, yaitu Machine Language (bahasa mesin) Generasi II, yaitu Assembly Language (Assembler) Generasi III, yaitu High-level Programming Language (C, Pascal, dsb) Nilai : Array [1..10] of Real; x := 1; x := x +1;

Transcript of PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu...

Page 1: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

1 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN IPENGENALAN PEMROGRAMAN TERSTRUKTUR

DAN TURBO PASCAL(1 x Pertemuan)

1.1. Pengenalan Bahasa PemrogramanKomputer adalah sebuah mesin yang hanya mengerti karakter 1 (satu)

dan 0 (null) atau bilangan biner. Oleh karena itu, untuk mengoperasikan

komputer diperlukan penerjemah bahasa dari bahasa manusia ke bahasa mesin

komputer. Penerjemah bahasa tersebut terdiri dari software (perangkat lunak),

yang menghubungakan manusia (brainware) dengan hardware (perangkat

keras). Software biasa disebut dengan nama program, yaitu merupakan

himpunan atau kumpulan instruksi yang dibuat oleh programmer atau bisa juga

dikatakan sebagai suatu executable dari suatu software.

Dalam pembuatan program terdapat tata cara atau prosedure yang harus

dilakukan dalam penulisan program, hal ini biasa disebut dengan bahasapemrograman. Pada bahasa pemrograman terdapat dua faktor penting, yaitu

yang dikenal dengan nama syntax dan semantik. Syntax (sintaks) itu sendiri

merupakan aturan gramatikal atau komposisi suatu program yang mengatur tata

cara penulisan huruf, angka, dan karakter lainnya. Contoh dalam program

pascal, terdapat titik koma ( ; ) diantara dua statement.

Sedangkan semantik merupakan bagaimana cara mendefinisikan arti dari

program yang benar secara sintaks dari bahasa pemrograman tersebut. Contoh

dalam pascal, seperti berikut:

Arti semantiknya adalah akan menyebabkan ruang sebanyak 10 dengan elemen

real di variabel nilai dari 1-10.

Secara umum bahasa pemrograman dibedakan menjadi 4 (empat) generasi,

antara lain:

Generai I, yaitu Machine Language (bahasa mesin)

Generasi II, yaitu Assembly Language (Assembler)

Generasi III, yaitu High-level Programming Language (C, Pascal, dsb)

Nilai : Array [1..10] of Real;

x := 1;

x := x +1;

Page 2: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

2 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Generasi IV, yaitu 4 GL (Fourth-generation Language (SQL)

Menurut versi-nya ada dua jenis bahasa pemrograman yang berkembang

saat ini, permata yang menggunakan sistem console dan kedua menggunakan

sistem visual.

Sistem ConsoleSistem console adalah pemrograman yang mengandalkan dalam

pengkode-an (coding), tanpa adanya kemudahan dalam click dan drag

disamping itu tampilan yang kurang menarik. Contoh bahasa

pemrograman yang menggunakan sistem consule adalah Pascal, Q-

Basic, Java, C++, C, Perl, Java Script, dll. Sistem Visual atau Obyek

Sistem visual adalah perkembangan dari sistem consule dengan berbasis

object frame oriented dengan interface (tampilan grafis) yang lebih bagus

dan memfokuskan pada kemudahan dalam memprogram suatu aplikasi

dengan metode klik dan drag. Contoh bahasa pemrograman yang

menggunakan sistem ini adalah Borland Delphi, Visual Basic, Visual

C++, Visual Foxpro, dll.

Bahasa Pemrograman untuk Tujuan TertentuJenis Program Bahasa Terbaik Bahasa Terburuk

Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC

Proyek cepat BASIC Pascal, ADA, Assembler

Eksekusi cepat Assembler, C Basic, Interpeter Language

Kalkulasi matematika Fortran Pascal

Menggunakan Memori Dinamis Pascal, C Basic

Lingkungan bermemori terbatas Basic, Assembler, C Fortran

Program real-time ADA, Assembler, C Basic, Fortran

Manipulasi string Basic, Pascal C

Program mudah dikelola Pascal, ADA C, Fortran

Compiler dan InterpreterCompiler adalah suatu program yang menterjemahkan bahasa program

(source code) ke dalam bahasa objek (object code). Compiler menggabukankan

keseluruhan bahasa program dikumpulkan kemudian disusun kembali.

Page 3: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

3 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Gambar 1.1. Kompilasi Program Komputer

Tahap kompilasi :

1. Source Code (program yang ditulis) dibaca ke memory komputer.

2. Source Code tersebut diubah menjadi object code (bahasa assembly)

3. Object Code dihubungkan dengan library yang dibutuhkan untuk membentuk

file yang bisa di eksekusi.

Interpreter berbeda dengan compiler, Interpreter menganalisis dan dan

mengeksekusi setiap baris dari program tanpa melihat program secara

keseluruhan. Keuntungan interpreter adalah dalam eksekusi yang bisa dilakukan

dengan segera. Tanpa melalui tahap kompilasi, untuk alasan ini interpreter

digunakan pada saat pembuatan program berskala besar.

1.2. Tipe PemrogramanPemrograman terstruktur adalah cara pemrosesan data yang terstuktur.

Terstruktur dalam: analisa, cara dan penulisan program.

Prinsip pemrograman terstruktur:

a. Gunakan rancangan pendekatan dari atas ke bawah (top down design),

b. Bagi program ke dalam modul-modul logika yang sejenis,

c. Gunakan sub-program untuk proses-proses sejenis yang sering digunakan,

d. Gunakan pengkodean terstruktur: IF ... THEN, DO ... WHILE dan lain-

lainnya,

e. Hindarkan penggunaan perintah GO TO bila tidak diperlukan,

f. Gunakan nama-nama bermakna (mnemonic names), dan

g. Buat dokumentasi yang akurat dan berarti.

Page 4: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

4 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Dalam perencanaan dan perancangan dari atas ke bawah, kategori dan

penyelesaian masalah dimulai dari bagian yang utama kemudian dibagi menjadi

bagian yang lebih kecil. Rancangan cara ini memudahkan penulisan, pengujian,

koreksi dan dokumentasi program.

Tahapan rancangan atas ke bawah dalam pemrograman:

Tentukan keluaran (output) yang diminta, masukan (input) yang diperlukan

dan proses-proses utama yang diperlukan untuk transformasi data.

Membagi proses utama ke dalam modul-modul fungsional.

Buat algoritma msing-masing modul, dari modul utama ke sub-sub modul.

Dalam proses pembuatan program, terlebih dahulu proggrammer

membuat rancangan program yang biasa disebut dengan nama ALGORITMA.Untuk lebih jelaskan akan dibahas sebagai berikut:

1.3. ALGORITMAALGORITMA ialah suatu metode khusus yang tepat dan terdiri dari

serangkaian langkah terstruktur dan dituliskan secara sistematis, yang akan

dikerjakan untuk menyelesaikan suatu masalah, atau “Algoritma 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.CIRI-CIRI ALGORITHMA YANG BAIK

Algorithma harus tidak Ambigu (Unambiguous) atau harus pasti, artinya

Deskripsi langkah-langkah dalam algorithma harus dan hanya mempunyai

tafsiran tunggal.

Algorithma harus tepat (precise), artinya Algorithma harus menyatakan

urutan langkah-langkahnya, kapan sebuah langkah dijalankan.

Algorithma harus pasti (definite), artinya jika serangkaian langkah yang

sama dilakukan dua kali maka hasilnya harus selalu sama.

Algorithma harus berhingga (finite), artinya, serangkaian langkah dalam

algorithma harus dapat dilakukan pada rentang waktu tertentu.

Murah, yaitu efisien dalam penggunaan piranti memori dan penyimpanan

lainnya serta cepat waktu pelaksanaannya.

Page 5: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

5 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Mengikuti alur konsep, suatu algoritma disusun dalam tiga bagian, yaitu :

a. Bagian Kepala algoritma

b. bagian deklarasi, dan

c. Bagian deskripsi algoritma

Setiap bagian disertai dengan penjelasan atau dokumentasi tentang

maksud pembuatan teks.

Algoritma Nama_algoritma {penjelasan tentang algoritma yang menguraikan

secara singkat hal-hal yang dilakukan oleh

algoritma}.

Deklarasi {semua nama yang digunakan, meliputi nama-nama : tipe, konstanta,

variabel, juga nama sub-program dinyatakan disini}

Deskripsi {semua langkah atau aksi algoritma dituliskan disini}

Algoritma tidak hanya dinotasikan dengan kata-kata saja, namun bisa

juga dituangkan kedalam bentuk bagan alir atau yang biasa disebut dengan

nama Flowchart. Adapun flowchart (diagram alir) merupakan urutan langkah-

langkah logis untuk menyelesaikan masalah dengan menggunakan simbol.

Diagram alir terbagi menjadi 5 (lima) jenis, yang salah satunya adalah diagram

alir logika (logic flowchart). Adapun bentuk simbol-simbol yang digunakan adalah

sebagai berikut:

Gambar 1.2. Simbol-simbol Flowchart Logika

Page 6: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

6 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

1.4. BAHASA PEMROGRAMAN PASCALa) Sejarah PASCAL

Merupakan pengembangan dari bahasa ALGOL 60, bahasa

pemrograman untuk sains komputasi. Tahun 1960, beberapa ahli

komputer bekerja untuk mengembangkan bahasa ALGOL, salah satunya

adalah Dr. Niklaus Wirth dari Swiss Federal Institute of Technology (ETH-

Zurich), yang merupakan anggota grup yang membuat ALGOL. Tahun

1971, dia menerbitkan suatu spesifikasi untuk highly-structured language

(bahasa tinggi yang terstruktur) yang menyerupai ALGOL. Dia

menamainya dengan PASCAL (seorang filsuf dan ahli matematika dari

Perancis) Pascal bersifat data oriented, yaitu programmer diberi

keleluasaan untuk mendefinisikan data sendiri. Pascal juga merupakan

teaching language (banyak dipakai untuk pengajaran tentang konsep

pemrograman). Kelebihan yang lain adalah penulisan kode Pascal yang

luwes, tidak seperti misalnya FORTRAN, yang memerlukan programmer

untuk menulis kode dengan format tertentu. Bentuk dasar program Pascal

adalah seperti berikut:program TITLE ;beginpernyataan;pernyataanend.

b) PASCAL sebagai bahasa terstrukturSebagai bahasa terstruktur, PASCAL mempunyai ciri-ciri sebagai

berikut:

1. Berurutan Susunan dari kode-kode dalam teks Pascal harus ditulis

secara urut dari atas, pernyataan-pernyataan yang ditulis lebih awal

akan dieksekusi lebih dahulu. Oleh karena itu, suatu pernyataan yang

menyangkut suatu variabel di dalam program, maka variable itu harus

terdefinisi dahulu sebelumnya. Hal ini terutama menyangkut pada

pemanggilan sub-program oleh sub-program yang lain. Bisa dibaca

lebih lanjut pada bagian sub-program.

2. Blok dengan batas-batas yang jelas. Pascal memberikan pembatas

yang jelas pada tiap-tiap blok, seperti pada blok program utama, sub-

program, struktur kontrol (pengulangan/ pemilihan), dll. Pemakaian

kata kunci begin untuk mengawali operasi pada blok dan end untuk

menutupnya memudahkan programmer menyusun programnya

dengan mudah. Seperti contoh:

Page 7: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

7 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

If X>0 thenbeginWrite ( ‘ bilangan positif’);Writeln ( ‘ program selesai’);end;

Satu pintu masuk dan satu pintu keluar pada blok pemilihan dan

pengulangan. Contoh di atas juga mengilustrasikan pintu masuk

tunggal pada suatu blok pemilihan yaitu suatu test logika X>0, dengan

pintu keluaran yang satu pula (satu disini maksudnya bukan dua baris

perintah output tapi suatu paket perintah yang dirangkai dengan begin

.. end.

c) Bakuan PASCALDibakukan oleh ISO pada tahun 1983 dan dikembangkan dalam

beberapa versi, diantaranya: USCD PASCAL, MS PASCAL, TURBO

PASCAL dll. Dengan semakin berkembangnya teknologi dalam

komputasi, Pascal dimanfaatkan untuk pengembangan DELPHI (berasal

dari nama suatu kota di masa Yunani kuno), suatu bahasa pemrograman

visual yang menonjolkan pada efek grafis dan orientasi pada objek-objek

yang siap dipakai, karena memiliki Visual Component Library (VCL).

d) Struktur Bahasa PASCAL secara umumPascal mempunyai struktur sebagai berikut:

1. Bagian Judul Program

2. Bagian Deklarasi

a. Deklarasi tipe data (TYPE)

b. Deklarasi variabel (VAR)

c. Deklarasi konstanta (CONST)

d. Deklarasi label (LABEL)

e. Deklarasi sub-program (PROCEDURE dan FUNCTION)

3. Bagian Program Utama Perintah-perintah.

Teks Pascal setidaknya memiliki bagian Judul Program,

bagian Deklarasi, dan Bagian Program Utama yang berupa perintah-

perintah. Sedangkan untuk bagian deklarasi menyesuaikan dengan

isi dari program itu sendiri. Contoh program PASCAL:

Page 8: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

8 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

program TAMBAH_00; {Menjumlahkan dua bilangan yang nilainya diberikan

dalam perintah}

var

X, Y, Z: integer;{Deklarasi variabel X,Y dan Z sebagai bilangan bulat}

BEGIN {Program Utama Mulai}

X := 50; {Perintah memberikan nilai 50 pada var. X}

Y := 25; {Perintah memberikan nilai 25 pada var. Y}

Z := X + Y;{Perintah menjumlahkan X dan Y serta menyimpan hasilnya ke Z}

END. {Akhir Program Utama}

Pada contoh ini nilai X dan Y tidak bisa sembarang, karena

didefiniskan tertentu. Agar nilai X dan Y bisa bebas ditentukan, nilai X

dan Y dibaca dari default input.

program TAMBAH_01; {Menjumlahkan 2 bil yg dibaca dari default input}

varX,Y,Z: integer; {Deklarasi variabel X,Y dan Z sebagai bilangan bulat}

BEGIN { Program Utama Mulai }

read(X); { Membaca nilai X lewat key-board }

read(Y); { Membaca nilai Y lewat key-board }

Z := X + Y; { Menjumlahkan X dan Y serta menyimpan hasilnya ke Z}

write(Z); { Menyajikan Z ke layar monitor }

END. { Akhir Program Utama }

e) Bentuk Tampilan Turbo Pascal 1.5

Gambar 1.3. Tampilan Turbo Pascal 1.5

Page 9: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

9 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Terdapat beberapa menu didalam turbo pascal tersebut, antara lain:

Gambar 1.4. Tampilan Menu File

Menu file terdapat “new” yang berfungsi untuk membuat lembar kerja baru

dalam membuat program. Setelah penulisan kode program, seperti gambar

berikut:

Gambar 1.5. Tampilan Listing Program

Page 10: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

10 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

untuk menjalankan program maka pilih menu “RUN” setelah itu pilih “RUN”

seperti pada gambar berikut:

Gambar 1.6. Tampilan Menu RUN

Atau dengan cara cepat dengan menekan Ctrl + F9, maka akan muncul

program seperti pada gambar berikut:

Gambar 1.7. Tampilan Hasil Program Setelah Dijalankan

Page 11: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

11 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN IIMENGENAL PROSEDUR CETAK (WRITE), MASUKAN (READ),

VARIABEL, DAN TIPE DATA(1 x Pertemuan)

2.1. Prosedure Cetak (Write/writeln)Di dalam membuat program, terdapat perintah untuk menampilkan kata

atau kalimat yang ingin ditampilkan dalam program yang akan dibuat. Adapun

dalam pascal menggunakan perintah “write” atau “writeln” untuk menampilkan

kata atau kalimat yang ingin ditampilkan. Seperti contoh penggunaan “write”

berikut :Program tampil;uses wincrt;begin

write('Belajar Pascal');end.

Akan muncul tampilan setelah dijalankan sebagai berikut:

Gambar 2.1. Tampilan Hasil Program Cetak (write)

Untuk prosedure write SEMUA kalimat akan tercetak selama berada

diantara tanda petik (‘) walaupun terdapat “space” atau simbol (@,#,$,%,^,&, dll)

atau huruf (a-z) atau angka (0-10). Huruf apapun yang berada diantara tanda

petik, akan ditampilkan setelah program dijalankan. Dan setiap prosedure akan

selalu diakhiri dengan tanda titik koma (;) yang berfungsi untuk mengakhiri

prosedure yang digunakan.Write('Belajar Pascal');

Untuk mencetak untuk mengakhiri prosedure

Kata atau kalimat yang akan tercetak di dalam program

Sedangkan WRITELN itu berarti write endline yang difungsikan untuk

mencetak program dengan mengakhiri baris penulisan. Sehingga perintah

berikutnya akan berada dibawah perintah sebelumnya. Untuk lebih jelasnya

dapat dilihat pada contoh listing program berikut:

Page 12: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

12 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Menggunakan 2 (dua) prosedure “write”!Program tampil;uses wincrt;begin

write('Belajar');write('Pascal');

end.

Akan menghasilkan tampilan berikut:

Gambar 2.2. Tampilan Belajar Pascal (2 perintah Write)

Kedua kata tersebut tercetak dalam satu baris. Berbeda halnya dengan

menggunkan prosedure Writeln sebagai berikut:Program tampil;uses wincrt;begin

writeln('Belajar');write('Pascal');

end.

Akan menghasilkan tampilan berikut:

Gambar 2.3. Tampilan Program (kombinasi writeln dan write)

Kata “pascal” akan tercetak dibawah kata “belajar” karena untuk

mencetak kata “belajar” menggunakan prosedure writeln yang berarti cetakan

selanjutnya akan berada dibawah dan tidak sejajar dengan prosedure yang

menggunakan writeln.

Adapun bentuk flowchart dari program diatas adalah sebagai berikut:

START

Cetak “Belajar Pascal”

END

Page 13: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

13 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Latihan I:1. Buat program untuk mencetak seperti pada gambar berikut, dengan

menggunakan 5 (lima) prosedure cetak (write atau writeln)!

2. Buat program untuk mencetak seperti gambar berikut, sesuai dengan

nama, nim, dan jurusan masing-masing!

Page 14: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

14 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

2.2. Prosedure Baca/Input/Masukkan (read/readln)a. Prosedure masukan tanpa variabel

Untuk membaca atau memasukkan nilai dari keyboard dalam program

pascal menggunakan prosedure Read atau Readln. Jika ada prosedure ini,

pengguna harus menginputkan nilai atau menekan tombol ENTER sehingga

dapat meneruskan programnya. Untuk lebih jelasnya dapat dilihat pada listing

program berikut:uses wincrt;beginwrite('Press ENTER to Continued...');readln;write('TERIMA KASIH');end.

Terdapat 2 (dua) prosedure cetak yaitu untuk mencetak kalimat “press

ENTER to Continued…” dan “TERIMA KASIH” dan terdapat 1 (satu) prosedure

“readln” diataranya, yang akan mengakibatkan program tersebut akan meminta

masukan dari keyboard hingga user menekan tombol ENTER, dapat dilihat dari

gambar berikut:

Gambar 2.4. Tampilan Program dengan Readln

Dapat dilihat dari gambar tersebut, bahwa program tersebut masih

berjalan, setelah di ENTER akan muncul tampilan sebagai berikut:

Gambar 2.5. Tampilan Program Setelah di ENTER

Program berakhir ditandai dengan keterangan “inactive…”. Dari contoh di

atas merupakan contoh penginputan data, tetapi belum ada variabel yang

berfungsi sebagai tempat menyimpan data yang akan diinputkan. Selanjutnya

akan dijelaskan tentang memasukkan nilai dengan penyimpanan menggunakan

variabel.

Page 15: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

15 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

b. Prosedure Masukkan dengan Menggunakan VariabelUntuk melakukan operasi penjumlahan, pengurangan, penambahan,

perkalian dan operasi-operasi lainnya dibutuhkan suatu nilai yang akan di

proses. Nilai tersebut dapat berupa huruf maupun angka. Namun untuk

menyimpan nilainya perlu diberikan variabel sebagai tempat menampung nilai

yang dimasukkan, seperti contoh berikut:

A = 10

B = 5

C = A + B

Dari contoh diatas, angka 10 disimpan di Huruf A dimana A tersebut

dikatakan sebagai variabel. Sehingga Variabel A memiliki nilai 10. Begitu juga

untuk Variabel B memiliki nilai 5. Untuk melakukan operasi penambahan, A +

B, dibutuhkan 1 (satu) variabel lagi untuk menyimpan hasil penjumlahan

tersebut. Sehingga dibutuhkan Variabel C sebagai penampung hasil

penjumlahan antara Variabel A dan Variabel B. Dari proses tersebut Variabel

C memiliki nilai 15.

Oleh karena itu, suatu program yang ada operasi aritmatika atau operasi

lainnya membutuhkan variabel sebagai penampung data. Untuk lebih jelasnya

dapat dilihat pada program menghitung nilai C seperti pada contoh ulasan

sebelumnya:program menghitung_nilai_C;uses wincrt;varA : integer;B : integer;C : integer;beginA := 10;B := 5;C := A + B;write(C);end.

Untuk kasus di atas, nilai A = 10, B = 5, bukan merupakan

inputan/masukkan nilai, akan tetapi merupakan pemberian nilai awal.

Sehingga dalam kasus tersebut, nilai A sudah bernilai 10 dan nilai B sudah

bernilai 5 dan tidak memerlukan prosedure read/readln.

Untuk penggunaan perintah readln/read akan dilihatkan pada contoh

berikut ini:

START

A = 10,B = 5

C = A + B

Cetak C

END

Page 16: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

16 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

program menghitung_nilai_C;uses wincrt;varA,B,C : integer;beginwrite('A : ');readln(A);write('B : ');readln(B);C := A + B;write(C);end.

c. Variabel dan Tipe DataVariabel adalah nama atau simbol yang digunakan untuk MEWAKILI

suatu nilai. Nilai suatu variabel dapat berubah ubah dalam suatu proses

program. Di dalam pendeklarasian sebuah variabel harus ditentukan tipe data

yang digunakan oleh variabel tersebut. Seperti pada contoh program diatas

terdapat pendeklarasian variabelVarA,B,C : integer;

Merupakan Nama Variabel Tipe Data yang digunakan Integer

Untuk lebih jelasnya tentang jenis tipe data yang ada pada program

turbo pascal sebagai berikut:

Gambar 2.6. Tipe Data Dalam Pascal

Tipe Data

TipeSederhana

Tipe String

TipeTerstruktur

Tipe Pointer

16 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

program menghitung_nilai_C;uses wincrt;varA,B,C : integer;beginwrite('A : ');readln(A);write('B : ');readln(B);C := A + B;write(C);end.

c. Variabel dan Tipe DataVariabel adalah nama atau simbol yang digunakan untuk MEWAKILI

suatu nilai. Nilai suatu variabel dapat berubah ubah dalam suatu proses

program. Di dalam pendeklarasian sebuah variabel harus ditentukan tipe data

yang digunakan oleh variabel tersebut. Seperti pada contoh program diatas

terdapat pendeklarasian variabelVarA,B,C : integer;

Merupakan Nama Variabel Tipe Data yang digunakan Integer

Untuk lebih jelasnya tentang jenis tipe data yang ada pada program

turbo pascal sebagai berikut:

Gambar 2.6. Tipe Data Dalam Pascal

TipeSederhana

Tipe Ordinal

Integer

Boolean

Char

Subjangkauan(subrange)

Terbilang(enumerated)

Tipe Real

Tipe String

TipeTerstruktur

Larik (Array)

Rekaman(Record)

Himpunan(set)

Berkas (file)Tipe Pointer

START

C = A + B

Cetak C

END

Input A, B

16 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

program menghitung_nilai_C;uses wincrt;varA,B,C : integer;beginwrite('A : ');readln(A);write('B : ');readln(B);C := A + B;write(C);end.

c. Variabel dan Tipe DataVariabel adalah nama atau simbol yang digunakan untuk MEWAKILI

suatu nilai. Nilai suatu variabel dapat berubah ubah dalam suatu proses

program. Di dalam pendeklarasian sebuah variabel harus ditentukan tipe data

yang digunakan oleh variabel tersebut. Seperti pada contoh program diatas

terdapat pendeklarasian variabelVarA,B,C : integer;

Merupakan Nama Variabel Tipe Data yang digunakan Integer

Untuk lebih jelasnya tentang jenis tipe data yang ada pada program

turbo pascal sebagai berikut:

Gambar 2.6. Tipe Data Dalam Pascal

Integer

Boolean

Subjangkauan(subrange)

Terbilang(enumerated)

START

C = A + B

Cetak C

END

Input A, B

Page 17: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

17 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Berikut ini adalah operator aritmatika yang digunakan di dalam pascal

serta tipe data dan hasil operasi yang digunakan!

Operator Operasi Tipe Operand Tipe Hasil Operasi

+ Penjumlahan Integer, real Integer, real

- Pengurangan Integer, real Integer, real

* Perkalian Integer, real Integer, real

/ Pembagian Integer, real real

Div Pembagian Integer, integer Integer

Mod Sisa pembagian Integer, integer integer

LATIHAN II:1. Buatlah masing-masing program untuk menghitung Luas Segitiga, Luas

Lingkaran, dan Luas Persegi Panjang!

2. Buatlah program untuk menghitung total biaya dengan ketentuan sebagai

berikut:

Diskon = 10 % merupakan konstanta

Harga = 100.000 Harga diinputkan oleh user/pengguna

3. Buatlah program untuk menginputkan biodata berikut, tentukan tipe data

dari setiap variabel yang digunakan, dengan tampilan program sebagai

berikut:

BIODATA MAHASISWA

Nama : Kusuma Wijaya

TTL : Mataram, 31 Desember 1995

Jenis Kelamin : Laki-laki

Umur : 17 tahun

Penghasilan : 2000000

No HP : 081234567890

Jabatan : Tenaga Ahli

4. Buatlah program untuk menghitung nilai Z dengan rumus sebagai berikut:

Z = A + B

A = F * 0.5

B = M/J

F = 25 - C

J = 2 * F

Page 18: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

18 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN IIISTRUKTUR KONDISI/PERCABANGAN/PILIHAN

(3 x Pertemuan)

3. 1. Struktur Kondisi IFStruktur pernyataan IF adalah sebagai berikut:

IF {kondisi} then{pernyataan};

Jika pernyataan lebih dari 1, maka bentuk struktur if adalah sebagai

berikut:

If {kondisi} thenBegin{pernyataan 1};{pernyataan 2};...

{pernyataan n};End;

Contoh flowchart dengan menggunakan struktur IF dan bentuk listing

programnya adalah sebagai berikut:

Program tentukan_suhu;uses wincrt;varsuhu : real;beginwrite('Suhu : ');readln(suhu);

if suhu > 37 thenwrite('Suhu Panas');

end.

3. 2. Struktur Kondisi IF … Then … Else…Struktur kondisi merupakan struktur di dalam pemrograman yang akan

melakukan penyeleksian/pemilahan sebuah pernyataan yang memiliki 2 (dua)

aksi atau akibat yaitu bernilai BENAR (TRUE) dan bernilai SALAH (FALSE).

Struktur pernyataan if… then… else.. adalah sebagai berikut:IF {kondisi} THEN{pernyataan}ELSE{pernyataan};

START

Input Suhu

IFSuhu >= 37 Cetak “Suhu Panas”

END

YA

Page 19: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

19 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Jika pernyataanya lebih dari satu, akan menjadi:IF {kondisi} THENbegin{pernyataan 1};{pernyataan 2};...{pernyataan n};End

ELSEbegin{pernyataan A};{pernyataan B};...{pernyataan N};End;

Untuk lebih jelasnya dapat dilihat pada flowchart berikut:

Algoritma dari flowchar di samping adalah:

1. Mulai

2. Input Nilai

3. Jika Nilai >= 80

Jika Ya, Cetak “LULUS”

Jika Tidak, Cetak “GAGAL”

4. Selesai

Adapun bentuk programnya:program kondisi1;uses wincrt;varnilai : real;beginwrite('Input Nilai : ');readln(nilai);if nilai >= 80 then

write('LULUS')else

write('GAGAL');end.

Kondisi dari kasus di atas adalah “nilai >= 80”, yang berarti jika nilai >=

80, (TRUE/BENAR) maka cetak keterangan LULUS, dan sebaliknya jika BUKANNilai >= 80 atau bisa ditulis nilai <80, (FALSE/SALAH) maka cetak keterangan

GAGAL.

START

Input Nilai

IFNilai >= 80

Cetak“LULUS”

Cetak“GAGAL”

END

YA

TIDAK

Page 20: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

20 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

3. 3. Struktur IF… then… else if… then… else….Seperti pada pembahasan sebelumnya, terdapat IF… Then… Else…

yang merupakan struktur kondisi untuk satu kondisi. Jika terdapat kondisi lebih

dari 1, maka menggunakan struktur sebagai berikut:IF {Kondisi 1} then

{Pernyataan 1}ELSE IF {kondisi 2} then

{Pernyataan 2}ELSE

{Pernyataan 3}

Seperti pada IF sebelumnya, jika terdapat lebih dari 1 (satu) statement

atau pernyataan, maka gunakan “begin” dan “end;”.

Untuk lebih jelasnya dapat dilihat dalam flowchart berikut:

Algoritma dari dari flowchart:

1. Mulai

2. Masukkan nama, alamat

Jenis_kamar,

lama_menginap

3. Jika jenis_kamar = ‘anggrek’

Ya, tarif = 100.000

Jika jenis_kamar = ‘Mawar’

Ya, tarif = 300.000

Jika jenis_kamar = ‘Melati’

Ya, tarif = 200.000

4. Biaya_menginap = tarif *

Lama_menginap

5. Cetak biaya_menginap

6. Selesai

START

Input Nama, Alamat,Jenis_Kamar,

Lama_menginap

IFJenis_Kamar =

“Anggrek”Tarif = 100.000

IFJenis_Kamar =

“Mawar”Tarif = 300000

Tarif = 200.000

Biaya_menginap = tarif * Lama_menginap

CetakBiaya_menginap

END

YA

TIDAK

YA

TIDAK

Page 21: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

21 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Listing program dari flowchart di atas adalah sebagai berikut:program penginapan;uses wincrt;varnama, alamat : string [40];jenis_kamar : string [20];lama_menginap : byte;tarif, biaya_menginap : longint;beginwriteln(' Program Penginapan');write('Nama : '); readln(nama);write('Alamat : '); readln(alamat);write('Jenis Kamar : '); readln(jenis_kamar);write('Lama Menginap : '); readln(lama_menginap);

if jenis_kamar = 'Anggrek' thentarif := 100000

else if jenis_kamar = 'Mawar' thentarif := 300000

elsetarif := 200000;

biaya_menginap := tarif * lama_menginap;

write('Biaya Menginap : '); write(biaya_menginap);end.

3. 4. Struktur IF Bersarang (Nested IF)IF bersarang merupakan struktur kondisi yang mana di dalam sebuah

kondisi terdapat kondisi lagi yang menjadi pemilihan berikutnya. Untuk lebih

jelasnya perhatikan bentuk struktur berikut:

If {kondisi 1} thenBegin

If {kondisi 1.1} then{pernyataan}

Else{pernyataan}

EndElse

BeginIf {kondisi 2.1} then

{pernyataan}Else

{pernyataan}End;

Penggunaan if bersarang harus menggunakan “begin” dan diakhiri oleh

“end;”. Untuk lebih jelasnya tentang IF bersarang, dapat dilihat pada contoh

kasus berikut ini:Total gaji diperoleh dari gaji pokok ditambah dengan tunjangan istri dan ditambah

dengan tunjangan anak. Untuk tunjangan istri diperoleh dengan syarat telah

menikah, akan mendapat tunjangan 10% dari gaji pokok. Tunjangan anak

Page 22: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

22 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

diperoleh dengan syarat jika jumlah anak lebih dari 2 maka, mendapat tunjangan

anak sebesar 6% dari gaji pokok. Jika jumlah anak kurang atau sama dengan 2,

akan mendapat tunjangan anak sebesar jumlah anak dikali dengan 3% dari gaji

pokok. Untuk lebih jelasnya dapat dilihat seperti diagram alir berikut:

Analisa Kasus:

START

Input nama,status, Gaji_Pokok

IFStatus =‘menikah’

Tunj_istri =10%*Gaji_Pokok

IFJumlah_anak >

2

Tunj_anak =6%*Gaji_Pokok

Tunj_anak =jumlah_anak*3%*Gaji_pokok

Tunj_istri = 0Tunj_anak = 0

Total_gaji = Gaji_Pokok +Tunj_istri + Tunj_anak

YA

TIDAK

Cetak Total_gaji

END

Input Jumlah_anak

YaTidak

Bentuk Programnya:program hitung_gaji;uses wincrt;varnama, status : string;jumlah_anak : byte;gaji_pokok, tunj_istri, tunj_anak : real;total_gaji : real;

beginwrite('Nama = '); readln(nama);write('Status = '); readln(status);write('Gaji Pokok = '); readln(gaji_pokok);if status = 'menikah' then

beginwrite('Jumlah Anak = '); readln(jumlah_anak);tunj_istri := 0.1 * gaji_pokok;

if jumlah_anak > 2 thentunj_anak:= 0.06 * gaji_pokok

elsetunj_anak:= jumlah_anak * 0.03 * Gaji_pokok;

endelse

begintunj_istri := 0;tunj_anak := 0;

Page 23: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

23 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

end;Total_gaji := gaji_pokok + tunj_anak + tunj_istri;writeln('Tunjangan istri = ',tunj_istri:8:2);writeln('Tunjangan Anak = ',tunj_anak:8:2);writeln('Total Gaji = ',total_gaji:4:2);end.

3. 5. Struktur CASEStruktur CASE pada dasarnya sama dengan struktur IF yaitu merupakan

proses pemilihan/kondisi. Untuk lebih jelasnya dapat dilihat pada kasus berikut

ini:Pada sebuah perlombaan terdapat pemilihan hadiah dengan ketentuan sebagai

berikut:

Jika memilih nomor 1, akan mendapat “Televisi LCD 64 Inch”

Jika memilih nomor 2, akan mendapat “Motor 150 Cc”

Jika memilih nomor 3, akan mendapat “Rumah Mewah berserta Isinya”

Adapun bentuk sintax dengan menggunakan IF adalah sebagai berikut:program hadiah;uses wincrt;varpilih : byte;beginwriteln('Pilih HADIAH antara no 1-10 !!!!');write('Pilih Nomor : '); readln(pilih);if pilih = 1 then

write('Televisi LCD 64 Inch')else if pilih = 5 then

write('Motor 150 cc')else if pilih = 6 then

write('Rumah Mewah Berserta Isinya')else

write('Maaf Anda Belum Beruntung');end.

Adapun bentuk sintax dengan menggunakan case adalah sebagai berikut:program hadiah;uses wincrt;varpilih : byte;

beginwriteln('Pilih HADIAH antara no 1-10 !!!!');write('Pilih Nomor : '); readln(pilih);

case pilih of1: write('Televisi LCD 64 Inch');5: write('Motor 150 cc');6: write('Rumah Mewah Berserta Isinya');else

write('Maaf Anda Belum Beruntung');end;end.

Page 24: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

24 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

3. 6. Kondisi AND dan Kondisi ORKondisi ANDKondisi AND merupakan kondisi pilihan dimana semua kondisi tersebut

harus bernilai benar maka aksi yang akan dipilih adalah benar. Untuk

lebih jelasnya dapat dilihat dalam tabel kebenaran berikut:

A B A and B1 1 11 0 00 1 00 0 0

Contoh dalam kasus!

Razia motor akan memeriksa kelengkapan SIM dan STNK. Sanksi akan

diberikan jika salah satu tidak terpenuhi. Maka program dapat dibuat

sebagai berikut:

program razia;uses wincrt;varsim, stnk : string [3];beginwriteln('#### PROGRAM RAZIA MOTOR ####');write('Ada SIM : '); readln(sim);write('Ada STNIK : '); readln(stnk);

if (sim = 'ada') and (stnk = 'ada') thenwrite('Anda adalah orang yang taat peraturan')

elsewrite('Anda terkena Sanksi');

end.

Adapun bentuk flowchartnya adalah sebagai berikut:

Dengan ketentuan :

0 : bernilai SALAH

1 : bernilai BENER

Page 25: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

25 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Kondisi ORKondisi OR merupakan kondisi dimana aksinya akan SALAH jika semua

kondisi yang diajukan bernilai SALAH. Adapun tabel kebenaran untuk

kondisi OR adalah sebagai berikut:

A B A OR B1 1 11 0 10 1 10 0 0

Contoh dalam kasus!

Bonus akan diperoleh jika jam kerja > 160 atau hasil produksi > 1000

unit. Adapun bentuk listing programnya adalah sebagai berikut:

program bonus;uses wincrt;varjam_kerja, hsl_produksi : integer;

beginwriteln('##### BONUS #####');write('Jumlah Jam Kerja : '); readln(jam_kerja);write('Hasil Produksi : '); readln(hsl_produksi);

if ((jam_kerja > 160) or (hsl_produksi > 1000)) thenwrite('Anda Mendapat Bonus')

elsewrite('Anda Tidak Mendapat Bonus');

end.

Adapun bentuk flowchartnya adalah sebagai berikut:

Start

Input jam_kerja,jml_produksi

IF jam_kerja > 160OR

jml_produksi > 1000

Cetak ‘Andamendapat bonus’

Cetak ‘Anda ttidakmendapat bonus’

END

Ya

Tidak

Page 26: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

26 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Latihan III:1. Buatlah program untuk menentukan kelulusan. Syarat dinyatakan lulus jika

nilai >= 80!

2. Buatlah program untuk menentukan grade nilai dengan ketentuan sebagai

berikut:

Jika nilai akhir >= 90 sampai 100 akan mendapat Grade A

Jika nilai akhir >= 80 sampai < 90 akan mendapat Grade B+

Jika nilai akhir >= 70 sampai < 80 akan mendapat Grade B

Jika nilai akhir >= 60 sampai < 70 akan mendapat Grade C+

Jika nilai akhir >= 50 sampai < 60 akan mendapat Grade C

Jika nilai akhir >= 40 sampai < 50 akan mendapat Grade D

Jika nilai akhir kurang dari 40 akan mendapat Grade E

Nilai akhir = (20 % * Nilai harian) + (30 % * Nilai MID) + (50 % * Nilai UAS)

Diinputkan nama, nim, semester, jurusan, dll (lengkapi data)!

3. Buat program untuk menentukan bilangan ganjil dan bilangan genap!

4. Buatlah program untuk menentukan nilai terbesar dari 3 (tiga) buah nilai!

5. Buat program untuk kasus berikut, adapun tampilan programnya adalah

sebagai berikut:

Dengan ketentuan!

Jenis kamar dan tarif diperoleh dari table berikut:

No Jenis Kamar Tarif/Malam1 Mawar 100.0002 Anggrek 200.0003 Melati 400.000

Page 27: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

27 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Untuk diskon diperoleh jika biaya menginap >= 1.000.000 sebesar 10% dari

biaya menginap.

6. Buatlah program untuk menghitung Luas Persegi panjang, Luas Segitiga,

dan Luas Lingkaran dengan menggunakan menu pilihan. Adapun contoh

programnya adalah sebagai berikut:

7. Buatlah program untuk menentukan Total Gaji dari penggajian pegawai,

dengan ketentuan sebagai berikut:

Total gaji diperoleh dari gaji pokok ditambah dengan gaji lembur. Dimana

untuk golongan A mendapat gaji pokok sebesar 2.000.000, untuk golongan

B mendapat gaji pokok sebesar 1.500.000 dan untuk golongan C mendapat

gaji pokok sebesar 1.000.000.

Untuk gaji lembur, diperoleh dari jika jumlah jam kerja > 160 perbulan, maka

selebihnya dianggap lembur. Gaji lembur diperoleh dari Jam lembur dikali

dengan 10.000.

8. Buatlah program untuk menentukan Total Gaji dari penggajian pegawai,

dengan ketentuan sebagai berikut:

Total gaji diperoleh dari gaji pokok ditambah dengan tunjangan istri dan

ditambah dengan tunjangan anak. Untuk tunjangan istri diperoleh dengan

syarat telah menikah, akan mendapat tunjangan 10% dari gaji pokok.

Tunjangan anak diperoleh dengan syarat jika jumlah anak lebih dari 2 maka,

mendapat tunjangan anak sebesar 6% dari gaji pokok. Jika jumlah anak

kurang atau sama dengan 2, akan mendapat tunjangan anak sebesar jumlah

anak dikali dengan 3% dari gaji pokok.

Page 28: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

28 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

9. Buatlah program seperti flowchart di bawah ini!

START

Input A, B, C

IF(A and B) >10

Z = A*BIF

A > B

Z = A - B

Z = B - A

IF(A or B) > 10

IFA > C

Z = A*C

Z = B - C

OutputZ

END

Tidak

Ya

Tidak

YaTidak

Ya

Tidak

Ya

10. Buatlah program untuk kasus berikut jika diketahui data sebagai berikut:

No Kelas Daya Tarif/kwh

1 Ekonomi 900 watt 500/kwh

2 Menengah 1200 watt 1000/kwh

3 Bisnis 2200 watt 2000/kwh

Tentukan total bayar untuk biaya listrik, dengan ketentuan sebagai beriku:

Biaya pemakaian = tarif * jumlah pemakaian

Denda diperoleh jika jumlah pemakaian >= 200 atau

tanggal pembayaran > 20, dengan denda sebesar 10 % dari biaya

pemakaian.

Bonus diperoleh jika jumlah pemakaian < 200 atau

tanggal pembayaran <= 20, dengan bonus sebesar 10 % dari biaya

pemakaian.

Page 29: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

29 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN IVSTRUKTUR PENGULANGAN

(For, While…do, dan Repeat…Until)(3 x Pertemuan)

4.1. Strukur ForFor…to…doStruktur for…to..do merupakan pengulangan yang sudah pasti jumlah

pengulangannya, dimana jumlah pengulangannya ditentukan oleh nilai

awal dan nilai akhir. Struktur ini perhitungan nilainya secara ascending

atau menaik dari nilai awal ke nilai akhir. Adapun bentuk prosedure dalam

penggunaan for…to…do adalah sebagai berikut:

For nama_variabel := nilai_awal to nilai_akhir do{statement/pernyataan}

Jika lebih dari 1 (satu) pernyataan yang mengalami perulangan, harus

ditambah dengan begin dan diakhiri dengan end;, untuk lebih jelasnya

sebagai berikut:

For nama_variabel := nilai_awal to nilai_akhir doBegin

{statement/pernyataan}{statement/pernyataan}…

End;

Adapun contoh program dengan menggukan For…do adalah sebagai

berikut:program pengulangan;uses wincrt;vari : byte;beginfor i := 1 to 5 dowriteln('Belajar Pascal');end.

Bentuk flowchart dari program di atas dapat digambarkan sebagai berikut:

Page 30: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

30 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

For…downto…doSama halnya dengan For…to…do.. hanya berbeda perhitungan nilainya

secara descending atau dari besar ke kecil atau nilai akhir ke nilai awal.

Adapun bentuk perintah dari For…downto…do adalah sebagai berikut:For nama_variabel := nilai_akhir downto nilai_awal do{statement/pernyataan}

Adapun bentuk listing program dengan menggunakan For…downto…do

adalah sebagai berikut:program pengulangan;uses wincrt;vari : byte;beginfor i := 5 downto 1 dowriteln('Belajar Pascal');end.

Dalam program di atas, akan menghasilkan program sebagai berikut:

Setelah program dijalankan, maka akan tampil 5 (lima) kalimat belajar

pascal. Berikut ini contoh program dengan dua (2) pernyataan/statement

adalah sebagai berikut:program pengulangan;uses wincrt;vari : byte;begin

for i := 1 to 5 dobeginwriteln('Belajar Pascal');writeln('Gampang woi...');end;

end.

Start

For I = 1 to 5

Cetak “Belajar Pascal”Cetak “Gampang Woi…”

Next I

END

Page 31: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

31 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

4.2. Struktur While…do…Struktur While…do merupakan pengulangan dengan menggunakan

kondisi, dimana pengulangan akan terjadi jika kondisi bernilai benar. Adapun

bentuk perintah pengulangan dengan menggunakan while..do dalam pascal

adalah sebagai berikut:While {kondisi} doBegin{pernyataan}……End;

Dengan kasus yang sama pada struktur for…do, dapat diliat listing

program dengan menggunakan perintah while…do sebagai berikut:program pengulangan;uses wincrt;vari : byte;begin

i:= 1;while(i <= 5) dobegin

writeln('Belajar Pascal');writeln('Gampang woi...');i:= i+1;end;

end.

Adapun bentuk flowchart dari kasus di atas dapat digambarkan sebagai

beirkut:

Start

I = 1

Cetak “Belajar Pascal”Cetak “Gampang Woi…”

ENDWhile I <= 5

I = I + 1

Ya

Tidak

Start

I = 1

Cetak “Belajar Pascal”Cetak “Gampang Woi…”

END

While I <= 5

I = I + 1

YA

TIDAK

Page 32: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

32 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

4.3. Struktur Repeat…UntilStruktur Repeat…Until merupakan pengulangan dengan menggunakan

kondisi, dimana pengulangan akan terjadi jika kondisi bernilai salah. Adapun

bentuk printah menggunakan repeat…until dalam pascal adalah sebagai berikut:Repeat{pernyataan}……Until

Dengan kasus yang sama pada struktur for…do, dapat diliat listing

program dengan menggunakan perintah Repeat…Until sebagai berikut:program pengulangan;uses wincrt;vari : byte;begin

i:= 1;repeat

writeln('Belajar Pascal');writeln('Gampang woi...');i:= i+1;

until (i>5);end.

Adapun bentuk flowchart dengan menggunakan Repeat…Until adalah

sebagai berikut:

Start

I = 1

Cetak “Belajar Pascal”Cetak “Gampang Woi…”

END

Repeat > 5

I = I + 1

Tidak

Ya

Start

I = 1

Cetak “Belajar Pascal”Cetak “Gampang Woi…”

END

I = I + 1

Tidak

Ya

Repeat

Until I > 5

Page 33: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

33 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Counter dan Logika PenjumlahanCounterCounter merupakan logika untuk menentukan jumlah dari suatu perulangan.

Bentuk logika counter ini adalah sebagai berikut:

Logika PenjumlahanLogika penjumlahan merupakan cara untuk menjumlahkan niilai dari suatu

perulangan. Berikut bentuk atau rumus dari logika penjumlahan tersebut:

Berikut ini adalah contoh kasus untuk counter dan logika penjumlahan

tersebut:

No : 0001Tanggal : 14 Agustus 2012Nama : Kusuma---------------------------------------------------------No Nama Barang Harga Jumlah Total Harga---------------------------------------------------------1 Pepsodent 2000 2 40002 Lifeboy 2500 1 25003 Sampoo Clear 500 4 2000---------------------------------------------------------Total Bayar 8500

Analisa dari kasus di atas adalah sebagai berikut:

1. Mulai2. Masukkan no, tanggal, nama, nama_barang, harga, jumlah3. I = I + 14. Total_harga = harga * jumlah5. Jumlah = jumlah + total harga6. Input Barang Lagi?

Ya, Kembali ke-2Tidak, ke-7

7. Cetak Total Bayar8. Selesai

Bentuk listing program dari kasus di atas adalah sebagai berikut:

program pengulangan;uses wincrt;vari,no,jumlah : byte;no_trans,tanggal,nama : string[30];nm_brg : string[20];harga, total_harga,total_jumlah : longint;jawab : char;begin

i:=0;writeln('##### PROGRAM PENJUALAN ######');

I = I + 1

Jumlah = jumlah + nilai

Page 34: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

34 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Logika Penjumlahan

counter

write('No Transaksi : '); readln(no_trans);write('Tanggal : '); readln(tanggal);write('Nama : '); readln(nama);jawab:= 'y';writeln('-------------------------------------------------');while (upcase(jawab) = 'Y') do

begini:=i+1;write('No : ');writeln(i);write('Nama Barang : ');readln(nm_brg);write('Harga : ');readln(harga);write('Jumlah : ');readln(jumlah);total_harga:=harga*jumlah;total_jumlah:=total_jumlah+total_harga;write('Total Harga : ');writeln(total_harga);writeln;writeln;write('Input Lagi [y/t] ? '); readln(jawab);

end;writeln('---------------------------------------------------');write('Total Harga --> ',total_jumlah);end.

Bentuk flowchartnya adalah sebagai berikut:

Page 35: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

35 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

LATIHAN IV:1. Buatlah program untuk mencetak deret berikut dengan menggunakan

struktur pengulangan:

a. 0 3 8 15 24 35…N

b. 1 1 2 3 5 8 13…N

c. 4 7 10 13 … N

d. 2 5 10 17…N

e. Input deret = 5

1 2 3 4 5 = 15

2. Buat program untuk menghitung nilai faktorial!

Contoh:

1! = 1

2! 1 * 2 = 2

4! 1 * 2 * 3 * 4 = 24

Dst..

3. Buat program untuk menghitung pangkat!

Contoh:

- 4 pangkat 3 = 64

- 2 pangkat 3 = 8

- 3 pangkat 3 = 9

Dst…

4. Buatlah program untuk kasus berikut:

No Nama Pasien Biaya Berobat Diskon Total Bayar

Total Pendapatan Rumah SakitKeterangan:

Diskon diperoleh jika biaya berobat > 300.000 sebesar 10%

- Gunakan Uncounted Loop

5. Buatlah program untuk kasus berikut:

Diketahui data pelanggan PDAM dibedakan menjadi 3 (tiga) jenis

langganan yang dibedakan berdasarkan biaya beban dan tarif. Adapun

ketentuan dari PDAM ini adalah sebagai berikut:

Jenis langganan = Umum, tarif = Rp.5.000/m3, biaya beban = 50.000

Page 36: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

36 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Jenis langganan = Rumah Tangga, tarif = Rp.3.000/m3, biaya beban = 40.000

Jenis langganan = Bisnis, tarif = Rp.7.000/m3, biaya beban = 75.000

Biaya_pakai = jml_pemakaian * tarif

Total Bayar = Biaya_beban + biaya pakai

Buat program dengan input sebagai berikut: nama, jenis langganan,

jumlah pemakaian. Cetak total bayar dan total pendapatan untuk PDAM

tersebut!

6. Buatlah program untuk menentukan pemenang dalam pemilihan ketua

bem dimana terdapat 3 (tiga) calon kandidat dengan simbol. Kandidat

pertama dengan simbol “apel”, kandidat kedua dengan simbol “anggur”,

dan kandidiat ketiga dengan simbol “melon”. Tentukan pemenang dari

pertama, kedua, dan ketiga serta tentukan jumlah pemilih!

Page 37: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

37 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN VARRAY/LARIK/VARIABEL BERINDEX

(2 x Pertemuan)5.1. Array 1 Dimensi

Array merupakan suatu variabel yang mempunyai nama yang sama, tipe

data yang sama, tetapi memiliki nilai yang berbeda yang dibedakan oleh index.

Dapat juga diartikan sebagai struktur data yang menyimpan sekumpulan elemen

yang bertipe sama. Tipe data index yang digunakan harus merupakan tipe data

Ordinal/keterurutan seperti Integer atau char. Adapun bentuk Array dapat

digambarkan dengan gambar berikut:

Data[5] = {sepatu, kaos, celana, sandal, kemeja}

1 2 3 4 5Data[5] Sepatu Kaos Celana Sandal kemejaData pada index pertama (data[1]) mempunyai nilai Sepatu, data pada

index kedua (data[2]) mempunyai nilai Kaos, dan seterusnya.

Contoh program dalam penginputan grade mahasiswa adalah sebagai

berikut: Start

DIM nama[100], grade[100], I = 0,jawab = ‘y’

I = I + 1

Input nama[i], grade[i]

Input lagi?

For j = 1 to i

Cetak nama[j], grade[j]

Next J

END

Deklarasi Variabel Array

Proses Penginputan

Proses Mencetak Array

Page 38: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

38 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

program array1D;uses wincrt;varjawab : char;i,j : byte;nama : Array [1..100] of string[30];grade : Array [1..100] of string[2];

beginjawab := 'y';i:=0;writeln('###################################');writeln('## ##');writeln('## PROGRAM GRADE MAHASISWA ##');writeln('## ##');writeln('###################################');writeln;while(upcase(jawab) = 'Y') dobegini:= i + 1;

write('No : '); writeln(i);write('Nama : '); readln(nama[i]);write('Grade : '); readln(grade[i]);writeln;writeln;

write('Input Data Lagi [y/t] ?'); readln(jawab);end;

writeln('Data Setelah Diinputkan');writeln('Tekan ENTER untuk melihat...');readln;writeln('----------------------------');writeln('No Nama Mahasiswa Grade ');writeln('----------------------------');for j := 1 to i dobegin

write(j, nama[j]:16, grade[j]:7);writeln;end;

writeln('----------------------------');end.

Page 39: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

39 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

5.2. Pencarian (Searching)Pencarian (searching) merupakan suatu proses mencari data pada

sekumpulan data. Pencarian ini dapat dilakukan dengan dua cara yaitu Linear

Searching dan Binery Searching.

Adapun algoritma dengan menggunakan Linear Searching adalah

sebagai berikut:1. Mulai2. Masukkan Nilai variabel yang dicari3. I = I + 14. If cari = Data[i]

Ya, k = k + 1Hasil[k] = i

5. Apakah data sudah ditelusuri semua?Ya, lanjutkan ke proses 6Tidak, kembali ke proses 3

6. If k = 0?Ya, Data tidak ditemukanTidak, cetak semua data yang ditemukan.

7. Selesai

Algoritma dengan menggunakan Binery Searching adalah sebagai

berikut:1. Mulai2. Urutkan data secara ascending3. Input nilai variabel yang dicari4. Tentukan BB (index batas bawah) dan BA (index batas atas)5. If (BB = BA) or (data telah ditemukan)?

Ya, ke proses 9Tidak, ke proses 6

6. MID = (BB + BA) div 27. If cari = data [mid]?

Ya, Data ditemukan pada index ke-midKe proses 9

Tidak, if (cari > data[mid]) ?Ya, BB = mid + 1Tidak, BA = mid - 1

8. Kembali ke proses 59. Selesai

Page 40: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

40 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

5.3. Pengurutan (Sorting)Pengurutan (sortiing) merupakan proses mengurutkan nilai, baik dari nilai

terkecil ke nilai terbesar (ascending) atau sebaliknya dari terbesar ke nilai terkecil

(descending).

Algoritma untuk melakukan pengurutan secara AscendingDeklarasiL : array [1..100] of integer;I, k, temp : integer;Algorithma :For I 1 to n-1 do

For k n downto i+1 doIf L[k] < L [k-1] then

Temp L[k]L[k] L [k-1]L[k-1] temp

EndifEndfor

Endfor

5.4. Array 2 DimensiArray 2 dimensi merupakan pengembangan dari Array 1 Dimensi, dimana

pada Array 1 dimensi, index yang digunakan 1 (satu) yang berarti

penyimpanannya dalam bentuk kolom ataupun dalam bentuk baris. Sedangkan

pada Array 2 Dimensi, terdapat 2 (dua) index yang dapat berarti

penyimpanannya dalam bentuk baris dan kolom.

Untuk lebih jelasnya dapat dilihat dalam contoh program berikut:

A [5,5] = itu berarti terdapat penyimpanan data dengan 5 kolom dan 5

baris seperti tabel berikut:

1 2 3 4 51 102 873 334 345 44

Di liat dari tabel di atas, penempatan nilai tersebut dapat diwakilkan

dengan cara berikut:

A [1,1] = 10

A [1,4] = 34

A [2,2] = 87

A [3,3] = 33

A [5,5] = 55

A [5,5] =

Page 41: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

41 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

LATIHAN V:1. Buatlah program dengan menu berikut:

PROGRAM PENJUALAN

<< Pilih Menu >>

1. Input Data

2. Lihat Hasil

3. Cari Data

4. Urutkan Data

5. Exit

Dalam program tersebut gunakan Array 1 dimensi dan bagi setiap

menu dengan melakukan pemilihan!

2. Buatlah program untuk perhitungan Matrix (penjumlahan matrix,

pengurangan matrix, dan perkalian matrix)

3. Buatlah program kwitansi berikut! Dengan ketentuan, setiap orang

dapat membeli lebih dari 1 barang, dan setiap setiap orang membeli

barang yang berbeda-beda. (Gunakan Array 2 Dimensi)

Contoh tampilan setelah data diinputkan!Pembeli PertamaNomor : 001Tgl : 23 April 2012NamaPembeli : Kusuma----------------------------------------------------------No Nama barang Harga jumlah Total Harga----------------------------------------------------------1. Sabun 3000 4 120002. Pepsodent 2500 4 100003. Sampo Clear 500 5 2500----------------------------------------------------------Total pembayaran 24500

Pembeli KeduaNomor : 002Tgl : 23 April 2012NamaPembeli : Alfian----------------------------------------------------------No Nama barang Harga jumlah Total Harga----------------------------------------------------------1. Silverqueen 13000 2 26000----------------------------------------------------------Total pembayaran 26000

Tentukan juga total pendapatan pedagang yang diperoleh daripenjumlahan semua total pembayaran pembeli!!!

Page 42: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

42 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN VIPROCEDURE (PROSEDUR) DAN FUNCTION (FUNGSI)

(2 x Pertemuan)6.1. Prosedur (Procedure)

Prosedur (procedure) atau Fungsi (function) adalah suatu program

terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul

program) yang merupakan sebuah program kecil untuk memproses sebagian

dari pekerjaan program utama, khusus untuk fungsi dapat menghasilkan nilai

sendiri. Prosedur dibagi menjadi 2 (dua) yaitu (1) Prosedur Sederhana yaitu

merupakan prosedure yang tidak menerima argumen (nilai atau data) ketika

dieksekusi; (2) Prosedure Kompleks menerima nilai yang diproses ketika

dieksekusi.

Berikut contoh prosedure sederhana!program prosedure_garis;uses wincrt;

{prosedure garis}procedure garis;begin

writeln('-----------------------'); Prosedur Garisend;

{program utama}begin

garis; Pemanggilan prosedurwriteln('PROGRAM PENJUALAN');garis;end.

Berikut contoh prosedure kompleks!program prosedur;uses wincrt;var Variabel GLOBALr,luas : real;

{prosedure lingkaran} Prosedure Lingkaranprocedure lingkaran (jari2 : real);var Variabel LOKALphi : real;beginphi:=22/7;luas:=phi*sqr(jari2);end;

{program utama}beginwriteln('Program Hitung Luas Lingkaran');write('Input Jari-jari : '); readln(r);lingkaran(r); pemanggilan Prosedurwrite('Luas Lingkaran : ',luas:0:2);end.

Page 43: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

43 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Prosedur dengan PARAMETERPerhatikan bentuk program berikut:

A Bprogram prosedur;uses wincrt;varx : integer;

{prosedur nilai}procedure nilai(a:integer);beginwriteln('Nilai a pertama : ',a);a:= 5;writeln('Nilai a kedua : ',a);end;

{program utama}beginx:=10;writeln('x sebelum prosedure = ',x);nilai(x);writeln('x Setelah prosedure = ',x);end.

program prosedur;uses wincrt;varx : integer;

{prosedur nilai}procedure nilai(var a:integer);beginwriteln('Nilai a pertama : ',a);a:= 5;writeln('Nilai a kedua : ',a);end;

{program utama}beginx:=10;writeln('x sebelum prosedure = ',x);nilai(x);writeln('x Setelah prosedure = ',x);end.

Hasil setelah program dijalankan!

A B

Pada Point A nilai x setelah prosedure tidak berubah, hal ini yang dikatakan

sebagai Parameter Nilai (Pass by Value), sedangkan untuk Point B, nilai x

setelah prosedur mengalami perubahan sesuai dengan perubahan dari nilai

parameter dari prosedure nilai tersebut, hal ini yang dikatakan sebagai

Parameter Variabel (Pass by Variabel).

Page 44: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

44 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

6.2. Fungsi (Function)Sama seperti prosedure hanya fungsi memiliki nilai. Untuk lebih jelasnya

perhatikan contoh listing program berikut:

program fungsi;uses wincrt;varnilai : integer;

{fungsi kubik}function kubik(x:integer) : longint;beginkubik:=x*x*x;end;

{program utama}beginwrite('Input Nilai : '); readln(nilai);write(nilai, ' pangkat 3 = ', kubik(nilai));end.

Adapun bentuk flowchart dari kasus di atas untuk prosedur dan fungsi

adalah sebagai berikut:

Flowchar Program Utama Prosedure Kubik(x)

Page 45: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

45 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Latihan VI!1. Buatlah program untuk menghitung Grade dengan tampilan menu utama

terdiri dari:

- Input Data {buat dalam 1 (satu) prosedure}

- Cetak hasil {buat dalam 1 (satu) prosedure}

- Pencarian {buat dalam 1 (satu) prosedure}

- Pengurutan {buat dalam 1 (satu) prosedure}

Diinputkan nama, nim, semester, jurusan, nilai harian, nilai mid, nilai uas

dengan menggunakan prosedur input.

Untuk menentukan grade yang diperoleh, gunakan Fungsi (Function).

Ketentuan proses nilai akhir dan penentuan grade dapat dilihat pada

Latihan III soal nomor 2!.

2. Buat program untuk menghitung konversi suhu, dari Celcius ke Reamur,

dari Celcius ke Fahreinheit, dari celcius ke Kelvin dengan menggunakan

prosedure atau fungsi!

3. Perhatikan Latihan V soal nomor 3 (tiga), buatlah program untuk kasus

tersebut dengan ketentuan sebagai berikut:

- Input Data {buat dalam 1 (satu) prosedure}

- Cetak hasil {buat dalam 1 (satu) prosedure}

- Pencarian {buat dalam 1 (satu) prosedure}

- Pengurutan {buat dalam 1 (satu) prosedure}

Page 46: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

46 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

PEMBAHASAN VIIREKURSI DAN RECORD (REKAMAN)

(2 x Pertemuan)

7.1. RekursiRekursi merupakan suatu prosedur atau fungsi yang mana dapat

memanggil dirinya sendiri. Dalam pembuatan rekursi tersebut harus ada

penghentian operasi (iterasi). Untuk lebih jelasnya, dapat diliat pada contoh

program dibawah ini!

Program faktorial;Uses wincrt;Varx : integer;

{fungsi Faktorial}function factorial (n:integer):integer;beginif n<2 then {ini adalah syarat penghentian operasi}factorial:=1

elsefactorial:=n*factorial(n-1); {ini bagian rekursi}

end;

{Program Utama}beginwriteln('PROGRAM HITUNG NILAI FAKTORIAL');writeln('------------------------------');write('Masukkan nilai : '); readln(x);writeln(x,'! adalah ',factorial(x));

end.

Dari program tersebut dapat dijelaskan sebagai berikut:

Jika x= 5,

Ke-1, n=5. Factorial:=5*factorial(4); Perlu Pemanggilan Ke-2

Ke-2, n=4. Factorial:=4*factorial(3); Perlu Pemanggilan Ke-3

Ke-3, n=3. Factorial:=3*factorial(2); Perlu Pemanggilan Ke-4

Ke-4, n=2. Factorial:=2*factorial(1); Perlu Pemanggilan Ke-5

Ke-5, n=1. Factorial:=1;

Ke-4 menjadi = Factorial 2*1 2

Ke-3 menjadi = Factorial 3*2 6

Ke-2 menjadi = Factorial 4*6 24

Ke-1 menjadi = Factorial 5*24 120

Page 47: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

47 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

7.2. Record (Rekaman)Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data

dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk

menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di

banding array). Contoh , sebuah record dengan empat buah field.

Field 1 Field 2 Field 3 Field 4

Cara pendeklarasian dari record adalah sbb:

• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),

• Mendefinisikan variabel untuk dilakukan operasi.

Adapun cara mendeklarasikan perintah record adalah sebagai berikut:type nama_record = record

identifier_1 : tipe_data_1;. . .. . .identifier_n : tipe_data_n;

end;var

variabel : nama_record;

Contoh program dengan menggunakan record:program contoh_record;uses wincrt;

type identitas = recordnama : string[30];alamat : string[40];Golongan : string[5];Gaji_Pokok : longint;

end;varbiodata : identitas;

beginbiodata.nama := 'Kusuma Wijaya';biodata.alamat := 'Mataram';biodata.golongan := 'IV D';biodata.gaji_pokok := 5000000;writeln('Nama : ',biodata.nama);writeln('Alamat : ',biodata.alamat);writeln('Golongan : ',biodata.golongan);writeln('Gaji Pokok : ',biodata.gaji_pokok);end.

Untuk memudahkan dalam pengulangan penulisan nama variabel

sehingga dalam penulisan tidak menjadi panjang seperti contoh di atas

(biodata.gaji_pokok), dapat digunakan dengan statement with {nama pemanggil

record} do. Dapat dilihat pada contoh program berikut:

Page 48: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

48 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

program contoh_record;uses wincrt;

type identitas = recordnama : string[30];alamat : string[40];Golongan : string[5];Gaji_Pokok : longint;

end;

varbiodata : identitas;

beginwith biodata do

beginnama := 'Kusuma Wijaya';alamat := 'Mataram';golongan := 'IV D';gaji_pokok := 5000000;

writeln('Nama : ',nama);writeln('Alamat : ',alamat);writeln('Golongan : ',golongan);writeln('Gaji Pokok : ',gaji_pokok);

end;end.

Penggunaan record juga dapat dikombinasikan dengan menggunakan

array, dapat dilihat pada contoh program di atas yang diubah dalam bentuk array

sebagai berikut:program contoh_record_array;uses wincrt;

type identitas = recordnama : string[30];alamat : string[40];Golongan : string[5];Gaji_Pokok : longint;

end;

varbiodata : Array [1..10] of identitas;

beginwith biodata[1] do

beginnama := 'Kusuma Wijaya';alamat := 'Mataram';golongan := 'IV D';gaji_pokok := 5000000;

writeln('Nama : ',nama);writeln('Alamat : ',alamat);writeln('Golongan : ',golongan);writeln('Gaji Pokok : ',gaji_pokok);

end;end.

Page 49: PEMBAHASAN I PENGENALAN PEMROGRAMAN … fileSoftware biasa disebut dengan nama program, yaitu merupakan ... Data Terstruktur ADA, C/C++, Pascal Assembler, BASIC Proyek cepat BASIC

49 | P r a k t i k u m A l g o r i t m a d a n P e m r o g r a m a n

Latihan VII!1. Buat program lain yang menggunakan cara rekursi!

2. Kembangkan program pada Latihan VI soal nomor 3 (tiga) dengan

penambahan Record!