ALGORITMA PEMROGRAMAN 1C PRAGMATIK Indah Wahyuni
PENDAHULUAN Pragmatic sebuah bahasa pemrograman berhubungan dengan : Kemudahan Implementasi Efisiensi dari suatu Aplikasi Metodologi Pemrograman Contoh : Pemanfaatan dan Alokasi memori yang tepat Kecepatan pemrosesan Pada bhs.prog JAVA atau C++ 2
PRAGMATIK Pragmatik adalah aspek praktis tentang bagaimana membangun dan memakai fiturfitur dari sebuah bahasa pemrograman untuk mencapai tujuan Fungsinya: Menguraikan derajat tingkat sukses dengan suatu bahasa pemrograman kepada model perhitungan dalam fungsi dan kegunaannya masing masing, 3
KELEBIHAN PENGGUNAAN PRAGMATIK Heap & Pointer Allocator Dealocator Garbage Coroutines Struktur kontrol yang lebih nature Safety Konsistensi variabel 4
HEAP & POINTER Variabel heap adalah variabel yang bisa diciptakan dan dihapus kapan saja Heap variabel tidak memiliki nama dan bisa diakses dengan pointer Heap adalah sebuah blok memori di mana di dalamnya ada potongan-potongan informasi itu dialokasi dan dikosongkan dengan cara tertentu Jangka waktu hidup heap dimulai dari saat dibuat hingga tidak diakses lagi 5
HEAP & POINTER Sebuah operasi yang memaksa penghapusan sebuah variabel heap disebut deallocator Saat variabel heap dihapus, variabel masih tetap ada dalam memori tapi tidak bisa diakses, sehingga menjadi garbage Pointer yang mengarah ke variabel heap yang sudah terhapus, maka variabel ini menjadi dangling reference Garbage dan dangling reference menjadi sumber kesulitan bagi programmer 6
HEAP & POINTER Solusi I: Batasi penggunaannya sehingga reference ke variabel lokal tidak diakses untuk waktu yang lama Solusi II: dengan menggunakan reference count Solusi III: garbage collection Eg. In C/C++ int * p = new int; delete p; int i = *p; // error, p has been deleted! 7
COROUTINES Memisahkan simulation language dengan problem Menyediakan struktur kontrol yang lebih natural dari pada subprogram pada umumnya Dapat diangggap sebagai subprogram yang tidak dibutuhkan untuk menghentikan, kemudian memanggil program dan melaksanakan dari titik dimana eksekusi dihentikan. Coroutines tidak boleh rekursif. 8
SAFETY Pemeriksaan penulisan nama variabel (konsistensi) Pendeklarasian yang tepat Menentukan apakah jenis variabel yang dimaksud sesuai dengan penggunaan variabel. Fasilitas pengecekan yang mengurangi redundansi Compiler cek setiap penggunaan entitas agar tidak berulang. dari setiap 9
KEMUDAHAN IMPLEMENTASI Implementasi harus efisien dalam penggunaan waktu dan ruangnya. Prinsip Memprogram harus ditulis dalam suatu bahasa yang mencerminkan daerah masalah. 10
EFISIENSI APLIKASI Efisiensi aplikasi adalah perbandingan yang terbaik antara input (masukan) dan output. Hasil optimal yang dicapai dengan penggunaan perangkat/sistem yang terbatas. Dengan kata lain hubungan antara apa yang telah diselesaikan. Misalnya: Penggunaan aplikasi yang efisien dan tidak memberatkan hardware namun output yg dihasilkan sesuai dengan apa yg dibutuhkan, Menghilangkan perintah-perintah yang tidak berguna atau useless. 11
METODOLOGI PEMROGRAMAN Pemrograman terstruktur untuk mengurangi pemakaian instruksi GOTO Ciri ciri Program Terstruktur (Good Program): Run correctly Run efficiently Be easy to read and understand Be easy to debug Be easy to modify 12
METODOLOGI PEMROGRAMAN Langkah langkah Pengembangan Program 1. Definisikan masalah Keluaran (Output) Masukan (Input) Proses (Proces) 2. Rancang outline pemecahan masalah Buat langkah langkah proses Buat rincian/detail Proses Tentukan Variable dan record Tentukan struktur kontrol (pengulangan, kondisi, dsb) Buat logika Mainline 13
METODOLOGI PEMROGRAMAN 3. Buat algoritma berdasarkan outline pemecahan masalah 4. Test algoritma 5. Coding 6. Execute 7. Dokumentasi dan pemeliharaan 14
15