Oleh :
Mencari Solusi
Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi
harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa
modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan
menjadi satu untuk dapat menentukan solusi.
Menentukan Algoritma
Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai
dan efisien untuk masalah yang dihadapi.
Menulis Program
Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai
dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut
Menguji Program
Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program
yang dibuat sudah layak untuk digunakan.
Mendokumentasikan Program
Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat
akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan
dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter,
procedur, fungsi).
Merawat Program
Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum
diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program
STRUKTUR ALGORITMA
Struktur Dasar Algoritma terdiri dari 3 macam, yaitu struktur sekuensial, struktur pemilihan
dan struktur perulangan.
Algoritma bahasa natural merupakan cara penyajian suatu algoritma yang paling sederhana dan
paling mudah untuk dimengerti. Algoritma ditulis dengan bahasa yang kita gunakan sehari-hari
(bahasa indonesia). Ada beberapa hal yang perlu diperhatikan jika kita akan menyajikan suatu
algoritma sebuah program dengan bahasa natural, antara lain Start dan End yang harus
dituliskan secara explisit.
TUGAS!
EKSPRESI
Ekspresi adalah transformasi nilai menjadi keluaran yang dilakukan melalui suatu
perhitungan (komputasi). Ekspresi terdiri atas operand dan operator, contoh ekspresi: “a+b”.
Hasil Evaluasi dari sebuah Ekpresi adalah nilai yang sesuai dengan type operand yang
dipakai.
TUGAS!
Integer (Bulat)
Integer adalah tipe data dasar berupa bilangan yang tidak mengandung pecahan desimal. Tipe
data ini juga memiliki urutan, sehingga dapat dibandingkan satu dengan lainnya. Contoh : 1, 2,
-10, 315, 2067 dst.
Char (Karakter)
Char adalah tipe data dasar yang terdiri atas satu buah angka, huruf, tanda baca atau karakter
khusus. Untuk menyimpan sebuah karakter, diperlukan 1 byte atau 8 bit tempat didalam
memori. Dalam sebuah program, penulisan tipe data char diawali dan diakhiri dengan tanda
kutip ganda. Selain itu, terdapat sebuah karakter kosong yang disebut dengan null atau nil dan
dituliskan sebagai "“. Contoh : “5”, “A”, “?”, “$”.
String
String adalah tipe data dasar yang berupa kumpulan karakter dengan panjang tertentu. Meskipun
berupa kumpulan karakter, karena tipe data string sering digunakan dalam pemrograman, string
dianggap sebagai tipe data dasar. Serupa dengan penulisan karakter, penulisan sebuah string
juga harus diawali dan diakhiri dengan tanda petik ganda. String juga mengenal null yang
dituliskan dengan "". Contoh : “Jember”, “SMK MULIA”, “TKJ1”.
Boolean (Logika)
Sebuah data boolean memiliki tepat dua buah kemungkinan nilai, direpresentasikan sebagai
Benar dan Salah, atau True dan False, atau dapat juga dilambangkan dengan 1 dan 0. Tipe data
ini dapat digunakan untuk pemilihan dengan kondisi-kondisi tertentu, dimana program harus
memilih aksi apa yang akan dijalankan dengan parameter tertentu. Tipe data ini paling sering
digunakan untuk range yang memili dua buah nilai: lulus - tidak lulus, member - bukan member.
TUGAS!
Operator Aritmatika
Operator ini membentuk perhitungan aritmatika. Kedua operan dari operasi aritmatik ini dapat
berupa nilai integer atau real.
Dalam pemprograman bahasa C++, Operator ini digunakan memasukan nilai kedalam sebuah
variabel, tanpa menghilangkan atau mengosongkan nilai variabel sebelumnya.
Buatlah 3 algoritma :
• Operator Aritmatika
• Operator Assignment
• Operator Relasional
• Operator Logika
PSEUDOCODE
Pseudocode atau dalam bahasa Indonesia disebut kode palsu adalah deskripsi dari algoritma
pemrograman computer yang menggunakan konvensi struktural dari suatu bahasa
pemrograman, dan ditujukan agar dapat dibaca oleh manusia dan bukanya oleh mesin.
Pseudocode biasanya tidak menggunakan elemen cukup detail yang tidak perlu untuk
kebutuhan pemahaman manusia dari suatu algoritma, seperti deklarasi variabel, kode ataupun
subrutin untuk sistem yang bersifat spesifik.
Terminal Symbol
start
• Only one “start” & one “end”
• 1 arrow only
• Each flowchart starts with one
“start” & ends with one “stop”
end
Input/Output Symbol Processing Symbol
• 2 arrows only
• 2 arrows only
o 1 in & 1 out
o 1 in & 1 out
• Declaration
• Input Data
o var sum : real
o get fullname:*
• Initialization
• Display result
o sum := 30.14
o put fullname
• Calculation
Decision Symbol Page Connector
• 3 arrows
o 1 in & 2 out
• Question
2 • 1 arrow only
F o T (True, Yes)
o F (False, No)
Step Connector Arrow
A • 1 arrow only
• Appear in
o 1 to 1 • From Top to Bottom
& from Left to Right
o Many to 1
• Make turn
• Use letters
A • Go from one step
to another
• Join together
TUGAS!
• File header (.h) : file bantuan yang digunakan untuk menyimpan daftar-daftar
fungsi yang akan digunakan pada program. Contoh : #include
<stdio.h>
• Printf() : menampilkan keluaran data. Contoh : printf(“Saya sedang
belajar bahasa C”);
Hasil :
• Scanf() : menampilkan masukan data. Contoh : scanf(“%d”, &X);
Hasil :
PROJECT!
Error Handling adalah salah satu penanganan kesalahan (error) pada berbagai macam
keadaan dalam pemrograman. Dengan adanya error handling ini setiap ada kesalahan maka
eksekusi program tidak akan dihentikan secara tiba-tiba, tetapi akan diteruskan ke baris
program yang terdapat script penanganan kesalahan.
PROJECT!
Oleh :
Operator Aritmatika
1. + (jumlah) adalah operator untuk menjumlahkan dua buah angka atau lebih
2. -(kurang) adalah jenis operator untuk memproses operasi pengurangan antara dua angka
atau lebih
3. * (kali) adalah operator yang digunakan untuk proses perkalian
4. / (bagi) adalah operator uang digunakan untuk mendapatkan hasil bagi dari 2 buah angka
5. MOD atau % (modular) adalah operator yang sering digunakan di dunia algoritma yang
digunakan untuk mendapatkan sisa hasil bagi. Operator baru yang tidak umum adalah MOD
atau bisa disimbolkan dengan %, operator ini akan menghasilkan sisa hasil pembagian,
misal 4%2=0. 5%3=2.
Operator aritmatika biasanya digunakan untuk memproses perhitungan matematika yang
dilibatkan di dalam program.
Format Penulisan Operasi Aritmatika
Dalam contoh ini beberapa operasi aritmatika, yakni penambahan, pengurangan dan perkalian.
Aturan prioritas operator berlaku di sini, dimana operator perkalian dan pembagian akan
dijalankan terlebih dahulu daripada operator pengurangan dan penambahan. Untuk operator
yang sama kuat (seperti penambahan dan pengurangan), akan diproses dari kiri ke kanan.
Di sini saya membuat 3 variabel integer: a, b, c. Untuk operasi a dan c tidak ada masalah,
hasilnya sesuai dimana 8 / 4 = 2 dan 8 /2 = 4. Tapi kenapa 8 / 3 menghasilkan angka 2?
Mungkin ini karena b di set sebagai integer, bukan float atau double.
Mengapa hasilnya tetap 2? Ini terjadi karena bahasa C melihat tipe data operand yang dipakai.
Di sini operand nya adalah 8 dan 3 yang merupakan integer (angka bulat).
Agar operasi pembagian menghasilkan nilai float, kedua operand harus ditulis dalam format
pecahan, yakni 8.0 dan 3.0.
Operator Pembanding
Operator pembanding adalah operator yang merupakan bagian dari operator logika yang
digunakan untuk membandingkan 2 buah nilai atau operan, sehingga dapat menghasilkan nilai
true dan false, beberapa operator pembanding yang sering digunakan adalah:
Di dalam bahasa pemrograman Operator pembanding biasanya digunakan dalam flow control IF
then ELSE untuk mendapatkan hasil sesuai dengan kondisi yang diinginkan.
Format Penulisan Operasi Pembanding
Karena bahasa C tidak memiliki tipe data boolean, maka hasilnya antara 1 (sebagai pengganti
true) atau 0 (sebagai pengganti false)
Karena bahasa C tidak memiliki tipe data boolean, maka hasilnya antara 1 (sebagai pengganti
true) atau 0 (sebagai pengganti false)
Operator Logika
Operator Logika adalah operator yang digunakan untuk melakukan operasi logika yaitu operator
yang menghasilkan nilai TRUE (benar) atau FALSE (salah). Bebarapa macam operator logika
antara lain:
Operator logika sering digunakan di dalam flow control berkolaborasi dengan operator
pembanding untuk mendapatkah hasil yang paling sesuai dengan kondisi tertentu.
Format Penulisan Operasi Logika
Assignment Operator (Operator Penugasan)
Assignment Operator (operator penugasan) adalah operator yang menggunakan tanda sama
dengan (=) untuk mengisi sebuah nilai dalam suatu variabel.
Beberapa contoh assignmen operaor adalah sebagai berikut:
+= contoh: x+=10; atau x=x+10 (artinya: jumlahkan nilai yang terdapat di dalam variable x
dengan 10)
= contoh: x=y
*= contoh: x*=10 atau x=x*10 (artinya: kalikan nilai yang terdapat di dalam variable x
dengan 10)
/=
%=
Format Penulisan Operasi Penugasan
PROJECT!
Array merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama
atau Array juga dapat disebut sebagai kumpulan dari nilai-nilai data bertipe sama dalam urutan
tertentu yang memakai sebuah nama yang sama. Setiap data tersebut menempati alamat
memori atau lokasi yang berbeda-beda dan selanjutnya disebut dengan elemen array. Elemen
array sendiri dapat diakses melalui indeks yang terdapat di dalamnya. Namun, penting sekali
untuk di ingat bahwa dalam C indeks array selalu dimulai dari 0, buka 1.
Format Penulisan Array 1 Dimensi
Anggota atau isi dari array itu sendiri harus satu jenis tipe data, misalkan terdiri dari kumpulan
angka bulat saja (integer), kumpulan karakter saja (char), maupun kumpulan angka pecahan
saja (float). Di dalam bahasa C, kita tidak bisa membuat 1 array dengan berbagai tipe data
(harus 1 jenis saja).
Sebagai contoh, misalkan saya ingin menyimpan dan memproses 5 buah nilai. Jika
menggunakan variabel biasa, penulisannya bisa seperti ini:
Data diatas banyak dan berulang untuk 1 tipe data saja, sehingga akan lebih efisien jika
menggunakan array:
Dengan kode program diatas, variabel bilangan akan menjadi sebuah array yang bisa
menampung 5 data bertipe integer.
Array dua dimensi adalah sebutan untuk array yang penomoran index-nya menggunakan 2
buah angka. Analogi yang sering dipakai seperti titik koordinat dalam diagram kartesius.
Diagram kartesius merupakan diagram yang biasa kita pakai untuk membuat grafik. Disini
terdapat sumbu X dan sumbu Y. Sebuah titik dalam diagram kartesius ini harus disebut secara
berpasangan, seperti (2,3) atau (-3, 1).
Analogi lain adalah matriks. Dalam matematika, matrik terdiri dari kolom dan baris. Kembali,
untuk menentukan nilai dari sebuah matriks, kita harus sebut secara berpasangan seperti baris
1 kolom 2, atau baris 3 kolom 1. Konsep seperti inilah yang menjadi dasar dari array 2 dimensi.
Format Penulisan Array 2 Dimensi
Untuk membuat array 2 dimensi di dalam bahasa C, kita membuat 2 kali tanda kurung siku
setelah nama variabel, seperti contoh berikut:
Baris diatas akan membuat array 2 dimensi dengan nama variabel: bilangan. Variabel bilangan
ini akan berisi 4 element (2 x 2). Atau jika diibaratkan sebagai matriks, disini kita membuat
matriks 2 x 2.
Untuk mengakses setiap element array, penulisan index juga harus ditulis 2 kali, seperti contoh
berikut:
Array Multi Dimensi
Array Multi Dimensi merupakan array yang serupa dengan array satu dimensi maupun array
dua dimensi, namun array multidimensi dapat memiliki memori yang lebih besar. Biasanya
array multidimensi digunakan untuk menyebut array dengan dimensi lebih dari dua atau array
yang mempunyai lebih dari dua subskrip, seperti untuk menyebut array tiga dimensi, empat
dimensi, lima dimensi dan seterusnya.
Format Penulisan Array Multi Dimensi
Tidak cukup dengan array 2 dimensi, kita juga bisa membuat array 3 dimensi bahkan lebih.
Contoh penggunaan dari array 3 dimensi adalah seperti diagram kartesius 3 dimensi (dimensi
ruang) yang butuh sumbu x (lebar), y (tinggi), dan z (kedalaman).
Cara pembuatan array 3 dimensi cukup mudah, kita tinggal menulis 3 kali tanda kurung siku
setelah penulisan nama array:
Kompleksitas array akan menjadi bertingkat jika sudah menggunakan multi dimensi.
OPERASI STRING DAN KONVERSI DATA
Operasi dalam Satu Kalimat
String adalah tipe data yang menampung kumpulan karakter, seperti “aku”, “kamu” atau
“Duniailkom”. Sebuah kalimat juga terhitung sebagai tipe data string, seperti “Saya sedang
belajar bahasa C di SMK”.
Di dalam bahasa pemrograman yang lebih modern, string biasanya menjadi tipe data bawaan.
Misalnya di bahasa PHP atau JavaScript, tipe string langsung tersedia sebagaimana tipe data
lain seperti integer, float atau char. Namun bahasa pemrograman C tidak memiliki tipe data
string secara langsung. String di dalam bahasa C adalah array dari tipe data char.
Format Penulisan String
Karena string tidak lain adalah array dari char, maka cara pembuatan tipe data string dalam
bahasa C juga sama seperti cara pembuatan array. Berikut contohnya:
Operasi Pemecahan dan Penggabungan
String
Operasi string adalah proses-proses pemecahan masalah yang berkaitan dengan pengolahan
teks atau tulisan, dalam algoritma ada beberapa cara yang digunakan dalam mengolah string
diantaranya adalah
1. Penggabungan, Menggabungkan dua buah string atau lebih menggunakan operator
penggabung
2. Pemecahan, Mengambil bagian tertentu dari sebuah String atau teks sesuai dengan yang
diinginkan, biasanya menggunakan fungsi-gungsi yang sudah di sediakan dalam bahasa
pemrograman yang digunakan.
Format Penulisan Pemecahan dan Penggabungan String
Di baris 5 saya membuat array foo yang bisa berisi 8 element, isi array foo ini berupa 8 buah
tipe data char, yakni huruf ‘b’, ‘e’, ‘l’, ‘a’, ‘j’, ‘a’, ‘r’, dan ‘\0’. Ini dipakai untuk membuat sebuah
string “belajar”.
Ini adalah salah satu syarat pembuatan string di dalam bahasa C. Semua string harus memiliki
karakter “khusus” untuk menandakan akhir dari string. Tanda ‘\0’ mewakili karakter null yang
dipakai oleh compiler bahasa C sebagai tanda akhir sebuah string.
Karena alasan ini pula saya harus membuat array foo sebagai foo[8], yakni sebuah array
dengan 8 element, meskipun “belajar” hanya terdiri dari 7 karakter, bukan 8.
Ketika di tampilkan dengan perintah printf di baris 6, tipe data string memiliki kode tersendiri,
yakni %s.
Hasilnya variabel foo berisi string “belaj$”, tanda $ di sini menandakan bahwa ada sesuatu yang
salah. Selain itu di bagian bawah Code::Block tampil pesan peringatan: “warning: excess
elements in array initializer”, ini karena array kita tidak bisa menampung semua karakter.
Khusus untuk foo[8] tidak ada karakter yang tampil karena ‘\0’ atau karakter null yang secara
prinsip berarti “kosong” atau “tidak ada”.
Secara otomatis compiler bahasa C akan mengisi jumlah element array foo sesuai dengan
jumlah karakter string, ditambah 1 untuk karakter null. Di baris 8 menggunakan operator sizeof
untuk mencari ukuran string foo, hasilnya “Panjang string adalah 24”, yakni total string “Belajar
C di Duniailkom” sebanyak 23 karakter + 1 karakter null.
Membaca String dengan Scanf
Gets adalah sebuah fungsi atau function di dalam bahasa C yang dipakai untuk membaca
inputan user. Penggunaannya lebih sederhana daripada scanf.
Konversi Data (Casting) dalam Algoritma
Konversi data tujuannya adalah mengkonversi nilai dari satu tipe data ke jenis tipe data lain,
misalnya merubah angka dari tipe data string menjadi bilangan, biasanya yang banyak
digunakan adalah mengkonversi tipe data angka dalam bentuk string menjadi tipe data dalam
bentuk bilangan, atau angka dalam bentuk bilangan menjadi string.
Type Casting adalah cara untuk mengkonversi variabel dari satu tipe data ke tipe data lainnya.
Kita juga dapat mengkonversi nilai-nilai dari satu jenis ke jenis yang lain secara eksplisit
menggunakan operator cast "( )".
Format Penulisan Konversi Data (Casting)
operator cast dilakukan terlebih dahulu sebelum operator pembagian, sehingga nilai_a
pertama dikonversi ke tipe double kemudian dibagi dengan nilai_b. Konversi tipe data secara
implisit dapat dilakukan oleh compiler secara otomatis, atau dapat kita tentukan secara
eksplisit dengan menggunakan operator cast. Hal ini lebih bagus dalam sebuah pemrograman
untuk menggunakan operator cast setiap kali kita akan mengkonversi tipe data yang
diperlukan.
POINTER
Pointer adalah sebuah jenis variabel yang dapat menunjuk address atau alamat memory dari
sebuah variabel lain. Setiap variabel biasanya mempunyai sebuah alamat karena dalam deklarasi,
program akan mengalokasikan sebuah alamat untuk variabel tersebut. Sebagai contoh kita akan
menginisialisasikan variabel angka=10; Pernahkah kita terpikir apa yang program lakukan?
Sebenarnya, pada saat kita melakukan deklarasi program akan mengalokasi block memory untuk si
variabel angka tadi. Bisa dianalogikan variabel angka sebagai rumah, 10 adalah isi dari rumah dan
rumah pasti mempunyai alamat. Untuk mendeklarasikan variabel pointer, kita dapat menggunakan
simbol bintang (*) di depan variabel yang di deklarasikan pada tipe data tertentu.
Pointer ke Variabel
Variabel adalah suatu tempat menampung data atau konstanta dimemori yang mempunyai
nilai atau data yang dapat berubah-ubah selama proses program. Dalam pemberian nama
variabel. Terdapat dua macam operator pointer yang disediakan oleh Borland C++ yaitu
Operator dereference ( & ) dan Operator reference ( * ).
Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas khusus atau inruksi
yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Tujuan pembuatan
fungsi :
a. Memudahkan dalam pembuatan program
b. Menghemat ukuran program
c. Membuat program menjadi lebih terstruktur
d. Mengurangi duplikasi kode
e. Fungsi dapat dipanggil dari program atau fungsi lainnya
Format Penulisan Fungsi
// Fungsi kuadrat
// tipe_return nama_fungsi (tipe_argument argumen)
float kuadrat ( float x )
{
return x*x;
}
Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul (header) dan isi
(body). Judul dari sebuah fungsi terdiri dari tipe return (float), nama fungsi (kuadrat) dan list
parameter (float x). Jadi, judul untuk fungsi kuadrat adalah
Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yang
menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi yang
akan dikembalikan ke yang memanggilnya, Isi dari fungsi kuadrat() adalah
{
return x*x;
}
Biasanya isi dari fungsi cukup besar. Meskipun demikian, judulnya tetap hanya berada dalam
satu baris. Isi dari sebuah fungsi dapat memanggil fungsi itu sendiri ( disebut rekursif ) atau
memanggil fungsi lainnya.
Pernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri
fungsi dan mengembalikan nilainya ke program pemanggil. Bentuk umum pernyataan return
adalah :
return ekspresi;
Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variable
yang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak memberikan nilai
return atau tipe returnnya void.
#include <iostream.h>
void sayHello(char[]) ; // deklarasi fungsi sayHello()
void main()
{
char n[50];
cout<<"Masukkan nama anda : "; cin>>n;
sayHello(n);
}
Deklarasi fungsi berbeda dengan dengan definisi fungsi. Suatu deklarasi fungsi adalah judul
fungsi yang sederhana yang diikuti oleh tanda semicolon ( ; ). Sedangkan definisi fungsi
adalah fungsi yang lengkap, terdiri dari judul dan isinya. Suatu deklarasi fungsi disebut juga
sebagai prototype fungsi.
Suatu deklarasi fungsi seperti layaknya suatu deklarasi variabel, yang memberitahu compiler
semua informasi yang dibutuhkan untuk mengkompilasi file. Compiler tidak perlu mengetahui
bagaimana fungsi bekerja, yang perlu diketahui adalah nama fungsi, jumlah dan tipe
parameternya, dan tipe balikannya (return). Hal ini merupakan informasi yang dimuat secara
lengkap dalam judul fungsi.
Juga seperti sebuah deklarasi variabel, suatu deklarasi fungsi harus muncul diatas semua
nama fungsi yang digunakannya. Berbeda dengan definisi fungsi, yang dapat diletakkan
terpisah dari deklarasinya, dan dapat muncul dimana saja diluar fungsi main() dan biasanya
dituliskan setelah fungsi main() atau dalam file terpisah yang jika ingin digunakan tinggal
menambahkan prepocessor #include “nama_file” pada file utama. Jika definisi fungsi
diletakkan diatas fungsi main() maka deklarsi fungsi tidak diperlukan.
Format Penulisan Deklarasi Fungsi
Variabel yang dilist dalam pemanggilan fungsi disebut parameter-parameter actual atau
argumen-argumen aktual. Sama seperti variabel lainnya dalam program utama, variabel-
variabel tersebut harus dideklarasikan sebelum digunakan dalam pemanggilan. Dalam contoh
dibawah, parameter-parameter aktualnya adalah m dan n.
void cekInt(double n)
{
if(n>1)cekInt(n-1);
else if(n<1)cekInt(-n-1);
else
{
if(n>0&&n<1)cout<<n<<"\t Bukan bilangan bulat\n";
else cout<<n<<"\t Bilangan bulat\n";
}
}
Parameter Fungsi
Parameter adalah data masukan untuk subprogram yang nantinya akan diproses lebih lanjut
dalam subprogram tersebut. Parameter sebuah fungsi adalah variabel yang menyertai fungsi
tersebut baik saat deklarasi maupun saat pemanggilan fungsi. Dalam bahasa C dikenal dua
jenis parameter, yaitu parameter formal dan aktual. Parameter formal adalah parameter yang
berupa variabel yang ada dalam definisi fungsi saat dideklarasikan. Sedangkan parameter
aktual adalah parameter yang bisa berupa variabel atau konstanta yang dipakai saat
pemanggilan fungsi.
Parameter formal sebuah fungsi harus berupa variabel karena dia bersifat kerangka yang
nanti nilainya bisa berubah selama proses program. Tata cara penulisan parameter formal
tampak jelas pada saat pembahasan tentang prototipe fungsi. Parameter formal bisa berupa
satu atau beberapa variabel yang ditulis setelah nama fungsi, ditaruh didalam kurung dengan
masing-masing variabel dipisahkan tanda koma.
Parameter aktual merupakan parameter yang dipakai ketika sebuah fungsi dipanggil
didalam program. Parameter aktual dapat berupa variabel atau konstanta. Penulisan dan tipe
data parameter aktual sebuah fungsi harus mengikuti aturan yang telah ditetapkan oleh
parameter formal. Selain itu, parameter aktual juga bisa merupakan hasil dari sebuah operasi
bilangan.
Format Penulisan Parameter Fungsi
#include <stdio.h>
//prototipe fungsi Pada contoh diatas tampak sebuah
//parameter formal berupa variabel: panjang, lebar dan diameter
float hitung_luas_persegi_panjang(float panjang, float lebar);
program dengan dua buah fungsi yaitu
float hitung_luas_lingkaran(float diameter); fungsi hitung_luas_persegi_panjang
int main () dan hitung_luas_lingkaran. Pada
{
float panjang = 20.25;
prototipe masing-masing fungsi terdapat
float lebar = 4.75; parameter formal yaitu pada fungsi
float luas;
hitung_luas_persegi_panjang terdapat
//parameter aktual berupa variabel parameter panjang dan lebar serta pada
luas = hitung_luas_persegi_panjang(panjang,lebar); fungsi hitung_luas_lingkaran terdapat
printf("LUAS PERSEGI PANJANG = %f n",luas);
parameter diameter.
//parameter aktual berupa konstanta
luas = hitung_luas_lingkaran(8.5); Kemudian pada main rutin terdapat
printf("LUAS LINGKARAN = %f n",luas);
return 0; contoh pemanggilan fungsi dengan
}
parameter aktual berupa variabel yaitu
//definisi fungsi pada perintah luas =
//parameter formal berupa variabel: panjang, lebar dan diameter
hitung_luas_persegi_panjang(panjan
float hitung_luas_persegi_panjang(float panjang, float lebar)
{ g,lebar). Dan contoh pemanggilan fungsi
}
return (panjang * lebar); dengan parameter aktual berupa
konstanta pada perintah luas =
float hitung_luas_lingkaran(float diameter)
{ hitung_luas_lingkaran(8.5).
return (3.14 * diameter * diameter / 4 );
}
Nilai Balik
Fungsi dengan nilai balik adalah suatu fungsi yang dapat mengembalikan suatu nilai ke dalam
fungsi utama. Dalam membuat fungsi, harus didefinisikan tipe data dari niali yang akan
dikembalikan. Sebelum dapat memanggil suatu fungsi, kita harus mendeklarasikannya terlebih
dahulu. Pendeklarasian fungsi dengan nilai balik diawali dengan tipe data yang akan
dikembalikan nilainya. Kemudian diikuti dengan nama fungsi dan daftar perameternya.
Karena fungsi dengan nilai balik ini sebenarnya adalah sebuah nilai atau eskpresi, maka
pemanggilannya dapat dilakukan seperti layaknya sebuah variabel. Sebagai contoh, nilai yang
dikembalikan dapat ditampung ke dalam suatu variabel tertentu yang memiliki tipe data sama
dengan tipe kembalian fungsi bersangkutan.
nama_variabel = nama_fungsi (parameter1, parameter2, ...);
Fungsi yang Mengembalikan Tipe String
#include <iostream>
using namespace std;
// Membuat fungsi sederhana yang mengembalikan tipe string
char* TestFungsiString() {
return (char*) "Selamat Datang di Raksasa Kecil";
}
// Fungsi utama
int main() {
// Memanggil dan menampilkan hasil fungsi
cout<<TestFungsiString();
return 0;
}
Keluaran :
Selamat Datang di Raksasa Kecil
Pada bagian ini akan dibuat fungsi sederhana yang mengembalikan nilai bertipe string. Dalam
contoh ini, kita tidak akan menggunakan parameter. maka dari itu, setiap pemanggilan fungsi
akan menghasilkan nilai yang sama.
Fungsi yang Mengembalikan Tipe Bilangan
#include <iostream>
using namespace std;
// Membuat fungsi dengan nilai kembalian bertipe double
double TestFungsiBilangan() {
return (3.14 * 2);
}
// Fungsi utama
int main() {
cout<<"Nilai yang terdapat dalam fungsi: ";
cout<<TestFungsiBilangan();
return 0;
}
Keluaran :
Nilai yang terdapat dalam fungsi : 6.28
Selain mengembalikan tipe string, fungsi dalam C++ juga dapat mengembalikan nilai berupa
karakter, numerik (bilangan) , pointer, maupun yang lainnya. Pada bagian ini, kita akan
kembali membuat program yang memiliki definisifungsi dengna nilai balik. Kali ini, fungsi
yang didefinisikan akan mengembalikan nilai berupa bilangan.
Fungsi Rekursif
Rekursif adalah suatu proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya
terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa
memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil
prosedur atau fungsi. Pemanggilan diri sendiri dilakukan berulang-ulang sampai mencapai titik
tertentu.
Rekursif akan terus berjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah
rekursi perlu adanya blok-blok kode sebagai berikut :
1. Basis: basis merupakan kode yang menjadi titik berhenti dari sebuah proses rekursi
karena proses rekursi akan terus berjalan berputar memanggil dirinya sendiri sampai
sebuah kondisi basis terpenuhi. Oleh karena itu basis sangat penting dalam sebuah proses
rekursi, karena tanpa basis sebuah proses rekursi akan terus dijalankan tanpa henti.
2. Rekursi: Rekursi merupakan kode dalam hal ini sebuah blok program (prosedur, fungsi
atau metode) memanggil dirinya sendiri, misalnya ada sebuah fungsi hitung hasil faktorial,
bahwa di dalamnya blok kode fungsi itu memanggil dirinya sendiri.
Format Penulisan Fungsi Rekursif
1. Kondisi pada operasi kondisi pertama (if) akan dicek, karena kondisi bernilai salah, maka
program akan menjalankan pernyataan “return bil*faktorial(bil-1)”.
2. Bil bernilai 4, 4*faktorial(4-1)...sekarang kita mempunyai nilai 4, selanjutnya mengalikan
dengan rekursif., nilai 4 disimpan terlebih dahulu.
3. Rekursif, bil bernilai 3, dicek dengan kondisi pertama, karena masih bernilai salah maka
dilanjutkan ke pernyataan selanjutnya, 3*faktorial(3-1)... sekarang kita mempunyai nilai 3,
selanjutnya mengalikan dengan rekursif,..sekarang kita punya nilai 4*3..., dan seterusnya,
sampai variabel bil bernilai 1...sehingga akan diperoleh perkalian 4*3*2*1 yang
menghasilkan 24.
Menampilkan Deret Bilangan Genap
Menghitung Faktorial
Pointer ke Fungsi
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu
variabel lain! Pointer merupakan variabel level rendah yang dapat digunakan untuk menunjuk
nilai integer, character, &loat, double, atau single, dan bahkan tipe-tipe data lain yang
didukung oleh bahasa C!
Pointer sifatnya dinamis dan dapat lebih fleksibel. variabel pointer yang tidak menunjuk pada
nilai apapun berarti memiliki nilai NULL, dan disebut sebagai dangling. pointer karena nilainya
tidak diinisialisasi dan tidak dapat diprediksi! Deklarasi Pointer Seperti halnya variabel yang
lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan!.
#include <stdio.h>
Penggunaan pointer pada parameter fungsi. Parameter pass by reference adalah pemrosesan
parameter di dalam sebuah fungsi di mana yang dimasukkan didalam prosedur adalah tempat
atau alamat dari variabel yang menjadi parameter sehingga dapat terjadi perubahan nilai
variabel yang menjadi parameter.
Modularisasi Kode Program
Konsep-konsep pemrograman adalah kemampuan untuk group beberapa baris kode ke dalam
sebuah unit yang dapat dimasukan dalam program kami. Yang asli untuk kata ini adalah sub-
program. Nama lain meliputi: makro, sub-rutin, prosedur, modul dan fungsi. Fungsi-fungsi
penting karena membolehakn kita untuk mengambil program besar dan rumit untuk membagi
mereka menjadi potongan-potongan kecil diatur. Karena fungsi yang lebih kecil adalah bagian
program secara keseluruhan, Umumnya fungsi jatuh kedalam
dua kategori:
1. Control program: Fungsinya hanya di gunakan untuk membagi dan sub control program.
fungsi ini adalah fungsi unik yang di tulis. Lain-lain program dapat menggunaka fungsi
serupa bahkan fungsi dengan nama yang sama, tetapi isi dari fungsi hampir selalu berbeda.
2. Tugas Spesifik: Fungsinya dirancang untuk digunakn dengan beberapa program . fungsi
ini melakukan tugas tertentu dan dengan itu bisa digunakan dalam berbagai program
karena program lain juga perlu untuk melakukan tugas tertentu . spesifik tugas fungsi
kadang-kadang disebut sebagai blok bangunan . karena mereka sudah di uji dan oke. Kita
dapat menggunakannya dengan keyakinan lebih efisien untuk menulis program yang besar.
Program utama harus menetapkan adanya fungsi yang di gunakan dalam program ini
tergantung pada bahasa pemrograman :
a. Menentukan fungsi
b. Memanggil fungsi
c. Menyatakan fungsi
Pencarian dan Pengurutan Data
Pengurutan adalah upaya mengatursekumpulan data berdasar pada urutan (naik atau turun).
Pencarian adalah upaya mencari/mendapatkan satu atau lebih objek dari sekumpulan data
STRUKTUR DATA. Sorting Pengurutan data dalam struktur data sangat penting untuk data yang
bertipe data numeric ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik)
dan descending (urut turun), Pengurutan (Sorting) adalah proses menyusunkembali data yang
sebelumnya telah disusundengan suatu pola tertentu, sehingga tersusun secara teratur menurut
aturan tertentu. Contoh:
1. Data acak/random : 5 6 8 1 3 25 10
2. Ascending : 1 3 5 6 8 10 25
3. Descending : 25 10 8 6 5 3 1
Logika Pencarian Data dengan Algoritma Pencarian Linier
Algoritma pencarian yang paling sederhana adalah metode pencarian linier. Seperti yang
dibahas pada kegiatan sebelumnya, kita akan melakukan pencarian pada sebuah array yang
sudah terdefinisi elemen-elemennya, dan x adalah elemen yang bertipe sama dengan elemen
array A carilah x di dalam array A.
Sequential Search
Logika Pengurutan Data dengan Algoritma Bubble Sort
Sorting bisa didefinisikan sebagai suatu pengurutan data yang sebelumnya disusun secara
acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu. sorting yang kita
terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya lebih
mudah
Pada umumnya metode yang digunakan untuk sorting adalah :
1. Bubble\Exchange sort
2. Selection sort
3. Shell Sort
4. Quick sort
Diberi nama "Bubble" karena proses pengurutan
secara berangsur-angsur bergera/berpindah ke
posisi yang tepat, seperti gelembung yang keluar
dari sebuah gelas bersoda. Bubble sort
mengurutkan data dengan cara membandingkan
elemen sekarang dengan elemen berikutnya.
Jika elemen sekarang lebih besar dari elemen berikutnya maka elemen tersebut ditukar
(untuk pengurutan ascending) jika elemen sekarang lebih kecil daripada elemen berikutnya,
maka kedua elemen tersebut ditukar (untuk pengurutan descending). algoritma ini seolanh
olah menggeser satu per satu elemen dari kenan ke kiri atau kiri ke kanan. tergantung jenis
pengurutannya. Ketika suatu proses telah selesai, maka bubble sort akan mengalami
proses, demikian seterusnya. Bubble sort berhenti jika seluruh array telah diperiksa dan
tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai pengurutan yang telah
diinginkan.
Bubble Sort
Logika Pengurutan Data dengan Algoritma Selection Sort
Algoritma Selection sort memilih elemen maksimum atau minimum array, lalu menempatkan
elemen maksimum atau minimum itu pada awal atau akhir array (tergantung pada urutannya
ascending atau descending). Selanjutnya elemen tersebut tidak disertakan pada proses
selanjutnya. Karena setiap kali selection sort harus membandingkan elemen-elemen data,
algoritma ini termasuk dalam comparison-based sorting.
Terdapat dua pendekatan dalam metode pengurutan dengan Selection Sort :
1. Algoritma pengurutan maksimum (maximum selection sort), yaitu memilih elemen
maksimum sebagai basis pengurutan.
2. Algoritma pengurutan minimum (minimum selection sort), yaitu memilih elemen minimum
sebagai basis pengurutan.
Selection Sort
PENGEMBANGAN APLIKASI
Pengembangan aplikasi, atau bisa juga disebut sebagai pengembangan software atau desain
software, kerap kali disalahartikan sebagai kegiatan dimana seorang programmer melakukan
coding, sebuah proses penulisan kode, tetapi sebenarnya yang dimaksud dengan
pengembangan aplikasi merupakan serangkaian proses yang dilakukan dari saat pembuatan
konsep aplikasi hingga aplikasi tersebut selesai dan siap digunakan.
Dalam proses pengembangan aplikasi terdapat berbagai proses yang perlu dilakukan sebagai
syarat untuk membuat sebuah aplikasi yang telah terancang dengan baik, dan dikerjakan
secara berstruktur. Dalam urutan pelaksanaannya, terdapat berbagai macam model yang biasa
digunakan oleh para pengembang aplikasi, seperti waterfall, prototype, spiral, dan agile
development.
Tahapan Pengembangan Aplikasi dengan
Metode Waterfall
Model pengembangan software yang diperkenalkan oleh Winston Royce pada tahun 70-an ini
merupakan model klasik yang sederhana dengan aliran sistem yang linier —keluaran dari
tahap sebelumnya merupakan masukan untuk tahap berikutnya. Pengembangan dengan
model ini adalah hasil adaptasi dari pengembangan perangkat keras, karena pada waktu itu
belum terdapat metodologi pengembangan perangkat lunak yang lain. Proses pengembangan
yang sangat terstruktur ini membuat potensi kerugian akibat kesalahan pada proses
sebelumnya sangat besar dan seringkali mahal karena membengkaknya biaya pengembangan
ulang.
Metode Waterfall adalah suatu proses pengembangan perangkat lunak berurutan, di mana
kemajuan dipandangsebagai terus mengalir ke bawah (seperti air terjun) melewati fase-fase
perencanaan, pemodelan, implementasi (konstruksi), dan pengujian.
Tahapan Pengembangan Aplikasi Waterfall
Dalam pengembangannya metode waterfall memiliki beberapa tahapan yang runtut:
requirement, design, implementation, verification dan maintenance.
1. Tahap requirement atau spesifikasi kebutuhan sistem adalah analisa kebutuhan sistem
yang dibuat dalam bentuk yang dapat dimengerti oleh klien dan staf pengembang. Dalam
tahap ini klien atau pengguna menjelaskan segala kendala dan tujuan serta mendefinisikan
apa yang diinginkan dari sistem. Setelah dokumen spesifikasi disetujui maka dokumen
tersebut menjadi kontrak kerja antara klien dan pihak pengembang.
2. Tahap design atau desain, dalam tahap ini pengembang akan menghasilkan sebuah
arsitektur sistem secara keseluruhan, dalam tahap ini menentukan alur perangkat lunak
hingga pada tahapalgoritma yang detil.
3. Tahap implementation implementasi, yaitu tahapan dimana keseluruhan desain diubah
menjadi kode-kode program. kode program yang dihasilkan masih berupa modul-modul
yang selanjutnya akan di integrasikanmenjadi sistem yang lengkap untuk meyakinkan
bahwa persyaratan perangkat lunak telah dipenuhi.
4. Tahap verification atau verifikasi oleh klien, klien menguji apakah sistem tersebut telah
sesuai dengan kontrak yang telah disetujui.
5. Tahap maintenance atau perawatan adalah pemeliharaan yang termasuk diantaranya
instalasi dan proses perbaikan sistem sesuai kontrak.
Kelebihan Metode Waterfall
Kelemahan pengembangan software dengan metode waterfall yang utama adalah lambatnya
proses pengembangan perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak
bisa diloncat-loncat menjadikan model klasik ini sangat memakan waktu dalam
pengembangannya. Disisi lain, pihak klien tidak dapat mencoba sistem sebelum sistem benar-
benar selesai pembuatannya. Kelemahan yang lain adalah kinerja personil yang tidak optimal
dan efisien karena terdapat proses menunggu suatu tahapan selesai terlebih dahulu.Secara
keseluruhan model pendekatan pengembangan software dengan metode waterfall cocok untuk
pengembangan software / perangkat lunak dengan tingkat resiko yang kecil, dan memiliki
ukuran yang kecil serta waktu pengembangan yang cukup panjang. Model ini tidak disarankan
untuk ukuran perangkat lunak yang besar dan tingkat resiko yang besar.
Tahapan Pengembangan Aplikasi dengan
Metode Prototype
Prototyping adalah pengembangan yang cepat dan pengujian terhadap model kerja
(prototype) dari aplikasi baru melalui proses interaksi dan berulang-ulang yang biasa
digunakan ahli sistem informasi dan ahli bisnis.
Prototyping disebut juga desain aplikasi cepat (rapid application design/RAD) karena
menyederhanakan dan mempercepat desain sistem. Berdasarkan karakteristiknya prototipe
sebuah system dapat berupa low fidelity dan high fidelity. Fidelity mengacu kepada tingkat
kerincian sebuah sistem.
Tahapan Pengembangan Aplikasi Waterfall