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






Leave a Comment