PEMROGRAMAN I Semester I 2017/2018 Anifuddin Azis, S.Si, M.Kom.
Pendahuluan Pada saat ini kebutuhan data semakin kompleks. Bayangkan: indeks dari 8 milyar halaman ! (Google). Semua program komputer berkaitan dengan data : Sistem Informasi menyimpan data laporan, user, informasi, dsb Game menyimpan data pemain, posisi, skor, dsb Search engine menyimpan data URL, hyperlink, bobot, dsb Pemilihan algoritma juga mempengaruhi waktu eksekusi oleh komputer, sebagai contoh : Dimisalkan ada 3.000 file teks dengan rata-rata 20 baris tiap file teks-nya. Dimana tiap baris mengandung 10 kata. Jadi akan ada 600.000 kata. Tentukan jumlah kata “bandung”. Jika dimisalkan dibutuhkan waktu 1 detik untuk mencek sebuah kata sama dengan “bandung”. Solusi 1: menggunakan sequential matching, membutuhkan waktu 1 detik x 600.000 kata = 166 jam Solusi 2 : Binary searching : log 2 600000 = 19 detik vs 166 jam!
Algoritma Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. Algoritma memiliki lima ciri penting : 1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti – dua (ambigu). 3. Algoritma memiliki nol atau lebih masukan. 4. Algoritma memiliki satu atau lebih keluaran. 5. Algoritma harus efektif.
Struktur Data Struktur data : cara merepresentasikan data agar efisien dalam penyimpanan dan pengolahannya. Struktur data seharusnya diterapkan pada algoritma yang didesain secara efisien Jadi Algoritma & Struktur Data adalah suatu disiplin ilmu yang mempelajari bagaimana merepresentasikan data secara efisien dan desain pengolahannya secara efisien.
Roadmap belajar pemrograman
Program dan Bahasa Pemrograman Program komputer : instruksi atau perintah yang ditulis secara terinci, sistematis, logis, dapat dimengerti / dipahami dan dapat dilaksanakan oleh komputer Proses pembuatan program komputer sampai diperolehnya hasil yang dikehendaki disebut dengan pemrograman komputer, dan dilaksanakan oleh pemrogram (programmer). Bahasa yang digunakan sebagai komunikasi diantara orang dengan komputer (untuk penulisan program) disebut bahasa pemrograman
Kelompok Bahasa Pemrograman Dilihat kedekatannya kepada “bahasa manusia”, maka bahasa pemrograman dikelompokkan menjadi dua, yaitu: Bahasa pemrograman tingkat rendah Bahasa pemrograman tingkat rendah merupakan “bahasa ibu” dari komputer, yaitu bahasa yang tidak memerlukan penterjemah untuk dapat dipahami dan dimengerti oleh komputer. Atau dengan kata lain untuk berkomunikasi secara langsung dengan komputer orang perlu menggunakan bahasa tingkat rendah. Contoh dari bahasa pemrograman tingkat rendah ialah bahasa mesin (machine language).
Bahasa pemrograman tingkat tinggi Dengan kekurangan dari bahasa tingkat rendah sebagaimana telah dijelaskan, kemudian dikembangkan bahasa pemrograman yang lain dan diantaranya ialah bahasa pemrograman tingkat tinggi. Bahasa pemrograman tingkat tinggi mempunyai ciri-ciri sebagai berikut: a. Penulisannya mirip dengan bahasa sehari-hari (bahasa Inggris) b. Tergantung pada mesin komputer yang digunakan c. Bahasa pemrograman tingkat tinggi disebut juga dengan bahasa generasi ketiga. Program yang ditulis dengan bahasa pemrograman tingkat tinggi tidak dapat langsung dimengerti oleh komputer, dan harus diterjemahkan dahulu oleh sebuah “penerjemah” ke dalam bahasa mesin untuk dapat dilaksanakan atau dieksekusi oleh Unit Pemroses Pusat.
Penerjemah Bahasa Pemrograman Kompiler Menerjemahkan program sebelum dijalankan Penerjemahan bersifat tetap Kesalahan penulisan diketahui setelah proses kompilasi Perbaikan program dilakukan dengan kembali ke pengedit teks program Interpreter Menerjemahkan program pada saat dijalankan Penerjemahan bersifat sementara Kesalahan penulisan langsung diberitahukan Perbaikan program dapat langsung dilaksanakan
Tahapan Penyelesaian Masalah dengan Pemrograman Komputer 1. Identifikasi masalah Contoh : Apa tugas-tugas yang harus dilaksanakan?, misalnya : Hitung nilai rata-rata mahasiswa yang ditentukan. Terjemahkan naskah pidato dari bahasa inggris menjadi bahasa indonesia Apa persyaratan performansinya (ketepatan waktu/ruang/ kecepatan ) ?
2. Desain algoritma, meliputi : Deskripsi (cara penulisan): natural language pseudo-code diagram (seperti flowchart) Kriteria algoritma: Input: nol atau lebih Output: satu atau lebih Definisi/terjemahan/interprestasi: jelas, tepat untuk tiap instruksi Batasan: sebuah algoritma harus berhenti setelah sejumlah langkah, walaupun jumlah langkah boleh banyak tapi harus terbatas Efektifitas: tiap instruksi harus berupa perintah dasar bukan merupakan bentukan dari beberapa perintah
Pemutusan bahasa pemrograman yang akan digunakan 3. Analisis Algoritma Space complexity Berapa banyak space yang dibutuhkan Time complexity Berapa lama waktu running algoritma 4. Implementasi Pemutusan bahasa pemrograman yang akan digunakan C, C++, Lisp, Java, Perl, Prolog, assembly, dll. Penulisan koding harus terdokumentasi dengan baik dan jelas. 5. Ujicoba Mengintegrasikan feedback dari user, perbaiki bug, penjaminan kompatibelitas pada berbagai platform 6. Pemeliharaan