Algoritma Dan Pemrograman 1 - Unpam

Transcription

Universitas PamulangTeknik Informatika S-1ALGORITMA DAN PEMROGRAMAN 1Penyusun:Hendri Ardiansyah, S.Kom., M.komResti Amalia, S.Kom., M.KomAgus Budi Prasetyo, S.Kom., M.KomGd. A; R. 212 Universitas PamulangJl. Surya Kencana No. 1 Pamulang Tangerang Selatan BantenAlgorithma dan Pemrograman 1

Universitas PamulangTeknik Informatika S-1ALGORITMA DAN PEMROGRAMAN 1Penulis :Hendri Ardiansyah, S.Kom., M.komResti Amalia, S.Kom., M.KomAgus Budi Prasetyo, S.Kom., M.KomISBN : 978-602-5867-81-1Editor :SaprudinDesain Sampul:Ubaid Al Faruq, M.Pd.Tata Letak:AdenPenerbit:Unpam PressRedaksi:Jl. Surya Kencana No. 1R. 212, Gd. A Universitas Pamulang Pamulang Tangerang Selatan BantenTlp/Fax: 021. 741 2566 – 7470 9855 Ext: 1073Email: unpampress@unpam.ac.idCetakan pertama, 20 Desember 2019Hak cipta dilindungi undang-undangDilarang memperbanyak karya tulis ini dalam bentuk dan dengan cara apapun tanpaizin penerbit.Algorithma dan Pemrograman 1i

Universitas PamulangTeknik Informatika S-1LEMBAR IDENTITAS ARSIPData Publikasi Unpam PressI Lembaga Pengembangan Pendidikan dan Pembelajaran Universitas PamulangGedung A. R.212 Kampus 1 Universitas PamulangJalan Surya Kencana No.1, Pamulang Barat, Tangerang Selatan, Banten.Website : www.unpam.ac.id I email : unpampress@unpam.ac.idAlgoritma dan Pemrograman 1/ Hendri Ardiansyah, S.Kom., M.Kom, RestiAmalia, S.Kom., M.Kom., Agus Budi Prasetyo, S.Kom., M.Kom.-1sted.ISBN 978-602-5867-81-11. Algoritma dan Pemrograman 1 I. Hendri Ardiansyah, S.Kom., M.Kom. II. RestiAmalia, S.Kom., M.Kom. III. Agus Budi Prasetyo, S.Kom., M.Kom.M076-20122019-01Ketua Unpam Press : PranotoKoordinator Editorial dan Produksi: Ubaid Al Faruq, Ali MadinsyahKoordinator Bidang Hak Cipta : SusantoKoordinator Publikasi dan Dokumentasi : AdenDesain Cover : Ubaid Al FaruqCetakan pertama, 20 Desember 2019Hak cipta dilindungi undang-undang. Dilarang menggandakan dan memperbanyaksebagian atau seluruh buku ini dalam bentuk dan dengan cara apapun tanpa ijinpenerbit.Algorithma dan Pemrograman 1ii

Universitas PamulangTeknik Informatika S-1MATA KULIAHALGORITMA DAN PEMROGRAMAN 1IDENTITAS MATA KULIAHProgram Studi: Teknik Informatika S-1Mata Kuliah / Kode: Algoritma dan Pemrograman 1 /TPL0022Sks: 2 SksPrasyarat: --Deskripsi Mata Kuliah: Mata kuliah ini merupakan mata kuliah wajibProgram Studi Teknik Infomatika S-1 yangmembahas tentang PengantarAlgoritma,Dasar- dasar Algoritma, Tipe Data, mbilanpengantarekonomipembangunanCapaian Pembelajaran: Setelah menyelesaikan mata kuliah ini mahasiswamampu membuat aplikasi sederhana denganmenerapkanalgoritmasecararuntunan,pemilihan dan pengulanganKetua Program StudiKetua Tim PenulisTeknik Informatika S-1Syaeful Bakhri, ST., M.Eng.Sc., Ph.DHendri Ardiansyah, S.Kom., M.KomNIDN 0421127402NIDN 0401038601Algorithma dan Pemrograman 1iii

Universitas PamulangTeknik Informatika S-1KATA PENGANTARAlhamdulillahi robbil ‘aalamin, puji syukur kehadirat Allah SWT yang telahmemberikan taufiq, rahmat dan hidayah kepada penulis serta atas izin-Nya sehinggamodul perkuliahan ini dapat diselesaikan sesuai dengan target. Dalam penulisanmodul perkuliahan ini telah disesuaikan dengan RPS (Rencana PembelajaranSemester) Algoritma dan Pemrograman 1.Modul perkuliahan ini digunakan untuk mata kuliah algoritma danpemrograman 1 pada jurusan teknik informatika yang terbagi menjadi 14 mansampaidenganmengimplementasikan algortima untuk membuat program sederhana.Setelah mempelajari modul perkuliahan ini penulis berharap para mahasiswamampu menguasai konsep dasar-dasar pemrograman sebagai pedoman untukmembuat aplikasi sederhana sesuai dengan konsep algoritma dan pemrograman.Ucapan terima kasih penulis ucapkan kepada berbagai pihak yang telahmembantu dalam pembuatan modul perkuliahan ini, khususnya kepada teman-temandosen teknik informatika yang telah berkenan untuk mengoreksi kebenaran naskahini.Tangerang Selatan, 20 Desember 2019PenulisAlgorithma dan Pemrograman 1iv

Universitas PamulangTeknik Informatika S-1DAFTAR ISIALGORITMA DAN PEMROGRAMAN 1 .iLEMBAR IDENTITAS ARSIP . iiIDENTITAS MATA KULIAH. iiiKATA PENGANTAR . ivDAFTAR ISI .vDAFTAR TABEL .xDAFTAR GAMBAR. xiPERTEMUAN 1 PENGANTAR ALGORITMA DAN PEMROGRAMAN . 12Tujuan Pembelajaran. 12Uraian Materi . 121. Pengertian Algoritma . 122. Kalimat Deskriptif . 143. Flow Chart . 154. Pseudo Code. 18Soal Latihan / Tugas . 23Referensi . 24PERTEMUAN 2 SISTEM BILANGAN BINER . 25Tujuan Pembelajaran. 25Uraian Materi . 251. Karakter . 252. Byte . 253. Biner . 27Latihan tugas . 35Referensi . 36PERTEMUAN 3 TIPE DATA, VARIABEL DAN KONSTANTA . 37Tujuan Pembelajaran. 37Uraian Materi . 371. Variabel . 372. Konstanta . 393. Tipe Data . 39a. Tipe Data numeric integer (bilangan bulat). 40b. Tipe Data Floating-Point (Pecahan). 43c. Tipe Data Karakter . 44Algorithma dan Pemrograman 1v

Universitas PamulangTeknik Informatika S-1d. Tipe Data Boolean. 46e. Modifikasi Tipe Data . 46f. Rangkuman Tipe Data . 46g. Deklarasi Variabel dengan Tipe Data . 47Soal Latihan / Tugas . 50Referensi . 51PERTEMUAN 4 ASSIGNMENT STATEMENT, ARITMETIC EXSPRESSION DANOPERATOR. 52Tujuan Pembelajaran. 52Uraian Materi . 521. Assignment Statement . 522. Arithmetic Expresion dalam Assignment Statement . 553. Program Flowchart . 59Soal/Latihan . 61Referensi . 61PERTEMUAN 5 PREPROCESSOR DAN LIBRARY FUNCTION . 63Tujuan Pembelajaran. 63Uraian Materi . 631. Definisi Preprocessor . 632. Definisi Library Function . 663. Penggunaan Library Function . 70Soal Latihan/Tugas . 72Referensi . 73PERTEMUAN 6 INPUT, OUTPUT, ALGORITMA DAN PENGETAHUAN TERKAIT . 74Tujuan Pembelajaran. 74Uraian Materi . 741. Output . 74a. Mencetak konstanta tanpa format. 74b. Mencetak konstanta dengan format. 75c. Manipulator . 76d. Tanda Format . 772. Input. 78a. Menginput karakter melalui keyboard . 81b. Menginput String . 83c. Menginput nilai numerik melalui keyboard. 843. Algoritma Merepresentasikan apa yang diketahui . 84Algorithma dan Pemrograman 1vi

Universitas PamulangTeknik Informatika S-1Soal Latihan / Tugas . 86Referensi . 87PERTEMUAN 7 CONTROL STATEMENT MENGGUNAKAN IF. 88Tujuan Pembelajaran. 88Uraian Materi . 881. Definisi . 88Listing:. 90Soal Latihan/Tugas . 103Referensi . 103PERTEMUAN 8 CONTROL STATEMENT IF (Lanjutan) . 104Tujuan Pembelajaran. 104Uraian Materi . 1041. Pendahuluan . 1042. Jenis-Jenis Decission If . 1043. Alur Kerja Perintah IF . 115Soal/Latihan . 119Referensi . 120PERTEMUAN 9 CONTROL STATEMENT MENGGUNAKAN NESTED IF SWITCH danLOGICAL OPERATOR . 121Tujuan Pembelajaran. 121Uraian Materi . 1211. Nested if . 1212. Milti Condition dan Logical Operator . 1263. Konversi Multi Condition menjadi Nested If . 1294. Contoh Program Sederhana Menggunakan Nested If Dan Multi Condition . 1305. Switch & Case Berjenjang . 131Soal Latihan . 134Referensi . 134PERTEMUAN 10 PERULANGAN MENGGUNAKAN FOR, WHILE . 135Tujuan Pembelajaran. 135Uraian Materi . 1351. For . 1352. While. 140Soal Latihan : . 144Referensi . 145Algorithma dan Pemrograman 1vii

Universitas PamulangTeknik Informatika S-1PERTEMUAN 11 PERULANGAN MENGGUNAKAN DO WHILE DAN NESTED LOOP146Tujuan Pembelajaran. 146Uraian Materi . 1461. Do . While . 1462. Loop dalam Loop (Nested Loop) . 1493. Contoh – Contoh Penggunaan Nested Loop . 152Soal Latihan / Tugas . 157Referensi . 158PERTEMUAN 12 ARRAY SATU DIMENSI . 159Tujuan Pembelajaran. 159Uraian Materi . 1591. Array Satu Dimensi . 1592. Deklarasi Array . 1613. Menyiapkan Array satu dimensi pada Bahasa pemrograman C . 1624. Alamat elemen – elemen Array satu dimensi . 1635. Membuat Array Numerik Dengan Nilai Awal . 166Soal Latihan / Tugas . 169Referensi . 170PERTEMUAN 13 ARRAY DUA DIMENSI . 171Tujuan Pembelajaran. 171Uraian Materi . 1711. Kelebihan & Kekurangan Array . 1712. Definisi . 1723. Alur Kerja Array 2 Dimensi. 1764. Flowchart . 1785. Pejumlahan Array. 1786. Perkalian Array 2 Dimensi . 180Soal Latihan/ Tugas . 182Referensi . 182PERTEMUAN 14 ALGORITMA DAN PEMROGRAMAN DALAM MATEMATIKA . 184Tujuan Pembelajaran. 184Uraian Materi . 1841. Menentukan suatu bilangan genap atau ganjil. . 1842. Konversi bilangan desimal ke bilangan biner . 1853. Menentukan suatu bilangan merupakan bilangan prima. . 186Algorithma dan Pemrograman 1viii

Universitas PamulangTeknik Informatika S-14. Mencari faktor persekutuan terbesar . 1895. Menghitung luas suatu area/bidang yang dibatasi oleh garis . 190Soal Latihan / Tugas . 192Referensi . 192GLOSARIUM . 193REFERENSI . 194Algorithma dan Pemrograman 1ix

Universitas PamulangTeknik Informatika S-1DAFTAR TABELTabel 1. 1 Simbol-Simbol Flowchart . 15Tabel 1. 2 Pseudo Code . 18Tabel 2. 1 Konversi Bilangan Biner ke desimal . 30Tabel 3. 1 Keyword Dalam ANSI Bahasa C /C . 38Tabel 3. 2 Contoh Penamaan Variabel . 39Tabel 3. 3. Tipe Data Pada C . 46Algorithma dan Pemrograman 1x

Universitas PamulangTeknik Informatika S-1DAFTAR GAMBARGambar 1. 1 Flowchar Menghitung luas lingkaran . 17Gambar 1. 2 Flowchart menentukan bilangan ganjil atau genap . 18Gambar 1. 3 Flowchar Algoritma Euclidean . 23Gambar 2. 1 Satuan Memory . 27Gambar 3. 1 Kategori Tipe Data Dasar . 40Gambar 3. 2. Jangkauan Nilai Tipe data short . 40Gambar 3. 3 Jangkauan Nilai Tipe data int. 42Gambar 3. 4 Jangkauan Nilai Tipe data long . 42Gambar 3. 5. Jangkauan Nilai Tipe data long long . 43Gambar 3. 6. Kode ASCII. 45Algorithma dan Pemrograman 1xi

Universitas PamulangTeknik Informatika S-1PERTEMUAN 1PENGANTAR ALGORITMA DAN PEMROGRAMANTujuan PembelajaranSetelah mengikuti materi pada pertemuan ke-1 ini mahasiswa mampumenuliskan algoritma dalam bentuk flowchart, pseudo code, dan kalimatdeskriptif.Uraian Materi1. Pengertian AlgoritmaDalam pengertian Algoritma merupakan urutan atau alur dan langkahlangkah dalam menyelesaikan dan mengetahui masalah yang bersifat logisdan juga sistimatis. Dalam kehidupan sehari-hari, apabila kita amati,sebenarnya kita telah melakukan kaidah-kaidah algoritma. Sebagai contohadalah saat kita memasak mie instan. Pada bagian belakang bungkus mieinstan apabila kita lihat, disitu terdapat langkah demi langkah bagaimanacara memasak dan juga menyajikannya. Apabila langkah-langkah yangdijabarkan tidaklah logis maka kita akan mendapatkan hasil yang pasti tidakakan sesuai seperti yang diharapkan.Dan juga algoritma tidak harus mengikuti langkah-langkah baku nbagaimanamemecahkan masalah dengan berbagai solusi dan memilih mana solusiyang terbaik.Berikut ini adalah ciri-ciri yang dimiliki dalam sebuah algoritma yaitu :a. KepastianLangkah - langkah yang dijabarkan harus pasti dan tidak bermaknaganda.b. BatasanBatasan dipakai agar algoritma berakhir setelah menjalankan sejumlahproses dan langkah-langkah.c. EfektifEfektif yang dimaksud disini adalah Instruksi yang dijalankan denganefektif.Algorithma dan Pemrograman 112

Universitas PamulangTeknik Informatika S-1d. MasukanAlgoritma tidak hars memiliki satu saja masukan, tapi algoritma bisamemiliki nol atau lebih masukan.e. KeluaranKeluaran yang dimiliki paling tidak menghasilkan satu luaran.Algoritma memiliki sifat-sifat sebagai berikut: :a. Symbol dan sintaks tidak harus baku dan tidak harus dari suatu bahasapemrograman tertentu.b. Tidak bergantung kepada suatu bahasa pemrograman tertentu.c. Urutan dan notasi-notasinya dapat digunakan untuk ditranslasikan padabahasa pemrograman manapun.d. Algoritma ini dapat diterapkan disemua kejadian sehari-hari dan dapatdipakai untuk mewakili suatu urutan kejadian secara logis .Tiga struktur dasar dari algoritma :a. Runtunan (Sequence)Setiap instruksi dalam algoritam dijalankan sercara berurutan (step bystep).b. Pemilihan (Selection)Instruksi akan dijalankan apabila persyaratan terpenuhi atau bernilaibenar (true), jika instruksi bernilai salah (false), maka instruksi ini tidakakan dijalankan.c. Pengulangan (repetition)Pengerjaan instruksi yang berulang sesuai dengan kondisi yang telah ditentukan.Dalam penulisan algoritma atau yang biasa disebut notasi algoritmik,tidak ada hal baku didalam menuliskannya. Suatu notasi Algoritma bukanlahnotasi pada bahasa didalam pemrograman sehingga siapapun itu orangnyadapat membuat notasi algoritma yang berbeda-beda. Akan tetapi aturanaturan dan kaidah-kaidah harus ditaati untuk menghindari kekeliruan.Dibawah ini adalah beberapa notasi yang sering digunakan dalammenulis dan mendeskripsikan algoritma diantaranya yaitu :Algorithma dan Pemrograman 113

Universitas PamulangTeknik Informatika S-1a. Suatu kalimat deskriptifb. Pseudo Codec. Flow chartDalam dunia komputer, algoritma, bahasa pemrograman dan dalamPemrograman adalah bahasa yang digunakan komputer untuk penulisansuatu program. Sedangkan program adalah beberapa atau bahasayangcomputer batkan pemilihan struktur data. Algoritma yang baik tanpa pemilihanstruktur data yang tepat akan membuat program menjadi kurang baik,demikian juga sebaliknya.2. Kalimat DeskriptifSebuah algoritma dapat dituliskan dalam berbagai cara, bahkandengan bahasa sehari-hari. Algoritma dapat dituliskan dalam kalimatdeskriptif yang menjelaskan instruksi atau langkah-langkah yang akandilakukan dengan jelas. Penulisan algoritma dengan kalimat deskriptifadalah yang paling paling mudah dan sederhana untuk dibuat namunmemiliki beberapa kekurangan. Kalimat deskriptif dapat bersifat ambigu, danoleh karena itu, kalimat deskriptif tidak memiliki karakteristik yang pasti.Suatu algoritma harus jelas dan tidak boleh memiliki lebih dari satu makna.Kalimat deskriptif jarang sekali digunakan dalam menyelesaikan masalahmasalah yang komplek.Teks algoritma kalimat deskriptif meliputi :a. HeadHead atau judul memberikan nama atau apa yang akan kita buat padaalgoritma; biasanyanama yang kita buat sudah dapat memberikangambaran kepada aturan dari penyelesaian masalah dan juga masalahyang akan diselesaikan.b. DeklarasiMenyatakan jenis dari setiap elemen data (variabel) yang akan digunakandalam algoritma.c. DeskripsiAlgorithma dan Pemrograman 114

Universitas PamulangAdalahTeknik Informatika S-1inti dari prosedur untuk penyelesaian masalah, meliputipernyataan atau operasi, fungsi, penjelasan, dll.Berikut contoh algoritma denga kalimat deskriptif :Algoritma pada Luas Lingkaran{Program menghitung luas lingkaran dan menampilkannya ke layar denganinputan berupa jari-jari lingkaran.}Deklarasi :jarling real {jari jari lingkaran dengan tipe data bil. pecahan}luas real {luas lingkaran dengan tipe data bil. pecahan}phi 3.14Deskripsi:1. Baca jarling2. Hitung luas phi * jarling * jarling3. Tampilkan luas ke layar4. Selesai3. Flow ChartFlow chart adalah penggambaran secara grafis dari notasi algoritma.Dengan menggunakan flow chart kita dapat menggambarkan urutan ataulangkah-langkah yang berisi pernyataan dalam penulisan algoritma. Flowchart berisi sekumpulan simbol-simbol yang menggambarkan prosestertentu. Suatu algoritma yang ditulis menggunakan flow chart dapatmenggunakan simbol-simbol sebagai berikut :Tabel 1. 1 Simbol-Simbol FlowchartSimbolMaksudTerminal (START, END)Algorithma dan Pemrograman 115

Universitas PamulangTeknik Informatika S-1SimbolMaksudInput/Output (READ, WRITE)ProsesPemilihan atau pencabangan(YES, NO)MenampilkanAlurTitik sambungan pada halamanyang samaTitik konektor yang berada padahalaman lainCall (Memanggil subprogram)DokumenStored Data (Simpanan Data)Preparation (Pemberian nilai awalsuatu variabel)Dibawah ini adalah suatu contoh flow chart dalm algoritma untukmenghitung luas lingkaran dimana rumus luas lingkaran adalah phi * jari-jari* jari-jari. Sedangkan nilai jari-jari lingkaran akan di input melalui keyboard,dan hasil perhitungan luas akan ditampilkan di layar.Algorithma dan Pemrograman 116

Universitas PamulangTeknik Informatika S-1Gambar 1. 1 Flowchar Menghitung luas lingkaranSebagai contoh lain adalah flow chart algoritma untuk mengecekapakah sebuah bilangan yang di inputkan melalui keyboard adalah bilangangenap atau bilangan ganjil. Dimana untuk mengetahui sebuah bilangantersebut adalah bilangan genap atau ganjil, adalah dengan cara membagibilangan tersebut dengan angka 2, apabila bilangan tersebu

Universitas Pamulang Teknik Informatika S-1 Algorithma dan Pemrograman 1 ALGORITMA DAN PEMROGRAMAN 1 Penyusun: Hendri Ardiansyah, S.Kom., M.kom