Pengenalan Algoritma dan Struktur Program

Ukuran: px
Mulai penontonan dengan halaman:

Download "Pengenalan Algoritma dan Struktur Program"

Transkripsi

1 Materi I Pengenalan Algoritma dan Struktur Program Sasaran Perkuliahan : 1) Mahasiswa dapat memahami definisi algoritma 2) Mahasiswa dapat memahami ciri, syarat dan kriteria algoritma 3) Mahasiswa dapat mengetahui cara penulisan algoritma 4) Mahasiswa dapat mengetahui struktur alur algoritma 5) Mahasiswa dapat mengetahui struktur program yang akan digunakan untuk mengimplementasikan algorima 1. Definisi Algoritma Definisi algoritma diuraikan secara beragam dari berbagai literatur. Walaupun definisi satu dengan yang lain bisa saja berbeda, tapi semuanya mendekatkan diri pada tata cara penulisan suatu bahasa pemrograman yang bentuknya umum. Sehingga dalam mempelajari algoritma akan dikaitkan dengan program yang dibentuk atau ditulis dalam suatu bahasa yang disebut dengan bahasa pemrograman walaupun sebenarnya algoritma itu sendiri tidak terikat dengan salah satu bahasa pemrograman manapun. Contoh dari bahasa pemrograman yaitu bahasa COBOL, bahasa BASIC, bahasa Pascal, bahasa C, bahasa java dan lain sebagainya. Dalam diktat ini, algoritma yang akan dipelajari lebih mendekatkan dengan bahasa C++, bahasa pemrograman yang mempunyai struktur yang baik sehingga mudah untuk dipahami dengan kompiler dan tools menggunakan Microsoft Visual C++ dan Borland C Pada dasarnya algoritma adalah alur pikiran dalam menyelesaikan suatu pekerjaan yang dituangkan dalam bentuk tertulis yang dapat dimengerti oleh orang lain. Alur pikiran seseorang dapat berbeda dengan alur pikiran orang lain dalam menyelesaikan pekerjaan yang sama dengan hasil yang sama walaupun ditempuh dengan cara yang berbeda. Algoritma juga diartikan sebagai urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Artinya, setiap langkah harus dapat dikerjakan dan mempunyai efek tertentu, sehingga langkahlangkah yang tidak dapat dikerjakan dan tidak menghasilkan efek tertentu tidak dapat disebut algoritma. Bila dikaitkan dengan bahasa pemrograman, secara bebas definisi algoritma yang akan dipelajari adalah sekumpulan instruksi, yang apabila dijalankan, akan menyelesaikan suatu tugas tertentu. Sedangkan kata algoritma sendiri diambil dari nama ilmuwan muslim yaitu Abu Ja far Muhammad bin Musa Al-Khwarizmi. 2. Syarat, Ciri & Kriteria Algoritma Secara umum syarat atau ciri dari algoritma sebagai berikut : a. Algoritma harus tidak ambigu (unambiguous) Deskripsi langkah-langkah dalam algoritma harus dan hanya mempunyai tafsiran tunggal. b. Algoritma harus tepat (precise) Algoritma harus menyatakan urutan-urutan langkahnya. c. Algoritma harus pasti (definite) Setiap instruksi jelas maksudnya dan tidak meragukan, sehingga jika serangkaian langkah yang sama dilakukan dua kali maka hasilnya harus selalu sama. d. Algoritma harus berhingga (finite) Algoritma baik secara keseluruhan maupun sub algoritma bila ditelusuri harus ada titik berhentinya. Algoritma & Struktur Data 1 - STMIK Atma Luhur 1

2 e. Algoritma tidak harus ada data masukan yang dimasukkan dari luar f. Algoritma paling tidak ada satu buah keluaran 3. Cara Penulisan Algoritma Penulisan algoritma setidaknya ada 3 cara untuk menguraikannya, yaitu : a. Uraian Deskriptif Adalah uraian yang menggunakan bahasa yang biasa digunakan sehari-hari. Pengurutan bilangan genap pada kasus diatas merupakan contoh penulisan algoritma menggunakan uraian deskriptif. b. Pseudocode Yang dimaksud dengan pseudocode adalah kode atau tanda atau ceritera yang menyerupai atau merupakan (pseudo) penjelasan cara menyelesaikan persoalan. Kode atau tanda atau ceritera tersebut ditulis dalam suatu bahasa yang dimengerti oleh manusia. Pseudocode dapat dikembangkan sendiri, asalkan arti dari setiap kode disepakati bersama. Algoritma dalam contoh kasus diatas jika dituliskan kedalam bentuk pseudocode menjadi : input (b) i 0 j 0 while (i <= b) do i i + j j j + 1 if i mod 2 = 0 then output (i) end c. Flowchart (Bagan Alir) Adalah penulisan algoritma dengan menggunakan notasi grafik atau gambar. Terdapat lima macam bentuk gambar atau notasi dasar yang dianggap baku dalam penggambaran flowchart. Terminal / Notasi kapsul, untuk menggambarkan START (Mulai) dan END (Selesai). Terminal hanya sebagai tanda, tidak melakukan suatu pekerjaan khusus. I/O, Input/Output Operation atau Notasi jajaran genjang, untuk menggambarkan pembacaan data (input/read) dan untuk menampilkan data atau proses tulis (output/write). Process atau notasi empat persegi panjang, menggambarkan proses dalam bagan alir. Decision atau notasi belah ketupat menggambarkan keputusan sesuai dengan suatu kondisi. Notasi ini mempunyai dua panah keluar (dua nilai keluaran) yang bernilai true (ya, benar) dan false (tidak, salah). Garis, untuk menyatakan urutan pelaksanaan atau alur proses. Algoritma & Struktur Data 1 - STMIK Atma Luhur 2

3 Dari contoh kasus diatas, flowchartnya dapat digambarkan sebagai berikut : START input (b) i 0 j 0 i < b true false i i + j j j + 1 i mod 2 = 0 true false output (i) END 4. Struktur Alur Algoritma Algoritma mempunyai 3 macam struktur alur, yaitu : a. Struktur Sequential Pada struktur ini, perintah-perintah atau instruksi dilaksanakan secara berurutan sesuai dengan urutan penulisannya. Contoh : A 0 B 0 N 5 for I 1 to n do A A + 2 B A + 3 end output (A) output (B) Atau : A 0 ; B 0 ; N 5; for I 1 to n do A A + 2 ; B A + 3 ; end output (A); output (B); Pada contoh diatas, perintah atau instruksi yang dilingkari termasuk kedalam struktur sequential pada algoritma. Algoritma & Struktur Data 1 - STMIK Atma Luhur 3

4 b. Struktur Conditional Branch / Selection Pada struktur ini memungkinkan beberapa perintah/instruksi tidak dikerjakan, karena struktur ini alur algoritma akan menjadi bercabang, sehingga hanya alur perintah yang terseleksi/terpenuhi saja yang akan dikerjakan. Ada dua macam struktur Conditional Branch yaitu : 1) Simple Conditional Branch (menggunakan if statement) 2) Multiway Conditional Branch (menggunakan case statement) Mengenai kedua macam struktur ini, akan dibahas lebih lanjut pada bab berikutnya. Contoh : 1) input (a) 2) if (a <= 5) then 3) a a ) else 5) a a 100 6) end 7) output(a) Pada contoh diatas, jika a diinput dengan nilai 5 maka instruksi yang akan dikerjakan yaitu 1, 2, 3, 6, 7. Tetapi jika a diinput dengan nilai 6, maka instruksi yang akan dikerjakan yaitu 1, 2, 4, 5, 6, 7. Berikut flowchart dari contoh diatas : START input (a) false a < 5 true a a a a output (a) END Algoritma & Struktur Data 1 - STMIK Atma Luhur 4

5 c. Struktur Loop Struktur ini memungkinkan beberapa perintah atau instruksi akan dikerjakan berulangulang. Ada dua macam struktur loop yaitu : 1) Unconditional Loop 2) Conditional Loop Untuk dua macam struktur loop ini akan dibahas lebih lanjut pada bab berikutnya. Contoh : 1) T 0 2) I 1 3) WHILE I <= 100 4) DO 5) READ(A) 6) T T + A 7) I I + 1 8) ENDDO 9) WRITE(T) Pada contoh diatas perintah-perintah yang termasuk kedalam struktur loop adalah 3, 4, 5, 6, 7, 8. Perintah-perintah tersebut akan dikerjakan berulang sesuai dengan kondisi yang diberikan. 5. Bahasa Pemrograman C++ Cikal bakal dari Bahasa Pemrograman C++ adalah bahasa C yang dikembangkan mulai awal tahun 1980 oleh Bjarne Stroustrup dari AT&T Bell Laboratories. Bahasa Pemrograman C++ merupakan pengembangan dari bahasa C dan pengembangannya diresmikan pada tahun Tahun 1989, dunia pemrograman C mengalami peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standars Institute (ANSI), yang kemudian dikenal dengan nama ANSI C. Sebenarnya bahasa C++ mengalami dua tahap evolusi. Bahasa C++ yang pertama, dirilis oleh AT&T Laboratories dan dinamai dengan cfront. Bahasa C++ versi pertama ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C. Pada evolusi selanjutnya, Borland International Inc. mengembangkan kompiler C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi obyek yang digunakan oleh sebagian besar pemrogram professional (sumber : wikipedia.org). Algoritma & Struktur Data 1 - STMIK Atma Luhur 5

6 6. Struktur Program C++ Setiap bahasa pemrograman mempunyai ciri dan struktur program tersendiri. Struktur program menjadi bagian dari program yang akan dibuat. Struktur dari program memberikan gambaran secara luas, bagaimana bentuk dari program secara umum. Adapun struktur utama dari bahasa pemrograman C++ adalah : void main ( ) statement ; statement ; statement ; Struktur dari program C++ dapat dilihat dan pada hakekatnya adalah tersusun dari sebuah atau lebih blok-blok fungsi. Fungsi pertama yang harus ada di program C++ adalah main(), fungsi yang sudah ditentukan. Fungsi ini lah yang menjadi titik awal dan titik akhir eksekusi dari program. C++ juga merupakan bahasa pemrograman yang bersifat case sensitive, yang berarti penulisan program menggunakan huruf kapital ataupun huruf kecil pada kode program dapat berarti lain. Pasangan kurung kurawal menandakan awal dan akhir kumpulan dari instruksiinstruksi yang akan dikerjakan di dalam fungsi. Setiap instruksi atau baris-baris perintah harus diakhiri dengan titik koma untuk menandakan akhir dari satu baris perintah. C++ menyediakan file judul (header file) yaitu file yang diantaranya berisi deklarasi fungsi dan definisi konstanta. File-file ini mempunyai ciri yaitu namanya diakhiri dengan ekstension.h. Apabila file judul tersebut akan digunakan pada suatu program, maka file judul tersebut harus diikut sertakan didalam program dengan menggunakan pengarah praprosesor. Pengarah praprosesor yang dipakai untuk membaca file judul adalah #include. Bentuk umum #include #include <namafile> atau #include namafile Berikut adalah contoh program sederhana dari bahasa pemrograman C++ : Nama Program : contoh1.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 6

7 Materi II Tipe Data, Variabel, Konstanta dan Operator Sasaran Perkuliahan : 1) Mahasiswa dapat memahami mengenai Tipe Data 2) Mahasiswa dapat memahami mengenai Variabel 3) Mahasiswa dapat memahami mengenai Konstanta 4) Mahasiswa dapat memahami mengenai Operator 1. Tipe Data Tipe data adalah pengelompokkan data berdasarkan isi dan sifatnya. Didalam pemrograman, sifat dari data adalah karakter, bilangan bulat, bilangan pecahan atau boolean. Tipe Data biasanya selalu berpasangan dengan variabel. Berikut Tabel Tipe Data Dasar (Basic Data Type) yang digunakan dalam Bahasa C++. Sebutan Tipe Data Bentuk Penulisan Dalam Bahasa C Jumlah Byte Yang Diperlukan Jangkauan Nilai Numerik Character char atau signed char s.d 127 unsigned char 1 0 s.d 255 Integer int atau signed int atau signed s.d unsigned int atau unsigned 2 0 s.d long atau long int atau signed long atau signed long int unsigned long atau unsigned long int s.d s.d Floating point single precision Float 4 3.4E-38 s.d 3.4E38 Positif atau negatip Algoritma & Struktur Data 1 - STMIK Atma Luhur 7

8 Floating double precision point double long double E-308 s.d 1.7E308 Positif atau negatip 3.4E-4932 s.d 1.1E4932 Positif atau negatip 2. Variabel Secara umum variabel adalah suatu simbol atau lambang yang mempunyai nilai. Secara teknis dalam pemrograman yang dimaksud dengan variabel adalah area atau tempat didalam memory komputer yang isinya dapat diubah-ubah yang digunakan untuk menampung suatu nilai dan/atau mengambil nilai tersebut. Variabel didefinisikan/dideklarasikan menggunakan kombinasi antara identifier, type dan dapat juga sekaligus diinisialisasi (pemberian nilai awal). Nama dari variabel ditentukan atau dikarang sendiri oleh pembuat program. Ada beberapa aturan dalam pemberian nama variabel yaitu : Tidak boleh sama dengan nama atau kata yang sudah disiapkan oleh komputer (reserved word) seperti keyword dan functions. Maksimum 32 karakter, bila lebih dari 32 karakter, maka karakter selebihnya tidak diperhatikan oleh komputer. Huruf besar (kapital) dan huruf kecil berbeda (case sensitive) Karakter pertama harus huruf atau karakter garis bawah (under score), dan karakter berikutnya boleh huruf atau angka, atau karakter garis bawah. Tidak boleh mengandung spasi atau blank. Bentuk Umum Pendeklarasian Variabel adalah : tipe_data nama_variabel ; atau tipe_data nama_variabel = nilai_variabel ; Adapun contoh programnya sebagai berikut : Nama Program : variabel.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 8

9 Penjelasan Program : - int bulat, float pecah : adalah proses pendeklarasian variabel. Variabel yang dibuat sebanyak 2 buah yaitu variabel dengan nama bulat dan variabel dengan nama pecah. Variabel bulat digunakan untuk menampung bilangan bulat sedangkan variabel pecah digunakan untuk menampung bilangan pecahan. - bulat = 10, pecah = 2.5 : adalah perintah penugasan (Assignment Statement) mengisi nilai/angka kedalam masing-masing variabel. - /n : adalah perintah ganti baris. Berikut contoh program menggunakan variabel dengan angka yang akan diisi ke dalam variabel tersebut diinput terlebih dahulu : Nama Program : variabelinput.cpp Penjelasan Program : - cin : adalah perintah untuk menginput data. Data yang diinput akan ditampung kedalam variabel yang sudah ditentukan. 3. Konstanta Pada dasarnya konstanta memiliki kesamaan dengan variabel yaitu sebuah tempat untuk menyimpan sebuah nilai sesuai dengan datanya, hanya saja nilai yang ada dalam konstanta tidak dapat diubah-ubah dan hanya dapat digunakan atau diakses. Konstanta biasanya digunakan untuk menyimpan sebuah nilai yang sering digunakan atau nilai yang sudah pasti. Contohnya jari-jari lingkaran. Dalam bahasa C++ konstanta dapat menggunakan preprocessor directive #define. Bentuk Umum Pendeklarasian Konstanta adalah : #define nama_konstanta nilai_konstanta Contoh programnya sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 9

10 Nama Program : konstanta.cpp 4. Operator Operator yang digunakan didalam pemrograman antara lain : a. Operator Aritmatika Beberapa operator aritmatika yang dapat digunakan dalam pemrograman adalah : 1) Operator Perkalian Simbol operator perkalian adalah tanda bintang/asterik (*). Contoh : 5*2 2) Operator Penjumlahan Simbol operator penjumlahan adalah tanda tambah/plus (+). Contoh : 5+2 3) Operator Pengurangan Simbol operator pengurangan adalah tanda kurang/minus (-). Contoh : 5-2 4) Operator Pembagian Simbol operator pembagian adalah tanda garis miring (/). Contoh : 5/2 5) Operator Sisa Hasil Bagi Simbol Operator sisa hasil bagi adalah tanda persen (%). Contoh : 5%2 Contoh Programnya sebagai berikut : Nama Program : aritmatika.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 10

11 b. Operator Relasi Yaitu operator yang biasa digunakan untuk membandingkan dua buah nilai. Hasil dari operator ini adalah Benar (TRUE) atau Salah (FALSE). Operator-operator relasi yang dapat digunakan dalam pemrograman sebagai berikut : Operator sama dengan Simbol operator yang digunakan adalah ==, operator ini menyatakan bahwa nilai yang dibandingkan antara dua operan adalah sama. Contoh : a == b Operator tidak sama dengan Simbol operator yang digunakan adalah!=, operator ini menyatakan bahwa nilai yang dibandingkan antara dua operan tidak sama. Contoh : a!= b Operator lebih dari Simbol operator yang digunakan adalah >, operator ini menyatakan bahwa nilai operan pertama lebih besar dari nilai operan yang kedua. Contoh : a > b Operator kurang dari Simbol operator yang digunakan adalah <, operator ini menyatakan bahwa nilai operan pertama lebih kecil dari nilai operan yang kedua. Contoh : a < b Operator lebih dari sama dengan Simbol operator yang digunakan adalah >=, operator ini menyatakan bahwa nilai operan pertama lebih besar dari atau sama dengan nilai operan yang kedua. Contoh : a >= b Operator kurang dari sama dengan Simbol operator yang digunakan adalah <=, operator ini menyatakan bahwa nilai operan pertama lebih kecil dari atau sama dengan nilai operan yang kedua. Contoh : a <= b Contoh programnya sebagai berikut : Nama Program : relasi.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 11

12 c. Operator Logika Bolean Yaitu operator yang biasa digunakan untuk mengaitkan dua buah ungkapan kondisi menjadi sebuah kondisi. Operator-operator logika Boolean yang biasa digunakan dalam pemrograman adalah : Operator dan (AND) Simbol operator yang digunakan adalah &&. Ungkapan Kondisi 1 Ungkapan Kondisi 2 Hasil Operator Logika dan B B B B S S S B S S S S B = Benar, S = Salah. Dari table diatas dapat disimpulkan bahwa hasil operator akan BENAR jika kedua ungkapan kondisi tersebut, kedua-duanya Benar. Operator atau (OR) Simbol operator yang digunakan adalah. Ungkapan Kondisi 1 Ungkapan Kondisi 2 Hasil Operator Logika dan B B B B S B S B B S S S B = Benar, S = Salah Dari table diatas dapat disimpulkan bahwa hasil operator akan BENAR jika kedua atau salah satu ungkapan kondisi tersebut Benar. Operator bukan / negasi (NOT) Simbol operator yang digunakan adalah!. Operator ini berfungsi pembalik nilai logika TRUE menjadi FALSE atau nilai logika FALSE menjadi TRUE. Ungkapan Kondisi 1 B S Hasil Operator Logika bukan S B Misalkan ada dua bilangan, x = 5 dan y = 6. Jika dibentuk menjadi satu kondisi sehingga menjadi (x==y), maka kondisi tersebut bernilai TRUE. Bila dikenai dengan operator bukan, kondisi tersebut menjadi!(x==y), nilai kondisi sebelumnya bernilai TRUE berubah menjadi FALSE. Algoritma & Struktur Data 1 - STMIK Atma Luhur 12

13 Contoh programnya sebagai berikut : Nama Program : boolean.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 13

14 Materi III Pencabangan atau Seleksi Sasaran Perkuliahan : 1) Mahasiswa dapat mengetahui beberapa struktur pencabangan 2) Mahasiswa dapat memahami alur/cara kerja struktur pencabangan 3) Mahasiswa dapat menyusun algoritma menggunakan struktur pencabangan 4) Mahasiswa dapat membuat program menggunakan struktur pencabangan Salah satu struktur alur algoritma adalah pencabangan. Pencabangan bermanfaat untuk menentukan satu dari sekian banyak pilihan yang telah disediakan. Didalam pemrograman, pencabangan akan mengakibatkan ada beberapa baris perintah yang tidak akan dikerjakan/dilewati sama sekali, karena pencabangan membentuk kelompok/blok tersendiri yang akan dikerjakan atau tidak ditentukan berdasarkan kondisinya. Dalam pencabangan, dikenal dengan istilah kondisi (condition). Kondisi ini yang menentukan blok/kelompok dari baris perintah dikerjakan atau tidak sama sekali. Kondisi bertugas untuk membandingkan dua atau lebih operan. Operator yang digunakan untuk membandingkan operan tersebut tentu saja menggunakan operator relasi. Hasil akhir dari kondisi adalah nilai BENAR (TRUE) atau SALAH (FALSE). Contohnya sebagai berikut : NO KONDISI NILAI 1 5 > 2 TRUE 2 5 == 2 FALSE 3 5 <= 7 TRUE 4 5!= 2 TRUE Pencabangan dibedakan menjadi dua macam, yaitu simple conditional branch dan multiway conditional branch. Berikut adalah penjelasan dari kedua macam bentuk pencabangan tersebut. 1. Simple Conditional Branch Control statement yang menjadi bagian simple conditional branch adalah control statement if. Control statement if terbagi menjadi 3 macam sesuai dengan keperluannya, yaitu IF-THEN, IF-THEN-ELSE dan NESTED IF. a) IF - THEN Ciri dari bentuk pencabangan ini hanya memiliki satu buah grup/kelompok baris perintah yang akan dikerjakan apabila kondisinya BENAR/TRUE. IF-THEN digunakan apabila hanya mempunyai satu pilihan/pilihan tunggal saja. Bentuk Umum Instruksi IF THEN dan Flowchart adalah sebagai berikut : if (cond) statement true ; false cond true Statements True next instruction next Algoritma & Struktur Data 1 - STMIK Atma Luhur instruction 14

15 Urutan pelaksanaan perintah : Periksa nilai kondisi pada pencabangan (cond = kondisi), apakah bernilai TRUE atau FALSE. Bila kondisi bernilai TRUE maka blok perintah (grup/kelompok baris perintah) / statements true akan dikerjakan, setelah selesai maka langsung mengerjakan next instruction. Bila kondisi bernilai FALSE, maka langsung meloncat mengerjakan next instruction. Berikut contoh program menggunakan IF-THEN : Nama Program : ifthen.cpp Output Program : - Kondisi bernilai BENAR/TRUE. - Kondisi bernilai SALAH/FALSE. Algoritma & Struktur Data 1 - STMIK Atma Luhur 15

16 b) IF - THEN - ELSE Ciri dari bentuk pencabangan ini memiliki dua buah grup/kelompok baris perintah. Masingmasing grup mewakili hasil akhir dari kondisinya. Grup/kelompok baris perintah yang pertama akan dikerjakan apabila kondisi bernilai BENAR/TRUE, sedangkan grup/kelompok baris perintah yang kedua akan dikerjakan apabila kondisi bernilai SALAH/FALSE. IF-THEN-ELSE digunakan apabila mempunyai dua pilihan. Bentuk Umum Instruksi IF THEN ELSE dan Flowchart sebagai berikut : if (cond) statement true ; else statement false ; Statements False false cond true Statements True next instruction next instruction Urutan pelaksanaan perintah : Periksa nilai kondisi pada pencabangan ( cond = kondisi), apakah bernilai TRUE atau FALSE. Bila kondisi bernilai TRUE maka blok perintah (grup/kelompok baris perintah) / statements true akan dikerjakan, setelah selesai maka langsung mengerjakan next instruction. Bila kondisi bernilai FALSE maka blok perintah (grup/kelompok baris perintah) / statements false akan dikerjakan, setelah selesai maka langsung mengerjakan next instruction. Berikut contoh program menggunakan IF-THEN-ELSE : Nama Program : ifthenelse.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 16

17 Output Program : - Kondisi bernilai BENAR/TRUE - Kondisi bernilai SALAH/FALSE c) NESTED IF Disebut juga dengan if bersarang/pencabangan bersarang. NESTED IF digunakan apabila pilihan lebih dari dua. Bentuk pencabangan ini memiliki lebih dari dua grup/kelompok baris perintah dan kondisi lebih dari satu. Tidak ada bentuk yang baku dari NESTED IF, karena NESTED IF dibentuk menggunakan kombinasi antara IF-THEN dan IF-THEN-ELSE. Berikut adalah contoh dari bentuk-bentuk NESTED IF dan flowchartnya : if (cond1) if (cond2) S1 else S2 S2 false cond1 true false cond2 true S1 if (cond1) if (cond2) S1 else S2 else S3 S3 false cond1 S2 false true cond2 true S1 Algoritma & Struktur Data 1 - STMIK Atma Luhur 17

18 if (cond1) S1 if (cond2) S2 S3 else if (cond3) S4 else S5 false S5 cond3 false true S4 cond1 true S1 cond2 false S3 true S2 if (cond1) S1 if (cond2) S2 else S3 else if (cond3) S4 else S5 S6 false S5 cond3 S6 false true S4 cond1 S3 false true S1 cond2 true S2 Algoritma & Struktur Data 1 - STMIK Atma Luhur 18

19 if (cond1) if (cond2) if (cond3) if (cond4) S1 false cond1 true false cond2 true false cond3 true cond4 true S1 false if (cond1) S1 else if (cond2) S2 else if (cond3) false S3 S5 else if (cond4) S4 else S5 false cond4 false cond3 true S4 false cond2 true S3 cond1 true S2 true S1 Algoritma & Struktur Data 1 - STMIK Atma Luhur 19

20 Berikut contoh program menggunakan NESTED IF dengan 3 pilihan/blok perintah: Contoh Program : nestedif.cpp Output Program : - Pilihan dengan grup/kelompok baris perintah yang pertama - Pilihan dengan grup/kelompok baris perintah yang kedua - Pilihan dengan grup/kelompok baris perintah yang ketiga Algoritma & Struktur Data 1 - STMIK Atma Luhur 20

21 2. Multiway Conditional Branch Control statement yang menjadi bagian multiway conditional branch adalah control statement switch case. Switch case dapat digunakan untuk satu, dua atau lebih dari dua pilihan. Khusus untuk pilihan dari dua, switch case sama dengan nested if, tetapi ada beberapa perbedaan dari kedua control statement tersebut diantaranya : a. Pernyataan switch berbeda dengan pernyataan if dimana switch hanya dapat menguji kesamaan, sedangkan pernyataan if dapat melakukan evaluasi sembarang tipe ekspresi Boolean. Dengan demikian switch terlihat seperti hanya mencocokkan diantara nilai-nilai ekspresi dan konstanta-konstanta case. b. Tidak ada konstanta case di blok case yang sama dapat mempunyai nilai yang identik. c. Pernyataan switch biasanya lebih efisien dibanding if bersarang yang dalam. Bentuk Umum Control Statement Switch Case : switch(nama_variabel) case nilai_variabel_1 : statement_1 ; break ; case nilai_variabel_2 : statement_2 ; break ;.. case nilai_variabel_n : statement_n ; break ; default : statement_default ; break ; Perintah break berfungsi untuk keluar dari case. Jika break ditiadakan, maka akan dilanjutkan dengan pelaksanaan dibawahnya sampai selesai. Perintah break merupakan optional, tergantung kebutuhan program. Adakalanya diperlukan untuk menjalankan case sekaligus, hal ini berarti perintah break tidak digunakan. Contoh program menggunakan switch case sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 21

22 Nama Program : switchcase.cpp Output Program : Algoritma & Struktur Data 1 - STMIK Atma Luhur 22

23 Materi IV Perulangan atau Iterasi Sasaran Perkuliahan : 1) Mahasiswa dapat mengetahui beberapa struktur perulangan 2) Mahasiswa dapat memahami alur/cara kerja struktur perulangan 3) Mahasiswa dapat menyusun algoritma menggunakan struktur perulangan 4) Mahasiswa dapat membuat program menggunakan struktur perulangan Salah satu struktur alur algoritma adalah perulangan. Persamaan perulangan dan pencabangan adalah sama-sama membentuk grup/kelompok baris perintah yang akan dikerjakan atau tidak berdasarkan hasil akhir kondisinya. Perbedaannya struktur perulangan akan mengerjakan grup/kelompok baris perintah secara berulang-ulang selama kondisi masih terpenuhi. Dalam bahasa pemrograman struktur alur algoritma ini biasa disebut dengan looping. Perulangan mempunyai beberapa bagian yang harus dipenuhi, antara lain : a. Inisialisasi Inisialisasi adalah tahap persiapan membuat kondisi awal sebelum melakukan perulangan, misalnya mengisi variabel dengan nilai awal. Tahap ini dilakukan sebelum memasuki bagian perulangan. b. Proses Tahap proses terjadi didalam bagian perulangan yaitu berisi semua proses yang perlu dilakukan secara berulang-ulang. c. Iterasi Iterasi terjadi di dalam perulangan yakni merupakan kondisi pertambahan agar perulangan dapat terus berjalan. d. Terminasi Terminasi adalah kondisi berhenti dari perulangan, kondisi berhenti sangat penting dalam perulangan agar perulangan dapat berhenti, tidak menjadi perulangan yang tanpa henti. Bentuk dasar dari struktur perulangan ada 3 macam yaitu : for, while dan do while. 1. For Bentuk Umum Perulangan For : for (init ; cond; chng cond) Statements ; Next instruction Initialization (init) Condition (cond) false Prinsip Kerja Perulangan For : a. Perintah init merupakan memberi nilai awal kondisi (inisialisasi). Perlu mempersiapkan sebuah variabel untuk menampung nilai awal kondisi. b. Kemudian dilanjutkan dengan memeriksa kondisi pada cond, jika bernilai BENAR/TRUE maka Statements akan dikerjakan. Setelah selesai baris perintah melaksanakan chng cond, yang berfungsi untuk mengubah nilai variabel. Kemudian kembali ke point b memeriksa kondisi dan seterusnya. c. Jika kondisi sudah bernilai SALAH/FALSE, maka perulangan akan selesai dan melaksanakan baris perintah berikutnya (next instruction). true Statements Change Condition (chng cond) Algoritma & Struktur Data 1 - STMIK Atma Luhur 23 Next Instruction

24 Adapun contoh program menggunakan for adalah sebagai berikut : Nama Program : for.cpp Penjelasan Program : - i=1, merupakan proses init(initialization), variabel dengan nama i diisi dengan angka 1. - i<=5, merupakan cond(condition), kondisi akan bernilai TRUE selama nilai variabel i kurang atau sama dengan 5. - i++, merupakan chng cond (change condition), i++ sama artinya dengan i=i+1. Dengan perintah tersebut nilai variabel i akan berubah secara berurutan dari 1 s.d 5. - Output program menunjukkan perulangan akan dilakukan selama 5 kali mengikuti status kondisi dan status change condition. 2. While Prinsip Kerja struktur While sama dengan struktur For. Perbedaannya pada bentuk strukturnya. Bentuk umum struktur while : init ; while (cond) Statements ; Contoh programnya sebagai berikut : Nama Program : while.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 24

25 3. Do..While Nama lain dari struktur do..while adalah repeat until. Perbedaan struktur ini dengan struktur looping sebelumnya terletak pada bentuk strukturnya dan cara kerjanya. Yang menjadi ciri utama dari do..while, grup/kelompok baris perintah perulangan paling tidak dikerjakan satu kali walaupun kondisi perulangan bernilai SALAH/FALSE. Grup/kelompok baris perintah dikerjakan terlebih dahulu sebelum memeriksa kondisinya. Bentuk umum struktur do..while sebagai berikut : Initialization initialization do Statements ; Change Condition ; while (condition) ; Statements Change Condition next Instruction Prinsip Kerja Struktur Perulangan Do..While : true a. Initialization bermaksud memberi nilai awal kondisi. Perlu mempersiapkan sebuah variabel untuk menampung nilai awal kondisi. b. Kemudian dilanjutkan dengan pengerjaan Statements perulangan dan diteruskan dengan melaksanakan perintah untuk mengubah nilai kondisi (Change Condition). c. Periksa kondisi perulangan (condition). Jika kondisi bernilai BENAR/TRUE, maka kembali mengerjakan langkah b. Jika kondisi bernilai SALAH/FALSE maka perulangan dihentikan dan melaksanakan perintah berikutnya (Next Instruction). Condition false Next Instruction Contoh programnya sebagai berikut : Nama Program : dowhile.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 25

26 4. Nested Loop Disebut juga dengan perulangan bersarang. Struktur ini membentuk perulangan yang sangat dalam. Struktur ini kadang kala diperlukan untuk mengatasi persoalan pemrograman yang tidak bisa hanya mengandalkan perulangan tunggal saja. Struktur ini merupakan kombinasi dari struktur looping yang telah diuraikan diatas. Nested Loop mempunyai istilah Inner Loop (Perulangan bagian dalam) dan Outer Loop (Perulangan bagian luar). #include <iostream.h> #include <conio.h> void main ( ) int I, J ; I = 1; while ( I <= 3 ) J = 1; while ( J <= 5 ) J++; I++; I <= 3 false I = 1 true J = 1 I <= 5 false true Inner Loop Outer Loop I++ J++ Inner Loop (Loop Bagian Dalam) Outer Loop (Loop Bagian Luar) Salah satu manfaat dari Nested Loop adalah dapat membentuk kombinasi angka seperti contoh program sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 26

27 Nama Program : nestedloop.cpp Output Program : Penjelasan Program : - Output program menunjukkan terbentuknya sebanyak 5 baris dengan 5 kolom. - 5 Baris terbentuk dari outer loop / perulangan bagian luar. - 5 Kolom terbentuk dari inner loop / perulangan bagian dalam. - Angka yang ditampilkan diambil dari perubahan angka pada variabel j. Algoritma & Struktur Data 1 - STMIK Atma Luhur 27

28 Materi V Function dan Procedure Sasaran Perkuliahan : 1) Mahasiswa dapat memahami dan membuat program mengenai function/fungsi 2) Mahasiswa dapat memahami dan membuat program mengenai procedure/prosedur Function dan procedure disebut juga sebagai sub program. Sub program ini kadang kala diperlukan dalam pembuatan program untuk memenuhi kebutuhan pengguna. Sub program adalah pengelompokkan beberapa baris perintah tertentu diluar dari program utamanya. Disebut dengan sub program, karena sub program tidak bisa dipisahkan dari program utamanya walaupun letaknya terpisah dari program utamanya. Dalam bahasa C++, yang menjadi bagian program utama adalah seluruh perintah yang ada di dalam void main(). Adapun perbedaan antara function dengan procedure adalah fungsi menghasilkan sebuah nilai keluaran sedangkan prosedur tidak menghasilkan nilai keluaran. Cara menjalankan function dan procedure dengan menuliskan nama function atau procedure di program utamanya. Nama function atau procedure harus dideklarasikan terlebih dahulu diatas program utamanya. 1. Function Bentuk umum dari function adalah : tipe_data nama_fungsi (tipe_data nama_variabel_masukan) statement ; return variabel_keluaran Contoh programnya sebagai berikut : Nama Program : function.cpp Perintah memanggil function Sub Program / FUNCTION Algoritma & Struktur Data 1 - STMIK Atma Luhur 28

29 2. Procedure Procedure memiliki dua bentuk, yaitu procedure tanpa parameter dan procedure dengan parameter. a) Procedure tanpa parameter Bentuk umumnya sebagai berikut : void nama_prosedur(void) statement ; Contoh programnya sebagai berikut : Nama program : procedure1.cpp Perintah memanggil procedure Sub Program / PROCEDURE b) Procedure dengan parameter Bentuk umumnya sebagai berikut : void nama_prosedur(tipe_data variabel_input, tipe_data variabel_inputn) statement ; Contoh programnya sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 29

30 Nama Program : procedure2.cpp Perintah memanggil procedure Sub Program / PROCEDURE Algoritma & Struktur Data 1 - STMIK Atma Luhur 30

31 Materi VI Array Sasaran Perkuliahan : 1) Mahasiswa dapat memahami mengenai array 2) Mahasiswa dapat memahami perbedaan array 1 dimensi dan 2 dimensi 3) Mahasiswa dapat membuat program menggunakan array Array atau disebut juga dengan larik, dapat digambarkan hampir sama dengan tabel. Array dapat juga diartikan sebagai sesuatu yang berbaris-baris atau berderet-deret. Dalam bahasa pemrograman, array adalah variabel sejenis yang berderet-deret sedemikian rupa sehingga alamatnya saling bersambung atau bersebelahan/berdampingan (contiguous). Pada dasarnya, fungsi array sama dengan varabel yaitu untuk menampung nilai. Perbedaan array dengan variabel adalah variabel hanya dapat menampung satu nilai saja pada satu waktu, variabel ini disebut juga dengan variabel tunggal sedangkan array merupakan variabel yang dapat menampung banyak nilai / data dengan tipe data yang sejenis dalam satu waktu. Nilai pada array diakses berdasarkan indeks yang tersusun secara berurutan. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi. 1. ARRAY SATU DIMENSI Array satu dimensi adalah array yang memiliki satu kolom dengan banyak baris, atau satu baris dengan banyak kolom, tergantung bagaimana cara mengilustrasikannya dalam pikiran. Untuk lebih jelasnya array satu dimensi dapat digambarkan sebagai berikut : Indeks : 0 1 N1 N2 Indeks : N1 N2 N3 N4 N5 2 N3 3 4 N4 N5 Array satu dimensi disebut juga dengan vector karena hanya mempunyai satu arah saja. Bentuk Umum Deklarasi Array Satu Dimensi : tipe_data nama_array [jumlah_indeks] ; Algoritma & Struktur Data 1 - STMIK Atma Luhur 31

32 Aturan pemberian nama array sama halnya dengan aturan pemberian nama variabel. Lihat di bab terdahulu. Contoh program dengan array 1 dimensi sebagai berikut : Nama Program : array1d.cpp 2. ARRAY DUA DIMENSI Array dua dimensi adalah array yang memiliki dua atau lebih kolom dengan banyak baris, atau dua atau lebih baris dengan banyak kolom, bergantung bagaimana mengilustrasikannya didalam pikiran. Array dua dimensi juga dapat dipandang sebagai gabungan dari dua atau beberapa array satu dimensi. Array Dua Dimensi diilustrasikan sebagai berikut : Indeks : N[0,0] N[0,1] N[0,2] N[0,3] N[0,4] N[1,0] N[1,1] N[1,2] N[1,3] N[1,4] N[2,0] N[2,1] N[2,2] N[2,3] N[2,4] Algoritma & Struktur Data 1 - STMIK Atma Luhur 32

33 Dari contoh ilustrasi diatas, Array Dua Dimensi tersebut mempunyai 3 baris dan 5 kolom. Setiap elemen mempunyai dua buah indeks berdasarkan perpotongan antara indeks baris dan indeks kolom. Karena mempunyai baris dan kolom Array Dua Dimensi disebut juga dengan matriks. Bentuk Umum Deklarasi Array Dua Dimensi : tipe_data nama_array [jml_indeks_baris] [jml_indeks_kolom] ; Aturan pemberian nama array sama halnya dengan aturan pemberian nama variabel. Lihat di bab terdahulu. Contoh Program dengan array 2 dimensi sebagai berikut : Nama Program : array2d.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 33

34 Materi VII Pengantar Struktur Data Sasaran Perkuliahan : 1) Mahasiswa dapat memahami mengenai struktur data 2) Mahasiswa dapat memahami istilah-istilah yang digunakan pada struktur data 3) Mahasiswa dapat memahami macam-macam Struktur Data Dalam istilah komputer, struktur data diartikan sebagai cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolomkolom 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 database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data. Struktur data dibedakan menjadi dua macam yaitu struktur data sederhana dan struktur data majemuk. Contoh dari struktur data sederhana adalah array dan record. Struktur data majemuk terdiri dari Linier dan Non Linier. Anggota dari Linier adalah Stack, Queue, List dan Multilist, sedangkan anggota dari Non Linier adalah Pohon Biner (tree) dan Graph. Dari beberapa macam bentuk struktur data tersebut akan diuraikan lebih lanjut pada materi-materi berikutnya. Algoritma & Struktur Data 1 - STMIK Atma Luhur 34

35 Materi VIII Struktur Data STACK Sasaran Perkuliahan : 1) Mahasiswa dapat memahami mengenai stack 2) Mahasiswa dapat memahami istilah-istilah yang digunakan pada stack 3) Mahasiswa dapat memahami macam-macam stack 4) Mahasiswa dapat membuat program menggunakan stack Stack terbagi kedalam dua macam, yaitu Single Stack dan Double Stack. 1. Single Stack Single Stack disebut juga dengan tumpukan. Struktur data single stack ini dapat diilustrasikan seperti menyusun buku diatas meja. Seperti gambar berikut : Dalam struktur stack dikenal dengan istilah PUSH, dan POP. - PUSH adalah istilah yang digunakan untuk memasukkan, menyimpan, menulis atau menginsert data kedalam stack. - POP adalah istilah yang digunakan untuk mengambil, membaca, mengeluarkan atau mendelete data dari stack. - TOP adalah menunjukkan posisi elemen terakhir dari sebuah stack. Prinsip yang digunakan pada stack adalah L I F O atau kepanjangan dari Last in First Out. Artinya data yang terakhir masuk kedalam stack, maka data tersebut akan pertama kali dikeluarkan dari stack. Pada pemrograman, ilustrasi sebuah stack dapat dilihat dari gambar berikut yang menggunakan array 1 dimensi : Algoritma & Struktur Data 1 - STMIK Atma Luhur 35

36 Dari gambar diatas dapat diketahui bahwa telah disiapkan sebuah array dengan nama S[]. Array tersebut mempunyai indeks sampai dengan 10. Artinya Array tersebut dapat menampung maksimal sampai dengan 10 data. Cara memasukkan dan mengambil data dari array tersebut menggunakan struktur Single Stack. Top menunjukkan posisi paling akhir dari elemen array yang mempunyai isi. Yang dimaksud dengan posisi terakhir adalah data yang dimasukkan terakhir kali, bukan yang pertama kali dimasukkan ke dalam array. Beberapa kondisi yang dipunyai oleh single stack adalah sebagai berikut : a) Stack Kosong (IsEmpty) Ciri stack dalam keadaan kosong adalah posisi Top kurang dari nol. Kondisi ini dapat dikatakan sebagai proses awal dari sebuah single stack. Dalam algoritma ciri stack kosong adalah : Top = - 1 Stack kosong diilustrasikan sebagai berikut : b) Stack Penuh (IsFull) Ciri stack sudah dalam keadaan penuh adalah posisi Top berada pada indeks terakhir dari stack. Dalam algoritma ciri stack penuh adalah : Top = n - 1 Stack penuh diilustrasikan sebagai berikut : c) Stack dapat diisi Ciri stack masih bisa diisi adalah posisi Top tidak berada pada indeks terakhir dari stack. Dalam Algoritma ciri stack masih bisa diisi adalah : Top < n - 1 Stack dapat diisi diilustrasikan sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 36

37 Atau : d) Stack punya isi Ciri stack masih mempunyai isi adalah posisi TOP tidak kurang dari nol. Dalam algoritma ciri stack masih mempunyai isi adalah : Top > -1 Stack punya isi diilustrasikan sebagai berikut : Atau : Dari keempat kondisi pada stack tersebut mempengaruhi proses PUSH dan POP pada stack. - Pada proses PUSH, stack dapat disi apabila kondisi stack kosong dan bisa diisi. Algoritma untuk proses PUSH adalah : Top = Top + 1 ; S[Top] = X; Pada saat stack penuh, maka proses PUSH tidak dapat dilakukan. Algoritma lengkap untuk proses PUSH adalah : if ( Top < n-1 ) Top = Top + 1; S[Top] = X; else cout << Stack Penuh ; Algoritma & Struktur Data 1 - STMIK Atma Luhur 37

38 Atau : if ( Top == n-1 ) cout << Stack Penuh ; else Top = Top + 1; S[Top] = X; - Pada proses POP, stack dapat diambil isinya apabila kondisi stack penuh dan stack punya isi. Algoritma untuk proses POP adalah : X = S[Top] ; Top = Top - 1 ; Pada saat stack kosong, maka proses POP tidak dapat dilakukan. Algoritma lengkap untuk proses POP adalah : if ( Top < -1 ) X = S[Top]; Top = Top - 1; else cout << Stack Kosong ; Atau : if ( Top == -1 ) cout << Stack Kosong ; else X = S[Top]; Top = Top - 1; Contoh program menggunakan single stack sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 38

39 Nama Program : singlestack.cpp Penjelasan Program : - Int S[n], proses deklarasi sebuah array satu dimensi dengan nama S[] dan bertipe data integer. Untuk indeks array tersebut menggunakan variabel n yang sudah dijadikan konstanta pada bagian #define n 7. - Top = -1, merupakan proses inisialisasi awal pada stack. Perintah tersebut menandakan juga stack masih dalam keadaan kosong. Output Program : Algoritma & Struktur Data 1 - STMIK Atma Luhur 39

40 2. Double Stack Double stack dapat diilustrasikan sebagai gabungan dua buah stack menggunakan array yang sama. Prinsip pada double stack sama dengan single stack yaitu LIFO (Last In First Out) baik untuk stack yang pertama maupun stack yang kedua pada double stack tersebut. Adapun ilustrasi dari double stack seperti gambar berikut ini : Dari gambar tersebut dapat diketahui bahwa, stack mempunyai dua buah pointer TOP yaitu Top1 dan Top2. Top1 mewakili stack yang pertama. Arah pergerakannya dari kiri ke kanan (dari ilustrasi gambar diatas). Top2 mewakili stack yang kedua. Arah pergerakannya dari kanan ke kiri (dari ilustrasi gambar diatas). Beberapa kondisi yang dimiliki oleh double stack adalah sebagai berikut : a) Double stack kosong (IsEmpty) Ciri dari double stack kosong adalah posisi dari Top1 kurang dari nol dan Top2 berada di indeks trakhir dari stack. Kondisi ini dapat dikatakan sebagai proses awal (inisialisasi) dari sebuah double stack. Dalam Algoritma ciri double stack kosong adalah : Top1 = - 1 Top2 = n Double stack kosong diilustrasikan sebagai berikut : Top1 Top2 b) Stack Penuh (IsFull) Ciri double stack penuh apabila posisi Top1 dengan Top2 betul-betul bersebelahan atau dengan kata lain apabila Top2 dikurangi dengan Top1 hasilnya adalah 1. Dalam algoritma ciri double stack penuh adalah : Top2 - Top1 = 1 Double stack penuh diilustrasikan sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 40

41 Top1 Top2 c) Stack dapat diisi Ciri stack masih dapat diisi apabila posisi Top1 dengan Top2 tidak bersebelahan, atau apabila Top2 dikurangi dengan Top1 hasilnya tidak sama dengan 1 (satu), tepatnya lebih besar dari 1 (satu). Dalam algoritma ciri stack masih bisa diisi adalah : Top2 - Top1 > 1 Double stack dapat diisi diilustrasikan sebagai berikut : Top1 Top2 Atau : Top1 Top2 Atau : Top1 Top2 Atau : Top1 Top2 Algoritma & Struktur Data 1 - STMIK Atma Luhur 41

42 d) Stack punya isi Ciri double stack masih mempunyai isi pada double stack memiliki beberapa ciri yaitu : - Top1 tidak kurang dari nol dan Top2 sama dengan indeks. - Top1 sama dengan nol dan Top2 tidak sama dengan indeks. - Top1 tidak kurang dari nol dan Top2 tidak sama dengan indeks. Dalam algoritma ciri stack masih mempunyai isi adalah : Top1 > -1 Top2 < n Double stack punya isi diilustrasikan sebagai berikut : Top1 Atau : Top2 Top1 Atau : Top2 Top1 Top2 Atau : Top1 Top2 Atau : Atau : Top1 Top2 Top1 Top2 Algoritma & Struktur Data 1 - STMIK Atma Luhur 42

43 Sama seperti single stack, kondisi tersebut juga mempengaruhi proses PUSH dan POP pada double stack. a) PUSH Proses PUSH dapat dilakukan selama stack dalam kondisi kosong atau masih dapat diisi. Algoritma dasar proses PUSH pada stack yang pertama adalah : Top1 = Top1 + 1 ; S[Top1] = X; Algoritma dasar proses PUSH pada stack yang kedua adalah : Top2 = Top2-1 ; S[Top2] = X; Proses PUSH tidak dapat dilakukan apabila stack dalam kondisi penuh. Algoritma lengkap untuk proses PUSH pada double stack adalah : - Algoritma lengkap proses PUSH untuk stack yang pertama adalah if ( Top2 - Top1 >1 ) Top1 = Top1 + 1; S[Top1] = X; else cout << Stack1 Penuh ; Atau : if ( Top2 - Top1 == 1 ) cout << Stack1 Penuh ; else Top1 = Top1 + 1; S[Top1] = X; Algoritma & Struktur Data 1 - STMIK Atma Luhur 43

44 - Algoritma lengkap proses PUSH untuk stack yang kedua adalah if ( Top2 - Top1 >1 ) Top2 = Top2-1; S[Top2] = X; else cout << Stack2 Penuh ; Atau : if ( Top2 - Top1 == 1 ) cout << Stack2 Penuh ; else Top2 = Top2-1; S[Top2] = X; b) POP Proses POP dapat dilakukan selama stack dalam kondisi penuh atau masih mempunyai isi. Algoritma dasar proses POP pada stack yang pertama adalah : X = S[Top1] ; Top1 = Top1-1 ; Algoritma dasar proses POP pada stack yang kedua adalah : X = S[Top2] ; Top2 = Top2 + 1 ; Algoritma & Struktur Data 1 - STMIK Atma Luhur 44

45 Proses POP tidak dapat dilakukan apabila stack dalam kondisi kosong. Algoritma lengkap untuk proses POP pada double stack adalah : - Algoritma lengkap untuk proses POP stack yang pertama adalah : if ( Top1 < -1 ) X = S[Top1]; Top1 = Top1-1; else cout << Stack1 Kosong ; Atau : if ( Top1 == -1 ) cout << Stack1 Kosong ; else X = S[Top1]; Top1 = Top1-1; - Algoritma lengkap proses POP stack yang kedua adalah : if ( Top2 < n ) X = S[Top2]; Top2 = Top2 + 1; else cout << Stack2 Kosong ; Atau : if ( Top2 == n ) cout << Stack2 Kosong ; else X = S[Top2]; Top2 = Top2 + 1; Algoritma & Struktur Data 1 - STMIK Atma Luhur 45

46 Contoh program double stack adalah sebagai berikut : Nama Program : doublestack.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 46

47 Penjelasan Program : - Double stack dibuat dengan nama S[] dengan elemen sebanyak Proses PUSH pada stack yang pertama hanya dibatasi sebanyak 5 kali. Pada program algoritmanya : Top2 - Top1 > 1 && Top1 < 4. - Proses PUSH pada stack yang kedua dilakukan selama stack belum penuh. Output Program : Algoritma & Struktur Data 1 - STMIK Atma Luhur 47

48 Materi IX Struktur Data QUEUE Sasaran Perkuliahan : 1) Mahasiswa dapat memahami mengenai queue 2) Mahasiswa dapat memahami istilah-istilah yang digunakan pada queue 3) Mahasiswa dapat memahami macam-macam queue 4) Mahasiswa dapat membuat program menggunakan prinsip queue Queue, apabila diartikan secara harfiah adalah antrian. Implementasi dalam queue dalam kehidupan sehari-hari seperti mengantri pembelian karcis pada loket penjualan karcis. Dari sebuah literatur pengertian queue adalah : A Queue is an ordered collection of items into which new items may be inserted at one end (called the rear of the queue) and from which items may be deleted at one end (called the front of the queue).( Yedidyah L, Moshe J. A., and Aaron M. Tenenbaum; Data Structures Using C and C++). Prinsip kerja dari queue adalah FIFO (First In First Out) atau FIFS (First In First Serve). Secara harfiahnya, prinsip kerja queue ini seperti pada loket antrian, seseorang yang pertama kali mengantri, maka orang tersebut yang akan pertama kali keluar dari antrian. Beberapa istilah yang digunakan pada queue adalah : 1. FRONT Front menunjukkan posisi antrian pertama / depan. Untuk memudahkan penulisan materi ini Front selanjutnya akan ditulis menjadi F. 2. REAR Rear menunjukkan posisi antrian terakhir / belakang. Untuk memudahkan penulisan materi ini Rear selanjutnya akan ditulis menjadi R. 3. ENQUEUE EnQueue menunjukkan item yang masuk kedalam antrian. 4. DEQUEUE DeQueue menunjukkan item yang keluar dari antrian. Struktur queue terdiri dari 3 macam. Struktur ini akan diimplementasikan dengan array 1 dimensi. Adapun strukturnya adalah : - Linear Queue - Circular Queue - Double End Queue (Deque). Algoritma & Struktur Data 1 - STMIK Atma Luhur 48

49 1. LINEAR QUEUE Linear Queue disebut juga dengan antrian lurus. Struktur ini seakan-akan membentuk sebuah antrian lurus yang hanya memiliki satu pintu masuk dan satu pintu keluar. Ilustrasi dari struktur linear queue ini adalah sebagai berikut : Seperti yang telah disebutkan diatas prinsip kerja dari queue adalah FIFO (First In First Out). Dari contoh gambar, F menunjukkan antran pertama dan R menunjukkan antrian terakhir. Apabila ada data yang akan masuk (insert), maka akan ditempatkan pada indeks ke-4 dan posisi R akan bergeser ke indeks ke-4, begitu seterusnya sampai pada indeks yang terakhir dan antrian penuh. Apabila ada data yang akan keluar (delete), maka antrian yang akan pertama kali keluar adalah A dan posisi F akan bergeser menunjuk B, begitu seterusnya sampai antrian kosong. Beberapa kondisi pada Linear Queue adalah : a) Queue Kosong Ciri dari Linear Queue kosong adalah posisi F (Front) persis berada di depan posisi R (Rear). Dalam algoritma ciri Linear Queue kosong adalah : F = R + 1 Kondisi kosong juga merupakan salah satu ciri dari proses awal (inisialisasi) pada Linear Queue, walaupun kondisi kosong belum tentu merupakan proses awal dari Linear Queue. Algoritma proses awal (inisialisasi) dari Linear Queue adalah : F = 0 R = -1 Linear Queue kosong diilustrasikan sebagai berikut : Pada gambar ini merupakan kondisi awal (inisialisasi) dari Linear Queue. Algoritma & Struktur Data 1 - STMIK Atma Luhur 49

50 Bentuk lain dari linear queue kosong adalah sebagai berikut : Atau : b) Queue Penuh Ciri dari Linear Queue penuh adalah posisi Rear (R) berada pada indeks terakhir dari antrian (queue). Dalam algoritma ciri Linear Queue penuh adalah : R = n - 1 Linear queue penuh diilustrasikan sebagai berikut : Atau : c) Queue dapat diisi Ciri dari linear queue masih dapat diisi ke antrian adalah posisi Rear (R) tidak berada pada indeks terakhir dari antrian. Dalam algoritma ciri Linear Queue masih dapat diisi adalah : R < n - 1 Linear queue masih dapat diisi diilustrasikan sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 50

51 Atau : Atau : Atau : Atau : d) Queue punya isi Ciri Linear Queue masih mempunyai isi pada antrian adalah posisi F (Front) berada dibelakang R (Rear). F < R + 1 Linear Queue masih mempunyai isi diilustrasikan sebagai berikut : Atau : Atau : Algoritma & Struktur Data 1 - STMIK Atma Luhur 51

52 Atau : Kondisi pada Linear Queue mempengaruhi proses PUSH dan POP pada Linear Queue tersebut. a) PUSH Proses PUSH dapat dilakukan selama Linear Queue dalam kondisi kosong atau masih dapat diisi. Algoritma dasar proses PUSH pada Linear Queue adalah : R = R + 1 Q[R] = X Proses PUSH tidak dapat dilakukan apabila Linear Queue dalam kondisi penuh. Algoritma lengkap proses PUSH pada Linear Queue adalah : if ( R < n-1 ) R = R + 1; Q[R] = X; else cout << Antrian Penuh ; Atau : if ( R == n-1 ) cout << Antrian Penuh ; else R = R + 1; Q[R] = X; Algoritma & Struktur Data 1 - STMIK Atma Luhur 52

53 b) POP Proses POP dapat dilakukan selama linear queue dalam kondisi penuh atau masih mempunyai isi pada antrian. Algoritma dasar proses POP pada Linear Queue adalah : X = Q[F] ; F = F + 1; if ( F == n ) F = 0; R = -1; Proses POP tidak dapat dilakukan apabila Linear Queue dalam kondisi kosong. Algoritma lengkap untuk proses POP pada Linear Queue adalah : if ( F < R+1 ) X = Q[F] ; F = F + 1; if ( F == n ) F = 0; R = -1; else cout << Antrian Kosong ; Atau : if ( F == R+1 ) cout << Antrian Kosong ; else X = Q[F] ; F = F + 1; if ( F == n ) F = 0; R = -1; Algoritma & Struktur Data 1 - STMIK Atma Luhur 53

54 Contoh Program menggunakan prinsip Linear Queue adalah sebagai berikut : Nama Program : linearqueue.cpp Output Program : Algoritma & Struktur Data 1 - STMIK Atma Luhur 54

55 2. CIRCULAR QUEUE Circular Queue dapat diartikan sebagai antrian melingkar. Pada Linear Queue, apabila data yang sudah dimasukkan (PUSH) pada sebuah antrian dan datanya dikeluarkan (POP) pada indeks antrian tersebut, maka data baru tidak dapat dimasukkan (PUSH) kembali ke indeks antrian tersebut sebelum Linear Queue di reset atau dijadikan kedalam kondisi kosong/awal setelah antrian tidak mempunyai data lagi. Ilustrasinya sebagai berikut : Dari contoh gambar tersebut, dapat diketahui bahwa kondisi queue sudah penuh karena posisi R (Rear) berada pada indeks terakhir dari antrian. Sehingga queue tidak dapat diisi lagi walaupun antrian dari indeks ke-0 sampai dengan ke-5 masih kosong. Untuk mengatasi hal tersebut dapat dilakukan dengan cara memindahkan posisi R (Rear) ke indeks ke-0, sehingga data dapat diisi kembali sampai antrian benar-benar penuh. Konsep seperti ini yang disebut dengan antrian melingkar atau circular queue. Ilustrasinya dari contoh gambar diatas menjadi sebagai berikut : Posisi R dipindahkan seperti gambar berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 55

56 Maka ilustrasi Circular Queuenya seperti gambar berikut : Atau : Algoritma memindahkan posisi R (Rear) pada circular queue sebagai berikut : if(r == n) R = 0; else R = R + 1; atau R = R + 1; if(r == n+1) R = 0; Selain dengan cara diatas, algoritma untuk memindahkan posisi R (Rear) dapat dilakukan dengan memanfaatkan operator modulus (%) atau sisa hasil pembagian dan Library Function fmod(). R = (R+1) % n atau R = fmod(r+1, n) Berbeda dengan linear queue, selain menggunakan F (Front) dan R (Rear) didalam antriannya, circular queue menggunakan Counter untuk menentukan jumlah antrian yang masuk dan keluar sekaligus menentukan kondisi circular queuenya. Adapun beberapa kondisi pada circular queue adalah : a) Queue Kosong Ciri dari Circular queue kosong adalah apabila Counter bernilai 0. Maka Algoritma circular queue kosong adalah : Algoritma & Struktur Data 1 - STMIK Atma Luhur 56

57 Counter = 0; Sama seperti Linear Queue, kondisi kosong juga merupakan salah satu ciri proses awal (inisialisasi) pada circular queue, walaupun kondisi kosong belum tentu merupakan proses awal dari circular queue. Algoritma proses awal (inisialisasi) dari Circular queue adalah : F = 0; R = -1; Counter = 0; Ilustrasi Circular Queue dalam kondisi kosong adalah sebagai berikut : Atau : b) Queue Penuh Ciri dari Circular queue penuh pada antrian adalah apabila counter bernilai sama dengan indeks antrian. Maka algoritma circular queue penuh adalah : Counter = n; Ilustrasi circular queue dalam kondisi penuh digambarkan sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 57

58 c) Queue dapat diisi Ciri dari circular queue masih dapat diisi pada antrian apabila Counter tidak bernilai sama dengan indeks antrian. Maka algoritma circular queue masih dapat diisi adalah : Counter < n Ilustrasi circular queue dalam kondisi dapat diisi dapat dilihat pada beberapa gambar sebagai berikut : 1) 2) 3) 4) 5) 6) Algoritma & Struktur Data 1 - STMIK Atma Luhur 58

59 d) Queue punya isi Ciri dari circular queue masih mempunyai isi pada antrian apabila Counter tidak bernilai 0. Maka algoritma circular queue masih mempunyai isi pada antrian adalah : Counter > 0 Ilustrasi circular queue masih mempunyai isi pada antrian dapat dilihat pada beberapa gambar sebagai berikut : 1) 2) 3) 4) 5) Kondisi pada Circular Queue mempengaruhi proses PUSH dan POP pada Circular Queue tersebut. a) PUSH Proses PUSH dapat dilakukan selama Circular Queue dalam kondisi kosong atau masih dapat diisi. Algoritma dasar proses PUSH pada Circular Queue adalah : R = (R+1) % n; Q[R] = X; Counter++; Counter++ sama artinya dengan Counter=Counter+1. Algoritma & Struktur Data 1 - STMIK Atma Luhur 59

60 Proses PUSH tidak dapat dilakukan apabila Circular Queue dalam kondisi penuh. Algoritma lengkap proses PUSH pada Circular Queue adalah : if ( Counter < n) R = (R+1) % n; Q[R] = X; Counter++; else cout << Antrian Penuh ; Atau : if ( Counter == n) cout << Antrian Penuh ; else R = (R+1) % n; Q[R] = X; Counter++; b) POP Proses POP dapat dilakukan selama circular queue dalam kondisi penuh atau masih mempunyai isi pada antrian. Algoritma dasar proses POP pada Circular Queue adalah : X = Q[F]; F = (F+1) % n; Counter--; Counter-- sama artinya dengan Counter=Counter-1. Proses POP tidak dapat dilakukan apabila circular queue dalam kondisi kosong. Algoritma lengkap untuk proses POP pada Circular Queue adalah : Algoritma & Struktur Data 1 - STMIK Atma Luhur 60

61 if ( Counter > 0) X = Q[F]; F = (F+1) % n; Counter--; else cout << Antrian Kosong ; Atau : if ( Counter == 0) cout << Antrian Kosong ; else X = Q[F]; F = (F+1) % n; Counter--; ontoh program menggunakan circular queue adalah sebagai berikut : Nama program : circularqueue.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 61

62 3. DOUBLE END QUEUE (DEQUEUE) Double End Queue atau biasa disebut sebagai dequeue dapat diartikan sebagai antrian yang mempunyai ujung ganda. Disebut dengan ujung ganda karena antrian dapat dimasukkan (insert) atau dikeluarkan (delete) dari kedua ujung antriannya. Dari sebuah literatur dequeue adalah A deque (Double-ended queue) is a linear list in which insertion and deletions are made to or from either end of the structure (Jean-Paul Tremblay, An Introduction To Data Structures with Applications; McGraw-Hill, 1985). Ilustrasi Dequeue digambarkan seperti sebuah tabung sebagai berikut : Ilustrasi Dequeue yang digambarkan dengan array 1 dimensi adalah sebagai berikut : Dari gambar diatas dapat diketahui bahwa, ada dua buah pointer yang disebut dengan L (Left) dan R (Right). Kedua pointer tersebut berfungsi untuk menentukan posisi antrian yang terakhir, baik dari sebelah kiri dan di sebelah kanan. Pergerakan dari kedua pointer tersebut bisa ke arah kiri dan bisa ke arah kanan, tergantung proses pada antriannya. - Apabila antrian akan diinput (insert) dari sebelah kiri, maka posisi L akan bergerak ke kiri. - Apabila antrian akan diambil (delete) dari sebelah kiri, maka poisis L akan bergerak ke kanan. - Apabila antrian akan diinput (insert) dari sebelah kanan, maka posisi R akan bergerak ke kanan. - Apabila antrian akan diambil (delete) dari sebelah kanan, maka poisis R akan bergerak ke kiri. Beberapa kondisi pada Dequeue adalah : a) Dequeue Kosong Ciri dari dequeue kosong adalah apabila posisi L dan R betul-betul bersebelahan. Dalam algoritma, ciri dequeue kosong adalah : L == R + 1 Atau R == L - 1 Sama seperti Linear Queue dan Circular, kondisi kosong juga merupakan salah satu ciri proses awal (inisialisasi) pada dequeue, walaupun kondisi kosong belum tentu merupakan Algoritma & Struktur Data 1 - STMIK Atma Luhur 62

63 proses awal dari dequeue. Algoritma proses awal (inisialisasi) dari Circular queue adalah : L = 0 ; R = -1; Ilustrasi Dequeue dalam kondisi kosong terlihat pada beberapa gambar berikut : 1) 2) 3) b) Dequeue Penuh Apabila Dequeue penuh, maka Dequeue tidak bisa diinput (insert) lagi. Karena dequeue mempunyai dua buah sisi/pintu/jalan untuk insert antrian, maka ada 3 kondisi penuh yaitu : 1) Dequeue penuh dari sebelah kiri (Left/L) Kondisi ini mengakibatkan antrian tidak bisa diinput (insert) dari sebelah kiri tetapi kemungkinan masih bisa diinput dari sebelah kanan. Cirinya adalah posisi L berada pada indeks pertama dari antrian. Algoritmanya adalah : L == 0 Ilustrasinya dari beberapa gambar berikut : (a) (b) Algoritma & Struktur Data 1 - STMIK Atma Luhur 63

64 (c) 2) Dequeue penuh dari sebelah kanan (Right/R) Kondisi ini mengakibatkan antrian tidak bisa diinput (insert) dari sebelah kanan tetapi kemungkinan masih bisa diinput dari sebelah kiri. Cirinya posisi R berada pada indeks terakhir dari antrian. Algoritmanya adalah : R == n - 1 Ilustrasi Dequeue penuh sebelah kanan dapat dilihat dari beberapa gambar berikut : (a) (b) (c) 3) Dequeue penuh dari kedua sisi Kondisi ini mengakibatkan antrian tidak bisa diinput dari sisi kiri ataupun dari sebelah kanan. Cirinya apabila posisi L berada di indeks pertama dari antrian dan R berada di indeks terakhir dari antrian. Algoritmanya adalah : R == n-1 && L == 0 Ilustrasinya dapat dilihat pada gambar berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 64

65 c) Dequeue Dapat diisi Dequeue masih dapat diisi/diinput (insert) ke antrian dari dua sisi/jalan/pintu. 1) Antrian dapat diisi dari sisi sebelah kiri apabila posisi L tidak berada pada indeks pertama dari antrian. Algoritmanya adalah : L > 0 Ilustrasinya dapat dilihat dari beberapa gambar sebagai berikut : (a) (b) (c) (d) (e) 2) Antrian dapat diisi dari sisi sebelah kanan apabila posisi R tidak berada pada indeks terakhir dari antrian. Algoritmanya adalah : R < n - 1 Ilustrasinya dapat dilihat dari beberapa gambar sebagai berikut : (a) Algoritma & Struktur Data 1 - STMIK Atma Luhur 65

66 (b) (c) (d) (e) d) Dequeue Punya isi Ciri dequeue masih mempunyai isi pada antrian apabila posisi R ataupun L tidak betulbetul bersebelahan. Algoritmanya adalah : L < R+1 atau L <= R atau R > L-1 atau R >= L Ilustrasinya dapat dilihat pada beberapa gambar sebagai berikut : (a) (b) (c) (d) Algoritma & Struktur Data 1 - STMIK Atma Luhur 66

67 (e) Dari beberapa kondisi tersebut mempengaruhi proses PUSH dan POP pada Double End Queue. 1) PUSH Proses PUSH dapat dilakukan selama Dequeue dalam kondisi kosong atau masih dapat diisi. a) Algoritma dasar proses PUSH Dequeue dari sisi sebelah kiri adalah : L = L - 1; Q[L] = X; Proses PUSH dari sebelah kiri tidak dapat dilakukan apabila Dequeue penuh pada bagian kiri atau posisi L berada pada indeks pertama dari antrian. Maka algoritma lengkap proses PUSH Dequeue dari sebelah kiri adalah : if ( L > 0) L = L - 1; Q[L] = X; else cout << Antrian Penuh Kiri b) Algoritma dasar proses PUSH Dequeue dari sisi sebelah kanan adalah : R = R + 1; Q[R] = X; Proses PUSH dari sebelah kanan tidak dapat dilakukan apabila Dequeue penuh pada bagian kanan atau posisi R berada pada indeks terakhir dari antrian. Maka algoritma lengkap proses PUSH Dequeue dari sebelah kanan adalah : if ( R < n - 1) R = R + 1; Q[R] = X; else cout << Antrian Penuh Kanan Algoritma & Struktur Data 1 - STMIK Atma Luhur 67

68 2) POP Proses POP dapat dilakukan selama dequeue dalam kondisi penuh atau masih mempunyai isi pada antrian. a) Algoritma dasar proses POP Dequeue dari sebelah kiri adalah : Q[L] = X; L = L + 1; Proses POP dari sebelah kiri tidak dapat dilakukan apabila Dequeue kosong atau posisi L dan R tidak betul-betul bersebelahan. Maka algoritma lengkap proses POP Dequeue dari sebelah kiri adalah : if ( L < R+1) Q[L] = X; L = L + 1; else cout << Antrian Kosong Kiri b) Algoritma dasar proses POP Dequeue dari sebelah kanan adalah : Q[R] = X; R = R - 1; Proses POP dari sebelah kanan tidak dapat dilakukan apabila Dequeue kosong atau posisi L dan R tidak betul-betul bersebelahan. Maka algoritma lengkap proses POP Dequeue dari sebelah kanan adalah : if ( L < R+1) Q[R] = X; R = R - 1; else cout << Antrian Kosong Kanan Berikut adalah contoh program menggunakan dequeueu : Algoritma & Struktur Data 1 - STMIK Atma Luhur 68

69 Nama Program : dequeue.cpp Algoritma & Struktur Data 1 - STMIK Atma Luhur 69

70 Penjelasan Program : Pada saat program dijalankan proses PUSH akan dilakukan dari arah kanan, karena proses awal inisialisasi baik posisi L maupun R berada di sebelah kiri. Hal ini mengakibatkan proses PUSH tidak bisa dilakukan dari sebelah kiri karena dianggap dequeue penuh. Proses POP pertama kali dilakukan dari arah yang berlawanan. Hal ini dilakukan secara tidak langsung untuk memindahkan posisi L ke sebelah kanan. Sehingga proses PUSH bisa dilakukan dari sebelah kiri. Dan proses POP pada dequeue akan dilakukan dari arah kanan. Output Program : Algoritma & Struktur Data 1 - STMIK Atma Luhur 70

71 Materi X Struktur Data LINKED LIST Sasaran Perkuliahan : 1) Mahasiswa dapat memahami mengenai Linked List 2) Mahasiswa dapat memahami istilah-istilah yang digunakan pada Linked List 3) Mahasiswa dapat memahami macam-macam Linked List 4) Mahasiswa dapat membuat program menggunakan Linked List Linked list disebut juga dengan objek yang dihubungkan satu dengan yang lain. Objek yang dimaksud adalah sekumpulan elemen yang digabung menjadi satu kelompok yang disebut : structure, atau Vertex, atau Node, atau Titik, atau Record atau Simpul. Contoh dari sebuah list adalah array 1 dimensi. Nama lain Array 1 dimensi adalah vektor dan kadang disebut juga dengan list. Perhatikan contoh berikut ini : Dari gambar diatas, dapat diketahui bahwa terdapat sebuah array 1 dimensi dengan nama A. Array tersebut mempunyai 5 elemen yang diwakili oleh indeks 0 sampai ke 4. Dari gambar tersebut dapat pula dikatakan terdapat sebuah list dengan 5 elemen. Tetapi list tersebut bukanlah sebuah Linked List. Karena List tersebut bukanlah List yang di-link satu dengan yang lainnya tapi List yang bersisian atau bergandengan atau berurutan (contiguous) satu dengan lainnya, sedemikian rupa sehingga alamat tiap elemen bersambung satu dengan yang lainnya (contiguous). Yang dimaksud dengan alamat adalah lokasi penempatan elemen didalam memori. Peran dari alamat ini lah yang nantinya akan menghubungkan satu list/simpul dengan list/simpul yang lain. Berikut contoh pembentukan sebuah simpul yang akan digunakan dalam konsep linked list. Simpul adalah nama tipe sebagaimana nama tipe yang telah disediakan oleh Bahasa C seperti : int, long int, float, dan sebagainya. Bila int adalah nama tipe suatu variable, maka Simpul disini adalah nama tipe dari suatu structure atau record, dimana structure tersebut terdiri dari dua field, yaitu : INFO yang bertipe integer (int), dan LINK yang bertipe pointer (pakai *) untuk structure tersebut. Algoritma & Struktur Data 1 - STMIK Atma Luhur 71

72 INFO berfungsi sebagai tempat menyimpan data sedangkan sebuah pointer pada simpul berfungsi untuk menunjukkan alamat data tersebut disimpan di memory sekaligus berperan untuk menghubungkan simpul tersebut ke simpul berikutnya. Konsep ini yang disebut dengan Linked List. Berikut adalah ilustrasi dari beberapa simpul yang telah membentuk Linked List : Dari gambar tersebut dapat diketahui bahwa, terdapat 4 (empat) buah simpul yang diwakili oleh angka (1), (2), (3) dan (4). Masing-masing simpul tersebut sudah memiliki data yang terdapat didalam INFOnya. Keempat simpul tersebut akan dihubungkan (link) satu dengan yang lain. Maka, yang berperan untuk menghubungkan simpulnya adalah LINK pada masing-masing simpul akan menyimpan alamat dari INFO simpul yang akan dituju. Maka linked list dari gambar diatas adalah : - Simpul (1) akan dihubungkan ke simpul (2), karena LINK simpul (1) menyimpan alamat simpul (2). - Simpul (2) akan dihubungkan ke simpul (3), karena LINK simpul (2) menyimpan alamat simpul (3). - Simpul (3) akan dihubungkan ke simpul (4), karena LINK simpul (3) menyimpan alamat simpul (4). Algoritma & Struktur Data 1 - STMIK Atma Luhur 72

73 Untuk memudahkan penggambaran linked list, selanjutnya hubungan antar simpul akan dibuat menggunakan panah, menggantikan penulisan alamatnya. Contoh perubahan ilustrasi dari gambar diatas sebagai berikut : Linked list empat simpul tersebut dapat disederhanakan sebagai berikut : Linked List terbagi kedalam 4 (empat) macam dengan cirinya masing-masing. Keempat linked tersebut adalah : 1. LINEAR SINGLY LINKED LIST Linear Singly Linked List disebut juga dengan Linked List Lurus dengan pointer tunggal. Ilustrasi dari Linear Singly Linked List dapat dilihat dari beberapa gambar berikut : a) Algoritma & Struktur Data 1 - STMIK Atma Luhur 73

74 b) c) d) Untuk selanjutnya Linear Singly Linked List digambarkan sebagai berikut : Dari gambar diatas dapat dijelaskan bahwa, Ada 4 simpul, simpul no (1) sampai dengan no (4). Setiap simpul (record) terdiri dari dua elemen (field) yaitu : Field INFO misal bertipe integer. Field LINK bertipe pointer yang diilustraskan dengan panah. Simpul pertama no (1) berada diujung paling kiri, dan ditunjuk oleh pointer FIRST. Simpul terakhir no (4) berada diujung paling kanan,dan ditunjuk oleh pointer LAST. LINK dari simpul terakhir diisi dengan NULL. Adapun beberapa proses dari Linear Singly Linked List adalah : a) Pembuatan Record Awal (inisialisasi) Beberapa langkah proses inisialisasi pada linear singly linked list adalah : 1) Proses deklarasi sebuah simpul baru : Algoritma & Struktur Data 1 - STMIK Atma Luhur 74

75 Disiapkan 3 buah variabel pointer, yaitu : P, FIRST dan LAST yang kesemuanya berkaitan dengan simpul atau record atau node yang bertipe Simpul. 2) Menyimpan simpul baru ke sebuah alamat di memory melalui pointer P. Ilustrasinya sebagai berikut : Terbentuk sebuah simpul yang alamatnya disimpan dalam pointer P atau disebut : simpul yang ditunjuk oleh pointer P 3) Perintah/instruksi pokok yang diperlukan untuk membuat sebauh simpul baru : P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LINK = NULL; Maksud setiap perintahnya sebagai berikut : a) P=(Simpul*)malloc(sizeof(Simpul)), terbentuk sebuah simpul yang alamatnya disimpan dalam pointer P atau disebut : simpul yang ditunjuk oleh pointer P. Malloc maksudnya adalah Memory Allocation yaitu mengalokasikan memory sebesar atau seukuran (sizeof) yang diperlukan untuk Simpul. b) P->INFO=X, memasukkan data melalui variabel X kedalam field INFO yang simpulnya sedang ditunjuk oleh pointer P. c) FIRST = P, pointer FIRST ikut menunjuk simpul yang ditunjuk oleh pointer P. d) LAST = P, pointer LAST ikut menunjuk simpul yang ditunjuk oleh pointer P. e) P->LINK = NULL, field LINK berisi NULL yang artinya field LINK tidak menunjuk ke alamat manapun. Ilustrasi gambar hasil perintah diatas adalah sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 75

76 b) Insert Kanan (Insert Akhir) Yang dimaksud dengan insert kanan adalah menambahkan simpul baru di bagian kanan linked list. Adapun proses insert simpul kanan diilustrasikan sebagai berikut : 1) Sudah ada sebuah simpul yang ditunjuk oleh pointer P, FIRST dan LAST. Sebut saja simpulnya bernama (1). 2) Dibuat sebuah simpul baru di sebelah kanan dari simpul yang sudah ada tetapi belum berhubungan (link). Sebut saja nama simpulnya adalah (2). Karena simpul (2) baru dibuat, otomatis pointer P akan menunjuk ke simpul (2). 3) Simpul yang pertama (1) sudah dihubungkan dengan simpul yang kedua (2). Otomatis pointer Last menunjuk ke simpul kedua (2), karena simpul kedua adalah simpul terakhir. Alamat LINK simpul pertama akan menunjuk alamat simpul kedua (2). Perintah pokok yang diperlukan untuk menginsert simpul baru sebelah kanan linked list adalah : P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; LAST->LINK = P; LAST = P; P->LINK = NULL; Maksud setiap baris perintah dapat membandingkan dengan proses insert kanan pada gambar diatas. Algoritma & Struktur Data 1 - STMIK Atma Luhur 76

77 c) Insert Kiri (Insert Awal) Yang dimaksud dengan insert kiri adalah menambah sebuah simpul baru pada bagian kiri linked list. Dapat juga diartikan membuat simpul baru yang akan menjadi simpul pertama dari linked list. Adapun proses insert simpul kiri diilustrasikan sebagai berikut : 1) Sudah ada sebuah simpul yang ditunjuk oleh pointer P, FIRST dan LAST. Sebut saja simpulnya bernama (1). 2) Dibuat sebuah simpul baru di sebelah kiri dari simpul yang sudah ada tetapi belum berhubungan (link). Sebut saja nama simpulnya adalah (2). Karena simpul (2) baru dibuat, otomatis pointer P akan menunjuk ke simpul (2). 3) Simpul yang baru akan dihubungkan ke simpul yang sudah ada (1). Pointer FIRST akan menunjuk simpul yang baru dibuat, karena simpul tersebut berada diawal linked list. Maka simpul yang baru akan menjadi simpul pertama (1) dan simpul yang sudah ada menjadi simpul kedua (2). Alamat LINK simpul pertama akan menunjuk alamat simpul kedua. Perintah pokok yang diperlukan untuk menginsert simpul baru dibagian kiri dari linked list adalah : P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; P->LINK = FIRST; FIRST = P; Maksud setiap baris perintah dapat membandingkan dengan proses insert kiri pada gambar diatas. Algoritma & Struktur Data 1 - STMIK Atma Luhur 77

78 d) Insert Tengah Yang dimaksud dengan insert tengah adalah menyisipkan sebuah simpul baru diantara simpul yang sudah ada pada linked list. Adapun proses insert simpul tengah diilustrasikan sebagai berikut : 1) Dibuat sebuah simpul baru yang ditunjuk oleh pointer P. 2) Simpul baru tersebut akan disisipkan antara simpul ketujuh (7) dan kedelapan (8). Simpul ketujuh ditunjuk oleh sebuah pointer bernama Q. Simpul ketujuh tersebut tidak ditunjuk oleh pointer FIRST dan LAST, karena simpul tersebut bukan berada pada bagian pertama atau bagian terakhir dari rangkaian linked list tersebut. Berikut gambaran simpul akan disisipkan tetapi belum terhubung (link). 3) Semula alamat LINK simpul ketujuh (7) menyimpan alamat simpul kedelapan (8), pada saat dihubungkan (link) ke simpul yang baru, maka alamat LINK (yang ditunjuk oleh pointer Q) akan menyimpan alamat simpul yang baru, dan field LINK pada simpul yang baru akan menyimpan alamat simpul kedelapan (8). Perintah pokok yang diperlukan untuk insert tengah simpul baru pada linked list adalah : P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = X; P->LINK = Q->LINK; Q->LINK = P; Maksud setiap baris perintah dapat membandingkan dengan proses insert tengah pada gambar diatas. Algoritma & Struktur Data 1 - STMIK Atma Luhur 78

79 e) Delete Kanan Yang dimaksud dengan delete kanan adalah menghapus simpul yang ada pada linked list. Dapat juga diartikan dengan menghapus simpul terakhir dari linked list. Adapun proses delete simpul kanan diilustrasikan sebagai berikut : 1) Sudah terdapat 4 buah simpul yang membentuk linked list. Simpul yang terakhir akan dihapus, syaratnya simpul sebelah kiri (sebelum) simpul akhir, harus sudah ditunjuk sebuah pointer, misalnya pointer Q. 2) Simpul terakhir dihapus, maka pointer Last akan menunjuk simpul yang sama yang ditunjuk oleh pointer Q, sedangkan field LINK dari simpul yang ditunjuk Q akan berisi null, karena tidak menunjuk ke alamat apapun. 3) Algoritma dasar untuk menghapus simpul tengah dari linked list adalah : free(last); LAST = Q; LAST->LINK = NULL; Maksud setiap baris perintah dapat membandingkan dengan proses insert tengah pada gambar diatas f) Delete Kiri Yang dimaksud dengan delete kiri adalah menghapus simpul sebelah kiri dari rangkaian linked list. Dapat juga diartikan dengan menghapus simpul pertama pada Linked List. Adapun proses delete simpul kiri diilustrasikan sebagai berikut : 1) Sudah terdapat 4 buah simpul yang membentuk linked list. Simpul yang pertama akan dihapus, syaratnya simpul pertama ditambahkan sebuah pointer selain pointer FIRST, misalnya pointer Q. Algoritma & Struktur Data 1 - STMIK Atma Luhur 79

80 2) Pointer FIRST dipindahkan ke simpul kedua. Perintah ini dilakukan karena simpul kedua akan menjadi simpul pertama yang akan ditunjuk oleh pointer FIRST. 3) Simpul pertama dihapus melalui pointer Q. Maka simpul kedua menjadi simpul pertama. 4) Algoritma dasar proses delete kiri sebuah simpul pada linked list adalah : Q = FIRST; FIRST = Q->LINK; free(q); Maksud setiap baris perintah dapat membandingkan dengan proses insert tengah pada gambar diatas g) Delete Tengah Yang dimaksud dengan delete tengah adalah menghapus sebuah simpul diantara dua buah simpul pada linked list. Adapun proses delete tengah sebuah simpul diilustrasikan sebagai berikut : 1) Terdapat 3 buah simpul dari penggalan sebuah linked list, yaitu simpul tujuh (7), delapan (8) dan sembilan (9). Simpul yang akan dihapus adalah simpul delapan (8). Syaratnya harus membuat sebuah pointer baru setelah simpul yang akan dihapus. Dalam contoh ini, pointer baru diletakkan di simpul sembilan (9), misalnya dengan nama pointer R. 2) Setelah simpul delapan (8) dihapus, maka field LINK simpul tujuh (7) akan menyimpan alamat simpul sembilan (9). Algoritma & Struktur Data 1 - STMIK Atma Luhur 80

81 3) Dari contoh ilustrasi diatas, algoritma proses menghapus (delete) tengah sebagai berikut : R = Q->LINK->LINK free(q->link ) Q->LINK = R 2. LINEAR DOUBLY LINKED LIST Linear Doubly Linked List disebut juga dengan Linked List Lurus dengan pointer ganda. Ilustrasi Linear Doubly Linked List digambarkan sebagai berikut : Adapun beberapa proses dari Linear Doubly Linked List adalah : a) Pembuatan simpul awal (inisialisasi) Algoritma untuk membuat simpul awal pada linear doubly linked list adalah : P = (Simpul *) malloc(sizeof(simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; Ilustrasi sebuah simpul baru sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 81

82 b) Insert Kanan Algoritma untuk membuat Insert Kanan pada linear doubly linked list adalah : P = (Simpul *) malloc(sizeof(simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL; Ilustrasi penambahan simpul baru sebelah kanan pada linked list sebagai berikut : c) Insert Kiri Algoritma untuk insert kiri pada linear doubly linked list adalah : p = (Simpul*) malloc(sizeof(simpul)); P->INFO = X; P->RIGHT = LAST; LAST->LEFT = P; LAST = P; P->LEFT = NULL; Ilustrasi penambahan simpul baru sebelah kiri pada linked list sebagai berikut : d) Insert Tengah Algoritma yang digunakan untuk memasukkan/insert tengah adalah : p = (Simpul *) malloc(sizeof(simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; Algoritma & Struktur Data 1 - STMIK Atma Luhur 82

83 Ilustrasi penambahan simpul baru di tengah linked list adalah sebagai berikut : 3. CIRCULAR SINGLY LINKED LIST Ilustrasi dari circular singly linked list adalah sebagai berikut : 4. CIRCULAR DOUBLY LINKED LIST Ilustrasi dari circular doubly linked list adalah sebagai berikut : Algoritma & Struktur Data 1 - STMIK Atma Luhur 83

Bahasa C-M6 By Jamilah, Skom 1

Bahasa C-M6 By Jamilah, Skom 1 BAB 1 KONSEP DASAR BAHASA C 1.1 SEJARAH DAN STANDAR C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang kemudian

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN PERTEMUAN 2 ALGORITMA & PEMROGRAMAN POKOK BAHASAN 1. Pendahuluan 2. Tahapan Pembangunan Program 3. Pengenalan Algoritma 4. Cara Menyajikan Algoritma 5. Data Program 6. Elemen-Elemen Program PENDAHULUAN

Lebih terperinci

Tipe Data dan Operator

Tipe Data dan Operator Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam

Lebih terperinci

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1 MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1 Disusun oleh : Tim Asisten JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA YOGYAKARTA 2011 0 A. Pengantar

Lebih terperinci

Pengenalan C++ Oleh : Dewi Sartika

Pengenalan C++ Oleh : Dewi Sartika Pengenalan C++ Oleh : Dewi Sartika Pendahuluan Bahasa Pemrograman C++ merupakan bahasa tingkat menengah dimana bahasa ini didasarkan atas bahasa C, keistimewaan dari bahasa C++ adalah bahasa ini mendukung

Lebih terperinci

Struktur Bahasa C dan C++

Struktur Bahasa C dan C++ Elemen Program Struktur Bahasa C dan C++ Bahasa C merupakan bahasa pendahulu dari bahasa C++. Pencipta C adalah Brian W. Kernighan dan Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa pemrograman

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar Bahasa Pemrograman Pascal Page 1 / 11 Pengenalan Pascal Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman

Lebih terperinci

Struktur Data Array. Rijal Fadilah S.Si

Struktur Data Array. Rijal Fadilah S.Si Struktur Data Array Rijal Fadilah S.Si Array Berdimensi Satu Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data

Lebih terperinci

Tipe Data, Identifier, Operator dan Control Statement

Tipe Data, Identifier, Operator dan Control Statement Kurikulum Qt { Basic OOP } Chapter 2 Tipe Data, Identifier, Operator dan Control Statement. Agenda Tipe data dan identifier Tipe data bahasa C++ Variabel dan Konstanta Statement Operator dan Ekspresi Control

Lebih terperinci

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2 VARIABEL, TIPE DATA DAN EKSPRESI Bab 2 2.1 IDENTIFIER Indentifier adalah nama yang diberikan untuk nama objek, nama fungsi, nama variable, dll ( sifatnya case sensitive ). Identifier pada C++ terdiri dari

Lebih terperinci

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan

Lebih terperinci

BAB 4 PENGENALAN BAHASA C

BAB 4 PENGENALAN BAHASA C Bab 4 Pengenalan Bahasa C 35 BAB 4 PENGENALAN BAHASA C TUJUAN PRAKTIKUM 1. Mengetahui sejarah perkembangan bahasa C. 2. Mengerti struktur program bahasa C. 3. Mengerti konsep tipe data, variabel, & operator

Lebih terperinci

STMIK AMIKOM YOGYAKARTA. Kusnawi, S.Kom, M.Eng

STMIK AMIKOM YOGYAKARTA. Kusnawi, S.Kom, M.Eng STMIK AMIKOM YOGYAKARTA Kusnawi, S.Kom, M.Eng Dasar pemahaman suatu pemrograman adalah analisa suatu algoritma. Setiap algoritma yang kita susun tidak tergantung pada bahasa pemrograman tertentu. Setiap

Lebih terperinci

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan. Struktur Data Struktur Data Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

STRUKTUR DATA Pertemuan 1 s.d 8

STRUKTUR DATA Pertemuan 1 s.d 8 STRUKTUR DATA Pertemuan 1 s.d 8 Sasaran: Meningkatkan: pemahaman pengetahuan tentang teori dasar struktur data dan penanganan data serta pembuatan algoritma dan penggunaan strukturd dalam pemrograman Materi

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009 SOAL C++ 1. Penulisan Preprocessor yang benar di awali dengan tanda pound atau tanda : a. # c. @ b. & d. = 2. Contoh penulisan file header yang benar yaitu : a. &include c. =include

Lebih terperinci

BAHASA PEMROGRAMAN C

BAHASA PEMROGRAMAN C BAHASA PEMROGRAMAN C A. Pengenalan Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya

Lebih terperinci

Identifier dan Tipe Data

Identifier dan Tipe Data Identifier dan Tipe Data Identifier Identifier atau pengenal merupakan nama yang biasa digunakan untuk : - Variable - Konstanta bernama - Fungsi - Dll Aturan yang berlaku bagi suatu pengenal secara umum

Lebih terperinci

Chapter 1 KONSEP DASAR C

Chapter 1 KONSEP DASAR C Chapter 1 KONSEP DASAR C Sejarah Dan Standar C Akar dari bahasa C adalah BCPL (dikembangkan oleh Martin Richard tahun 1967). Kemudian Tahun 1970, Ken Thompson mengembangkan bahasa tersebut yang di kenal

Lebih terperinci

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue. Pertemuan 9 Waktu Tujuan Pembelajaran : 135 menit : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue. Substansi Materi : Queue Tabulasi Kegiatan Perkuliahan No Tahap Kegiatan Kegiatan Pengajar

Lebih terperinci

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list Universitas Muhammadiyah Sukabumi Artikel Struktur Data Oleh : fahmi fauzi Masukan Judul... 1. STACK DAN QUEUE DENGAN LINKED LIST Pengertian Linked list : sekumpulan elemen bertipe sama, yang mempunyai

Lebih terperinci

PERTEMUAN 7 REVIEW (QUIZ)

PERTEMUAN 7 REVIEW (QUIZ) PERTEMUAN 7 REVIEW (QUIZ) 1. Langkah pertama yang harus dilakukan dalam menyusun suatu program a. Membuat Hipotesa b. Membuat Masalah c. Membuat Algoritma d. Membuat Program e. Menyalakan Komputer 2. Sebuah

Lebih terperinci

Pertemuan 7. REVIEW dan QUIS

Pertemuan 7. REVIEW dan QUIS Pertemuan 7 REVIEW dan QUIS 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, =,!=, termasuk dalam operator

Lebih terperinci

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman Jurusan Teknik Informatika Fakultas Teknik Universitas Maritim Raja Ali Haji ALGORITMA DAN PEMOGRAMAN I. ALGORITMA II. BAHASA

Lebih terperinci

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut 1. Pengenalan Bahasa C++ a. Elemen Bahasa C+ Bahasa C++ ditulis dari beberapa elemen, antara lain: Pernyataan Satu atau beberapa ekspresi

Lebih terperinci

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng. Elemen Bahasa Pemrograman Aditya Rizki Yudiantika, M.Eng. Algoritma dan Struktur Data (SI063) Ganjil 2017/2018 Outline Pengenalan bahasa C++ Struktur penulisan kode dan elemen Tipe data Konstanta Operator

Lebih terperinci

OPERATOR DAN STATEMEN I/O

OPERATOR DAN STATEMEN I/O OPERATOR DAN STATEMEN I/O PEMROGRAMAN TURBO C++ OPERATOR Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi. OPERATOR PENUGASAN Operator Penugasan

Lebih terperinci

Selection, Looping, Branching

Selection, Looping, Branching Selection, Looping, Branching Struktur If untuk membuat percabangan alur program dengan satu pilihan saja dapat mengatur apakah sebuah perintah akan dijalankan atau tidak tergantung kepada kondisinya setidaknya

Lebih terperinci

Dasar Pemrograman Mikrokontroler dengan Bahasa C

Dasar Pemrograman Mikrokontroler dengan Bahasa C Dasar Pemrograman Mikrokontroler dengan Bahasa C Pokok Bahasan: 1. Penggunaan Fungsi (Using Functions) 2. Penanaman bahasa rakitan di dalam Program 'C' Tujuan Belajar: Setelah mempelajari dalam bab ini,

Lebih terperinci

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C++ 6.0 STRUKTUR BAHASA C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). Setiap program akan dieksekusi dimulai dari statement

Lebih terperinci

PENGENALAN C++ Bab 1

PENGENALAN C++ Bab 1 PENGENALAN C++ Bab 1 1.1 SEJARAH C++ Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Pertama kali, prototype

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2 VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,

Lebih terperinci

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA 1 BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA IDENTIFIER Identifier adalah suatu tanda yang mewakili nama-nama variabel, method, class, dsb. Ingat : Bahasa

Lebih terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER BELAJAR PENUNJANG PLPG SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII

Lebih terperinci

Konstruksi Dasar Algoritma

Konstruksi Dasar Algoritma Konstruksi Dasar Algoritma ALGORITMA DAN PEMROGRAMAN [IF6110202] Yudha Saintika, S.T., M.T.I. Sub-Capaian Pembelajaran MK Pendahuluan Instruksi dan Aksi Algoritma merupakan deskripsi urutan pelaksanaan

Lebih terperinci

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100: Struktur Kontrol Sebuah program biasanya tidak terbatas hanya pada intruksi yang terurut saja, tetapi juga memungkinkan terjadinya percabangan, perulangan dan pengambilan keputusan. Untuk mengatasi kebutuhan

Lebih terperinci

Bab 2. Dasar-Dasar Pemrograman C

Bab 2. Dasar-Dasar Pemrograman C Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan

Lebih terperinci

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom DASAR PEMROGRAMAN PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom https://www.facebook.com/groups/dasarpemrogramanc TUJUAN Mengenal sejarah, struktur, sintaks

Lebih terperinci

Selection / Pemilihan PEMILIHAN

Selection / Pemilihan PEMILIHAN Selection / Pemilihan Slamet Kurniawan, S.Kom PEMILIHAN Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan

Lebih terperinci

OPERASI PERNYATAAN KONDISI

OPERASI PERNYATAAN KONDISI OPERASI PERNYATAAN KONDISI A. Pernyataan IF pernyataan if mempunyai pengertian, jika kondisi bernilai benar, maka perintah dikerjakan dan jiak tidak memenuhi syarat maka diabaikan. Dapat dilihat dari diagram

Lebih terperinci

LAPORAN PRAKTIKUM RESMI QUEUE

LAPORAN PRAKTIKUM RESMI QUEUE LAPORAN PRAKTIKUM RESMI QUEUE Disusun oleh : Amin Setyaningrum 201301052 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO

Lebih terperinci

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom Tipe Data dan Variabel Dosen Pengampu Muhammad Zidny Naf an, M.Kom Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan

Lebih terperinci

Bab 2 DASAR-DASAR ALGORITMA

Bab 2 DASAR-DASAR ALGORITMA Bab 2 DASAR-DASAR ALGORITMA Pada bab ini anda akan mempelajari 1. Nama (pengenal) 2. Nilai 3. Variabel dan Konstanta 4. Penugasan (Assignment) 5. Jenis-jenis tipe data 6. Jenis-jenis operasi dan kaitannya

Lebih terperinci

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN I. Algoritma Pemrograman Yang Baik Ciri-ciri algoritma pemrograman yang baik adalah: 1. Memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah 2. Menghasilkan

Lebih terperinci

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart Pertemuan ke-1 Praktikum Algoritma dan Pemrograman Laboratorium Pemrograman dan Informatika Teori Pengumuman

Lebih terperinci

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN Obektif: Praktikan mengetahui arra, percabangan, dan perulangan pada Java. Praktikan mengetahui bentuk umum

Lebih terperinci

Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1 2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya

Lebih terperinci

IT234 - Algoritma dan Struktur Data. Ramos Somya

IT234 - Algoritma dan Struktur Data. Ramos Somya IT234 - Algoritma dan Struktur Data Ramos Somya Asal kata Algoritma berasal dari nama seorang ilmuan Persian yang bernama Abu Ja far Mohammed lbn Musa al-khowarizmi, yang menulis kitab al jabr w al-muqabala

Lebih terperinci

Tujuan Instruksional. Mahasiswa mampu :

Tujuan Instruksional. Mahasiswa mampu : Tujuan Instruksional Mahasiswa mampu : Mengulang dan mengingatkan kembali tentang Dasar Pemrograman Mengigatkan kembali pemahaman tentang Flow Control, Looping, dll Penting!! Kehadiran kurang dari 80%

Lebih terperinci

Komentar, Identifier, Konstanta dan Variabel

Komentar, Identifier, Konstanta dan Variabel PEMROGRAMAN BERORIENTASI OBJEK Komentar, Identifier, Konstanta dan Variabel Budhi Irawan, S.Si, M.T KOMENTAR PROGRAM Dalam proses pengembangan sebuah program, pasti akan disibukan dengan penulisan kode-kode

Lebih terperinci

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++ I.PENDAHULUAN 1. 1. ALGORITMA Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan

Lebih terperinci

3. Struktur Perulangan dalam C++

3. Struktur Perulangan dalam C++ 3. Struktur Perulangan dalam C++ Obyektif Praktikum : Mengerti struktur perulangan dalam C++ Dapat menggunakan struktur perulangan berdasarkan penggunaannya Struktur perulangan (loops) Loops merupakan

Lebih terperinci

Achmad Solichin.

Achmad Solichin. Pemrograman Bahasa C dengan Turbo C Sh-001@plasa.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),

Lebih terperinci

BAB 5 PERULANGAN DAN ARRAY

BAB 5 PERULANGAN DAN ARRAY Bab 5 Perulangan dan Array 66 BAB 5 PERULANGAN DAN ARRAY TUJUAN PRAKTIKUM 1. Praktikan mengerti apa yang dimaksud dengan perulangan 2. Praktikan mengerti apa yang dimaksud dengan seleksi kondisi 3. Praktikan

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Algoritma Pemrograman Bekti Wulandari, M.Pd Kelas B TE 2014 Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level

Lebih terperinci

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Keg. Pembelajaran 2 : Mengenal Bahasa C++ Keg. Pembelajaran 2 : Mengenal Bahasa C++ 1. Tujuan Kegiatan Pembelajaran Setelah mempelajari materi kegiatan pembelajaran ini mahasiswa akan dapat : 1) Mengenal secara baik sintak-sintak dalam bahasa

Lebih terperinci

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

TIPE DATA, VARIABLE, dan OPERATOR DELPHI TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan

Lebih terperinci

OPERASI SELEKSI PEMROGRAMAN C++

OPERASI SELEKSI PEMROGRAMAN C++ OPERASI SELEKSI PEMROGRAMAN C++ ruliriki@gmail.com PEMILIHAN IF SWITCH PEMILIHAN Memilih bilangan terbesar atau terkecil dari dua buah bilangan menggunakan Control statement if Syntax Penulisan if statement:

Lebih terperinci

elemen Dasar Bahasa Pemrograman C

elemen Dasar Bahasa Pemrograman C Elemen-elemen elemen Dasar Bahasa Pemrograman C Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Identifier : Elemen Dasar C Nama pengenal (identifier) adalah nama-nama yang ditentukan

Lebih terperinci

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date]

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date] [Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date] H a l a m a n 1 DAFTAR ISI DAFTAR ISI... 1 1. TIPE DATA DALAM BORLAND DELPHI7... 2 1.1.

Lebih terperinci

Teori Algoritma TIPE DATA

Teori Algoritma TIPE DATA Alam Santosa Teori Algoritma Dasar Algoritma TIPE DATA Program komputer adalah deretan perintah untuk memanipulasi data input menjadi informasi yang bermanfaat bagi pengguna (user). Data yang diinput dapat

Lebih terperinci

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti KONSTANTA Menghitung besaran-besaran fisis dalam bidang fisika memerlukan suatu konstantakonstanta. Bahasa C dan C++ menyediakan tipe data tambahan sehingga variabel yang kita gunakan merupakan konstanta

Lebih terperinci

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement Chapter 2 Tipe Data, Identifier, Operator dan Control Statement Tipe Data dan Identifier Program adalah kumpulan instruksi yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk

Lebih terperinci

Modul 1 Dasar Dasar Bahasa Pemrograman C

Modul 1 Dasar Dasar Bahasa Pemrograman C Modul 1 Dasar Dasar Bahasa Pemrograman C 1. C dan Pengolahan Sinyal Digital C adalah bahasa pemrograman tingkat tinggi. Sebab bahasa pemrogramannya menggunakan keyword dan syntax yang mudah dimengerti

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE STACK = TUMPUKAN SUATU SUSUNAN KOLEKSI DATA DIMANA DATA DAPAT DITAMBAHKAN DAN DIHAPUS SELALU DILAKUKAN PADA BAGIAN AKHIR DATA, YANG DISEBUT DENGAN TOP

Lebih terperinci

MODUL DUA VARIABEL DAN TIPE VARIABEL

MODUL DUA VARIABEL DAN TIPE VARIABEL MODUL DUA VARIABEL DAN TIPE VARIABEL Tujuan : Mahasiswa memahami tentang operator dan penggunaannya dalam bahasa pemrograman java, mengetahui macam-macam kategori operator dan mengetahui perbedaan operator

Lebih terperinci

Pengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom

Pengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom Pengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom Tujuan Pembelajaran Mahasiswa dapat memahami konsep dasar pemrograman dengan bahasa C++ Mahasiswa dapat membuat aplikasi sederhana menggunakan bahasa C++,

Lebih terperinci

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I Dasar Pemrograman Kondisi dan Perulangan By : Hendri Sopryadi, S.Kom, M.T.I Kondisi dan Perulangan Pendahuluan Dalam sebuah proses program, biasanya terdapat kode penyeleksian kondisi, kode pengulangan

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Noor Ifada noor.ifada@if.trunojoyo.ac.id S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi

Lebih terperinci

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh PRAKTIKUM 2 1. Variabel Pengenal (identifier) merupakan nama yang biasa digunakan untuk suatu perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh pemrogram. Variabel adalah suatu

Lebih terperinci

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL Disusun oleh : Nama : Trins Astriani Br Sidauruk NIM : 201302011 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN KOMPTERISASI AKUNTANSI

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Lampu Lalu Lintas 2.1.1 Pengertian Lampu Lalu Lintas Menurut Penjelasan UU Lalu Lintas No. 14 tahun 1992 pasal 8 ayat 1 huruf c menyebutkan bahwa Pengertian alat pemberi isyarat

Lebih terperinci

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Penilaian : Gasal TA 2013/2014 UAS = 35% UTS = 30% ABSEN = 5% TUGAS = 30% Jumlah = 100% Tugas kirim ke : dosen.it2011@gmail.com Batas Tugas 9 hari setelah

Lebih terperinci

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT PEMROGRAMAN TERSTRUKTUR C++ OLEH : IR. H. SIRAIT, MT PEMROGRAMAN C++ C sebagai bahasa pendahulunya C++ C merupakan termasuk bahasa pemrograman tingkat menengah. Pencipta C adalah Brian W. Kernighan dan

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( ) MAKALAH STRUKTUR DATA DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH (14.1.03.03.0024) FAKULTAS TEKNIK PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS NUSANTARA PGRI KEDIRI

Lebih terperinci

Algoritma Pemrograman. Fery Updi,M.Kom

Algoritma Pemrograman. Fery Updi,M.Kom Algoritma Pemrograman Fery Updi,M.Kom 1 Kompetensi Detail Mampu menjelaskan Prinsip-prinsip Algoritma Mampu menjelaskan Konsep Bahasa Pemrograman Mampu membuat Flowchart dan Pseudocode Mampu menjelaskan

Lebih terperinci

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A Institut Teknologi Sumatera PRE TEST Apa itu tipe data? Apa itu variabel? Apa itu konstanta? Sebuah lingkaran memiliki

Lebih terperinci

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER) MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER) I. TUJUAN 1. Mahasiswa mengenal struktur bahasa pemrograman C dan C++ 2. Mahasiswa mengenal perintah-perintah dasar C dan C++ 3. Mahasiswa

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

STRUKTUR DASAR PEMROGRAMAN

STRUKTUR DASAR PEMROGRAMAN STRUKTUR DASAR PEMROGRAMAN P E N G E N A L A N P R O G R A M S T U D I Institut Teknologi Sumatera 15/09/2017 PENGANTAR PROGRAM STUDI 1 TUJUAN KULIAH Subtopik Input Proses Output dalam program Deklarasi

Lebih terperinci

(3) BAHAN KAJIAN (materi ajar)

(3) BAHAN KAJIAN (materi ajar) FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL RENCANA PEMBELAJARAN Matakuliah : Konsep Struktur Data Semester : Genap Kode : 08010305 SKS : 2 Jurusan : Manajemen Informatika Dosen

Lebih terperinci

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA Khusnawi, S.Kom, M.Eng 2010 ( Structure(pErulanGan RePetiTion Pendahuluan Saat membuat suatu program setiap instruksi bisa dimulai dari

Lebih terperinci

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN) Pertemuan 5 STACK atau TUMPUKAN STACK (TUMPUKAN) Merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top)

Lebih terperinci

MODUL 3 ALGORITMA PEMROGRAMAN

MODUL 3 ALGORITMA PEMROGRAMAN MODUL 3 ALGORITMA PEMROGRAMAN Pada Modul ini anda akan mempelajari 1. Pengenal 2. Nilai 3. Variabel dan Konstanta 4. Penugasan (Assignment) 5. Jenis-jenis tipe data 6. Jenis-jenis operasi dan kaitannya

Lebih terperinci

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n. 1 ELEMEN DASAR C++ HIMPUNAN KARAKTER Himpunan karakter pada C++ terdiri huruf, digit maupun simbol-simbol lainnya (termasuk spasi dan karakter kontrol). Huruf, contoh : A s/d Z dan a s/d z Digit, contoh

Lebih terperinci

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

Implementasi Queue menggunakan Array. Imam Fahrur Rozi Implementasi Queue menggunakan Array Imam Fahrur Rozi Preprocessor Directive Di-include-kan library iostream.h, karena program akan menggunakan perintah cin dan cout Di-include-kan juga library conio.h,

Lebih terperinci

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR BAB 3 TYPE DATA, VARIABLE DAN OPERATOR Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman

Lebih terperinci

Struktur Data. Pertemuan 2

Struktur Data. Pertemuan 2 Pertemuan 2 Tujuan Pembelajaran Mahasiswa mampu menjelaskan konsep struktur data (Pengertian Struktur data, Konsep struktur data, Tipe data sederhana, Deklarasi data dalam bahasa pemrograman. 1. Pengertian

Lebih terperinci

Pertemuan 5 PEMILIHAN/PERCABANGAN

Pertemuan 5 PEMILIHAN/PERCABANGAN ALGORITMA PEMROGRAMAN (Semester 1 - IF6110202) Pertemuan 5 PEMILIHAN/PERCABANGAN Jadwal: Selasa, 24/10/2017, 10:20-12.00 (2 sks) Dosen:Condro Kartiko CAPAIAN PEMBELAJARAN UMUM Setelah mengikuti mata kuliah

Lebih terperinci

Struktur Data. PDE - Struktur Data 1

Struktur Data. PDE - Struktur Data 1 Struktur Data Copyright@Ihsan Jatnika PDE - Struktur Data 1 Objektif Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman Mengetahui operasi yang terkait dengan struktur data

Lebih terperinci

24/09/2017 PERCABANGAN

24/09/2017 PERCABANGAN 1 PERCABANGAN STATEMENT IF Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan dieksekusi jika dan hanya jika persyaratan bernilai benar (true). 2 BENTUK PERNYATAAN IF atau 3 PENJELASAN

Lebih terperinci

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words Comments Comments digunakan untuk memberikan keterangan/penjelasan suatu baris program. Comments tidak akan dikompilasi oleh compiler. Lambang untuk comments : - double slash ( // ) untuk memberikan penjelasan

Lebih terperinci

Pemrograman Berorientasi Objek. Beni Suranto, S.T.

Pemrograman Berorientasi Objek. Beni Suranto, S.T. Pemrograman Berorientasi Objek Beni Suranto, S.T. Pada bab ini akan dibahas mengenai control structure pada bahasa pemrograman Java, meliputi seleksi (decision making) dan pengulangan (loop/repetition).

Lebih terperinci

Array 1 A. TUJUAN PEMBELAJARAN

Array 1 A. TUJUAN PEMBELAJARAN PRAKTIKUM 18 Array 1 A. TUJUAN PEMBELAJARAN 1. Memahami konsep array dan penyimpanannya dalam memori 2. Mempelajari pengunaan variabel array berdimensi satu 3. Memahami penggunaan variabel array berdimensi

Lebih terperinci

PENGENALAN BAHASA C. Praktikum 3

PENGENALAN BAHASA C. Praktikum 3 Praktikum 3 PENGENALAN BAHASA C A. TUJUAN 1. Mengenal sintaks dan fungsi-fungsi dasar dalam bahasa C 2. Mampu membuat flowchart untuk algoritma untuk memecahkan suatu masalah sederhana, selanjutnya mengimplementasikannya

Lebih terperinci