Pemrograman Dasar Kelas X Semester 2
Tujuan Pembelajaran
PENGEMBANGAN ALGORITMA APLIKASI
1. Siswa mampu memahami langkah-langkah pengembangan aplikasi 2. Siswa mampu menerapkan langkahlangkah pengembangan aplikasi 3. Siswa mampu memahami langkah-langkah analisis pemecahan permasalahan 4. Siswa mampu menerapkan langkahlangkah analisis pemecahan permasalahan 5. Siswa mampu memahami error handling dalam pascal dan menerapkannya dalam masalah pemrograman 6. Siswa mampu menerapkan error handling dalam pascal dan menerapkannya dalam masalah pemrograman
Pengembangan Algoritma Aplikasi A. Pengembangan Aplikasi dan Analisis Pemecahan Masalah Ketika akan mengembangkan suatu program, pertama-tama ketahui dahulu permasalahan yang akan diselesaikan serta apa saja yang dibutuhkan sebelum memecahkan permasalahan, selanjutnya dibuat algoritma, lantas algoritma yang telah dibuat diimplementasikan ke dalam kode program sehingga menghasilkan program. Program lantas diuji coba untuk mengecek apakah sudah berjalan sesuai dengan yang inginkan serta untuk mengecek apakah di dalam program terdapat kesalahan seperti kesalahan teknis ataupu algoritmis. Berikut ini merupakan langkah-langkah penyusunan program yang sistematis dan terpadu: 1. Definisi masalah Mengetahui masalah yang akan diselesaikan, tujuan dan manfaat program yang akan dibuat. dalam tahap ini seorang programmer harus mengumpulkan data terkait kebutuhan program seperti sumber daya yang akan digunakan. 2. Analisis kebutuhan Setelah masalah yang akan diselesaikan dipahami selanjutnya yaitu mengumpulkan kebutuhan guna menjawab permasalahan tersebut 3. Penyusunan Algoritma\ Langkah selanjutnya yaitu menyusun algoritma, algoritma dapat disajikan dalam flowchart ataupun pseudocode. 4. Pengkodean/pemrograman Setelah penyusunan algoritma kemudian menuangkan ke dalam bahasa pemrograman. 5. Testing dan Debugging Melakukan uji coba terhadap program yang telah dibuatuntuk mengetahui program yang telah dihasilkan sudahkan menjawab permasalahan yang dirumuskan sebelumnya 6. Pemeliharaan Program yang telah diujicobakan kemudian diaplikasikan ke pengguna. Selama program digunakan masukan dari pengguna dapat dijadikan catatan untuk perbaikan dan penyempurnaan performance program kedepannya Tahapan-tahapan diatas dikenal juga dengan istilah Model Waterfall (air terjun). Analisis dan Desain Algoritma Algoritma yang baik tidak hanya sekedar benar dalam menentukan solusi, namun harus efektif dan efisien. Efektif maksudnya seberapa program optimal penyelesaian yang dihasilkan, sedangkan efisien yaitu berkaitan dengan waktu eksekusi penyelesaian masalah.
Terdapat beberapa strategi teknik pemecahan masalah dalam algoritma, untuk suatu permasalahn yang rumit yiatu: 1. Divide and Conquer Memecahkan masalah yang besar kemudian membaginya menjadi masalah yang lebih sederhana. Masalah yang lebih sederhana ini diselesaikan dan hasilnya digabungkan dengan solusi dari masalah sederhana yang lainnyanya sehingga didapatkan solusi permasalahan utama. 2. Decrease and Concue Teknik ini juga membagi masalah utama menjadi beberapa bagian, namun permasalahan ukuran permasalahan utama dikurangi terlebih dahulu sehingga menjadi lebih sederhana 3. Transform and Conquer Merubah penyajian masalah ke dalam bentuk lain agar lebih mudah diselesaikan contohnya: menyelesaikan sistem persamaan linier dengan matriks B. Error Handling Error handling digunakan untuk mengantisipasi kesalahan yang bisa saja disebabkan oleh pengguna, hal ini dilakukan agar program tidak berhenti di tengah jalan. Daripada ketika program berhenti di tengah jalan kita harus mulai menjalankan program dari awal lagi, lebih baik jika diantisipasi dengan error handling. Dalam Free Pascal disediakan beberapa penanganan error, diantaranya yaitu: 1. Pernyataan Try......Except Pernyatan ini menjalankan serangkaian proses dengan perintah Try di depan, kemudian diikuti Except untuk menandakan kejadian khusus yang dideteksi sebagai error. Bentuk Umum dalam bahasa pascal Try Pernyataan1; Pernyataan2; Except On e: exception do//Exception handling Begin Writeln(‘Error:’ +e.message); End; End;
Untuk menggunakan pernyataan Try Except sebelumnya dibagian awal program harus dipanggil dulu unit-unit yang terkait:
Contoh: program ExceptionHandling; {program deteksi error dibagi 0} {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes, sysutils; var a, b: Integer; Hasil: Real; begin try Write('masukkan nilai a: '); Readln(a); Write('Masukkan nilai b: '); Readln(b); Hasil:= a/ b; Writeln('a/ b = ', Hasil); except on e: exception do begin Writeln('Telah terjadi error: ', e.message); end; end; Readln; end. Output
Gambar 8.1: output program deteksi error dengan try except
2. Pernyataan Try....Finally Pernyataan ini akan menjalankan serangkaian proses setelah perintah Try, jika terdapat error maka error akan dilewati, kemudian perintah setelah finally akan dieksekus dieksekusi baik terjadi kesalahan ataupun tidak.
Syntaks Try Pernyataan1; Pernyataan2; Finally Pernyataan3; End; Contoh Program program ExceptionHandling; {program exception handling dengan try finally} {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes, sysutils; var a, b: Integer; Hasil: Real; begin try Write('masukkan nilai a: '); Readln(a); Write('Masukkan nilai b: '); Readln(b); Hasil:= a/ b; Writeln('a/ b = ', Hasil); Finally Begin Writeln('Tekan Enter untuk menyelesaikan'); Readln; End; end; end.
Output
Gambar 8.2: output program deteksi error dengan try finally
Error terdeteksi, namun tidak ada tindakan khusus, hal ini terlihat ketika keluar program
Gambar 8.4: setelah deteksi error try finally
3. Pernyataan Raise Exception Pernyataan ini untuk mengantisipasi kemungkinan user menginputkan nilai yang tidak diinginkan program, misalnya variabel bulan seharusnya bernilai 1-12 saja, jika user menginputkan nilai selain itu berarti salah. Atau dengan kata lain pernyataan ini dapat digunakan untuk mendefinisikan suatu niai pada rentang tertentu. Untuk mengantisipasi hal ini dapat menggunakan pernyataan raise exception. Contoh program ExceptionHandling; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads}174 cthreads, {$ENDIF}{$ENDIF} Classes, sysutils; Var bulan: Integer; begin Write('Masukkan bulan ke berapa: '); Readln(bulan); try
if (bulan< 1) or (xbulan> 12) then // raise exception raise exception.Create('Nilai Bulan di luar jangkauan'); Writeln('Anda memasukkan bulan ke ‘,bulan); except on e: exception do // Catch my exception begin Writeln('Kesalahannya adalah: ' + e.Message); end; end; Write('Tekan Enter untuk menutup'); Readln; end. Output
Gambar 8.5: Output deteksi error dengan raise exception
C. Debugging
Kesalahan logika atau kesalahan algoritma merupakan salah satu kesalahan yang sulit untuk dideteksi selain syntax error dan run-time error. Kesalahan algoritmik yang sekecil apapun pasti akan mempengaruhi hasil dari program tersebut. Dan semakin kecil kesalahan semakin sulit juga untus`k mencarinya, sehingga diibaratkan seperti sesulit mencari kutu. Melakukan debugging program dapat dilakukan dengan beberapa cara, yaitu: 1. Menjalankan kode program baris demi baris (pernyataan demi pernyataan) Cara ini yaitu dengan meneliti baris per baris apakah pada baris tersebut sudah benar atau belum. Cara ini dapat dilakukan secara manual atau memanfaatkan tool dari aplikasi, misalnya free pascal. 2. Menjalankan program hingga baris tertentu, dengan menggunakan breakpoint Jika kode cukup banyak, dan daripada mengecek baris per baris memerlukan waktu yang lama. Terdapat cara lain yaitu dengan menggunakan breakpoint. Caranya letakkan kursor dimana program akan berhenti kemudian pilih menu dubug, dan pilih breakpoint.
Gambar 8.6: cara breakpoint
Breakpoint ini akan mengakibatkan program berhenti pada baris yang telah diset breakpoint. Pada saat itu, proses dikembalikan pada IDE dan dimungkinkan untuk dijalankan kembali. 3.
Melihat isi dari variabel memori ketika program dijalankan Untuk melihat isi variabel memori pada saat program dihentikan (breakpoint) dapat dengan menggunakan fasilitas watch dengan memilih menu debug dan pilih add watch atau dengan menekan Ctrl+F7. Kemudian isikan dengan nama variabel yang akan dilihat isinya.
Gambar 8.7: cara melihat isi variabel dengan add watch
Sumber: Maryono, Dwi & Pambudhi,dhidi. 2014. Kementerian Pendidikan Republik Indonesia 2014:Pemrograman Dasar untuk SMK/MAK. Jakarta: Milik Negara