Pemrogaman Dasar XI Semester II

RANGKUMAN PEMROGRAMAN DASAR KELAS XI
Semester II
By : Abdul Gopur
SMK ISLAM 1 BLITAR


BAB 1 PROSEDUR DAN FUNGSI
KB 1 : Definisi dan Deklarasi Prosedur
Prosedur diawali dengan kata tercadang Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya. Suatu procedure juga memiliki header dan blok, perbedaannya hanya pada bagian headernya. Dan procedure dalam suatu program harus ditulisakm pada bagian deklarasi.
Bentuk umum header suatu procedure adalah :
procedure nama; 
atau
procedure nama (parameter_formal : tipe_data);

            Jangkauan Variabel
Variabel yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana variabel tersebut didefinisikan.
            Procedure dengan Parameter
Nilai dalam suatu subprogram FreePascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya. Parameter adalah data masukan untuk subprogram yang nantinya akan diproses lebih lanjut dalam subprogram tersebut.
Dalam Pascal, dikenal dua macam parameter, yaitu :
1.      Parameter nilai (value parameter), dan
2.      Parameter referensi (reference parameter).
Pengiriman Parameter (passing parameter)
Proses pengiriman data dari parameter aktual ke parameter formal disebut dengan transfer parameter (passing parameter). Nama parameter aktual dan parameter formal boleh berbeda, tetapi harus memiliki tipe data yang sama selain itu juga jumlah parameter aktual dan parameter formal harus sama. Di FreePascal, parameter dapat dikirim secara :
1.      Pengiriman parameter secara nilai (by value)
Jika parameter dikirim secara nilai, maka parameter formal yang terletak di dalam pendefinian prosedur akan berisi nilai yang dikirimkan dari parameter aktual, yang kemudian bersifat lokal di prosedur tersebut.. Bila nilai parameter formal di dalam prosedur tersebut berubah, maka tidak akan mempengaruhi nilai parameter aktual (nilai parameter aktual tetap).
2.      Pengiriman parameter secara acuan (by reference)
Bila parameter dikirimkan secara acuan, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter aktual di blok program utama. Jenis parameter ini dideklarasikan di dalam prosedur dengan menggunakan kata cadang var.
Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya. Kegunaan utama dari mekanisme forward ini adalah untuk teknik rekursif dengan menggunakan dua prosedur yang saling memanggil.

KB 2 : Pemanfaatan Prosedur
Dalam bahasa pemrograman, aplikasi konversi biasa dibuat untuk mengenalkan pembuat program pemula akan logika berpikir dan kemudian dihubungkan dengan kaidah penggunaan bahasa dan aturan dalam pemrograman.
Aplikasi konversi sangat diperlukan dalam kehidupan sehari-hari, antara lain konversi nilai mata uang sesuai kurs yang sedang berlaku, konversi suhu, konversi berat, konversi kecepatan, konversi waktu, dan masih banyak lagi.
Dalam pengkonversian waktu yang perlu diperhatikan adalah tipe bilangan bulat yang digunakan, karena ranah nilai tipe integer terbatas, maka ada kemungkinan hasil pengubahan jam-menit-detik ke total detik bernilai negatif, sebab nilai detikin:=(jam*3600)+(menit*60)+detik berada di luar rentang tipe integer. Tipe longint yang mempunyai ranah yang lebih besar dapat dipakai untuk masalah ini.

KB 3 : Definisi dan Deklarasi Fungsi
Pascal mempunyai beberapa fungsi standar, antara lain Abs, Sqrt, Exp, Ln dan lain-lain. Fungsi tersebut dikatakan standar karena memang sudah dibuat dan tersimpan di dalam Compiler FreePascal. Selain menyediakan fungsi-fungsi standar, FreePascal memberi fasilitas kepada programmer untuk menciptakan fungsi sendiri, fungsi-fungsi ini disebut FUNGSI BUATAN (User Defined Function). Perbedaan antara prosedur dengan fungsi buatan hanya terletak pada sistem pertukaran data serta tata cara pemberian namanya saja. Seperti halnya fungsi standar, fungsi buatan dapat menerima beberapa data, tetapi hanya dapat menghasilkan satu keluaran (output) saja.
Fungsi buatan diletakkan sesudah bagian deklarasi (konstanta, tipe variabel) tetapi sebelum blok program utama. Programmer dapat mendeklarasikan fungsi pada daerah yang sama dengan deklarasi prosedur.
Fungsi buatan yang sudah diciptakan dapat dipanggil pada berada di blok program utama, dengan cara menuliskan nama fungsi tersebut, diikuti dengan argumen-argumen yang akan dimasukkan. Pada saat fungsi itu dipanggil, perjalanan program akan meloncat ke awal fungsi yang dimaksud. Data-data yang ada di dalam parameter akan diolah sehingga diperoleh sebuah hasil. Hasil tersebut akan dibawa kembali ke tempat dimana fungsi tersebut dipanggil.
Berikut ini beberapa hal yang harus diperhatikan pada saat menciptakan fungsi buatan sendiri :
a.       Fungsi harus diberi judul. Judul suatu fungsi diawali dengan kata Function dan diikuti nama fungsi yang akan dibuat, serta jenis data yang akan dihasilkan oleh fungsi tersebut. Nama suatu fungsi harus diawali dengan huruf/abjad, tidak mengandung spasi, dan tidak lebih dari 63 karakter.
Contoh :
FUNCTION VOLUME(p,l,t:integer):integer;
b.      Suatu fungsi dapat memiliki beberapa argumen, tetapi hanya dapat mengeluarkan satu hasil saja. Data yang dihasilkan oleh sebuah fungsi harus disimpan di dalam variabel yang namanya sama dengan argumen tersebut.
Fungsi Berganda
Seperti halnya prosedur, suatu fungsi dapat dipanggil ketika sedang berada dalam fungsi yang lain, tentu saja fungsi yang dipanggil tersebut harus sudah ada, dibuat dahulu sebelumnya.

KB 4 : Pemanfaatan Prosedur dan Fungsi dalam Aplikasi
Fungsi dan prosedur dapat digunakan bersama-sama di dalam sebuahprogram, fungsi dapat diletakkan di dalam suatu prosedur, demikianpula sebaliknya, prosedur dapat diletakkan di dalam suatu fungsi. Selainitu fungsi dan prosedur dapat pula diletakkan terpisah satu sama lain.
Pada saat menggunakan fungsi dan prosedur bersama-sama, pembuat program harus selalu mengingat kembali hal sebagai berikut : Ruang lingkup variabel global dan variable lokal yang dipergunakan. Proses yang dilakukan oleh suatu prosedur dapat menghasilkan lebih dari satu keluaran, sedang proses yang dilakukan oleh fungsi hanya akan menghasilkan satu keluaran saja. Nama suatu prosedur tidak boleh sama dengan variable yang digunakan, tetapi nama suatu fungsi justru harus sama dengan nama variable yang digunakan untuk menyimpan hasil akhir proses.

KB 5 : Fungsi Rekursif dan Aplikasinya
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri selama kondisi pemanggilan dipenuhi. Fungsi rekursif umumnya dipakai untuk permasalahan yang memiliki langkah penyelesaian yang terpola atau langkah-langkah yang teratur. Fungsi rekursif tidak akaan terhenti jika tidak memiliki kondisi khusus atau basis. Fungsi rekursif dapat berjalan dengan baik meskipun basis bukan berupa nilai tetap. Fungsi rekursif dapat berjalan dengan baik meskipun basis lebih dari satu kondisi atau kasus.

Dari definisi tersebut maka fungsi rekursif disusun oleh dua bagian:
1.      Basis, bagian yang berisi kasus yang terdefinisi secara eksplisit atau langsung, Bagian ini juga sekaligus menghentikan rekursif dan memberikan sebuah nilai yang terdefinisi pada fungsi rekursif
2.      Rekurens, bagian ini Menyebabkan Pemanggilan diri fungsi karena kondisi khusus tidak dipenuhi.
Skema Umum Fungsi Rekursif :


Keterangan:
NamaFungsi Adalah nama fungsi yang digunakan
Input_x Adalah parameter fungsi yang digunakan
Tipe_x Adalah tipe data dari parameter x
Tipe_Fungsi Adalah tipe data dari fungsinya
T Adalah fungsi untuk kasus basis
N Adalah fungsi jika kasus basis tercapai
g Adalah fungsi yang mengubah nilai parameter x

            Penerapan Fungsi Rekursif
1.      FPB dari suatu Bilangan
FPB dari dua buah bilangan adalah suatu bilangan terbesar yang dapat membagi habis kedua bilangan tersebut (tanpa meninggalkan sisa).

KB 6 : Pointer ke Fungsi dan Aplikasinya
Pointer ke fungsi adalah sebuah pointer yang digunakan untuk menunjuk suatu funsi yang sesuai, sehingga pemanggilan fungsi tidak harus dengan menyebut nama fungsi secara langsung tetapi cukup menggunakan pointernya. Meski sebuah fungsi sudah ditunjuk oleh suatu pointer tetapi tetap diperkenankan memanggil fungsi dengan nama asli fungsi tersebut.
Untuk mengarahkan pointer supaya menunjuk ke sebuah fungsi, cukup gunakan operator @. Langkah-langkahnya adalah:
1.      Deklarasikan variabel bertipe pointer ke fungsi, atau bisa didahului dengan mendefinisikan tipe data sendiri yaitu tipe data pointer ke fungsi.
2.      Arahkan varibel pointer ke sebuah fungsi yang sesuai dengan operator @.
3.      Gunakan pointer ke fungsi untuk memanggil atau menggunakan fungsi tersebut.

KB 7 : Modularisasi Fungsi
File dynamic library adalah file pustaka yang di dalamnya terdapat prosedur-prosedur ataupun fungsi-fungsi yang berguna untuk menyimpan proses untuk kemudian dipanggil hasilnya oleh program utama. File ini sangat berguna ketika kita membuat program yang sangat kompleks, sehingga resource yang kita gunakan bisa lebih hemat, terutama resource memory.
            Membuat File library
            Dalam menyusun libarary, struktur yang harus kita ikuti adalah sebagai berikut :
            



Kompilasi Unit
Setelah library dikompilasi (Compile / Alt+F9) akan menghasilkan file denganextention .dll yang siap dipanggil oleh program utama.   
           
Pemanggilan File library
Untuk memanggil fungsi atau prosedur yang telah kita buat, struktur yang harus kita perhatikan adalah sebagai berikut :



Definisi Unit
Unit adalah suatu modul program yang terpisah dan digunakan untuk menyimpan prosesproses tertentu yang berkaitan. unit dibuat untuk program yang lumayan besar sehingga program dapat lebih bersifat modular dan mudah untuk dibaca. Penamaan unit harus sama dengan nama file unit tersebut.

Struktur Unit
Umumnya unit terbagi jadi tiga bagian, yaitu interface, implementation dan initiliazation, bentuk umumnya bisa seperti ini :


           

            Kompilasi Unit
Unit dapat dikompilasi seperti halnya program biasa (Compile / Alt+F9). Hasil dari kompilasi tersebut menghasilkan extention.

            Pemanggilan Unit
            Untuk memanggil unit yang telah kita buat digunakan perintah sebagai berikut :
             

           


BAB 2  PENCARIAN DAN PENGURUTAN DATA
KB 1 : Pencarian Data dengan Algoritma Linear
Pencarian (searching) merupakan proses fundamental dalam pengolahan suatu data. Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar atau bertipe bentukan).
            Spesifikasi Masalah Pencarian
Hasil atau keluaran dari persoalan atau permasalahan pencarian dapat bermacam macam, tergantung pada spesifikasi rinci dari persoalan atau permasalahan yang dihadapi tersebut, misalnya:

a.       Pencarian yang hanya untuk memeriksa keberadaan x. Hasil atau keluaran yang diinginkan misalnya hanya pesan bahwa x ditemukan atau tidak ditemukan di dalam array. Contoh:


b.      Hasil pencarian adalah indeks elemen array. Jika x ditemukan, maka indeks elemen array tempat x berada diisikan ke dalam idx. Jika x tidak terdapat di dalam array (misal array A), maka idx diisi dengan harga khusus, misal -1.


Misalkan x= 99, maka idx = 7,dan bila x = 50, maka idx = -1.

c.       Hasil pencarian adalah sebuah nilai boolean yang menyatakan status hasil pencarian. Jika x ditemukan, maka sebuah peubah bertipe boolean, misalnya “ketemu”, diidi dengan nilai true, sebaliknya “ketemu” diisi dengan nilai false. Hasil pencarian ini selanjutnya disimpulkan pada bagian pemanggil prosedur.
Contoh: Perhatikan array A di atas:
Misalkan x = 99, maka ketemu = true, dan bila x = 50, maka ketemu = false.

            Algoritma Pencarian linier
Algoritma pencarian yang paling sederhana, yaitu metode pencarian linier (pencarian lurus). Nama lain algoritma linier adalah algoritma pencarian beruntun (sequential search). Pada dasarnya, algoritma pencarian linier adalah proses membandingkan setiap elemen array satu persatu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.
Algoritma pencarian linier akan sangat berguna bila digunakan untuk mencari data pada sekumpulan data yang sedikit. Kelemahan dari algoritma pencarian linier adalah mencari data pada sekumpulan data yang banyak, maka membutuhkan waktu yang lama.
Array yang sudah terurut dapat meningkatkan kinerja lgoritma pencarian linier. Algoritma pencarian linier dengan sentinel adalah melakukan penambahan data pada elemen array. Data dapat simpulkan terdapat pada array jika idx < n+1.

KB 2 : Pemanfaatan Pencarian Data dalam Aplikasi
Penggunaan algoritma pencarian linier pada aplikasi sangat bermanfaat jika data yang dicari ada pada sekumpulan sedikit data. Jika pada data besar, pencarian ini tidak praktis dan tidak efisien.

KB 3 : Pengurutan Data dengan Algoritma Bubble Sort
Algoritma bubble sort (pengurutan gelembung atau apung) diinspirasi oleh gelembung sabun yang berada di atas permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan.
Prinsip pengapungan di atas juga digunakan pada pengurutan apung. Apabila kita menginginkan array terurut menaik, maka elemen array yang berharga paling kecil “digelembungkan” atau “diapungkan”, artinya diangkat ke “atas” (atau ke ujung kiri array) melalui proses pertukaran. Proses pengapungan ini dilakukan sebanyak n-1 langkah (satu langkah juga disebut satu kali pass) dengan n adalah ukuran array.

KB 4 : Pengurutan Data dengan Algoritma Selection Sort
Algoritma pengurutan seleksi-maksimum merupakan algoritma yang cukup efisien, karena pada setiap pass-nya, operasi pertukaran hanya dilakukan sekali. Tetapi, kelemahan pada algoritma ini terletak pada banyaknya pass atau langkah. Untuk array yang berukuran besar, jumlah langkah atau pas juga besar, sehingga membutuhkan waktu yang cukup lama, tapi algoritma ini lebih baik jika dibandingkan dengan algoritma pencarian gelembungAlgoritma pengurutan seleksi adalah algoritma pengurutan yang berdasarkan pada pencarian elemen yang kemudian baru diurutkan.
Ada dua varian algoritma pengurutan seleksi ditinjau dari pemilihan elemen maksimum atau minimum, yaitu:
1.      Algoritma pengurutan seleksi-maksimum, yaitu memilih elemen maksimum sebagai basis pengurutan (pencarian elemen maksimum kemudian baru diurutkan).
2.      Algoritma pengurutan seleksi-minimum, yaitu memilih elemen minimum sebagai basis pengurutan (pencarian elemen minimum kemudian baru diurutkan).

KB 5 : Pemanfaatan Pengurutan Data dalam Aplikasi
Penggunaan algoritma pengurutan gelembung dan seleksi pada aplikasi sangat bermanfaat jika data yang diurutkan hanya sedikit. Semakin banyak data, maka langkah semakin banyak yang mengakibatkan membutuhkan waktu yang banyak juga.




BAB 3 PENGEMBANGAN APLIKASI
KB 1 : Model Waterfall Tahap Analisis
Urutan dalam model waterfall adalah Analisis – Desain – Pengkodean (coding) – Pengujian (testing) – Dukungan dan Perawatan (support and maintenance). Tahap analisis adalah tahap pengenalan masalah dan setelah masalah dikenali maka ditetapkan tujuan yang akan dicapai dan solusi terbaik yang akan diambil untuk menyelesaikan masalah tersebut.
Secara rinci dalam tahap analisis perangkat lunak adalah sebagai berikut :
1.      Kenali masalah
2.      Tetapkan tujuan
3.      Tentukan solusi yang akan diwujudkan
4.      Buat model analisis
5.      Dokumentasi

Diagram Alir Data (DAD)
Simbol yang digunakan dalam pembuatan aliran data menurut Pressman adalah sebagai berikut :
           
                              


DAD dibuat menjadi beberapa level sesuai dengan kebutuhan. DAD pada level lanjut digunakan untuk memberikan gambaran yang lebih detail dari level sebelumnya. DAD dimulai dari level 0 dan sering disebut dengan diagram alir kontek (Context Flow Diagram / CFD). CFD hanya berisi satu lingkaran besar yang mewakili sistem atau software yang akan dibuat dan entitas luar sistem. CFD tidak memuat simbol data eksternal. Setiap simbol DFD diberi penjelas.

KB 2 : Model Waterfall Tahap Desain
Desain akan memberikan pemahaman yang lebih baik bagi pelaksana daripada hanya sekedar dokumendokumen analisis yang isinya masih sangat global dan bisa diintrepetasikan berbeda oleh pelaksana. Desain juga memegang peranan penting karena bisa memberikan gambaran yang lebih jelas bagi programmer untuk mewujudkan aplikasi yang diinginkan. Oleh karena itu desain perangkat lunak seharusnya bisa dipahami dengan mudah oleh programmer, isinya bersifat teknis pemrograman dan tidak perlu berbelit-belit.
Standar dalam desain perangkat lunak ada banyak, tetapi yang paling sering digunakan adalah desain data, desain arsitektur, dan desain antarmuka. Desain data sendiri adalah penjabaran dari analisis data yang telah dilakukan pada tahap analisis. Desain arsitektur dikembangkan dari diagram alir data (DAD). Desain antarmuka yang paling sederhana adalah antarmuka aplikasi dengan penggunanya, yaitu tampilan aplikasi yang terlihat oleh pengguna.
Desain arsitektur memperlihatkan komponen atau modul atau mungkin hanya prosedur/fungsi yang harus dibuat oleh programmer serta kaitan modul satu dengan modul lainnya. Desain arsitektur juga bisa dilihat sebagai Hierarki Input Proses dan Output (HIPO) yang berlaku pada modul-modul yang harus dibuat. HIPO yang baik adalah HIPO yang secara rinci menjelaskan Input yang dibutuhkan agar modul berkerja, menjelaskan tahapan Proses yang dilakukan, dan menjelaskan Output yang seharusnya dihasilkan.

KB 3 : Model Waterfall Tahap Pengujian
Dalam pembuatan perangkat lunak, setelah melalui tahap desain dan kemudian ditulis dalam baris-baris perintah (coding) sehingga berwujud perangkat lunak yang bisa digunakan. Pengujian perangkat lunak ini memiliki tujuan untuk menghasilkan perangkat lunak yang berkualitas tinggi, serta memberikan jaminan kepada pengguna perangkat lunak.
Pengujian digunakan untuk meningkatkan kualitas aplikasi. Secara alami, setiap produk buatan manusia mengamndung kesalahan, sehingga pengujian yang berhasil bukanlah pengujian yang tidak bisa menemukan kesalahan aplikasi. Pengujian dikatakan berhasil jika bisa menemukan kesalahan yang sebelumnya belum diketahui oleh pembuatnya. Meskipun pengujian akan diikuti dengan debugging, tetapi pengujian berbeda dengan debugging, hanya saja akan sangat membatu pembuat aplikasi untuk melakukan debugging jika penguji bisa memberi saran perbaikan.
Penguji sebaiknya mereka yang bersifat independent/netral dalam bersikap, tidak membela programmer atau pembuat aplikasi yang secara manusiawi kurang suka jika buatannya dikatakan jelek. Seorang penguji harus mampu mendeskripsikan kondisi aplikasi apa adanya, entah cukup baik (sedikit kesalahan) atau buruk (terlalu banyak kesalahan).
White-box testing berguna untuk memastikan bahwa aplikasi berjalan berdasar urutan proses yang benar hingga ke detailnya. Black-box testing berguna untuk menjamin bahwa fungsi yang ada telah bekerja dengan benar sesuai yang ditentukan.
Alpha testing berguna untuk meningkatkan performa atau kinerja aplikasi saat berada dalam lingkungan idealnya. Beta testing berguna untuk melihat kompatibilitas (kesesuaian) dan stabilitas aplikasi saat berada pada lingkungan (sistem dan hardware) yang berbedabeda.

KB 4 : Model Prototyping
Prototyping pada dasarnya pengembangan dari model waterfall, prototyping melakukan tahap ADCT secara cepat dan kualitas aplikasi diperoleh dengan menjalankan aktivitas secara berulang mengarah pada perbaikan.
Ada tiga langkah pokok dalam siklus prototyping, yaitu dengarkan kebutuhan customer, buat prototipe dengan segera, uji coba prototipe dengan customer untuk mendapatkan umpan balik.
Prototyping memiliki keunggulan bahwa aplikasi sudah mulai terlihat dalam waktu singkat. Kelemahan prototipe adalah karena prosesnya dimana tidak berdasar pemahaman yang menyeluruh dan lenkap sejak awal, sehingga besar kemungkinan setiap fungsi yang ada kurang dipikirkan kaitan satu dengan yang lain, sehingga dimungkinkan aplikasi menjadi sangat berkurang kinerjanya hanya karena sedikit kondisi yang berubah. (Pambudi & Maryno, 2014)


DAFTAR PUSTAKA

Pambudi, D., & Maryno, D. (2014). Pemrograman Dasar SMK XI-2. Jakarta: Menteri Pendidikan dan Kebudayaan.


 Download filenya disini
Diberdayakan oleh Blogger.