LAPORAN PRAKTIKUM PRAKTIKUM ALGORITMA DAN STRUKTUR DATA OLEH Ardi Salman 07352211021 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITASKHAIRUN TERNATE 2023
LAPORAN PRAKTIKUM PRAKTIKUM ALGORITMA DAN STRUKTUR DATA OLEH Ardi Salman 07352211021 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITASKHAIRUN TERNATE 2023
LEMBAR PENGESAHAN LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN OLEH: Ardi Salman 07352211021 Laporan Praktikum Algoritmadan Struktur Data telah disetujui dan disahkan Program StudiTeknik Informatika Universitas Khairun Pada: Tanggal…………………………………….Bulan……………………………Tahun 2023 Menyetujui/Mengesahkan Dosen Mata Kuliah Hairil Kurniadi Siradjuddin S.KOM.,M.KOM NIDN : 88361016
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR iii KATA PENGANTAR Segala puja dan puji syukur marilah sama-sama kita panjatkan kehadirat Allah SWT karena alas limpahan rahmat dan karunia-nya lah sehingga penyusunan laporan ini dapat terselesaikan walau sedikit hambatan karena keterbatasan pengetahuan dan pengalaman Laporan praktikum ini di buat untuk menyelesaikan tugas mata kuliah Algoritma dan Struktur Data dengan dosen pengampu-nya Pak Hairil Kumiadi Siradjudin S.Kom M.Kom beribu terima kasih senantiasa diucapkan untuk pihak-pihak yang telah membantu demi terlaksananya laporan praktikum ini Saya menyadari bahwa dalam penyusunan laporan ini masih jauh dari kata sempuma. Oleh karena itu, kritik dan saran sangat diharapkan demi perbaikan di masa yang akan datang. Semoga laporan ini dapat berguna bagi siapa saja terutama bagi penyusun. Akhir kata, Terima kasih dan Wassalamualaikum warahmatullahi wabarakatuh Ternate, 15 Januari 2023 Penyusun
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR iv DAFTAR ISI LEMBAR PENGESAHAN................................................................................................... ii KATA PENGANTAR.......................................................................................................... iii DAFTAR ISI.........................................................................................................................iv DAFTAR GAMBAR............................................................................................................ xi DAFTAR TABEL............................................................................................................... xii BAB I ALGORITMA DAN STRUKTUR DATA, STRUKTUR DASAR C++, DAN CONTOH DASAR C++. ...... ..................................................................................................................2 1.1 Algoritma ............................................................................................................ 2 1.1.1 Pengertian Algoritma Menurut Para Ahli ......................................................... 3 1.2 Struktur data....................................................................................................... 5 1.2.1 Tipe data terbagi atas dua yakni, Built-in Data Type dan Derived Data Type.7 1.2.2 Tiga struktur dasar Algoritma yaitu sebagai berikut: ....................................... 8 1.2.3 Flowchart ...................................................................................................... 10 1.2.4 Hal yang harus diperhatikan dalam pembuatan flowchart............................. 11 1.2.5 Simbol Flowchart........................................................................................... 12 1.2.6 Contoh Kasus................................................................................................ 14 1.3 Struktur dasar C++........................................................................................... 15
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR v 1.3.1 Sejarah Bahasa C++..................................................................................... 19 1.3.2 Mengenal editor Bahasa C++........................................................................ 20 1.3.3 Proses instalasi C++ ..................................................................................... 22 1.3.4 Membuat program C++................................................................................. 24 1.3.5 Memahami Kesalahan Aturan Sintaks Pada Bahasa C++ ............................ 26 1.4 Contoh Dasar C++............................................................................................ 28 1.4.1 Penjelasan...................................................................................................... 29 1.4.2 Latihan .......................................................................................................... 30 1.4.4 Membuat Program ........................................................................................ 34 1.5 Kesimpulan dan Saran..................................................................................... 37 1.5.1 Kesimpulan ................................................................................................... 37 1.5.2 Saran.............................................................................................................37 BAB II VARIABEL DAN KONSTANTA ............................................................................ 40 2.1 Pendahuluan..................................................................................................... 40 2.2 Variabel ............................................................................................................. 40 2.2.1 Mendeklarasikan & Mendefinisikan Variabel................................................ 41 2.2.2 Menentukan Tipe Variabel ........................................................................... 42 2.2.3 Memberikan Nilai ke Variabel........................................................................ 43 2.3 Konstanta........................................................................................................... 44 2.3.1 Konversi Tipe Data....................................................................................... 45
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR vi 2.4 Latihan Kegiatan Praktikum............................................................................ 46 2.4.1 Latihan 1 ....................................................................................................... 46 2.4.2 Latihan 2 ....................................................................................................... 48 2.5 Studi Kasus ...................................................................................................... 50 2.5.1 Luas Persegi Panjang ................................................................................... 50 2.5.2 Luas Lingkaran.............................................................................................. 54 2.5.3 Volume kerucut ............................................................................................. 57 2.5.4 Volume Kubus............................................................................................... 60 2.5.5 Volume Tabung............................................................................................. 64 2.6 Kesimpulan dan saran..................................................................................... 67 2.6.1 Kesimpulan ................................................................................................... 67 2.6.2 Saran.............................................................................................................68 BAB III STRUKTUR DASAR ALGORITMA (SELECTION, LOOPING)............................ 71 3.1 Pendahuluan..................................................................................................... 71 3.2 Selection ........................................................................................................... 72 3.3 Looping............................................................................................................. 73 3.4 Latihan Kegiatan Praktikum............................................................................ 74 3.4.1 Latihan 1 ....................................................................................................... 74 3.4.2 Latihan 2 ....................................................................................................... 76 3.5 Studi Kasus ...................................................................................................... 78
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR vii 3.5.1 Studi kasus selection .................................................................................... 78 3.5.2 Studi kasus selection .................................................................................... 82 3.5.3 Studi kasus selection 3 ................................................................................. 86 3.6 Studi Kasus (Looping)..................................................................................... 88 3.6.1 Studi kasus looping 1 .................................................................................... 88 3.6.2 Studi kasus looping 2 .................................................................................... 89 3.6.3 Studi kasus looping 3 .................................................................................... 91 3.6.4 Studi kasus looping 4 .................................................................................... 94 3.6.5 Studi kasus looping 5 .................................................................................... 96 3.7 Kesimpulan dan saran..................................................................................... 98 3.7.1 Kesimpulan ................................................................................................... 98 3.7.2 Saran.............................................................................................................98 BAB IV ARRAY............................................................................................................... 101 4.1 Pendahuluan................................................................................................... 101 4.2 Array Dimensi Satu ........................................................................................ 101 4.3 Array Dimensi Dua ......................................................................................... 107 4.4 Latihan Kegiatan Praktikum.......................................................................... 110 4.4.1 Latihan 1 ..................................................................................................... 110 4.4.2 Latihan 2 ..................................................................................................... 112 4.5 Studi Kasus .................................................................................................... 115
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR viii 4.5.1 Studi Kasus 1.............................................................................................. 115 4.5.2 Studi kasus 2............................................................................................... 118 4.5.3 Contoh program array 1 dimensi 3.............................................................. 122 4.5.4 Contoh program Array dua dimensi ............................................................ 126 4.6 Kesimpulan dan Saran................................................................................... 129 4.6.1 Kesimpulan ................................................................................................. 129 4.6.2 Saran...........................................................................................................129 BAB V POINTER............................................................................................................. 132 5.1 Pengertian Pointer ......................................................................................... 132 5.2 Macam-macam Operator pada Pointer......................................................... 132 5.2.1 Addres-of Operator (&)................................................................................ 132 5.2.2 Dereference operator (*) ............................................................................. 132 5.3 Cara Membuat Pointer................................................................................... 133 5.4 Cara mengakses Pointer ............................................................................... 134 5.5 Latihan praktikum .......................................................................................... 135 5.5.1 Latihan 1 (pointer konstanta)....................................................................... 136 5.5.2 Latihan 2 (Pointer Variabel)......................................................................... 139 5.6 Studi kasus..................................................................................................... 142 5.6.1 Operasi aritmatika pada pointer .................................................................. 142 5.6.2 Pointer dalam array..................................................................................... 145
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR ix 5.7 Kesimpulan dan Saran................................................................................... 148 5.7.1 Kesimpulan ................................................................................................. 148 5.7.2 Saran 148 BAB VI STACK............................................................................................................... 151 6.1 Pendahuluan................................................................................................... 151 6.2 Latihan Kegiatan Praktikum.......................................................................... 151 6.3. Studi kasus..................................................................................................... 159 6.3.1 Studi kasus 1............................................................................................... 159 6.3.3 Studi kasus 2............................................................................................... 168 6.4. Kesimpulan dan Saran................................................................................... 177 6.4.1 Kesimpulan ................................................................................................. 177 6.4.2 Saran...........................................................................................................177 BAB VII QUEUE.............................................................................................................. 192 7.1 Definis Queue (Antri) ..................................................................................... 192 7.2 Contoh queue (antrian).................................................................................. 193 7.3 Contoh Program Queue................................................................................. 193 7.3.1 Latihan 1 ..................................................................................................... 193 7.4 Latihan Queue ................................................................................................ 203 7.4.1 Kasus Queue dalam Array 1 ....................................................................... 203 7.4.2 Kasus Queue 2 ........................................................................................... 211
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR x 7.5 Kesimpulan dan Saran................................................................................... 221 7.5.1 Kesimpulan ................................................................................................. 221 7.5.2 Saran...........................................................................................................221 DAFTAR PUSTAKA........................................................................................................ 223
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xi DAFTAR GAMBAR Gambar 1. 1 flowchart untuk menentukan Bilangan Ganjil atau Genap. ........................... 14 Gambar 1. 2 kode program...................................................Error! Bookmark not defined. Gambar 1. 3 kode program...................................................Error! Bookmark not defined. Gambar 1. 4 Proses kompilasi........................................................................................... 21 Gambar 1. 5 Proses linking semua file objek..................................................................... 22 Gambar 1. 6 DEV C++....................................................................................................... 22 Gambar 1. 7 Menu file pada DEV C++ .............................................................................. 23 Gambar 1. 8 Menu edit pada Turbo C++........................................................................... 23 Gambar 1. 9 Menu project pada Turbo C++ ...................................................................... 24 Gambar 1. 10 Contoh program.............................................Error! Bookmark not defined. Gambar 1. 11 Contoh program pada Dev C++.................................................................. 25 Gambar 1. 12 Proses menjalankan contoh program ............Error! Bookmark not defined. Gambar 1. 13 Hasil menjalankan contoh program............................................................. 26 Gambar 1. 15 Contoh program yang salah pada DEV C++............................................... 27 Gambar 1. 14 Contoh program yang salah........................................................................ 27 Gambar 1. 16 Penjelasan kesalahan yang terjadi ............................................................. 28 Gambar 1. 17 Contoh program.......................................................................................... 28 Gambar 1. 18 Letak Kesalahan pada contoh program...................................................... 29 Gambar 1. 19 Menambahkan file header pada program ................................................... 29 Gambar 1. 20 Pemilihan bahasa saat menginstal Dev C++ .............................................. 30 Gambar 1. 21 Memilih menu I Agree................................................................................. 31 Gambar 1. 22 Halaman choose components .................................................................... 31
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xii Gambar 1. 24 Penginstalan Dev C++ selesai.................................................................... 32 Gambar 1. 23 Halaman pemilihan direktori penyimpanan software Dev C++.................... 32 Gambar 1. 25 Pemilihan bahasa Dev C++ ........................................................................ 33 Gambar 1. 26 Konfirmasi konfigurasi bahasa pemrograman C++..................................... 33 Gambar 1. 27 Tampilan user interface Dev C++ ............................................................... 34 Gambar 1. 28 Software Dev C++ ...................................................................................... 34 Gambar 1. 29 Membuat program baru Dev C++ ............................................................... 35 Gambar 1. 30 Editor Dev C++ ........................................................................................... 35 Gambar 1. 31 Menjalankan program................................................................................. 36 Gambar 1. 32 Menyimpan file program. ............................................................................ 36 Gambar 1. 33 Hasil menjalankan program. ....................................................................... 37 Gambar 2. 1 proses penyimpanan data di variable..........................................................41 Gambar 2. 2 bentuk kode program.................................................................................... 45 Gambar 2. 3 source kode konversi data ............................................................................ 45 Gambar 2. 4 source kode latihan C++.............................................................................. 47 Gambar 2. 5 source kode latihan C++............................................................................... 49 Gambar 2. 6 Flowchart menghitung luas persegi panjang................................................. 50 Gambar 2. 7 program menghitung luas persegi panjang dan hasil running....................... 53 Gambar 2. 8 flowchart menghitung Luas Lingkaran .......................................................... 54 Gambar 2. 9 program menghitung luas lingkaran dan hasil running.................................. 56 Gambar 2. 10 Flowchart Menghitung Volume Kerucut ...................................................... 57 Gambar 2. 11 program menghitung volume kerucut dan hasil running ............................. 60 Gambar 2. 12 flowchart menghitung volume kubus........................................................... 61
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xiii Gambar 2. 13 program menghitung volume kubus dan hasil running................................ 63 Gambar 2. 14 flowchart menghitung volume tabung ......................................................... 64 Gambar 2. 15 program menghitung volume tabung dan hasil running .............................. 67 Gambar 3. 1 keterkaitan Bahasa Pemograman C dan C++.............................................72 Gambar 3. 2 Gambar 3.2 Source code latihan C++ dan hasuil running ............................ 75 Gambar 3. 3 Source code bilangan terbesar dari dua buah bilangan................................ 77 Gambar 3. 4 Hasil running bilangan terbesar dari dua buah bilangan ............................... 77 Gambar 3. 5 flowchart untuk menentukan Bilangan Ganjil atau Genap. ........................... 78 Gambar 3. 6 Program menentukan Bilangan Ganjil atau Genap....................................... 81 Gambar 3. 7 Hasil running bilangan genap ....................................................................... 81 Gambar 3. 9 flowchart menentukan nilai terbesar dari dua buah bilangan ........................ 82 Gambar 3. 8 Gambar 3.7 Hasil running bilangan genap.................................................... 82 Gambar 3. 10 Program Menentukan Bilangan Terbesar ................................................... 84 Gambar 3. 11 Hasil running Program Menentukan Bilangan Terbesar ............................. 85 Gambar 3. 12 Konversi angka ke nilai huruf...................................................................... 86 Gambar 3. 13 Tampilan Source code di DevC++ dan Hasil running ................................. 89 Gambar 3. 14 Hasil source code diatas............................................................................. 90 Gambar 3. 15 Hasil menjalankan program........................................................................ 91 Gambar 3. 17 Hasil menjalankan dari program diatas....................................................... 93 Gambar 3. 16 Hasil dari source code diatas...................................................................... 93 Gambar 3. 18 source code diatas...................................................................................... 95 Gambar 3. 19 Hasil menajalankan program diatas............................................................ 96 Gambar 3. 20 tampilan source code diatas ....................................................................... 97
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xiv Gambar 3. 21 Hasil menjalankan dari program diatas....................................................... 98 Gambar 4. 1 Penulisan deklarasi Array satu dimensi .....................................................101 Gambar 4. 2 Ilustrasi Array Satu Dimensi........................................................................ 102 Gambar 4. 3 Contoh program menampilkan isi variabel array 1...................................... 103 Gambar 4. 4 Hasil contoh program menampilkan isi variabel array 1.............................. 103 Gambar 4. 5 Contoh program menampilkan isi variabel array 2...................................... 104 Gambar 4. 6 Hasil contoh program menampilkan isi variabel array 2.............................. 104 Gambar 4. 7 Contoh program menampilkan isi variabel array 3...................................... 105 Gambar 4. 8 Hasil contoh program menampilkan isi variabel array 3.............................. 105 Gambar 4. 9 Contoh program menampilkan isi variabel array 4...................................... 106 Gambar 4. 10 Hasil contoh program menampilkan isi variabel array 4............................ 106 Gambar 4. 11 Penulisan deklarasi array dua dimensi ..................................................... 107 Gambar 4. 12 Contoh program menampilkan isi variabel array 2.................................... 108 Gambar 4. 13 Contoh program menampilkan isi variabel array 2.................................... 109 Gambar 4. 14 Contoh program menampilkan isi variabel array 3.................................... 110 Gambar 4. 15 Hasil contoh program menampilkan isi variabel array 3............................ 110 Gambar 4. 16 Program latihan 1 ..................................................................................... 112 Gambar 4. 17 Hasil program latihan 1 ............................................................................. 112 Gambar 4. 18 Program latihan 2 ..................................................................................... 114 Gambar 4. 19 Hasil program latihan 2 ............................................................................. 114 Gambar 4. 20 Flowchart program studi kasus 1 .............................................................. 115 Gambar 4. 21 Program studi kasus 1 .............................................................................. 118 Gambar 4. 22 Hasil program studi kasus 1...................................................................... 118
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xv Gambar 4. 23 Flowchart program studi kasus 2 .............................................................. 119 Gambar 4. 24 Program studi kasus 2 .............................................................................. 121 Gambar 4. 25 Hasil program studi kasus 2...................................................................... 122 Gambar 4. 26 Flowchart program studi kasus 3 .............................................................. 122 Gambar 4. 27 Program studi kasus 3 .............................................................................. 125 Gambar 4. 28 Hasil program studi kasus 3...................................................................... 125 Gambar 4. 29 Hasil program studi kasus 3...................................................................... 125 Gambar 4. 30 Flowchart program studi kasus 4 .............................................................. 126 Gambar 4. 31 Program studi kasus 4 .............................................................................. 128 Gambar 4. 32 Hasil program studi kasus 4...................................................................... 128 Gambar 5. 1 tampilan dev C++ dan cara mulai buat program........................................135 Gambar 5. 2 Flowchart pointer konstanta........................................................................ 136 Gambar 5. 3 contoh program pointer konstanta .............................................................. 138 Gambar 5. 4 hasil compile program pointer konstanta .................................................... 138 Gambar 5. 5 Flowchart pointer variabel........................................................................... 139 Gambar 5. 6 program pointer variabel............................................................................. 141 Gambar 5. 7 hasil compile pointer variable...................................................................... 141 Gambar 5. 8 Flowchart program aritmatika ..................................................................... 142 Gambar 5. 9 program operasi pointer aritmatika ............................................................. 144 Gambar 5. 10 hasil compile pointer aritmatika................................................................. 144 Gambar 5. 11 flowchart pointer dalam array.................................................................... 145 Gambar 5. 12 program pointer dalam array..................................................................... 147 Gambar 5. 13 hasil compile pointer dalam array ............................................................. 147
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xvi Gambar 6. 1 Struktur code latihan C++..........................................................................155 Gambar 6. 2 Lanjutan struktur code latihan C++ ............................................................. 156 Gambar 6. 3 Lanjutan struktur code latihan C++ ............................................................. 156 Gambar 6. 4 Lanjutan struktur code latihan C++ ............................................................. 157 Gambar 6. 5 Hasil running............................................................................................... 157 Gambar 6. 6 Hasil running............................................................................................... 158 Gambar 6. 7 Hasil running............................................................................................... 158 Gambar 6. 8 flowchart program stack.............................................................................. 159 Gambar 6. 9 Struktur pemograman ................................................................................. 164 Gambar 6. 10 Lanjutan Struktur pemograman ................................................................ 165 Gambar 6. 11 Lanjutan Struktur pemograman ................................................................ 165 Gambar 6. 12 Lanjutan Struktur pemograman ................................................................ 166 Gambar 6. 13 Hasil running............................................................................................. 167 Gambar 6. 14 flowchart program stack............................................................................ 168 Gambar 6. 15 Struktur pemograman ............................................................................... 175 Gambar 6. 16 Struktur pemograman ............................................................................... 175 Gambar 6. 17 Hasil running............................................................................................. 176 Gambar 6. 18 Hasil running............................................................................................. 176 Gambar 7. 1 Tampilan source code diatas diDevC++ 1 (bagian 1)................................200 Gambar 7. 2 Tampilan source code diatas diDevC++ 1 (bagian 3) ................................. 201 Gambar 7. 3 Tampilan source code diatas diDevC++ 1 (bagian 2) ................................. 201 Gambar 7. 4 Tampilan source code diatas diDevC++ 1 (bagian 5) ................................. 202 Gambar 7. 5 Tampilan source code diatas diDevC++ 1 (bagian 4) ................................. 202
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xvii Gambar 7. 6 flowchart contoh soal queue 1 .................................................................... 203 Gambar 7. 7 program queue 1 (1) ................................................................................... 208 Gambar 7. 8 program queue 1 (2) ................................................................................... 209 Gambar 7. 9 program queue 1 (3) ................................................................................... 209 Gambar 7. 10 hasil running program queue 1 (1)............................................................ 210 Gambar 7. 11 flowchart contoh soal queue 2 ................................................................. 211 Gambar 7. 12 program queue 2 (1) ................................................................................. 217 Gambar 7. 13 program queue 2 (2) ................................................................................ 218 Gambar 7. 14 program queue 2 (3) ................................................................................. 219 Gambar 7. 15 hasil running program queue 2 (1)............................................................ 220 Gambar 7. 16 hasil running program queue 2 (2)............................................................ 220
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR xviii DAFTAR TABEL Table 1 Simbol Flowchart...................................................................................................... 13 Table 2 level bahasa program............................................................................................... 73
BAB I ALGORITMA DAN STRUKTUR DATA, STRUKTUR DASAR C++, DAN CONTOH DASAR C++. OLEH Ardi Salman 07352211021 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITASKHAIRUN TERNATE 2023
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 2 BAB I ALGORITMA DAN STRUKTUR DATA, STRUKTUR DASAR C++, DAN CONTOH DASAR C++. 1.1 Algoritma Apa sih yang dimaksud dengan algoritma? Nah algoritma itu berarti solusi. Ketika seseorang berbicara tentang algoritma di suatu bidang pemrograman, maka yang dimaksud adalah mecari solusi dari suatu masalah yang harus diselesaikan atau di pecahkan dengan menggunakan computer. Algoritma harus dibuat secara runut agar computer mengerti dan mampu mengeksekusinya. Anlisis suatu kasus sangat dibutuhkan dalam membuat sebuah algoritma, misalnya proses apa saja yang sekiranya dibutuhkan untuk menyelesaikan suatu masalah yang harus diselesaikan. Kemampuan dalam menganalisis sebuah kasus-kasus dapa dilihat dengan belatih untuk menyelesaikann kasus-kasus algoritma, mulai dari yang paling sederhana hingga yang sangat rumit. Dalam mempelejari algoritma sangan membutuhkan kesabaran dan analisis yang kritis. Berikuri salah satu contoh penerapan algoritma yang sering terjadi dalam kehidupan sehari-hari kita. Mari kita pertimbangkan masalah menggoreng telur. Untuk menggoreng telur, kita mengikuti langkah-langkah yang dibawah ini: 1) Siapkan penggorengan. 2) Ambil minyaknya. Apakah kita punya minyak? a) Jika ya, masukkan ke dalam panci. b) Jika tidak, apakah kita ingin membeli minyak? 1. Jika ya, maka keluarlah dan beli.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 3 2. Jika tidak, kita dapat mengakhiri. 3) Nyalakan kompor 4) Tuangkan minyak ke dalam wajan 5) Pecahkan terlur ayam ke dalam mangkok 6) Tambahkan garam secukupnya 7) Aduk campuran telur dan garam yang sudah di tambahkan sebelumnya 8) Tuangkan adonan telur ke dalam wajan 9) Masak telur hingga matang 10) Telur siap di sajikan 11) selesai Apa yang kita lakukan adalah, untuk masalah tertentu (penyiapan telur dadar), kita menyediakan prosedur langkah demi langkah untuk menyelesaikannya. Definisi formal dari suatu algoritma dapat dinyatakan sebagai berikut: Gambar Tabel 1.1 Definisi Algoritma 1.1.1 Pengertian Algoritma Menurut Para Ahli Algoritma adalah urutan langkah-langkah untuk menyelesaikan suatu persoalan atau sutau permasalahan. Terdapat beberapa defenisi lauin mengenai algoritma, tetapi pada prinsipnya senada atau sejalan dengan definisi yang diungkapkan sebelumnya yang dikutip dari beberapa literatur, antara lain: a) Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi luaran. [COR90]. Algoritma adalah instruksi langkah-demi-langkah yang jelas untuk memecahkan masalah yang diberikan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 4 b) Algoritma adalah deretan instruksi yang jelas untuk memechkan persoalan, yaitu untuk memperoleh luaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas [LEVo3]. c) Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun sevara sistematis. (Rinaldi Munir) d) Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah. (KBBI tahun 1988) Algoritma harus dipikirkan secara logika di pikiran manusia dengan pemikiran yang lebih mudah dipahami yakni menggunakan gamnbaran-gambaran tertentu di dalam pikiran agar dapat lebih mudah dipahami oleh manusia serta dapat dengan mudah dipetakan atau diubah menjadi bahasa pemrograman untuk dieksekusi oleh computer. Algoritma harus dibuat dengan pemikiran atau pemahaman yang lebih detail dari proses-proses yang ada diblogika kita. Jadi dari beberapa pernyataan mengenai definisi algoritma dapat disimpulkan bahwa algoritma adalah ilmu yang mempelajari cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu. Berikut contoh penyelesaian masalah algoritma: Membuat algoritma untuk menghitung luas persegi panjang, caranya: 1) Menentukan nilai panjang. 2) Menentukan nilai lebar. 3) Menghitung luas persegi panjang adalah ddengan cara mengkalikan nilai panjang dengan nilai lebar (P*L).
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 5 4) Maka luas persegi panjang ditemukan. 5) Selesai. 1.1.2 Ciri – Ciri Algoritma 1) Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 2) Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). 3) Algoritma memiliki nol atau lebih masukkan. 4) Algoritma memiliki satu atau lebih keluaran. 5) Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal). 1.2 Struktur data Istilah struktur data dan algoritma tidak bisa terpisahkan. Jika kita berbicara tentang struktur data maka kita juga berbicara mengenai algoritma. Struktur data adalah pengaturan datan dalam memori computer atau terkadang di dalam disk dengan tujuan agar data diakses secara efesien. Contoh yang termasuk didalam struktur data antara lain senarai berantai, antrian, tumpukan, dan pohon biner. Adapun yang dimaksud algoritma adalah langkah – langkah atau proses yang ditujukan untuk memanipulasi data. Sebagai contoh, algoritma diperlukan untuk memasukan data ked ala m strukturn data atau untuk mencari suatu data yang tersimpan dari struktur data. Struktur data yaitu cara menyimpan dan mengatur data dengan menyusunnya secara terstruktur pasa sistem komputer atau database yang memudahkan dalam akses. Secara teknis, data yang berupa angka, huruf, simbol, dan lainnya ini ditempatkan pada kolom-kolom dan susunan tertentu.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 6 Dalam istilah ilmu komputer, struktur data adalah cara menyimpan dan mengatur data secara terstruktur dan tertata pada sistem komputer atau database sehingga lebih mudah diakses. Secara teknisi, data dalam bentuk angka, huruf, simbol, dan lainnya ini diletakkan dalam kolom-kolom dan susunan tertentu. Contoh struktur data dapat dilihat pada berkas-berkas lembar sebar (spreadsheet), pangkalan data, pengolah kata, citra yang dipampat (compressed image), dan pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolomkolom data, baik itu kolom yang tampak oleh pengguna ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan basis data (misalnya untuk keperluan data keuangan) atau untuk pengolah kata yang kolomnya berubah secara dinamis. Struktur data adalah basis dari tipe data abstrak. Tipe data abstrak mendefinisikan bentuk logis dari sebuah tipe data, sementara struktur data mengimplementasikan bentuk fisik dari tipe data tersebut. Masing-masing jenis struktur data yang berbeda cocok untuk penggunaan-penggunaan yang berbeda, dan beberapa jenis memang dispesialisakian untuk tugas tertentu. Contohnya, basis data relasional biasanya menggunakan indeks Btree untuk data retrieval, sedangkan implementasi kompilator biasanya menggunakan tabel hash untuk menemukan pengidentifikasi.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 7 Struktur data memberikan cara mengelola data yang banyak secara efisien untuk berbagai penggunaan, misalnya untuk basis data yang besar dan layanan pengindeksan internet. Biasanya, struktur data yang efisien adalah kunci untuk mendesain algoritme yang efisien. Beberapa metode desain formal dan bahasa pemrograman menekankan struktur data, bukan pada algoritme, sebagai faktor kunci dalam mengatur desain perangkat lunak. Struktur data bisa digunakan untuk mengatur penyimpanan dan pengambilan informasi yang disimpan baik di dalam memori utama maupun memori sekunder. Tipe data adalah cara untuk mengklasifikasikan berbagai jenis data seperti integer, string, dll yang menentukan nilai yang dapat digunakan dengan jenis data yang sesuai, jenis operasi yang dapat dilakukan pada jenis data yang sesuai. Tipe data adalah pengelompokan data berdasarkan isi dan sifatnya, yang mana dalam bidang informatika tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer 1.2.1 Tipe data terbagi atas dua yakni, Built-in Data Type dan Derived Data Type. 1) Built-in Data Type. Yaitu tipe data bawaan, yang mana merupakan tipe data yang sudah ditentukan / dibawa oleh sebuah bahasa pemrograman (Integers, Boolean (true, false), Floating (Decimal numbers), Character and Strings) 2) Derived Data Type atau Tipe Data Turunan, yaitu tipe data yang implementasinya independen karena dapat diimplementasikan dalam satu atau lain cara. Tipe data ini biasanya dibangun oleh kombinasi tipe data primer atau built-in dan operasi terkait pada tipe data tsb (List, Array, Stack, Queue)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 8 Secara garis besar tipe data dapat dikatagorikan menjadi tiga maca yaitu tipe data dasar (primitive data type) tipe data bentukan (composite data type) dan tipe data abstrak (abstract data type). a) Tipe data dasar atau tipe data sederhana atau biasajuga disebut dengan tipe data primitif adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa pemrograman tertentu. Tipe data dasar yaitu terdiri dari Integer, float, char, dan Boolean. b) Tipe data bentukan atau tipe data komposit adalah tipe data yang dibentuk dari tipe data dasar dengan maksud mempermudah pekerjaan programer. Yang masuk dalam tipe data bentukan adalah array, string, record, union, struct, dan lainlain. c) Tipe data abstrak adalah tipe data yang didefinisikan sendiri oleh pemrogram untuk suatu keperluan tertentu yang tidak memungkinkan untuk mendeklarasikan dari tipe data yang sudah ada. Contoh tipe data abstrak adalah stack, queue, list, tree, graph, danlain-lain. 1.2.2 Tiga struktur dasar Algoritma yaitu sebagai berikut: a) Runtunan (Sequence) Adalah struktur yang di gunakan untuk mengerjakan jenis program yang pernyataannya sequential atau berurutan. Sebuah runtutan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya. Sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 9 dikerjakan. Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan penulisan berubah maka mungkin juga hasil akhirnya berubah. b) Pemilihan (Selection) Adalah struktur yang digunakan pada program yang memerlukan proses pengujian kondisi untuk mengambil suatu keputusan apakah suatu baris perintah akan diproses atau tidak. Kadang terdapat suatu kejadian yang baru akan dikerjakan jika suatu kondisi tertentu telah terpenuhi. Pemilihan yaitu instruksi yang dikerjakan dengan kondisi tertentu. Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Satu atau beberapa instruksi hanya dilaksanakan apabila kondisi bernilai benar, sebaliknya apabila sala maka instruksi tidak akan dilaksanakan. c) Pengulangan (Looping/Repetition) Adalahn struktur yang melakukan pengulangan beberapa kali terhadap satu baris atau satu blok baris program. Salah satu kelebihan komputer adalah Contoh: Perhatikan operasi aritmatika berikut ini, Tetapi bila urutan aksinya diubah maka hasil keluaran akan berbeda menjadi (6 + 3) *5 = 45 6 + (3 * 5) = 21 Contoh: Penentuan bilangan genap atau ganjil berikut: 1. Masukkan bilangan sebagai sebuah bilangan bulat. 2. Bagi bilangan dengan angka 2, sisa nilai sisa pembagian dalam variable sisa. 3. Jika nilai sisa sama dengan 0 maka kerjakan langkah 4. 4. Tampilkan “GENAP” ke layar. 5. Jika nilai sisa tidak sama dengan 0 maka kerjakan langkah 6 6. Tampilkan “GANJIL” ke layar.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 10 kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah. Kita tidak perlu menulis instruksi yang sama berulang kali, tetapi cukup melakukan pengulangan dengan instruksi yang tersedia. Perulangan merupakan kegiatan mengerjakan sebuat atau sejumlah aksi yang sama sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan. 1.2.3 Flowchart Flowchart adalah cara penulisan algoritma dengan menggunakan notasi grafis. Flowchart merupakan gambar atau bagian yang memperhatikan urutan atau langkahlangkah dari suatu program dan hubungan antar proses berserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukanpengecekan bagian-bagian yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasiantara pemrogram yang bekerja dalam tim Contoh: Menampilkan huruf tertentu sebanyak n kali ke layar sebagai bweerikut: a) Deklarasikan variable huruf u tuk menyimpan karakter yanga akan ditampilkan. b) Deklarasikan variable n untuk menyimpan banyaknya perulangan. c) Deklarasikan variable counter yang digunakan sebagai counter perulangan yang sudah dilakukan. d) Masukkan swebuah karakter dan simpan dalam variable huruf e) Masukkan banyaknnya perulangan yang diinginkan dan simpan dalam variable n. f) Set nilai counter dengan 0 g) Tampilkan huruf ke layar h) Lakukan penambahan counter dengan 1 i) Jika nilai counter < n, kerjakan langkah selanjutnya j) Jika nilai counter = n selesai.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 11 suatu proyek. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatifalternatif lain dalam pengoperasian. Flowchart program menggambarkan urutan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program. Programmer menggunakan flowchart program untuk menggambarkan urutan instruksi. 1.2.4 Hal yang harus diperhatikan dalam pembuatan flowchart a) Flowchart digambarkan di suatu halaman dimulai dari sisi atas ke bawah dan dari sisi kiri ke kanan. b) Aktivitas yang digambarkan harus didefinisikan dengan menggunakan bahasa dan simbol yangtepat dan definisi ini harus dapat dimengerti oleh pembacanya. c) Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas. Hanya terdapat satu titik awal dan satu titik akhir. d) Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas. Hanya terdapat satu titik awal dan satu titik akhir. e) Setiap langkah dari aktivitas harus berada pada urutan yang benar. f) Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati- hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 12 1.2.5 Simbol Flowchart SIMBOL NAMA FUNSI CONTOH Terminator Simbol awal (start) / simbol akhir (End) Flow Line Simbol aliran / penghubung Proses Perhitungan / pengolahan Input / Output data Mempresentasikan pembacaan data (read) / penulisan (write) Decision Simbol pernyataan pilihan, berisis sesuatu kondisi yang selalu menghasilkan 2 nilai keluaran benar atau salah T F Start End Start Luas = Panjang*lebar Total = total + 6 Read radius False= =true?
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 13 preparation Inisialisasi / pemberian nilai awal Predefined process (subprogram) Proses menjalankan subprogram / fungsi / prosedur On page Connector Penghubung Flowchart pada satu halaman Off page connnector Penghubung Flowchart pada halaman berbeda Phi = 3.14 ketemu=f alse Int max (a,b) A A 2 2 Table 1 Simbol Flowchart
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 14 1.2.6 Contoh Kasus Misalnya buatlah sebuah rancangan program dengan menggunakan flowchart menentukan bilangan ganjil atau genap. Gambar 1. 1 flowchart untuk menentukan Bilangan Ganjil atau Genap.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 15 1.3 Struktur dasar C++ Struktur Dasar Bahasa Pemrograman C++ Kode program yang kita jalankan sebelumnya sangat sederhana, tapi itu sudah mewakili struktur dasar dari sebuah bahasa pemrograman C++. Berikut saya tampilkan kembali kode program yang dimaksud: a. #include <iostream> Di baris paling awal terdapat kode #include <iostream>. Perintah #include dipakai untuk memasukkan sebuah file khusus yang memungkinkan kita mengakses berbagai fitur tambahan dalam bahasa C++. Dalam contoh diatas, file iostream berisi kode Gambar 1. 2 kode program.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 16 program agar nantinya kita bisa mengakses perintah input/output seperti cout dan cin. iostream sendiri merupakan singkatan dari input output stream. Dengan kata lain, agar di dalam kode program nanti kita bisa menggunakan perintah cout, di bagian paling atas kode program C++ harus terdapat baris #include <iostream>. File include ini juga sering disebut sebagai header file. Bahasa C++ menerapkan konsep modular, dimana fitur-fitur yang ada di pecah ke berbagai file. Jika ingin menggunakan perintah tertentu, panggil header file yang sesuai. Contoh file header lain seperti #include <fstream> atau #include <cmath> yang akan dibutuhkan saat ingin membaca file atau menjalankan function matematika. Hasilnya, ukuran file program yang ditulis dalam bahasa C++ menjadi efisien. Kita hanya perlu menggunakan header file saat dibutuhkan saja. Namun kebalikannya, setiap ingin menggunakan perintah tertentu, harus men-include-kan file header yang dibutuhkan. b. int main() { } Struktur main() pada dasarnya merupakan sebuah fungsi (function). Isi dari function ini diawali dan diakhiri dengan tanda kurung kurawal = { = dan = } <. Di dalam tanda kurung inilah <isi= dari kode program penyusun function main() ditulis. Function main() merupakan kode program utama dalam mayoritas aplikasi bahasa C++. Di sinilah kita akan banyak menulis kode program. Sedikit berbeda dengan bahasa C, function main() di dalam file C++ boleh saja tidak ditulis, terutama jika ingin membuat sebuah file header atau file bantu (file yang berisi
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 17 berbagai function lain). Namun dalam kebanyakan situasi, function main() selalu ada dalam kode yang akan kita buat. Perintah <int= sebelum main() menandakan nilai kembalian atau hasil akhir dari function main(). Kode int merupakan singkatan dari integer, yakni tipe data angka bulat. Dengan demikian, kode program main() yang saya tulis harus menghasilkan sebuah angka bulat (menggunakan perintah return yang akan kita bahas sesaat lagi). c. std::cout << <Hello World!=; Perintah std::cout berguna untuk menampilkan sesuatu ke layar. Perintah ini merupakan bagian dari header iostream, sehingga jika kita ingin menggunakannya harus terdapat perintah #include <iostream> di bagian paling awal kode program bahasa C++. Teks yang ingin ditampilkan ditulis setelah tanda << dan berada dalam tanda kutip dua, seperti std::cout << <Hello World!=. Hasil dari perintah ini, akan tampil teks Hello, World! di layar. Di akhir perintah std::cout terdapat tanda titik koma (semi-colon), yakni tanda < ; =. Setiap perintah bahasa C++ harus diakhiri dengan tanda ini, kecuali beberapa perintah khusus. Lupa menambahkan tanda titik koma di akhir sebuah perintah merupakan error yang sangat sering terjadi. Sebenarnya, perintah std::cout terdiri dari 2 bagian, yakni: namespace std, dan perintah cout. Namespace adalah fitur penamaan yang biasa ada dalam bahasa pemrograman yang menerapkan konsep OOP (object oriented programming). Tujuannya supaya berbagai perintah tidak saling bentrok. Perintah std::cout artinya kita menjalankan perintah cout <milik= std namespace. Bisa saja nantinya ada perintah
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 18 foo::cout yang berarti kita menjalankan perintah cout kepunyaan namespace foo. Dalam contoh ini, bahasa C++ membolehkan ada 2 perintah cout, selama dipanggil dari namespace yang berbeda. Jika kita ingin menampilkan beberapa teks, bisa menulis perintah std::cout beberapa kali seperti contoh berikut: d. Tambahan karakter <\n= Di akhir perintah std::cout pada baris 5 dipakai untuk pindah baris (new line). Tujuannya agar teks yang ada di dalam perintah std::cout di baris 6 pindah ke baris baru. Alternatif penulisan lain adalah mendeklarasikan namespace std di bagian awal kode program dengan perintah using namespace std: Gambar 1. 3 kode program.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 19 Perintah using namespace std di baris 3 bertujuan agar kita tidak perlu menulis namaspace std:: di setiap perintah cout. Tidak ada benar atau salah dari kedua cara penulisan ini, lebih ke kesukaan saja. Namun mayoritas tutorial lebih banyak menggunakan cara penulisan yang kedua, yakni memakai perintah using namespace std di awal kode program. e. return 0; Perintah return 0; berhubungan dengan kode int main() sebelumnya. Disinilah kita menutup function main() yang sekaligus mengakhiri kode program bahasa C++. Return 0 artinya kembalikan nilai 0 (nol) ke sistem operasi yang menjalankan kode program ini. Nilai 0 menandakan kode program berjalan normal dan tidak ada masalah (EXIT_SUCCESS). Kita juga bisa menulis return 1, return 99, return -1, dll. Nilainilai ini nantinya bisa dipakai oleh sistem operasi atau program lain. Nilai return selain 0 dianggap terjadi error atau sesuatu yang salah (EXIT_FAILURE). 1.3.1 Sejarah Bahasa C++ Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson sebenarnya merupakan pengembangan dari bahsa BCPL (Basic Combined Apakah perintah Return 0 ini harus ditulis? Haru ditulis! itu jika kita berpatokan ke struktur bahasa C++ yang ideal. Namun beberapa compiler Code:Blocks), <memaafkan= perintah ditulis menambahkan perintah return 0 secara otomatis. Apakah perintah Return 0 ini harus ditulis? Haru ditulis! itu jika kita berpatokan ke struktur bahasa C++ yang ideal. Namun beberapa compiler Code:Blocks), <memaafkan= perintah ditulis menambahkan perintah return 0 secara otomatis. Apakah perintah Return 0 ini harus ditulis? Haru ditulis! itu jika kita berpatokan ke struktur bahasa C++ yang ideal. Namun beberapa compiler Code:Blocks), <memaafkan= perintah ditulis menambahkan perintah return 0 secara otomatis. dan ini (termasuk (termasuk (termasuk tidak akan jika Apakah perintah Return 0 ini harus ditulis? Harus ditulis! itu jika kita berpatokan ke struktur bahasa C++ yang ideal. Namun beberapa compiler (termasuk Code:Blocks), akan <memaafkan= jika perintah ini tidak ditulis dan menambahkan perintah return 0 secara otomatis.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 20 Programming Language) yang diciptakan oleh Martin Richard. Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropa yang seelumnya menggunakan bahasa B dan BCPL. Dalam perkembangannya, bahasa C menjadi bahasa paling popular diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN. Tahun 1989,dunia pemrograman C mengalami peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standards Institute (ANSI). Bahasa C yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C. Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++. Sebenarnya bahasa C++ mengalami dua tahap evolusi.C++ yang pertama, dirilis oleh AT & T Laboratories, dinamakan cfront. C++ versi kuno ini hanya berupa compiler yang menerjemahkan C++ menjadi bahasa C. Pada evolusi selanjutnya, Borland International Inc. mengembangkan compiler C++ menjadi sebuah compiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi objek yang digunakan oleh sebagian besar pemrogram professional. 1.3.2 Mengenal editor Bahasa C++ Apapun bahasa pemrograman yang digunakan, untuk menulis perintah / instruksi diperlukan tempat untuk mengetikkan perintah tersebut.Tempat yang digunakan untuk menulis perintah ini sering disebut editor. Agar pembuatan program C++ menjadi mudah, dalam buku ini, editor yang digunakan adalah turbo C++.Tidak ada keharusan menggunakan editor turbo C++, masih ada beberapa editor yang masih dapat digunakan, diantaranya borland C++, GCC (untuk pengguna Linux). Dengan menggunakan editor ini,
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 21 proses pengetikan perintah C++, proses kompilasi dan proses untuk melihat hasilnya cukup menggunakan editor ini. Jadi dengan editor ini proses pembuatan program adalah: 1. Buat program. 2. Lakukan proses kompilasi, proses kompilasi akan berhasil jika susunan program yang diketik tidak mengandung kesalahan sintak (kesalahan aturan dalam tata tulis pemrograman). 3. Jalankan program / eksekusi. 4. Akan tampil dari hasil dari program yang di jalankan. Compiler adalah suatu program yang menerjemahkan bahasa program (source code) kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali. Gambar 1. 4 Proses kompilasi Linking adalah suatu proses setelah program mengkompilasi kode programyang kemudian menterjemahkan program objek (bereksention OBJ) ke bentuk program eksekusi (berekstension EXE atau COM). Sedangkan untuk membuat file object ke bentuk
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 22 file yang dapat dieksekusi(berekstension.COM atau.EXE) bisa menggunakan file TLINK.EXE. Gambar 1. 5 Proses linking semua file objek 1.3.3 Proses instalasi C++ Agar bisa menggunakan C++, install bahasa C++ dan untuk memulai bekerja buka dan jalankan DEV C++. Hasil awal, akan tampil editor seperti di bawah ini: Gambar 1. 6 DEV C++ Selanjutnya pada menu file digunakan untuk proses menyimpan, mengambil file, membuka file dari direktori penyimpanan, dan lainnya. Tempat untuk mengetikkan program C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 23 Gambar 1. 7 Menu file pada DEV C++ Kemudian pada menu edit biasanya digunakan untuk proses menyalin, memotong teks dan lainnya. Yaitu sebagai berikut. Gambar 1. 8 Menu edit pada Turbo C++ Menu selanjutnya menu project, pada menu ini digunakan untuk proses kompilasi, membuat project baru, membuka project dari direktori penyimpanan, dan lainnya. Menu ini digunakan untuk proses menyimpan, mengambil file dan sebagainya. Menu ini digunakan untuk proses menyalin, memotong teks dan lainnya.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 24 Gambar 1. 9 Menu project pada Turbo C++ 1.3.4 Membuat program C++ Setiap bahasa (tidak hanya bahasa manusia), pasti mempunyai aturan-aturan yang spesifik. Demikian juga bahasa C++, juga mempunyai aturan-aturan. Aturan ini harus benar-benar diperhatikan, salah penulisan, misal hanya kurang koma/titik akan berakibat proses kompilasi gagal dan program tidak bisa dijalankan. Manu ini digunakan untuk proses complete, run dan lainnya. Gambar 1. 10 Contoh program
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 25 Contoh program pada gambar di atas di ketikkan pada editor Turbo C++.Kemudian untuk langkah selanjutnya mengecek apakah ada kesalahan pada perintah yang dituliskan. Gambar 1. 11 Contoh program pada Dev C++ Setelah mengetikkan program pada, selanjutnya klik ikon untuk mengkompilasi program. Gambar 1. 12 Proses menjalankan contoh program
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 26 Setelah program selesai mengkompilasi, akan tampil hasil dari program yang di buat. Gambar 1. 13 Hasil menjalankan contoh program 1.3.5 Memahami Kesalahan Aturan Sintaks Pada Bahasa C++ Pengertian aturan sintak itu sendiri adalah sekumpulan aturan-aturan yang harus dipatuhi saat mengetikkan program. Aturan-aturan sederhana yang perlu diperhatikan diantaranya: 1. Bahasa C++ membedakan antara huruf besar dengan huruf kecil. 2. Setiap akhir perintah diakhiri dengan tanda titik koma (;). Untuk lebih memahami kesalahan pada sintak, terdapat program pada contoh gambar di bawah.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 27 Hasil dari program di atas akan muncul halaman yang menampilkan terjadi kesalahan pada program. Gambar 1. 15 Contoh program yang salah pada DEV C++ Kenapa program pada gambar di atas terjadi kesalahan, hal ini disebabkan ada kekurangan dalam penulisan cout<<”selamat datang” di C++ kurang tanda titik koma (;). Letak kesalahan ini akan ditunjukan Bahasa C++ dengan menginformasikan letak baris yang terjadi kesalahan serta penjelasan kenapa terjadi kesalahan. Jadi, Agar tidak bingung saat terjadi kesalahan, lihat pesan kesalahan dan konsentrasi pada baris kesalahan dan lakukan perbaikan. Proses compile dan run yang gagal Gambar 1. 14 Contoh program yang salah
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 28 Gambar 1. 16 Penjelasan kesalahan yang terjadi Seiring dengan bertambahnya materi yang dipelajari, kemungkinan muncul kesalahan juga makin kompleks, untuk itu benar-benar diperhatikan aturan penulisan/sintak setiap perintah. 1.4 Contoh Dasar C++ Perhatikan program pada gambar di bawah ini.Pada program di bawah terdapat fungsi main yang berisi perintah cout untuk menampilkan kata “Selamat datang”. Gambar 1. 17 Contoh program
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 29 1.4.1 Penjelasan 1. Program di atas terjadi kesalahan, karena perintah cout belum dicantumkan file header iostream. Gambar 1. 18 Letak Kesalahan pada contoh program 2. Tambahkan file header iostream dalam program tersebut. Gambar 1. 19 Menambahkan file header pada program
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 30 3. Hasil kompilasi akan menghasilkan file exe, cari file tersebut disimpan. 4. Jalankan file exe tersebut tanpa melalui editor C++, langsung dari folder. 5. Bila diinginkan melakukan modifikasi, bisakah hal tersebut dilakukan. 6. Buka kembali file teks yang ada di editor C++, lakukan modifikasi, bisakah hal tersebut dilakukan. 1.4.2 Latihan 1. Install bahasa C++ di komputer. 2. Jalankan semua program di atas, pahami dan pelajari aturan bahasa C++. 1.4.3 Install Bahasa C++ 1. Double klik installer DEV C++ yang telah di download. 2. Pilih bahasa English, Kemudian klik Ok. Gambar 1. 20 Pemilihan bahasa saat menginstal Dev C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 31 3. Masuk ke menu selanjutnya, tinggal Klik I Agree seperti digambar berikut. Gambar 1. 21 Memilih menu I Agree 4. Lalu, untuk choose components, pilih saja Full, Kemudian Next. Gambar 1. 22 Halaman choose components