• Tidak ada hasil yang ditemukan

DASAR PEMROGAMAN DAN ALGORITMA

N/A
N/A
Protected

Academic year: 2018

Membagikan "DASAR PEMROGAMAN DAN ALGORITMA"

Copied!
65
0
0

Teks penuh

(1)

i

DASAR PEMROGAMAN

DAN ALGORITMA

Arif Wibisono, S.Pd, M.Kom.

Febrian Murti Dewanto, S.E, M.Kom.

Wijayanto, ST, M.Kom.

S1 PENDIDIKAN TEKNOLOGI INFORMASI

(2)

ii

KATA PENGANTAR

elamat datang di buku Dasar Pemrogaman dan Algoritma. Pada panduan ini, anda akan mempelajari dasar-dasar pemrogaman dan algoritma. Anda juga akan belajar menerapkan algoritma tersebut dalam bahasa pemrogaman C, C++ kemudian memecahkan berbagai jenis permasalahan, tentu saja dengan komputer. Pada dasarnya, panduan ini dibagi menjadi enam bab, yaitu Dasar Pemrogaman, Dasar Algoritma, Tipe Data, Kontrol Percabangan, Kontrol Pengulangan. Pada dua bab pertama adalah teori singkat tentang topic utama yagn dibahas. Sedangkan pada bab selanjutnya kita berlatih sekaligus mengenal teorinya. Contoh-contoh soal pada panduan ini sudah saya susun sedemikian rupa sehingga mudah membandingkan soal satu dengan lainnya sehingga muncul pemahaman utuh

Buku ini disusun sebagai harapan agar menjadi panduan Mahasiswa dalam mendalami pemrogaman, khususnya algoritma dengan bahasa C, C++ maupun yang sedang mengambil mata kuliah dasar pemrogaman dan algoritma.

Buku ini juga berisi beberapa contoh soal yang variatif, disesuaikan dengan kebutuhan pengajaran.

Pada kesempatan ini, saya juga ingin mengucapkan terima kasih kepada keluarga, istri utamanya yang selalu memberikan dorongan dan semangat. Juga ucapan terima kasih kepada semua pihak yang telah membantu penerbitan buku ini baik secara langsung maupun tidak langsung. Akhir kata, semoga buku ini dapat bermanfaat bagi saya dan bagi para mahasiswa yang menempuh mata kuliah dasar pemrogaman dan algoritma.

Semarang, Agustus 2013

(3)

iii

DAFTAR ISI

Contents

KATA PENGANTAR ... ii

DAFTAR GAMBAR ... iv

DAFTAR TABEL ... v

BAB 1. DASAR PEMROGAMAN ... 1

1.1. Apa itu pemrogaman dan apa saja lima langkah untuk melakukannya? ... 1

1.1.1. Langkah Pertama : Mengklarifikasikan Kebutuhan Pemrogaman. Mengapa pemrogaman memerlukan klarifikasi? ... 2

1.1.2. Langkah Kedua : Mendesain Progam ... 3

1.1.3. Langkah Ketiga : Menulis Progam ... 12

1.1.4. Langkah Keempat : Menguji Progam... 13

1.1.5. Langkah Kelima : Mendokumentasikan dan Memasukkan Progam . 14 1.2. Bahasa pemrogaman C dan C++ ... 16

1.3. Console application ... 17

1.4. Persiapan instalasi Borland delphi ... 17

1.5. Menjalankan console aplication ... 19

BAB 2. DASAR ALGORITMA ... 21

2.1. Apa itu Algoritma? ... 21

2.2. Contoh Algoritma ... 22

2.2.1. Percabangan ... 23

2.2.2. Pengulangan ... 25

2.3. Latihan algoritma pemrogaman ... 28

BAB 3. TIPE DATA ... 29

3.1. Struktur Progam ... 29

3.2. Macam-macam Tipe Data ... 30

3.2.1. Type bilangan bulat (integer) ... 31

3.2.2. Type boolean ... 32

3.2.3. Type karakter (char)... 33

3.2.4. Type subjangkauan ... 33

3.2.5. Type terbilang ... 34

3.2.6. Type real ... 35

3.2.7. Type string ... 35

3.2.8. Type larik (array) ... 36

3.2.9. Type rekaman ... 38

3.2.10. Type himpunan (set) ... 39

3.2.11. Type pointer ... 39

3.3. Latihan pemrogaman tipe data ... 41

3.4. Macam-macam Operator ... 42

3.4.1. Operator pemberian nilai (penugasan) ... 42

(4)

iv

3.4.3. Operator pemanipulasi bit ... 44

3.4.4. Operator Boolean ... 46

3.4.5. Operator pembanding (relational) ... 47

3.4.6. Operator himpunan ... 48

3.4.7. Operator string ... 48

3.4.8. Derajat operator ... 48

3.5. Latihan pemrogaman operator ... 49

BAB 4. PERCABANGAN ... 51

4.1. Pernyataan if..else ... 51

4.2. Pernyataan if..else if ... 52

4.3. Pernyataan case ... 53

4.4. Latihan pemrogaman percabangan ... 54

BAB 5. PENGULANGAN ... 55

5.1. Pernyataan for ... 55

5.2. Pernyataan for Bersarang ... 56

5.3. Pernyataan while ... 56

5.4. Pernyataan repeat..until ... 57

5.5. Pernyataan break dan continue ... 58

DAFTAR PUSTAKA ... 60

DAFTAR GAMBAR

Gambar 1. Bagan Hierarki ... 7

Gambar 2. Psedocode ... 7

Gambar 3. Struktur control sekuensi ... 9

Gambar 4. Struktur control seleksi... 10

Gambar 5. Struktur control iterasi ... 11

Gambar 6. Contoh progam C++ menggunakan console delphi 7 ... 17

Gambar 7. Debugging di DOS promt ... 17

Gambar 8. Instalasi option sebagai user administrator ... 18

Gambar 9. Unchecklist install interbase client ... 18

Gambar 10. Borland properties ... 18

Gambar 11. Unchecklist read-only attributes... 18

Gambar 12. Security option borland properties ... 19

Gambar 13. Progam borland delphi 7 ... 19

Gambar 14. Jendela compatibility assistant ... 20

Gambar 15. Jendela menu bar file... 20

Gambar 16. Jendela new items ... 20

Gambar 17. Contoh algoritma sederhana 1 ... 21

Gambar 18. Algoritma penghitung luas lingkaran ... 23

Gambar 19. Algortima menuliskan nilai absolut ... 24

(5)

v

Gambar 21. Struktur progam DELPHI ... 29

Gambar 22. Hasil eksekusi dari soal 1 penulisan tipe data ... 42

DAFTAR TABEL

Tabel 1. Keterangan symbol diagram alur ... 12

Tabel 2. Rangkuman lima langkah pemrogaman ... 16

Tabel 3. Type bilangan bulat ... 31

Tabel 5. Type Boolean ... 32

Tabel 6. Type real ... 35

Tabel 7. Larik dua dimensi berukuran 5x5 ... 37

Tabel 8. Operator aritmetik tunggal ... 43

Tabel 9. Operator aritmetik biner ... 44

Tabel 10. Operator pemanipulasi bit ... 45

Tabel 11. Hasil operator not, and, or dan xor, untuk berbagai kombinasi bit ... 45

Tabel 12. Operator Boolean ... 46

Tabel 13. Hasil operator not, and, dan xor untuk berbagai kombinasi kondisi ... 47

Tabel 14. Operator pembanding ... 47

Tabel 15. Operator himpunan ... 48

(6)

BAB 1. DASAR PEMROGAMAN

1.1.

1

Apa itu pemrogaman dan apa saja lima langkah untuk

melakukannya?

Untuk melihat bagaimana pemrogaman bekerja, kita harus memahami apa saja yang terdapat dalam sebuah progam. Progam adalah daftar instruksi yang harus diikuti computer untuk memproses data menjadi informasi. Instruksi terdiri atas pernyataan yang digunakan dalam bahasa pemrogaman, misalnya BASIC. Contohnya adalah progam yang mengolah kata, desktop publishing, atau memproses gaji.

Keputusan apakah akan membeli atau menciptakan sebuah progam adalah bagian dari Fase 4 dalam siklus hidup pengembangan sistem. Progammer bisa mulai bekerja setelah keputusan tersebut diambil.

Progam, sebagaimana telah dikemukakan, adalah daftar instruksi untuk komputer. Pemrogaman adalah proses lima langkah untuk menciptakan daftar instruksi tersebut. Pemrogaman kadang-kadang dinamakan software engineering (rekayasa perangkat lunak). Namun, istilah terakhir ini melibatkan penggunaan proses praktik terbaik (best practice) untuk menciptakan dan atau memelihara perangkat lunak. Rekayasa perangkat lunak meliputi pencarian dan penggunaan prinsip teknik untuk mendapatkan perangkat lunak yang sesuai dan bekerja untuk pengembangan, operasi dan perawatan perangkat lunak.

Lima langkah dalam proses pemrogaman :

1. Mengklarifikasikan/mendefinisikan masalah termasuk output, input, dan ketentuan pemrosesan yang diperlukan.

2. Mendesain solusi menggunakan perkakas pemodelan untuk membuat bagan progam.

3. Mengkode progam menggunakan sintaks bahasa pemrogaman, atau aturan untuk menulis progam.

1

(7)

2

4. Menguji progam terbebas dari error logika, atau “bug” dalam progam (dengan men-“debug”).

5. Mendokumentasikan dan memasukkan progam meliputi intstruksi tertulis untuk pengguna, keterangan progam, dan instruksi operasi.

1.1.1.

2

Langkah Pertama : Mengklarifikasikan Kebutuhan

Pemrogaman. Mengapa pemrogaman memerlukan klarifikasi?

Lengkah klarifikasi masalah (definisi) terdiri atas enam langkah kecil mengklarifikasi tujuan progam dan pengguna, output, input dan tugas-tugas pemrosesan; mempelajari kemungkinan progam dapat bekerja; dan mendokumentasikan analisis. Mari kita lihat satu per satu keenam langkah kecil tersebut.

1. Mengkarifikasikan Tujuan dan Pengguna Setiap saat anda berusaha memecahkan masalah. Masalah bisa saja berupa apakah akan mengambil mata kuliah sains di semester ini atau semester berikutnya, atau memilih kuliah dengan jadwal yang bisa disesuaikan dengan jadwal kerja anda. Dalam kasus ini anda harus menentukan tujuan anda, tujuan yang ingin anda capai-masalah yang ingin anda pecahkan. Jika masalahnya berbasis computer, dan ia menunjukkan kepada Anda, seorang programmer, maka anda perlu mengklarifikasi kebutuhan pemrogaman. Anda juga harus tahu pasti siapa yang akan menggunakan progam yang akan Anda buat. Apakah mereka orang dalam perusahaan, dari luar, atau keduanya? Keahlian apa yang mereka miliki?

2. Mengklarifikasi Output yang diinginkan Pastikan anda memmahami outputnya apa yang ingin diperoleh desainer system dari system itu sebelum anda menentukan input. Misalnya jenis hardcopy apa yang anda inginkan? Informasi apa yang seharusnya terdapat dalam output? Anda perlu

2

(8)

3

mengadakan pertemuan dengan desainer system dan pengguna untuk memastikan bahwa anda menciptakan apa yang mereka inginkan.

3. Mengklarifikasikan Input yang diinginkan setelah mengetahui jenis output yang diinginkan, selanjutnya anda bisa memikirkan soal input. Jenis input data apa yang diperlukan? Bentuknya? Dari mana sumbernya?

4. Mengklarifikasikan Pemrosesan yang diinginkan Di sini anda harus memastikan bahwa anda memahami pekerjaan pemrosesan yang harus dilakukan pada data input yang nantinya diproses menjadi data output.

5. Mengecek Ulang Kelayakan Progam yang akan Diimplementasikan Apakah jenis progam yang akan anda buat bisa dilakukan dengan anggaran yang ada? Apakah akan memperkerjakan banyak staf? Apakah perlu waktu lama untuk menyelesaikannya?

6. Mendokumentasikan Analisis Melalui klarifikasi progam, programmer harus mendokumentasikan segala sesuatu yang telah mereka lakukan, termasuk menulis spesifikasi tujuan dari keseluruhan proses yang digambarkan.

1.1.2.

3

Langkah Kedua : Mendesain Progam

Bagaimana sebuah progam didesain? Semisal keputusannya adalah membuat progam (custom-write), maka tugas anda selanjutnya adalah mendesain solusi yang ditentukan oleh analis system. Untuk melakukannya, hal pertama yang perlu dilakukan adalah membuat algoritma. Algoritma adalah rumusan atau serangkaian langkah untuk memecahkan masalah tertentu. Untuk menjadi sebuah algoritma, sekumpulan aturan harus tidak ambigu dan memiliki saat berhenti yang jelas.

Kita setiap hari menggunakan algoritma. Contohnya resep untuk roti bakar adalah sebuah algoritma. Sebagian besar progam, kecuali beberapa aplikasi kecerdasan tiruan, terdiri atas algoritma. Dalam pemrogaman computer, sering terdapat algoritma

3

(9)

4

berbeda untuk menyelesaikan tugas yang diberikan, dan dalam situasi yang berbeda-beda, masing-masing algoritma memiliki keuntungan dan kerugian sendiri-sendiri. Menemukan algoritma yang elegan algoritma yang sederhana dan dengan sesedikit mungkin langkah adalah salah satu tantangan utama dalam pemrogaman.

Algortima dapat diterapkan dalam berbagai cara. Dalam langkah desain progam, perangkat lunak didesain dalam dua langkah kecil. Pertama, menentukan logika progam melalui pendekatan atas bawah dan modularisasi, dengan menggunakan bagan hierarki. Selanjutnya, mendesain logika progam secara detail, baik dalam bentuk naratif, menggunakan pseucode, atau secara grafis, dengan menggunakan diagram alur.

Sangat bermanfaat bila programmer menggunakan pendekatan berdasarkan pengalaman probadi untuk memprogam. Pemrogaman dianggap sebagai suatu seni, bukan ilmu pengetahuan. Namun, saat ini sebagian besar programmer menggunakan pendekatan desain yang disebut pemrogaman terstruktur. Pemrogaman terstruktur

menggunakan pendekatan atas-bawah yang memecah progam ke dalam bentuk modul, dan menggunakan piranti logika standar yang disebut struktur control (sekuensi, seleksi, kasus, dan iterasi).

Tujuan utama pemrogaman terstruktur adalah membuat progam lebih efisien (dengan baris kode lebih sedikit) dan lebih terorganisasi (lebih mudah dibaca) serta memiliki notasi yang lebih bagus sehingga memiliki deskripsi yang jelas dan benar.

Dua Langkah kecil dalam desain progam adalah :

1. Mementukan Logika Progam Menggunakan Pendekatan Atas-Bawah

(10)

5

Modularisasi : Konsep Modularisasi sangat penting. Modularisasi sangat menyederhanakan pegnembangan progam karena setiap bagian bisa dikembangkan dan diuji secara terpisah. Modul merupakan lagnkah pemrosesan dari suatu progam. Masign-masing modul tersusun atas pernyataan-pernyataan progam yang mempunyai hubungan logis. (Modul kadang-kadang dinamakan subprogram atau subrutin). Contoh dari modul bisa berupa instruksi pemrogaman yang hanya mengatakan “Buka sebuah file, cari sebuah record dan tampilkan pada layar tampilan”. Akan lebih baik jika masing-masingmodul hanya memiliki satu fungsi, sama seperti paragraf dalam kalimat sebaiknya memiliki satu pikiran yang utuh. Aturan ini membatasi ukuran dan kompleksitas modul.

Desain progam atas-bawah : Desain progam atas-bawah (top-down) bisa digambarkan dalam satu bagan hierarki. Suatu bagan hierarki, atau bagan struktur menggambarkan tujuan progam secara keseluruhan, dengan mengidentifikasi semua modul yang diperlukan untuk mencapai tujuan tersebut dan hubungan antarmodul. Bagan ini bekerja mulai dari yang umum hingga yang khusus, memulai dari level atas (level tinggi) yang melihat apa yang harus dikerjakan progam. Selanjutnya, masing-masing layer memperbaiki dan memperluas layer sebelumnya hingga layer bawah bisa dibuat menjadi modul pemrogaman yang khusus. Progam harus berjalan sesuai urutan dari satu modul ke modul berikutnya sampai semua diproses. Ada tiga modul utama yang sejalan dengan tiga operasi utama dari suatu komputasi input, pemrosesan, dan output.

2. Mendesain detail menggunakan pseucode dan atau Diagram Alur Setelah menentukan logika progam, selanjutnya Anda dapat menggarap detailnya dengan menggunakan pemrogaman atas-bawah dan bagan hierarki.

(11)

6

Pseudocode: Pseudocode adalah metode mendesain suatu progam dengan menggunakan pernyataan bahasa manusia untuk mendeskripsikan logika dan aliran proses. Pseudocode seperti sebuah kerangka atau bentuk rangkuman dari progam yang akan anda tulis.

Terkadang pseudocode hanya digunakan untuk menjelaskan tujuan modul pemrogaman tertentu dalam istilah yang umum. Dengan menggunakan istilah seperti JIKA, MAKA atau JIKA TIDAK pseidocode mengikuti aturan dari struktur control, suatu aspek penting dalam pemrogaman terstruktur, seperti yang akan kami jelaskan nanti.

Diagram alur progam : Kami telah menjelaskan diagram alur system dalam bab sebelumnya. Disini kami akan menjelaskan diagram alur progam. Diagram alur progam adalah bagan yang secara grafis menampilkan langkah detail (algoritma, atau aliran logika) yang diperlukan untuk memecahkan masalah pemrogaman. Diagram alur ini menggunakan symbol standar yang disebut symbol ANSI. Kependekan dari American National Standards Institute, lembaga yang mengembangkannya.

(12)

7

Gambar 1. Bagan Hierarki

Gambar 2. Psedocode

Membandingkan Tiga Struktur Kontrol Ketiga struktur control secara umum mempunyai satu masukan dan satu keluaran. Struktur control dimasukkan pada satu titik

Proses upah Membaca input Menghitung gaji Menghasilkan output Membaca kartu waktu setiap individu Membaca record master pegawai Membuat laporan gaji Mengeluarkan cek pembayaran Menghitung gaji kotor Menghitung gaji bersih Menghitung lembur Menghitung pajak Menghitung deduksi Menghitung gaji reguler START

DO WHILE (so long as) there are records Read a customer billing account record

IF today’s date is grater than 30 days from

Date of last customer payment Calculate total amount due

Calculate %% interest an amount due Add interest to total amount due calculate grand total

Print on invoice overdue amount ELSE

Calculate total amount due ENDIF

Print out invoice END DO

(13)

8

dan dikeluarkan pada titik lain. Hal ini membantu menyederhanakan logika sehingga orang lain dengan mudah mengikuti jejak programmer untuk membuat progam dapat berjalan. (Sebelum ketentuan ini disahkan, programmer bis mempunyai banyak variasi, yang mengarah pada progam yang tidak bisa dipahami yang disebut spaghetti code). Mari kita perhatikan ketiga control tersebut

Struktur control sekuensi : Dalam struktur control sekuensi, satu pernyataan progam mengikuti yang lain dengan urutan yang logis. Misalnya, dalam contoh yang ditunjukkan dalam gambar. Ada dua kotak (“Statement” dan “Statement”). Satu kotak bisa berbunyi “Buka file”, dan yang lain “Baca sebuah record”. Tidak ada keputusan yang bisa dilakukan, tidak ada pilihan antara “ya” atau “tidak”. Kotak tersebut secara logis saling mengikuti dalam urutan sekuensial.

Struktur control seleksi: Struktur control seleksi, juga disebut struktur JIKA-MAKA-JIKA TIDAK merepresentasikan pilihan. Struktur ini menawarkan dua jalur yang diikuti ketika progam harus membuat suatu keputusan. Contoh struktur seleksi adalah :

JIKA jam kerja seorang pegawai dalam satu minggu lebih dari 40 MAKA jam lembur sama dengan jumlah jam yang menjadi selisihnya JIKA TIDAK pegawai tidak mempunyai jam lembur

Variasi struktur control seleksi yang biasa adalah struktur control kasus. Struktur ini menewarkan lebih dari satu keputusan ya atau tidak. Struktur kasus memberikan beberapa alternative, atau “kasus”, yang bisa ditampilkan (“JIKA Kasus I terjadi, MAKA lakukan.. JIKA Kasus 2 terjadi, MAKA ikuti alternative… “ Dan seterusnya.) Struktur control kasus membuat programmer ridak harus mengindikasikan begitu banyakl kondisi JIKA-MAKA-JIKA TIDAK secara terpisah.

(14)

9

dua tipe struktur iterasi DO UNTIL dan DO WHILE. Dalam hal ini DO UNTIL lebih sering digunakan.

Contoh dari struktur DO UNTIL adalah sebagai berikut:

DO read in employee records UNTIL there are no more employee records.

Gambar 3. Struktur control sekuensi

Mulai

Input Harga

Hitung Pajak Penjualan = Harga

x Jumlah Input Jumlah

Pajak

Mencetak Pajak

(15)

10

Gambar 4. Struktur control seleksi

Mulai

Input Nilai Properti

Hitung Pajak = Nilai x 0,5 Nilai >

100.000?

Hitung Pajak = Nilai x 0,12

Mencetak Pajak

(16)

11

Gambar 5. Struktur control iterasi

Mulai

Input Nama

Nama =

“End”?

Cetak Nama

Input Nama

(17)

12

Simbol Nama Kegunaan

Terminal Mengindikasikan awal dan akhir suatu progam

Proses Kalkulasi atau transfer nilai menjadi variable

Input/Output (I/O)

Pernyataan apa saja yang menyebabkan data dimasukkan ke dalam progam (INPUT, READ) atau dikeluarkan dari progam, seperti mencetak pada layar display atau printer

Keputusan Keputusan progam. Memperbolehkan arah tindakan berdasarkan sebuah kondisi. Keputusan mengindikasikan suatu pernyataan yang bisa dijawab ya atau tidak (atau benar atau salah)

Proses yang sudah Ditentukan Sebelumnya

Sekelompok pernyataan yang bersama-sama menyelesaikan satu tugas. Banayak digunakan ketika progam dipecah menjadi modul.

Konektor Bisa digunakan untuk menghilangkan garis aliran yang panjang. Kegunaannya untuk mengindikasikan satu symbol yang dihubungkan ke yang lain.

Garis aliran dan Anak panah

Digunakan untuk menghubungkan symbol dan mengindikasikan sekuensi operasi. Alirannya diasumsikan dari atas ke bawah dan dari kiri ke kanan. Anak panah hanya diperlukan ketika aliran melawan arah yang standar.

Tabel 1. Keterangan symbol diagram alur

1.1.3.

4

Langkah Ketiga : Menulis Progam

Apa saja yang termasuk dalam penulisan progam? Setelah mengembangkan desain, penulisan progam yang sebenarnya pun dimulai. Penulisan progam disebut

coding. Orang sering menganggap coding sebagai pemrogaman, padahal coding hanya merupakan salah satu dari lima langkah pemrogaman. Coding adalah menerjemahkan persyaratan logika dari pseudocode atau diagram alur ke dalam suatu bahasa pemrogaman huruf, angka dan symbol yang menbentuk progam.

1. Memilih Bahasa Pemrogaman Tingkat Tinggi yang sesuai Bahasa pemrogaman adalah kumpulan aturan yang memberitahu computer tentang

4

(18)

13

operasi apa yang harus dilakukan. Contoh bahasa pemrogaman yang terkenal adalah C, C, C++, dan Java. Semua itu disebut bahasa tingkat tinggi.

Tidak semua bahasa sesuai untuk semua kegunaan. Beberapa, misalnya, memiliki kelebihan dalam pemrosesan matematika dan statistic, sementara yang lain lebih cocok untuk manajemen database. Ketika memilih bahasa pemrogaman, anda harus menentukan tujuan dari mendesain progam serta mengetahui bahasa apa yang telah digunakan dalam organisasi atau bidang anda. Kami akan membahas masalah ini pada bagian kedua bab ini.

2. Mengkode Progam dalam Bahasa yang Telah Dipilih, Mengikuti Sintaks Agar progam bisa bekerja, anda harus mengikuti sintaks, yakni aturan bahasa pemrogaman. Bahasa pemrogaman memiliki tata bahasa sendiri, sama seperti bahasa manusia. Akan tetapi, computer tidak bisa memaafkan seandainya Anda menggunakan aturan tersebut dengan tidak benar.

1.1.4.

5

Langkah Keempat : Menguji Progam

Bagaimana progam diuji? Pengujian meliputi menjalankan berbagai pengujian kemudian menjalankan data yang sebenarnya untuk memastikan progam bekerja. Aktivitas utama adalah desk-checking dan debugging. Langkah tersebut dinamakan pengujian alfa.

1. Melakukan Desk-checking Desk-checking hanya membaca hingga tuntas atau memeriksa progam untuk memastikan bahwa progam bebas kesalahan dan bahwa logikanya bias tetap bekerja dengan baik. Dengan kata lain, desk-checking sama seperti proofreading. Langkah ini harus dilakukan sebelum progam benar-benar dijalankan pada sebuah computer.

2. Debug Progam Setelah progam melewati desk-checking, kesalahan lain atu “bug” masih tetap bias muncul. Debug berarti mendeteksi, menempatkan

5

(19)

14

dan memindahkan semua kesalahan pada sebuah progam computer. Kesalahan bias berupa kesalahan sintaks atau kesalahan logika. Kesalahan sintaks disebabkan oleh kesalahan tipografi oleh penggunaan struktur control yang salah. Progam yang disebut diagnostic dapat digunakan untuk memeriksa sintaks progam dan menampilkan pesan kesalahan sintaks. Progam diagnostic selanjutnya membantu mengidentifikasi dan memecahkan masalah.

3. Menjalankan Data yang Sebenarnya Setelah desk-checking dan debugging, progam akan berjalan dengan baik di laboratorium. Akan tetapi, progam masih perlu diuji dengan data riil, dan ini disebut pengujian beta. Sebenarnya sangat disarankan untuk menguji progam dengan data yang rusak, data yang salah, tidak lengkap atau melebihi kuantitas untuk melihat apakah anda akan membuat system mengalami crash. Banyak pengguna mungkin akan menjadi semakin cuek, ceroboh, dan malas daripada yang diperkirakan programmer. Tim pemrogaman dapat melakukan percobaan-percobaan dengan menggunakan data uji yang berbeda-beda sebelum mereka yakin bahwa progam bias dirilis. Namun demikian, sesudah rilis pun masih bias terjadi bug mengingat pencarian kesalahan secara lengkap dipandang tidak ekonomis. Itu sebabnya banyak pengguna gugup saat menggunakan versi pertama (versi 1.0) dari perangkat lunak komersial.

1.1.5.

6

Langkah Kelima : Mendokumentasikan dan Memasukkan

Progam

Apa yang dilakukan ketika mendokumentasikan dan memasukkan progam? Menulis dokumentasi progam merupakan langkah kelima dalam pemrogaman. Hasil dokumentasi terdiri atas deskripsi tertulis tentang progam dan bagaimana cara menggunakannya. Dokumentasi bukan hanya sekedar proses akhir dari pemrogaman, ia

6

(20)

15

seharusnya dilakukan di semua langkah pemrogaman. Dokumentasi diperlukan oleh meraka yang ingin menggunakan atau akan dilibatkan dalam progam di masa depan. Dokumentasi harus dipersiapkan untuk beberapa jenis pembaca, pengguna, operator dan programmer.

1. Menulis Dokumentasi Pengguna Ketika Anda membeli paket perangkat lunak komersial, seperti spreadsheet, biasanya Anda akan menemukan manual di dalamnya.

2. Menulis Dokumentasi Operator Orang yang menjalankan computer dalam jumlah besar disebut operator computer. Karena tidak semua dari mereka adalah programmer. Mereka harus diberitahu apa yang harus dilakukan ketika progam tidak berfungsi. Dokumentasi operator memerikan informasi tersebut.

3. Menulis Dokumentasi Progammer lama sesudah tim pemrogaman tidak bekerja lagi, progam masih bias digunakan. Jika, misalnya, ada lima staf pemrogaman yang meninggalkan pekerjaan setiap tahun setiap tahun, setelah 5 tahun bisa jadi muncul tim programmer yang benar-benar baru, yang tidak tahu apa-apa soal perangkat lunak yang sudah ada. Dokumentasi progam membantu melatih pendatang baru ini dan membuat mereka dapat memelihara system.

(21)

16

Kelima langkah proses pemrogaman dirangkum dalam table dibawah ini.

Langkah Aktivitas

Langkah 1: Klarifikasi masalah 1. Mengklarifikasikan tujuan dan pengguna

progam.

2. Mengklarifikasi output yang diinginkan. 3. Mengklarifikasi input yang diinginkan. 4. Mengklarifikasi pemrosesan yang

diinginkan.

5. Mengecek ulang kemungkinan berhasilnya implementasi progam.

6. Mendokumentasikan analisis.

Langkah 2: Desain progam 1. Menentukan logika progam melalui

pendekatan atas-bawah dan modularisasi, menggunakan bagan hierarki.

2. Mendesain detail dengan menggunakan pseudocode dan atau menggunakan diagram alur, lebih disukai berdasarkan struktur control.

3. Menguji desain dengan terstruktur.

Langkah 3: Coding progam 1. Memilih bahasa pemrogaman yang sesuai.

2. Mengkode progam dalam bahasa yang telah dipilih dan mengikuti sintaksnya dengan teliti.

Langkah 4: Pengujian progam 1. Memeriksa desktop progam untuk

menemukan kesalahan.

2. Menjalankan progam dan mendebugnya (pengujian alfa)

Langkah 5: Dokumentasi dan pemeliharaan progam

1. Menuliskan dokumentasi pengguna. 2. Menuliskan dokumentasi operator 3. Menuliskan dokumentasi programmer 4. Memelihara sistem

Tabel 2. Rangkuman lima langkah pemrogaman

1.2.

Bahasa pemrogaman C dan C++

Bahasa pemrogaman C merupakan bahasa pendahulu dari pemrogaman C++. Pencipta bahasa pemrogaman C adalah Brian W. Kernighan dan Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa pemrogaman terstruktur yang membagi progam dalam bentuk sejumlah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan progam.

(22)

17

C++ berasal dari operator penaikan pada bahasa C. Keistimewaan yang sangat berarti pada C++ adalah karena bahasa C++ mendukung Pemrogaman Berorientasi Objek (PBO) atau Object Oriented Progamming (OOP).

1.3.

Console application

Progam C++ dapat ditulis dengan menggunakan sembarang editor teks, seperti Console Aplication (Borland Delphi 7), ataupun editor bawaan dari kompiler. Contoh progam C++:

Gambar 6. Contoh progam C++ menggunakan console delphi 7

Gambar 7. Debugging di DOS promt

1.4.

Persiapan instalasi Borland delphi

(23)

18

1. Jalankan instalasi menggunakan user Administrator

Gambar 8. Instalasi option sebagai user administrator

2. Option type instalasi adalah typical

3. Checklist keterangan Use VisiBroker/CORBA Support 4. Microsoft office control pilih office XP

5. Pastikan un-checklist keterangan install interbase client

Gambar 9. Unchecklist install interbase client

6. Option folder instalasi biarkan default

7. Checklist kotak recommended save instalasi to hard drive 8. Berhenti

9. Atur terlebih dahulu security option pada direktori instalasi borland di C:/Progam File/Borland klik kanan properties.

Gambar 10. Borland properties

10. Pada tab general hilangkan checklist read only pada attribute kemudian pilih apply untuk menjalankan perintahnya.

(24)

19

11. Buka tab security, kemudian berikan hak akses penuh di administrator, begitu juga dengan user (user-pc), kemudian pilih ok.

Gambar 12. Security option borland properties

12. Instalasi dan konfigurasi borland delphi selesai.

1.5.

Menjalankan console aplication

Untuk dapat belajar bahasa pemrogaman C++, kita bisa menggunakan Console Aplication pada Borland Delphi 7. Langkah untuk menjalankannya adalah sebagai berikut :

1. Jalankan progam Borland Delphi 7

Gambar 13. Progam borland delphi 7

(25)

20

Gambar 14. Jendela compatibility assistant

3. Pada menu bar file, pilih other

Gambar 15. Jendela menu bar file

4. Pada new items, pilih console application

Gambar 16. Jendela new items

(26)

21

BAB 2. DASAR ALGORITMA

2.1.

7

Apa itu Algoritma?

Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika.

Dalam kehidupan sehari-hari, sebenarnya anda juga menggunakan algoritma untuk melakukan sesuatu. Sebagai contoh, anda ingin menulis surat, maka anda perlu melakukan beberapa langkah berikut ini.

Gambar 17. Contoh algoritma sederhana 1

Langkah-langkah dari nomor 1 sampai dengan nomor 5 di atas itulah yang disebut dengan algoritma. Jadi sebenarnya anda sendiri juga menggunakan algoritma, baik sadar maupun tidak sadar.

Dalam banyak kasus, algoritma yang anada lakukan tidak selalu berurutan seperti diatas. Kadang-kadang anda harus memilih dua atau beberapa pilihan. Sebagai contoh, jika anda ingin makan, anda harus menentukan akan makan dirumah makan atau memasak sendiri. Jika anda memilih untuk makan di rumah makan, anda akan menjalankan algoritma yang berbeda dengan jika anda memilih memasak sendiri. Dalam dunia algoritma semacam ini sering disebut percabangan.

Dalam kasus lain lagi, anda mungkin harus melakukan langkah-langkah tertentu beberapa kali. Sebagai contoh, saat anda menulis surat, sebelum memasukkan kertas ke

7

Pranata, Antony. 2002. Algoritma dan Pemrogaman. Jakarta : Penerbit Graha Ilmu, 2002.h.6-7.

Menulis Surat :

1. Mempersiapkan kertas dan amplop 2. Mempersiapkan alat tulis

3. Mulai menulis

4. Memasukkan kertas ke dalam amplop 5. Pergi ke kantor pos untuk

(27)

22

dalam amplop, mungkin anda harus mengecek apakah surat tersebut sudah benar atau belum. Jika belum benar, berarti anda harus mempersiapkan kertas baru dan menulis lagi. Demikian seterusnya sampai surat anda sesuai dengan yang diharapkan. Dalam dunia pemrogaman, hal semacam ini sering disebut pengulangan.

2.2.

8

Contoh Algoritma

Berikut ini adalah contoh algoritma untuk mmecahkan masalah metematika. Misalnya anda ingin menghitung luas lingkaran dari masukan berupa jari-jari lingkaran. Rumus luas lingkaran adalah sebagai berikut.

L=π.R2

Berikut ini adalah contoh algoritma untuk menghitung luas lingkaran. 1. Masukkan R.

2. Pi = 3.14 3. L = Pi*R*R 4. Tulis L

Perhatikan terdapat tanda = pada baris kedua dan ketiga. Tanda ini berarti nilai disebelah kanan diberikan pada operan disebelah kiri. Sebagai contoh, untuk baris kedua, nilai 3.14 diberikan pada variable Pi. Berikutnya, nilai Pi*R*R diberikan pada variable L.

Baris pertama dari algoritma di atas meminta masukan dari pengguna berupa jari-jario lingkaran yang disimpan pada variable R. pada baris kedua nilai π disimpan pada variable dengan nama Pi. Baris ketiga menghitung luas lingkaran dengan rumus πR2

atayu yang dituliskan Pi*R*R. luas lingkaran ini disimpan pada variable L. baris terakhir menuliskan luas lingkaran tersebut.

Untuk memudahkan memahami algoritma, biasanya orang menggambarkan suatu diagram alir (flow chart). Berikut ini adalah contoh diagram alir dari rumus diatas.

8

(28)

23

Gambar 18. Algoritma penghitung luas lingkaran

2.2.1.

9

Percabangan

Contoh berikutnya adalah algoritma untuk menuliskan nilai absolute dari nilai yang dimasukkan pengguna. Definisi dari nilai absolute adalah sebagai berikut.

│x│ = x, jika x ≥ 0 │x│ = -x, jika x < 0

Berikut ini adalah algoritma untuk menuliskan nilai absolute dan masukan pengguna.

1. Masukkan x.

9

Pranata, Antony. 2002. Algoritma dan Pemrogaman. Jakarta : Penerbit Graha Ilmu, 2002.h.8-9.

Mulai

Masukkan R

Pi=3.14

L=Pi*R*R

Tulis L

(29)

24

2. Jika (x < 0) maka kerjakan baris 3, jika tidak kerjakan baris 4. 3. X ← -x.

4. Tulis x.

Baris pertama meminta masukkan suatu bilangan dari pengguna yang disimpan pada variable x.

Baris kedua mengecek nilai variable x lebih kecil dari 0 atau tidak. Jika ya, yang dikerjakan adalah baris ketiga, tetapi jika tidak yang dikerjakan adalah baris keempat.

Baris ketiga membuat nilai x menjadi positif karena baris ini hanya dikerjakan jika nilai x lebih kecil dari 0.

Baris terakhir menuliskan nilai x yang selalu positif.

Mulai

Masukkan x

x < 0

Tulis x

Selesai

x ß-x T

Y

(30)

25

2.2.2.

10

Pengulangan

Untuk memperjelas penulisan algoritma, saya akan menyajikan satu contoh lagi, yaitu algoritma untuk menghitung rata-rata dari sekumpulan data yang dimasukkan pengguna. Rumus mencari rata-rata dari data x1 yang berjumlah N adalah sebagai

berikut.

Berikut ini adalah algoritma untuk menghitung rat-rata data yang dimasukkan pengguna.

1. Masukkan N 2. i ß1.

3. J ß0.

4. Selama (i<=N) kerjakan baris 4 sampai dengan 7. 5. Masukkan dt.

6. iß i+1. 7. jß j+dt. 8. Rata ßj/N. 9. Tulis rata.

Baris pertama meminta pengguna memasukkan N, yaitu jumlah data.

Pada baris ketiga, variable I, yang berguna sebagai pencacah banyaknya data yang telah dimasukkan pengguna, diberi nilai 1.

Pada baris ketiga, variable j, yang digunakan untuk menyimpan hasil penjumlaha data, diberi nilai 0.

Baris keempat memberikan perintah untk mengulangi baris keempat sampai dengan baris ketujuh selama i kurang dari sama dengan N. dengan kata lain, setelah I lebih besar dari N, baris kedelapan yang dijalankan.

10

(31)

26

Baris keenam menambah variable i dan 1. Perhatikan arti dari perintah I ß i+1 adalah nilai i ditambah dengan 1 kemudian hasilnya disimpan pada variable i kembali.

(32)

27 Selama

(i<=N)

Masukkan dt

ißi+1 JßJ+dt

Rata ßj/N

Masukkan dt

Selesai Mulai

Masukkan N

iß1 Jß0

(33)

28

2.3.

Latihan algoritma pemrogaman

Kerjakan latihan berikut untuk lebih memahamkabn anda mengenai materi diatas.

1. Tulislah algoritma untuk mencari luas segitiga jika masukan dari pengguna adalah alas dan tingginya.

Petunjuk: Luas segitiga dapat dihitung dengan rumus: L=1/2.a.t

(34)

29

BAB 3. TIPE DATA

Apa itu tipe data? Tipe data menentukan nilai yang dapat disimpan variable tersebut dan operator-operator apa yang dapat dikenakan padanya. Sebagai contoh, tipe real hanya dapat menyimpan bilangan real, dan operator yang dapat dikenakan padanya antara lain operator penjumlahan, perkalian dan sebagainya. Sebelum kita lanjut membahas tipe data terlebih dahulu akan saya bahas struktur progam.

3.1.

Struktur Progam

Dalam penulisan progam nantinya, memiliki aturan baku. Yang dimaksud aturan baku adalah urutan dalam penulisan atau struktur.

Gambar 21. Struktur progam DELPHI

Keterangan deklarasi :

1. Const : suatu nilai yang bersifat tetap diwakili dengan sebuah pengenal 2. Type : untuk menyatakan data berurutan yang bertipe sama

3. Var : suatu tempat yang dialokasikan di dalam memori komputer untuk menampung data yang berubah-ubah

(35)

30

5. Function : suatu rutin/baris progam yang biasanya dipakai sebagai alat untuk melakukan tugas tertentu atau mendapat nilai tertentu dan memiliki nilai kembalian.

Selain memiliki aturan dalam struktur urutan juga memiliki aturan penulisan, diantaranya :

1. Akhir sebuah progam harus ditandai dengan tanda baca titik (.) setelah END

yang paling akhir

2. Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya 3. Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda

baca titik koma (;). Contoh : simpan := akhir;=simpan+awal;

4. Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda (dan) Contoh : Var rerata : real; (*nilai rata-rata*)

Nil1 : real; (nilai ujian)

5. Delphi bersifat incasesensitive (besar kecil tulisan dianggap sama).

3.2.

11

Macam-macam Tipe Data

Ada enam kelompok tipe data, yakni sebagai berikut :

1. Type Sederhana, Tipe sedeehana dibagi lagi menjadi dua tipe yaitu tipe ordinal dan real.

a. Tipe Ordinal, Tipe ordinal sendiri dibagi lagi menjadi beberapa tipr, yaitu:

 tipe bilangan bulat,

 tipe boolean,

 type karakter,

 type terbilang,

 type subjangkauan.

11

(36)

31 b. Type Real

2. Type string, yaitu sekumpulan karakter.

3. Type terstruktur. Tipe terstruktur dibagi lagi menjadi lima tipe berikut.

 Tipe larik

 Tipe rekaman

 Tipe objek

 Tipe himpunan

 Tipe berkas 4. Type Pointer. 5. Type Prosedural. 6. Type Objek.

Tidak semua tipe diatas akan dibahas dibahas pada bab ini karena memang jarang digunakan dalam pembahasan algoritma, misalnya tipe procedural dan tipe berkas.

3.2.1.

12

Type bilangan bulat (integer)

Sesuai namanya, tipe bilangan bulat digunakan untuk menyimpan bilangan bulat. Table dibawah menunjukkan macam-macam tipe bilangan bulat.

Tipe Range Ukuran

Shortint 128…127 8 bit

Integer -32768…32767 16 bit Longint

-2147483648…2147483647 32 bit

Byte 0…255 8 bit

Word 0…65535 16 bit

Tabel 3. Type bilangan bulat

Sebagai contoh, dua pernyataan berikut ini masing-masing mendeklarasikan dua variable bertipe integer, yaitu x dan y, serta satu variable bertipe word, yaitu z.

12

(37)

32

var

x, y : integer ;

z : word ;

Untuk memberi nilai pada tipe bilangan bulat, anda dapat menggunakan basis decimal meupun heksadesimal. Pemberian nilai dalam basis heksadesimal dilakukan dengan menambahkan $ didepan bilangannya.

Contoh :

x := 16; (dengan decimal)

X := $0A; (dengan heksadesimal)

3.2.2.

13

Type boolean

Tipe boolen adalah tipe yang hanya dapat bernilai benar atau salah, tipe Boolean seperti terlihat pada table dibawah ini.

Tipe Data Ukuran

Boolean 1 Byte ByteBool 1 Byte

WordBool 2 Byte (1 word) LongBool 4 Byte (2 word)

Tabel 4. Type Boolean

Dari empat tipe diatas, yang paling sering digunakan adalah tipe Boolean. Sebagai contoh, pernyataan berikut ini mendeklarasikan sebuah variable bertipe

boolean dengan nama bl: var

bl : boolean ;

Ada dua macam nilai yang diberikan pada tipe boolean, yaitu true dan false. Contoh :

bl:=true;

bl:=false ;

13

(38)

33

Tipe Boolean yang lain, ByteBool, WordBool, dan LongBool, tidak perlu anda perhatikan karena ketiga tipe ini hanya disediakan untuk kompatibilitas dengan pemrogaman windows.

3.2.3.

14

Type karakter (char)

Tidak seperti tipe bilangan bulat yang digunakan untuk menyimpan data numeris , tipe karakter digunakan untuk menyimpan data alfanumeris, seperti „A‟,‟Z‟,‟@‟,‟$‟,‟1‟,‟9‟, dan sebagainya. Tipe karakter dideklarasikan dengan kata kunci char. Contoh :

Untuk member nilai pada variable bertipe karakter, Anda dapat menggunakan beberapa cara yaitu berikut ini.

1. Menuliskan karakter di dalam tanda petik tunggal. Contoh :

ch := ’A’;

2. Menuliskan tanda # diikuti dengan nomor ASCII dari karekter yang ingin Anda tuliskan. Contoh :

ch := #65; (nama artinya dengan ch := ‘A’;)

3. Mengkonversikan nomor ASCII ke karakter menggunakan fungsi chr. Contoh :

ch := chr (65) ; (nama artinya dengan ch:

Kebalikan dari fungsi chr adalah ord, yang digunakan untuk mengembalikan nomor ASCII dari suatu karakter. Contoh :

X := ord (‘A’); { x akan bernilai 65;)

Sekedar tambahan, Anda dapat menemukan table ASCII pada Lampiran

3.2.4.

Type subjangkauan

Tipe subjangkauan memungkinkan anda mendeklarasikan tipe yang berada pada jangkaian tertentu. Pada dasarnya tipe subjangkauan hamper sama dengan tipe bilangan

14

(39)

34

bulat, bedanya anda bebas menentukan jangkauan dari tipe ini, misalnya dari 1 sampai dengan 100.

Pendeklarasian tipe subjangkauan dilakukan dengan menuliskan batas bawah dan batas atas dari jangkauannya. Sebagai contoh :

type

Bulan = 1 … 12;

Mendeklarasikan tipe Bulan yang memeliki jangkauan dari 1 sampai dengan 12. Dengan demikian, bila anda mempunyai variable bertipe Bulan, seperti contoh berikut :

var

januari = Bulan;

Anda tidak bisa memberikan nilai kurang dari 1 atau lebih dari 12. Contoh :

Januari:= 1;

3.2.5.

15

Type terbilang

Tipe terbilang memeungkinkan Anda memberikan nama pada beberapa nilai tertentu. Sebagai contoh :

type

TipeHari = (Minggu, Senin, Selasa, Rabu, Kamis, Jum’at, Sabtu);

Memberi nama Minggu pada 0, Senin pada 1, Selsa pada 2, dan seterusnya, Dengan pendeklarasian TipeHari seperti contoh di atas. Anda tidak perlu menggunakan angka 0,1,sampai dengan 6 untuk merepresentasikan hari. Sebagai contoh, jika anda mempunyai variable Hari yang bertipe TipeHari:.

var

Hari : TipeHari;

15

(40)

35

3.2.6.

16

Type real

Sesuai namanya, tipe real digunakan untuk menyimpan bilangan real. Macam-macam tipe real adalah sebagai berikut, lihat pada table.

Tipe Data Range Ukuran

Real 2.9*10-39.. 1.7*1038 6 byte Single 1.5*10-45.. 3.4*1038 4 byte Double 5.0*10-324...1.7*10308 8 byte Extended 3.4*10-4932..1.1*104932 10 byte Comp -263+1..263-1 8 byte

Tabel 5. Type real

Sebagai contoh, dua pernyataan berikut ini masing-masign mendeklarasikan dua variable bertipe real, yaitu x dan y, serta satu variable bertipe double, yaitu z.

var

x,y:real;

z:double;

Pemberian nilai pada tipe real dapat dilakukan dengan dua cara sebagai berikut : 1. Menuliskan nilai dengan tanda titik tanpa eksponen. Contoh :

x:=123.45;

2. Menuliskan nilai dengan eksponen. Contoh :

x:= 1.2345E+2;

3.2.7.

Type string

Tipe string digunakan untuk menyimpan data yang berupa untaian karakter, seperti ‘Algoritma’, dan sebagainya. Untuk mendeklarasikan string, digunakan kata kunci string. Contoh :

var

kalimat:string;

16

(41)

36

Pemberian nilai pada string dilakukan dengan meletakkan untaian karakter diantara tanda petik tunggal. Contoh :

kalimat:=’Algoritma Pemrogaman’;

Untuk member nilai yang mengandung karakter pada suatu string, tulislah karakter‟ sebanyak dua kali. Contoh :

kalimat:=Don’t smoke’;

3.2.8.

17

Type larik (array)

Tipe larik memungkinkan Anda mendeklarasikan kumpulan variable yang bertipe sama. Pendeklarasian larik harus mengikuti bentuk umum berikut.

var

nama_larik:array[batas_bawah..batas_atas]

of tipe_larik;

Sebagai contoh, Anda ingin membuat delapan variable bertipe longint. Tanpa menggunakan larik, anda mungkin mendeklarasikan variable tersebut dengan cara berikut.

var

a1,a2,a3,a4,a5,a7,a8:longint;

Dengan larik sederhanakan deklarasi kedelapan variable menjadi :

var

a:array[1..8] of longint;

Dengan pendeklarasian ini, seolah-olah anda mempunyai delapan variable, yaitu

a[1}, a[2], a[3], a[4], a[6], a[7], dan a[8]. Contoh :

a[1] := 10;

a[2] := 5;

17

(42)

37

Indeks larik tidak harus dimulai dari 1. Anda bisa memulainya dari angka berapa pun. Sebagai contoh :

var

A:array[5..8] of longint;

Mendeklarasikan larik dengan indeks mulai dari 5 sampai dengan 10. Dengan demikian, elemen-elemen larik. Anda adalah A[5], A[6], A[7],A[8],A[9], dan

A[10].

Anda bisa juga mendeklarasikan larik multidimensi, yaitu larik yang memiliki dimensi lebih dari satu. Sebagai contoh :

var

A:array[1..8. 1..5] of longint;

Mendeklarasikan larik dua dimensi berukuran 5x5. Dengan demikian, Anda mempunyai 25 elemen, yaitu A[1, 1], A[1, 2], A[1, 3],…,A[3, 1], A[3,

2], A[3, 3], … A[5, 4], dan A[5, 5]. Untuk lebih jelasnya lehat gambar dibawah ini.

A[1, 1] A[1,2] A[1,3] A[1,4] A[1,5]

A[2,1] A[2,2] A[2,3] A[2,4] A[2,5]

A[3,1] A[3,2] A[3,3] A[3,4] A[3,5]

A[4,5] A[4,2] A[4,3] A[4,4] A[4,5]

A[5,1] A[5,2] A[5,3] A[5,4] A[5,5]

1

2

3

4

5

1 2 3 4 5

(43)

38 Contoh :

A[1, 1] := 10;

A[1, 2] := 5;

A[5, 5] := 20;

3.2.9.

18

Type rekaman

Bila dengan larik, anda menggabungkan beberapa variable bertipe sama; dengan rekaman anda menggabungkan beberapa variable yang tipenya tidak harus sama. Untuk mendeklarasikan rekaman, digunakan kata kunci record. Contoh :

type

TKaryawan = record

Nama : string;

Alamat : string;

Gaji: longint;

end

Pemberian nilai pada variable bertipe rekaman dilakukan dengan menyebutkan nama variable rekaman yang diikuti tanda titik dan variable di dalam rekaman. Sebagai contoh, jika terdapat variable Karyawan yang bertipe TKaryawan

var

Karyawan : TKaryawan:

Anda dapat menuliskan pernyataan berikut.

Karyawan.Nama := ‘Delphi 7’

Karyawan.Alamat := ‘Borland/Inprose’;

Karyawan.Gaji := 10000;

18

(44)

39

3.2.10.

19

Type himpunan (set)

Tipe himpunan digunakan untuk menyimpan kumpulan nilai (disebut juga anggota himpunan) yang bertipe sama. Sebagai contoh :

type

Karyawan : TKaryawan:

Mendeklarasikan tipe HimpunanKarakter sebagai himpunan dari karakter. Berikut ini adalah contoh variable yang dideklarasikan berdasarkan tipe tersebut:

var

Vokal : HimpunanKarakter:

Huruf : HimpunanKarakter:

Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota himpunan dalam kurung siku ([ dan ]). Contoh :

Vokal := [‘A’, ‘I’, ‘U’, ‘E’, ‘O’0; Huruf := [‘A’..’z’]

3.2.11.

Type pointer

Pointer adalah variable yang menunjuk lokasi memori tertentu. Pendeklarasian pointer dilakukan dengan cara yang hamper sama dengan pendeklarasian variable biasa, bedanya anda harus menambahkan tanda ^ di depan tipe pointer. Contoh :

var

P1 : ^integer:

P2 : ^double:

Bila anda mempunyai dua buah variable bertipe integer dan double seperti contoh berikut .

19

(45)

40

var

I : integer:

D : double:

Anda dapat menugaskan P1 agar menunjuk I dan P2 agar menunjuk D dengan pernyataan berikut.

P1 := 0I;

P2 := 0D;

Karena P1 menunjuk pada alamat I, bila anda mengubah nilai pada alamat tersebut nilai I juga akan berubah. Sebagai contoh, pernyataan :

P2^ := 100;

Sama artinya dengan I :=100. Demikian juga bila anda menuliskan pernyataan :

P2^ := 123.456;

Nilai D akan berubah menjadi 123.456.

Selain dengan menugaskan pointer untk menunjuk variable lain, anda bisa juga menugaskan pointer untuk menunjuk lokasi memori tertentu dengan pasangan fungsi New dan Dispose.

Fungsi New akan mengalokasikan tempat di memori yang nantinya ditunjuk oleh sebuah pointer. Sebaliknya, prosedur Dispose akan mendealokasikan memori agar nantinya bisa digunakan untuk keperluan lain. Sebagai contoh, jika anda mempunyai deklarasi pointer seperti ini:

P1: ^integer;

Anda dapat mengalokasikan memeori dengan pernyataan berikut.

new (P1);

setelah pointer digunakan, anda harus mendelokasikannya seperti pada pernyataan berikut.

dispose (P1);

(46)

41

menunuk lokasi acak di memori. Bila anda ingin sebuah pointer tidak menunjuk ke mana-mana, berilah nilai nil. Contoh :

P := nil;

3.3.

Latihan pemrogaman tipe data

1. Jika diketahui x adalah variable bertipe integer, dari nilai-nilai berikut, manakah yang dapat diberikan pada x?

a. $a b. 10.1 c. 40000 d. -$FF e. $AAAA f. 0010

2. Jika diketahui y adalah variable bertipe real, dari nilai-nilai berikut, manakah yang dapat diberikan pada y?

a. .3 b. 1E2 c. 3E+4.2 d. $5.0 e. -5E-5 f. 3,14

3. Buatlah sebuah pemrogaman tipe data, sehingga menghasilkan result seperti soal dibawah.

Tampilan Progam

PENULISAN TIPE DATA ===================

Tipe data bilangan bulat : <input> Tipe data karakter : <input> Tipe data real : <input> Tipe data string : <input> Tekan enter untuk keluar

(47)

42

Gambar 22. Hasil eksekusi dari soal 1 penulisan tipe data

3.4.

20

Macam-macam Operator

Setelah mempelajari macam-macam tipe data, sekarang anda akan mempelajari operasi apa saja yang bisa dilakukan terhadap variable anda. Pada dasarnya, ada tujuh macam operator, yaitu :

1. operator pemberian nilai 2. operator aritmetik

3. operator pemanipulasian bit 4. operator boolean

5. operator pembanding 6. operator himpunan 7. operator string

3.4.1.

Operator pemberian nilai (penugasan)

Operator yang paling sering digunakan adalah operator pemberian nilai. Anda sudah melihat operator ini berkali-kali pada contoh-contoh sebelumnya. Tidak seperti bahasa pemrogaman lainnya, pemberian nilai dilakuakan menggunakan tanda := bukan tanda =. Contoh :

A:=12; (untuk tipe bilangan bulat)

B:=’Halo’; (untuk tipe string)

C:=3.14; (untuk tipe real)

D:=[3,4,5];(untuk tipe himpunan)

20

(48)

43

3.4.2.

21

Operator aritmetik (aritmatika)

Operator aritmetik hanya dapat dikenakan pada operan bertipe bilangan bulat atau bilangan real. Ada dua macam operator aritmetik, yaitu operator aritmetik tunggal dan operator aritmatik biner. Perbedaan kedua operator ini terletak pada jumlah operan pada operator aritmetik tunggal, operan yang digunakan hanya satu; sedangkan pada operator aritmatik biner, operan yang digunakan berjumlah dua.

Ada dua macam operator aritmetik tunggal seperti terlihat pada table dibawah ini.

Operator Operasi Tipe Operan Tipe Hasil

+ Identitas Bilangan bulat

Bilangan real

Bilangan bulat Bilangan real

- Invers Bilangan bulat

Bilangan real

Bilangan bulat Bilangan real

Tabel 7. Operator aritmetik tunggal

Berikut ini adalah contoh penggunaan operator aritmetik tunggal.

x := -y;

Yang artunya nilai x sama dengan invers dari nilai y. contoh lain:

x := +y;

Yang sama artinya dengan

x := y;

Oleh karena itulah, operator identitas jarang digunakan. Bnyak orang lebih suka menuliskan y bukan +y karena memang lebih praktis.

Ada enam macam operator aritmetik biner seperti terlihat pada table dibawah ini.

Operator Operasi Tipe operan Tipe hasil

+ Penjumlahan bilangan bulat

bilangan real

bilangan bulat bilangan real

- Pengurangan bilangan bulat bilangan bulat

21

(49)

44

bilangan real bilangan real

* Perkalian bilangan bulat

bilangan real

bilangan bulat bilangan real

/ Pembagian bilangan bulat

bilangan real

bilangan real bilangan real

div Pembagian bilangan bulat bilangan bulat bilangan bulat

mod Sisa pembagian (modulus) bilangan bulat bilangan bulat

Tabel 8. Operator aritmetik biner

Berikut ini adalah contoh penggunaan operator aritmetik biner.

x := y + z;

x := a – b – c - d;

x := 5 + 9 + 3.14;

x := a / b;

x := a + b – c * d;

z := 10 div 2;

z := 1 mod j;

Yang perlu anda perhatikan di sini adalah bahwa ada dua macam pembagian. Yang pertama adalah pembagian dengan operator /. Pembagian ini selelu menghasilkan bilangan real. Yang kedua adalah pembagian dengan operator div. pembagian ini selelu menghasilkan bilangan bulat dan operannya juga selalu bilangan bulat.

3.4.3.

Operator pemanipulasi bit

Operasi ini berhubungan dengan pemanipulasian bit pada operan misalnya menggeser bit kekanan, memutar bit ke kiri, dan sebagainya. Operasi ini hanya dapat dikenakan pada operan bertipe bilangan bulat dan hasil operasinya juga selalu bilangan bulat. Ada enam macam operator pemanipulasi bit seperti terlihat pada table dibawah ini.

Operator Operasi

not Invers

and Logika and

or Logika or

xor Logika xor

shl Penggeseran bit ke kiri

(50)

45

Tabel 9. Operator pemanipulasi bit

Operator and, or dan xor mengevaluasi masing-masing bit pada operan-operannya. Pada operator and, jika bit dari kedua operan bernilai 1 maka bit hasil operasinya juga bernilai 1; jika tidak, bit hasil operasinya bernilai 0. Contoh :

. x := y + z;

Pada operator or, jika bit dari kedua operan mempunyai nilai 0 maka bit hasil operasinya juga bernilai 0; jika tidak, bit hasil operasinya bernilai 1. Contoh :

x := 1 or 0; {x=1}

Pada operator xor, akan mengembalikan 1 jika salah satu bit bernilai 1 dan yang lin bernilai 0. Jika tidak, hasil operasinya bernilai 0. Contoh:

x := 1 xor 0; {x=1}

Operator not membalik bit-bit operannya. Jika operannya bernilai 1, hasilnya adalah 0. Sebaliknya, jika operan bernilai 0, hasilnya adalah 1.

Table dibawah ini adalah hasil operator not, and, or dan xor untuk berbagai kombinasi bit.

A B not A not B A and B A and B A xor B

0 0 1 1 0 0 0

0 1 1 0 0 1 1

1 0 0 1 0 1 1

1 1 0 0 1 1 0

Tabel 10. Hasil operator not, and, or dan xor, untuk berbagai kombinasi bit

Operator shl dan shr masing-masing, digunakan untuk menggeser bit-bit operannya ke kiri atau kekanan. Contoh :

x := y shl 2;

Yang artinya bit-bit pada variable y digeser ke kiri sejauh 2 bit. Contoh lain :

a := b shr 5;

(51)

46

3.4.4.

22

Operator Boolean

Sesuai namanya, operator ini dikenakan pada operan bertipe Boolean. Karena hanya dioperasikan pada operan Boolean, tentu saja tipe operand an tipe hasil operasinya adalah Boolean. Ada empat macam operator Boolean seperti terlihat pada table dibawah ini.

Operator Operation

not negasi

and logika and

or logika or

xor logika xor

Tabel 11. Operator Boolean

Operator and akan mengembalikan true jika semua operan bernilai true; dan mengembalikan false jika salah satu operan bernilai false. Contoh :

a := true and false; ( a = false )

Operator akan mengambalikan true jika salah satu operan bernilai true; dan mengembalikan false jika semua operan bernilai false. Contoh :

a := true or false; ( a = false )

Operator xor, jika dikenakan pada dua operan, akan mengembalikan true

apabila satu operan bernilai true (dan operan lain bernilai false); dan mengembalikan

false jika kedua operan bernilai true atau bernilai false. Contoh :

a := true xor false; ( a = true )

Operator not hanya dapat dikenakan pada sebuah operan. Operator ini akan mengembalikan true jika operan bernilai false; dan mengembalikan false jika operannya bernilai true. Contoh :

a := not b; (a = true jika b = false, atau

a = false jika b = true)

Tabel berikut adalah hasil operan not, and, or dan xor untuk berbagai kombinasi kondisi.

22

(52)

47

A B not A not B A and B A or B A xor B

false false true true false false false

false true true false false true true

true false flase true false true true

true true false false true true false

Tabel 12. Hasil operator not, and, dan xor untuk berbagai kombinasi kondisi

3.4.5.

23

Operator pembanding (relational)

Sesuai dengan namanya, oeprator pembanding digunakan untuk membandingkan dua buah operan. Hasil dari operator ini adalah data bertipe boolean yang menunjukkan hasil pembandingan bernilai benar atau salah. Ada delapan macam operator pembanding seperti terlihat pada tabel berikut. Kolom ketiga, tipe operan, adalah jenis opetran yang dapat dikenai operator pembanding.

Contoh :

a := 5 = 6; { a = false karena 5

tidak sama dengan 6 }

a := 5 <> 6; { a = true }

a := 5 < 6; { a = true }

a := (3 < 4) and (5 > 6); { a = false karena 5<6 }

a := (4 <= 4) or (5 > 6); { a = true }

a := (4 >= 4) and (5 >= 6); { a = true }

Operator Operasi Tipe operan

= Sama dengan tipe sederhana, pointer, himpunan, string

<> Tidak sama dengan tipe sederhana, pointer, himpunan, string

< Kurang dari tipe sederhan, string

> Lebih dari tipe sederhana, string

<= Kurang dari atau sama

dengan

tipe sederhana, string

>= Lebih dari atau sama dengan tipe sederhana, string

<= Subset dari tipe himpunan

>= Superset dari tipe himpunan

Tabel 13. Operator pembanding

23

(53)

48

3.4.6.

Operator himpunan

Sesuai dengan namanya, operator ini hanya digunakan pada tipe himpunan. Ada empat macam operator himpunan seperti terlihat pada tabel dibawah ini.

Operator Operasi

+ Union

- Selisih

* Interseksi

in Anggota dari

Tabel 14. Operator himpunan

Sebagai contoh:

A := B + C;

Menggabungkan semua anggota himpunan B dan C ke dalam A. Jika A, B, dan C bertipe set of char dan nilai A dan B masing-masing adalah [„A‟,‟B‟] dan [„C‟], maka variabel C akan bernilai [„A‟,‟B‟,‟C‟].

Contoh lain:

D := C - B; { D = [‘A’, ‘B’] }

E := C * B; { D = [‘C’] }

3.4.7.

Operator string

Operator string atau operator penggabuingan digunakan untuk menggabungkan dua atau lebih operan string menjadi string yang lebih panjang. Simbol untuk operator ini sama dengan operator penjumlahan (+). Contoh:

S := ‘Turbo’ + ‘C’; ( sama artinya dengan S := ‘Turbo C’; )

3.4.8.

Derajat operator

Anda baru saja mempelajari macam-macam operator. Adanya operator-operator ini menyebabkan munculnya konsep derajat operator. Kegunaan derajat operator adalah menentukan operator mana yang harus dikerjakan lebih dulu dan operator mana yang terakhir dikerjakan. Sebagai contoh pernyataan:

X := 2 + 3 * 4;

(54)

49

Bila anda menemukan pernyataan-pernyataan seperti itu, operasi dikerjakan menurut derajat operator yang disajikan pada tabel berikut.

Operator Derajat

@ not Tertinggi

*/ div mod as and shl shr + - or xor

= <> < > <= >= in Terendah

Tabel 15. Derajat operator

Dari tabel diatas anda pasti bisa menebak bahwa hasil dari pernyataan 2+3*4 adalah 14. Hal ini dikarenakan operator perkalian memiliki derajat lebih tinggi daripada operator penjumlahan. Akibatnya operasi 3*4 harus dikerjakan terlebih dulu baru kemudian dikerjakan dijumlah dengan 2.

Bila anda ingin sebuah operasi dikerjakan terlebih dulu, letakkan operasi tersebut di dalam tanda kurung. Perhatikan contoh berikut.

X := (2 + 3) * 4;

Nilai X pada contoh diatas bukan lagi 14 melainkan 20. Hal ini dikarenakan operasi (2+3) diletakkan di dalam tanda kurung, jadi harus dikerjakan terlebih dulu.

3.5.

Latihan pemrogaman operator

Untuk lebih memahami mengenai operator kerjakan pemrogaman berikut. 1. Soal 1

program aritmetik;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

n, m : integer; begin

(55)

50

end.

Apa yang dihasilkan dari progam diatas? 2. Soal 2

program bacaaritmetik;

{$APPTYPE CONSOLE}

uses

SysUtils;

var n : integer; begin

write('Ketik nilai untuk n :'); readln(n);

writeln(n * (n + 1) div 2); end.

Apa yang kesimpulan dari progam diatas?

3. Buatlah pemrogaman dengan tampilan input, proses, output sebagai berikut:

Nilai Akhir Mahasiswa ====================== NIM : <input> Nama : <input> Jurusan : <input> Mata Kuliah : <input> Absensi : <input>

Nilai Absensi (10%) : <output> Tugas : <input>

Nilai Tugas (10%) : <output> UTS : <input>

Nilai UTS (30%) : <output> UAS : <input>

(56)

51

BAB 4. PERCABANGAN

Pada bab ini, anda akan belajar salah satu elemen algoritma yang paling sederhana, yaitu percabangan. Pernyataan percabangan memungkinkan suatu pernyataan dieksekusi hanya jika suatu konsisi terpenuhi atau tidak terpenuhi.

4.1.

24

Pernyataan if..else

Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, progam akan menjalankan pernyataan-pernyataan tertentu; dan bila kondisi yang diuji salah, progam akan menjalankan pernyataan-pernyataan lain. Bentuk umum pernyataan if..else adalah sebagai berikut.

if kondisi then

begin

{pernyataan-pernyataan yang dijalankan

jika kondisi terpenuhi}

end

else

begin

{pernyataan-pernyataan yang dijalankan

jika kondisi TIDAK terpenuhi}

end

Kondisi sendiri merupakan suatu ekspresi bertipe boolean, artinya hanya dapat bernilai benar (true) atau salah (false). Contoh :

if (x > 0) then

writeln (‘x bilangan positif’) else

writeln (‘x BUKAN bilangan positif’)

24

(57)

52

Progam ini akan menuliskan „x bilangan positif‟ jika variabel x lebih besar daripada 0 dan menuliskan „x BUKAN bilangan positif‟ jika x lebih kecil atau sama dengan 0.

Perhatikan juga bahwa pernyataan if..else di atas tidak diletakkan di antara kata kunci begin dan end. Anda tidak perlu menambahkan dua kata kunci ini jika pernyataan yang dituliskan satu baris saja.

Bila Anda tidak ingin mengerjakan sesuatu jika kondisi yang ditentukan tidak terpenuhi, Anda bisa menuliskan pernyataan if tanpa else. Contoh :

if (x < 0) then

x := -x;

Pada progam di atas, jika x adalah bilangan negatif, nilainya akan dibuat menjadi positif. Jika x adalah bilangan positif, nilainya tidak berubah.

4.2.

25

Pernyataan if..else if

Dalam kasus-kasus tertentu, mungkin saja Anda harus meletakkan pernyataan if lain setelah else. Perhatikan contoh berikut ini:

if (x > 0) then

writeln (‘x bilangan positif’) else if (x < 0) then

writeln (‘x bilangan negatif’) else

writeln (‘x adalah nol’)

Pada contoh di atas, mula-mula progam mengecek nilai x lebih besar daripada 0 atau tidak. Bila kondisi ini terpenuhi, progam akan menulis „x bilangan posistif‟. Sebaliknya bila tidak terpenuhi, progam akan menulis x bilangan negatif dan bila tidak terpenuhi, progam menulis „x adalah nol‟.

25

(58)

53

4.3.

26

Pernyataan case

Pernyataan case digunakan untuk menyederhanakan konstruksi if..else yang terlalu banyak. Sebagai contoh, progam berikut.

if (x > 0) then

writeln (‘x bernilai o’)

else if (x = 1) then

writeln (‘x bernilai 1’) else if (x = 2) then

writeln (‘x bernilai 2’) else if (x = 3) then

writeln (‘x bernilai 3’) else

writeln (‘x TIDAK bernilai 0, 1, 2, ataupun 3’)

Dapat diganti menjadi lebih ringkas dan mudah dibaca dengan progam berikut.

case x of

0: writeln (‘x bernilai 0’); 1: writeln (‘x bernilai 1’); 2: writeln (‘x bernilai 2’); 3: writeln (‘x bernilai 3’); else

writeln (‘x TIDAK bernilai 0, 1, 2, ataupun 3’); end;

Dapat Anda lihat pada contoh diatas bahwa meskupin hasil dari kedua progam tersebut sama tetapi penulisan dengan case lebih mudah dibaca.

26

(59)

54

4.4.

Latihan pemrogaman percabangan

Untuk lebih memahami mengenai fungsi percabangan kerjakan pemrogaman berikut.

1. Buatlan sebuah pemrogaman if then (jika maka), dengan criteria sebagai berikut

Jika nilai yang diperoleh “A” keterangan “Sangat Baik” Jika nilai yang diperoleh “B” keterangan “Baik”

Jika nilai yang diperoleh “C” keterangan “Cukup” Jika nilai yang diperoleh “D” keterangan “Kurang” Jika nilai yang diperoleh “E” keterangan “Gagal”

2. Buatlah sebuah pemrogaman if then (jika maka), dengan criteria sebagai berikut :

Jika nilai 0..25 maka grade “e” keterangan mengulang

(60)

55

BAB 5. PENGULANGAN

Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memeungkinkan anda menjalankan beberpa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja.

5.1.

27

Pernyataan for

Pernyataan pengulangan yang paling sering digunakan adalah for. Pernyataan ini digunakan bila nda sudah tahu berapa kali anda akan mengulang satu atau beberapa pernyataan. Bentuk umum pernyataan for adalah sebagai berikut.

for pencacah := nilai_awal to nilai_akhir do begin

{ pernyataan-pernyataan yang akan diulang }

end;

Sekadar tambahakan, blok berisi pernyataan-pernyataan yang harus diulang sering disebut juga kalang (loop).

Sebagai contoh, progam berikut ini akan menuliskan string „Delphi 7” sebanyak 10 kali.

for x := 1 to 10 do

writeln (‘Delphi 7’);

Anda bisa juga menuliskan string „Delphi 7‟ sebanyak 10 kali dengan menuliskan progam berikut.

fo

Gambar

Gambar 2. Psedocode
Gambar 3. Struktur control sekuensi
Gambar 4. Struktur control seleksi
Gambar 5. Struktur control iterasi
+7

Referensi

Dokumen terkait

Kesan-kesan buruk lain : Tiada kesan yang penting atau bahaya kritikal yang diketahui.

Kajian Lingkungan Hidup Strategis yang selanjutnya disingkat KLHS adalah proses mengintegrasikan pembangunan berkelanjutan yang berwawasan lingkungan hidup dalam

Jika turunan pertamanya nol, yang mununjukkan suatu kemiringan nol dan karena itu suatu dataran dalam fungsi, sedangkan turunan keduanya negatif, yang berarti

ANALISIS SISTEM HISAB AWAL BULAN KAMARIAH ALMANAK NAUTIKA DAN ASTRONOMICAL ALGORTIHMS JEAN MEEUS ... Analaisis Algortima Sistem Hisab Almanak Nautika dan Astronomical Algortihms

Rataan bobot lahir anak yang paling tinggi dijumpai pada hasil perkawinan Kambing Boer dengan Boer (2,777 ± 0,183 kg) sedangkan bobot lahir yang paling kecil pada hasil

Open Babel  Aplikasikan yang digunakan untuk mengkonversi hasil docking dari format PDBQT menjadi PDB sehingga dapat divisualisasi dengan menggunakan aplikasi DS Visualizer..

Penelitian ini juga bertujuan untuk mengetahui peranan fungsi Bimbingan Konseling Islam dalam upaya mengembangkan religiusitas remaja dan menekan atau mengontrol kenakalan remaja

INSTITUT AGAMA ISLAM NEGERI (IAIN) METRO TAHUN 1439 H / 2018.. Pendidikan Keimanan Pada Keluarga Muallaf Di Kelurahan Banjar Sari Kecamatan Metro UtaraKota Metro.