STRUKTUR DATA MUSTAKIM, S.T PERTEMUAN 3 Jurusan Sistem Informasi Fakultas Sains dan Teknologi UIN Suska Riau 2011 PENGANTAR PEMROGRAMAN PEMROGRAMAN YANG BAIK Perangkat Lunak Seni, Sains dan Rekayasa Rekayasa Perangkat Lunak : Disiplin yang mempelajari teknik, metodologi, manajemen dan sebagainya untuk mendapatkan dan menghasilkan Perangkat Lunak yang berkualitas. Halaman 3 PEMROGRAMAN YANG BAIK Urutan dan jenis aktifitas yang benar dan sesuai dengan model proses dan metodologi yang dipilih adalah: 1. Analisis dan Spesifikasi Masalah 2. Perancangan Sistem 3. Pemrograman dan integrasi 4. Verifikasi dan Validasi 5. Pemeliharaan Sistem Halaman 4 GAYA PEMROGRAMAN DAN GUNA ULANG Gaya Pemrograman Pemrograman mempunyai gaya sesuai dengan bahasa yang digunakan, setiap bahasa mempunyai gaya pemrograman yang berbeda-beda Guna Ulang Mereduksi ongkos perancangan, penodean/ pemrograman dan pengujian. Halaman 5 GAYA PEMROGRAMAN DAN GUNA ULANG Aturan Guna Ulang 1. Jaga agar operasi koheren 2. Jaga agar operasi berukuran kecil 3. Jaga agar operasi konsisten 4. Pemisahan Kebijakan dan Implementasi 5. Menyediakan cakupan yang seragam 6. Perlebar operasi sebesar mungkin 7. Menghindari operasi global Halaman 6 PETUNJUK PEMROGRAMAN 1. 2. 3. 4. 5. 6. 7. 8. 9. Jangan memulai pemrograman jika belum siap Jaga agar metode-metode mudah dipahami Buat agar metode mudah dibaca Gunakan nama yang sama dengan nama pada model objek Pilihlah nama identifier dengan hati-hati Gunakan petunjuk pemrograman yang disepakati pada tim Lakukan pemaketan ke modul Lakukan dokumentasi terhadap kelas ADT dan metode Lakukan publikasi spesifikasi Halaman 7 STRUKTUR DATA UNTUK FRACTION ILUSTRASI MASALAH Integer Pembilang (Numerator) Integer (bukan nol) penyebut/pembagi (denominator) if Komputer tidak menghendaki 0,3333333 then error rate else Komputer menghendaki 1/3 1=pembilang dan 3=penyebut {*/Lebih jauh pada Aljabar Linier dan OOP*/} Halaman 9 TUJUAN ADT FRACTION Tujuan: Menciptakan type dimana entitas (instan) sebagai cara alami bilangan pecahan bukan bilangan desimal. {*/Lebih lanjut di Matematika Diskrit tentang Bilangan*/} Halaman 10 OPERASI DI ADT FRACTION 1. Operasi Pembangunan : bilangan pecahan berparameter atau default 2. Operasi Aritmatika 3. Operasi Pengopian : nilai bilangan pecahan ke bilangan lain 4. Operasi Relasi : perbandingan bilangan pecahan dengan bilangan pecahan lain 5. Operasi Konversi : bil pecahan ke bil nyata, bil pecahan menjadi string dan sebaliknya dsb Halaman 11 STRUKTUR DATA UNTUK OBJECT ORIENTED PROGRAMMING OOP • Dalam paradigma pemrograman berorientasi obyek dikenal kelas dan obyek. Kelas merupakan blue print dari obyek – obyek yang akan dibuat. Analogi kelas dan obyek seperti rancangan model rumah dan pembangunan rumah-rumah, adapun proses pembuatan obyek dari kelas dikenal dengan instantiasi. • Pembuatan obyek dari kelas dengan instantiasi. Sebagai contoh kita ambil kelas manusia. Kelas manusia mempunyai atribut : nama. Selain itu kelas manusia juga mempunyai method : tampilkan nama, kerja, makan. Halaman 13 OBJEK Objek (object): entitas yang memiliki kumpulan dari data serta metoda-metoda (method-method) yang bekerja pada data tsb. Data dan metoda-metoda suatu kelas mendefinisikan isi dan sifat tersebut. Halaman 14 KELAS Kelas obyek (object class): (disngkat kelas) mendefinisikan sekumpulan obyek yang memiliki metoda-metoda dan jenis data yang sama; obyekobyek tersebut didefinisikan secara format dalam kelas atau dengan perkataan lain suatu obyek merupakan instance dari kelas obyeknya Halaman 15 METODA Metoda: spesifikasi "sifat" dari kelas yang secara formal ditulis dalam bentuk prosedur/fungsi dan metoda in mengkomputasi/beraksi berdasar sejumlah data yang tedapat pada obyek dan/atau argumen yang diberikan serta data lain yang aksesibel oleh obyek tsb Halaman 16 ANALOGI Kelas : Rancangan Rumah Objek : Rumah Metoda : Jendela, Pintu, Kamar Halaman 17 PEMAHAMAN TENTANG OOP 1. Buat sebuah kasus sederhana 2. Tentukan yang mana kelas, objek dan method 3. Buat kedalam sebuah bahasa Java kemudian tentukan yang mana antara kelas, objek dan method Halaman 18 STRUKTUR DATA DENGAN JAVA MENGAPA JAVA ? Karena java adalah bahasa pemrograman multi platform. Java tidak menyediakan IDE khusus seperti halnya bahasa pemrograman yang lain. Pemrogram bisa menggunakan IDE yang support ke Java, misalnya Netbeans, Eclips, TexPad, dan lain-lain. Editor teks bisa digunakan semisal Notepad Halaman 20 HIMPUNAN KARAKTER • Himpunaan karakter terdiri dari huruf, digit maupun simbol-simbol lainya (termasuk spasi, karakter kontrol). Contoh : • Huruf : A, a, B, b, C, c ............... • Digit : 0, 1, 2, 3, 4, 5 ........... • Simbol dan lainnya : _ - + * dan sebagainya Halaman 21 PENGENAL Pengenal atau identifier adalah suatu nama yang bisa dipakai dalam pemrograman untuk menyatakan : • variabel • konstanta bernama • tipe data • fungsi • label • obyek Halaman 22 VARIABEL DAN KONSTANTA • Variabel digunakan dalam program untuk menyimpam suatu nilai, dan nilai yang ada padanya dapat diubah selama ekseskusi berlangsung. ex: a,b,c : integer • Konstanta adalah nilai yang tetap. ex: pi, sin, dll Halaman 23 CONTOH PROGRAM public class Coba { public static void main(String args[]) { System.out.println(“Ini adalah Struktur Data"); } } Halaman 24 PENJELASAN • public class Pertama adalah nama kelas yang kita buat (dalam java setiap membuat program berarti membuat sebuah kelas). • public static void main(String args[]) adalah permulaan fungsi utama dalam java. Kata kunci void didepan main merupakan keharusan pada java. • System.out.println memberikan hasil/output. • Lebih Jelas di PBO Halaman 25 MATEMATIKA DASAR FLOOR DAN CEIL • ↓ x adalah bilangan bulat terbesar yang tidak melibihi x • ↑ x adalah bilangan bulat terkecil yang tidak lebih kecil dibanding x • Jika x adalah bilangan bulat, maka: Jika ↓x = ↑x = x • Jika x bukan bilangan bulat, maka: Jika ↓x + 1 = ↑x Halaman 27 CONTOH • ↓3,14 = 3 • ↑3,14 = 4 • ↓√5 = 2 • ↑√5= 3 • ↓7 = 7 • ↑7 = 7 Fungsi Floor dan ceil fungsi statis dikelas Math pada paket java.lang Halaman 28 NILAI ABSOLUT Nilai absolut dari bilangan riil x, ditulis ABS(x) atau |x|. • Bernilai 0, bila x=0 • Bernilai x, bila x > 0 • Bernilai –x, bila x < 0 Halaman 29 CONTOH • • • • • |-15| = 15 |7| = 7 |-3,333| = 3,333 |4,444| = 4,444 |-0,75| = 0,75 Fungsi Absolut fungsi statis dikelas abs pada paket java.lang Halaman 30 INT(X) Bila x adalah bilangan riil, INT(x) adalah nilai bilangan bulat dari x dengan cara menghilangkan bagian pecahan dari bilangan x Contoh : • INT(3,14) = 3 • INT(√5) = 2 • INT(-8,5) = -8 • INT(7) = 7 Halaman 31 FUNGSI SISA BAGI (MOD) Bila k sembarang bilangan bulat dan M adalah bilangan bulat positif, maka k(mod M). Contoh : • 25 (mod 7) = 4 • 25 (mod 5) = 0 • 35 (mod 11) = 2 • 3 (mod 8) = 3 Halaman 32 TOLONG DIKERJAKAN Terdiri dari 6 kelompok, untuk 1 perwakilan: 1. Penjumlahan 2. Aritmatika 3. Floor dan Ceil 4. Absolut 5. Int 6. Mod Halaman 33 TOLONG DIKERJAKAN Buatlah struktur algoritma atau program dari fungsi matematika berikut: Penjumlahan - input: 3 buah bilangan - outpt: menghasilkan nilai penjumlahan dari 3 buah bilangan tersebut Halaman 34 TOLONG DIKERJAKAN Buatlah struktur algoritma atau program dari fungsi matematika berikut: Aritmatika - input: 2 buah bilangan - terdapat 4 proses : Tambah, kurang, kali, bagi - outpt: menghasilkan 4 keluaran dari hasil penjumlahan, pengurangan, perkalian dan pembagian Halaman 35 TOLONG DIKERJAKAN Buatlah dengan menggunakan bahasa C/ C++ untuk menentukan fungsi Floor dan Ceil, Absolut, int, dan Mod… Masing-masing satu program menghasilkan satu keluaran. Halaman 36