Anda di halaman 1dari 136

SMK MUHAMMADIYAH 5 JEMBER

C1. PEMROGRAMAN DASAR

Oleh :

Rama Dwi Septiandi, Amd.Kom, S.Pd.


Dedi Pratama, A.Md.
Dwi Nurman Setiadi, A.Md.
KONSEP ALGORITMA PEMROGRAMAN
Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu langkah-
langkah pembuatan suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu
program yaitu:
1. Mendefinisikan masalah
2. Mencari solusinya
3. Menentukan algoritma
4. Menulis program
5. Menguji program
6. Mendokumentasikan program
7. Merawat program
Mendefinisikan Masalah
Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus
dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output
program.

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.

Struktur Sequential (Runtutan)

Struktur dasar algoritma terdiri dari satu atau


lebih instruksi, yang setiap instruksinya dikerjakan
secara berurutan sesuai dengan urutan penulisan
algoritma tersebut. Sebuah instruksi dikerjakan
setelah instruksi sebelumnya dikerjakan.
TUGAS!

Buatlah dan gambarkan 1 algoritma


sequential!
Struktur Selection (Pemilihan)
Pemilihan langkah yang didasarkan oleh suatu kondisi atau pengambilan suatu keputusan.
Struktur ini ditandai selalu dengan bentuk flowcart decision (flowcart yang berbentuk belah
ketupat).
TUGAS!

Buatlah dan gambarkan 1 algoritma


selection!
Struktur Looping (Perulangan)

Struktur ini memberikan suatu perintah atau tindakkan


yang dilakukan beberapa kali. Perulangan adalah
instruksi yang dapat mengulang sederetan instruksi
secara berulang-ulang sesuai persyaratan yang
ditetapkan.
TUGAS!

Buatlah dan gambarkan 1 algoritma


looping!
ALGORITMA BAHASA NATURAL
Algoritma dengan bahasa natural lebih mendekati penulisan bergaya bahasa manusia yang
digunkaan dalam kehidupan sehari-hari. Penggunaan algoritma ini akan lebih mudah dalam
penullisan algoritmanya karena menggunakan bahasa yang lebih sederhana dan tidak
membutuhkan software ataupun tool tool tertentu. Bahasa Natural merupakan cara penyajian
suatu algoritma yang paling sederhana dan paling mudah dimengerti.

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!

Buatlah algoritma natural dengan kondisi berikut :


• Menentukan rumus keliling lingkaran
• Menghitung luas segitiga dengan alas 8 cm dan tinggi 10 cm
• Menghitung volume balok dengan panjang 4 cm, lebar 5 cm dan tinggi
8 cm. Kubus dengan sisi 4 cm. Dibuat dalam satu algoritma.
VARIABLE
Suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses
program yang nilainya bisa diubah-ubah sesuai kebutuhan. Variable memiliki nama dan nama
dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
1. Nama variable bisa menggunakan gabungan huruf dan angka, tapi namanya tidak boleh
didahului oleh angka.
2. Penamaan variable tidak boleh mengandung spasi.
3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore _). Yang
termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +,
dsb.
4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
KONSTANTA
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi
konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai
datanya sepanjang program berjalan tidak berubahubah, maka sebuah varibel lebih baik
diperlakukan sebagai konstanta. Contoh : ‘...’, “...”, (...).

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!

Buatlah 2 algoritma yang didalamnya terdapat Variable,


Konstanta dan Ekspresi!
TIPE DATA
Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data. Tipe data menentukan
apakah sebuah nilai dapat dimiliki sebuah data atau tidak, serta operasi apa yang dapat
dilakukan pada data tersebut.

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.

Tipe Data Ukuran Rentang Nilai


Byte 1 Byte 0 s/d +255
Shortint 1 Byte -28 s/d +127
Integer 2 Byte -32768 s/d 32767
Word 2 Byte 0 s/d 65535
Longint 4 Byte -2147483648 s/d 2147483648
Real (Riil)
Real adalah tipe data dasar berupa bilangan yang memiliki pecahan desimal. Dalam
pemrograman, nilai dengan tipe data ini harus ditulis dengan sebuah titik sebagai pemisah
bilangan utuh dan bilangan pecahannya. Contoh : 0.5, 0.17, -3.645, 92,0

Tipe Data Ukuran Rentang Nilai


Float 32 Byte 2.9x10-39 s/d 1.7x1038
Double 148Byte 5.0x10-324 s/d 1.7x10308

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!

Buatlah 10 data yang mengandung tipe data Integer, Real,


String, Char dan Boolean!
OPERATOR
Operator adalah pengendali operasi yang akan dilakukan pada beberapa operan sehingga
membentuk sebuah ekspresi. Secara umum, dalam sebuah ekspresi terdapat sebuah operator
yang diapit dua operan.

Operator Aritmatika
Operator ini membentuk perhitungan aritmatika. Kedua operan dari operasi aritmatik ini dapat
berupa nilai integer atau real.

Lambang Deskripsi Contoh


+ Penjumlahan x=y+z
- Pengurangan x=y-z
* Perkalian x=y*z
/ Pembagian x=y/z
% Modulo x=y%z
Operator Assignment

Dalam pemprograman bahasa C++, Operator ini digunakan memasukan nilai kedalam sebuah
variabel, tanpa menghilangkan atau mengosongkan nilai variabel sebelumnya.

Lambang Deskripsi Contoh


+= Menjumlahkan x+=1
-= Mengurangkan x-=1
*= Mengalikan x*=2
/= Membagikan x/=2
%= Mem-mod x%=2
Operator Logika
Operator logika adalah operator yang digunakan untuk mengkombinasikan hasil ekspresi yang
mengandung operator relasional.

Lambang Deskripsi Contoh


&& And / Dan x>7 && x=y
|| Or / Atau x!=y || x >3
! Not / Tidak !(x>y)

Operator Relasional Lambang Deskripsi Contoh


== Sama dengan x==y
Operator ini membandingkan dua operan
dan hasilnya berupa nilai boolean (BENAR != Tidak sama dengan x!=y
atau SALAH). Operasi relasional dapat > Lebih dari x>y
dilakukan pada dua nilai dengan tipe data
< Kurang dari x<y
yang sama: tipe data integer, riil, char,
string, maupun boolean. >= Lebih dari atau sama dengan x>=y
<= Kurang dari atau sama dengan X<=y
TUGAS!

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.

1. Menampilkan tulisan Test


Start
Print “Test”
End 3. Menghitung hasil penjumlahan
Start
Read b, c
2. Menampilkan variable berisi tulisan Test d=b+c
Start Print b, “ ditambah “, c, “ hasilnya “, d
a = “Test” End
Print a
End
ANALISIS!
Jabarkan bacaan pesudocode berikut :
Start
Read f
Start If f > 0 Then
Read e If f < 10 Then
If e < 10 Then Print f
Print e Else
Else Print “Masukkan angka di antara 0 dan 10!”
Print “Masukkan angka kurang dari 10!” End If
End If Else
End Print “Masukkan angka di antara 0 dan 10!”
End If
End
FLOWCHART
Suatu diagram yang menggunakan simbol-simbol khusus yang menunjukkan langkah-langkah
sebuah program. Terdapat beberapa simbol pada flowchart.

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

T o Gunakan kalimat tanya o Shows the next page


Q. ? yang dapat dijawab
dengan Yes atau No
o Shows the previous
page
• 2 out going arrows
1 o Run out of space

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!

Gambarkan semua jenis flowchart yang digunakan


dalam pembuatan algortima pemrograman!
TUGAS!

Buatlah flowchart dari :


• Menghitung luas trapesium
• Menghitung keliling persegi panjang
• Menghitung volume tabung
ALGORITMA PERCABANGAN
Percabangan 1 Kondisi
jika <kondisi> bernilai benar maka <pernyataan> dikerjakan,
sedangkan jika bernilai salah, maka <pernyataan> tidak
dikerjakan dan proses langsung keluar dari percabangan.
Percabangan 2 Kondisi

Jika <kondisi> bernilai benar maka pernyataan 1


dikerjakan. Sedangkan jika tidak (<kondisi>bernilai
salah), maka pernyataan yang dikerjakan adalah
pernyataan 2. Berbeda dengan percabangan 1
kondisi, pada percabangan dua kondisi ada dua
pernyataan untuk kedua kondisi,yaitu untuk
<kondisi> yang bernilai benar dan <kondisi> yang
bernilai salah.
TUGAS!

Buatlah algoritma pemrograman menggunakan :


• Percabangan 1 kondisi
• Percabangan 2 kondisi
Percabangan Lebih Dari 2 Kondisi

Mula-mula <kondisi1> dicek nilai kebenarannya. Jika


benar, maka dikerjakan pernyataan1. Jika salah, maka
dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar,
maka dikerjakan pernyataan2. Jika tidak algoritma akan
mengecek ke kondisi berikutnya dengan cara yang sama
dengan yang sebelumnya. Terakhir, jika semua kondisi
bernilai salah, maka pernyataan yang dikerjakan adalah
Pernyataan(n+1).
Percabangan Bercabang

Mula-mula <kondisi1> dicek nilai kebenarannya. Jika


benar, maka dicek nilai kebenaran <kondisi2>. Jika
<kondisi2> benar, maka dikerjakan pernyataan1. Jika
tidak algoritma akan dikerjakan pernyataan2. Jika
<kondisi1> tidak benar maka akan dicek nilai
kebenaran . Jika <kondisi3> benar, maka dikerjakan
pernyataan3. Jika tidak akan dikerjakan pernyataan4.
TUGAS!

Buatlah algoritma pemrograman menggunakan :


• Percabangan lebih dari 2 kondisi
• Percabangan bercabang
ALGORITMA PERULANGAN
Perulangan Dengan Kondisi Awal
Pengulangan dengan kondisi di awal adalah bentuk pengulangan
yang melibatkan kondisinya di awal perintah. jenis pengulangan
yang menggunakan kondisi di awal adalah pengulangan While
Do dan pengulangan For Do.

Aksi (atau runtunan aksi) akan dilaksanakan berulangkali


sepanjang <kondisi> boolean masih tetap bernilai true, jika
<kondisi> bernilai false, badan pengulangan tidak akan
dilaksanakan. Pengulangan selesai.
Perulangan Dengan Kondisi Akhir

Struktur REPEAT-UNTIL memiliki makna yang sama


dengan WHILE-DO namun ada perbedaan mendasar
diantara keduanya. Pada struktur REPEAT-UNTIL aksi
(atau sekumpulan aksi) dilaksanakan minimal satu kali,
karena kondisi pengulangan diperiksa pada akhir struktur,
sedangkan pada struktur WHILE-DO kondisi pengulangan
diperiksa pada awal struktur sehingga memungkinkan
pengulangan tidak pernah dilaksanakan bila kondisi
pengulangan bernilai false.
TUGAS!

Buatlah algoritma pemrograman menggunakan :


• Perulangan dengan kondisi awal
• Perulangan dengan kondisi akhir
Perulangan Dengan Pencacah Naik
Struktur FOR digunakan untuk menghasilkan pengulangan sejumlah kali tanpa penggunaan
kondisi apapun, struktur ini menyebabkan aksi diulangi sejumlah kali (tertentu)
Bentuk umum struktur FOR ada 2 macam : menaik (ascending) dan menurun (descending).

• Peubah : haruslah bertipe sederhana


• Nilai_awal : haruslebih kecil atau sama dengan
nilai_akhir
• Pada awalnya, peubah diinisialisasi dengan nilai_awal.
Nilai peubah secara otomatis bertambah satru setiap
kali aksi pengulangan dimasuki, sampai akhirnya nilai
peubah sama dengan nilai_akhir
Perulangan Dengan Pencacah Turun

• Peubah : haruslah bertipe sederhana


• Nilai_akhir : harus lebih besar atau sama dengan nilai_awal
• Pada awalnya, peubah diinisialisasi dengan nilai_akhir. Nilai
peubah secara otomatis berkurang satu setiap kali aksi
pengulangan dimasuki, sampai akhirnya nilai peubah sama
dengan nilai_awal
TUGAS!

Buatlah algoritma pemrograman menggunakan :


• Perulangan dengan pencacah naik
• Perulangan dengan pencacah turun
Perulangan Dengan Continue

Pernyataan perintah continue yang kita libatkan di dalam


perintah pengulangan akan berdampak pengulangan akan
dilanjutkan tanpa mengeksekusi perintah-perintah lainnya
yang letaknya setelah perintah continue.
Perulangan Dengan Break

Pengulangan dengan pernyataan break adalah bentuk


pengulangan dimana di dalam proses pengulangan ada
perintah break, sehingga pengulangan akan langsung selesai
dan keluar dari proses pengulangan meskipun kondisi belum
terpenuhi.
TUGAS!

Buatlah algoritma pemrograman menggunakan :


• Perulangan dengan Continue
• Perulangan dengan Break
PENGENALAN BAHASA PEMROGRAMAN
Program : Implementasi dari algoritma yang ditulis ke dalam bahasa pemrograman tertentu
sehingga dapat di proses oleh komputer.
Pemrogram : Orang yang bekerja menyusun suatu program atau programmer.
Bahasa pemrograman : Suatu notasi yang digunakan dalam uraian-uraian algoritma dan
struktur data untuk dapat berkomunikasi dengan komputer.

FRAMEWORK PENGEMBANGAN PROGRAM


Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan script
(terutama class dan function) yang dapat membantu developer/programmer dalam menangani
berbagai masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan
variabel, file,dll sehingga developer lebih fokus dan lebih cepat membangun aplikasi.
INSTALASI TOOLS BAHASA PEMROGRAMAN
Tools bahasa pemrograman adalah system software yang berfungsi sebagai pengatur komunikasi
antara komputer dengan peralatannya (komputer dengan komputer, atau komputer dengan
manusia). Contoh : Basic (Beginners' All-purpose Symbolic Instruction Code), Pascal (mengambil
nama Blaise Pascal), Cobol (Common Business Oriented Language), Fortran (Formula Translator),
Assembler, C/C++, Java.

Turbo Pascal Dev C++ Codeblocks NETBeans


Klik ganda codeblocks (untuk bahasa C dan C++) – muncul tampilan welcome, klik Next –
pada tampilan License Agreement, klik I Agree
Pilih komponen aplikasi yang akan diinstal, klik Next – Pilih lokasi penyimpanan instalasi,
klik Install.
Proses instalasi akan berjalan dan muncul perintah untuk menjalankan program setelah
diinstal, klik No.
Instalasi telah selesai, klik Next – aplikasi codeblocks siap digunakan, klik Finish.
TUGAS!

Instalasi aplikasi CodeBlocks pada komputer/laptop, pelajari


fiturnya dan buat laporan!
STRUKTUR BAHASA PEMROGRAMAN C

• 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!

Buatlah identitas diri secara lengkap dengan menggunakan perintah printf()!


• Nama Lengkap
• Tempat Tanggal Lahir
• Alamat
• Sekolah
• Kelas
• Kompetensi Keahlian
PENGEMBANGAN ALGORITMA APLIKASI
Debugging dan Error Handling
Debugging adalah sebuah metode yang dilakukan oleh para pemrogram dan pengembang
perangkat lunak untuk mencari dan mengurangi bug (kesalahan pada program), atau
kerusakan di dalam sebuah program komputer sehingga perangkat tersebut bekerja sesuai
dengan harapan. Ada beberapa kemungkinan kesalahan yang terjadi sewaktu proses
kompilasi hingga pengeksekusian program, yaitu:
1. Kesalahan sintaksis, disebabkan adanya kesalahan dalam menuliskan program yang tidak
sesuai dengan kaidah bahasa pemrograman.
2. Kesalahan logika, merupakan kesalahan yang terjadi karena ada logika yang salah.
3. Kesalahan runtime, merupakan kesalahan yang terjadi karena suatu operasi dalam
program tidak dapat dilakukan oleh komputer.

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!

Buatlah program aplikasi menggunakan bahasa pemrograman C,


yang memuat aplikasi yang penggunaanya dibutuhkan dalam
kehidupan sehari-hari!
TERIMA KASIH
SMK MUHAMMADIYAH 5 JEMBER
C1. PEMROGRAMAN DASAR

Oleh :

Rama Dwi Septiandi, A.Md.Kom, S.Pd.


Dedi Pratama, A.Md.
Dwi Nurman Setiadi, A.Md.
OPERASI ARITMATIKA DAN LOGIKA
Operasi Aritmatika Melalui Operator dan
Fungsi-Fungsi Aritmatika
Operasi aritmatika adalah operasi yang melibatkan beberapa operator
aritmatika seperti misalnya penjumlahan, pengurangan, perkalian dan
pembagian untuk memproses 2 buah nilai atau lebih.

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:

1. > lebih besar


2. < lebih kecil
3. >= lebih besar sama dengan
4. <= lebih kecil sama dengan
5. <> tidak sama dengan
6. != tidak sama dengan
7. == apakah sama dengan
8. := sama dengan

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:

1. and : menghasilkan nilai TRUE jika kedua operand bernilai TRUE


2. or : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE
3. xor : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE tetapi bukan
keduaduanya bernilai TRUE
4. ! (simbol tidak): mengasilkan nilai tidak TRUE
5. && (simbol AND): menghasilkan nilai TRUE jika kedua operand bernilai TRUE
6. || (simbol OR): menghasilkan nilai TRUE jika salah satu operand bernailai TRUE

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!

Buatlah program dengan operator aritmatika dan logika!


• Menghitung 10+15=25
• Menghitung 2(4+10)=80
• Menghitung luas persegi dengan sisi 8cm
• Menghitung keliling persegi panjang dengan lebar 4 cm dan panjang 5 cm
• Menghitung volume tabung dengan Л
ARRAY
Array 1 Dimensi

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.

Element adalah sebutan untuk isi atau anggota sebuah array.


Array 2 Dimensi

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:

Bagaimana dengan array 4 dimensi? Tidak masalah:

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”.

Nanti dulu, kenapa ada tambahan ‘\0’ di bagian akhir?

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

Perintah scanf yang dipakai untuk meminta input dari user.


Membaca String dengan Gets

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 ( * ).

Format Penulisan Pointer ke Variabel


Karena keakhlian dari pointer untuk menunjuk secara langsung kesuatu nilai, memeriksa satu
persatu data yang memiliki pointer pada saat variabel tersebut pertama kali dideklarasikan.
Pointer Reference Pointer Dereferences
Pointer ke Array
Konsep Array diantaranya adalah banyak loncatan dari pointer satu ke pointer yang lain.
karena secara internal array juga menyatakan alamat, yaitu pengenal array sama dengan
alamat pada elemen pertama, pada array.

Format Penulisan Pointer ke Array

Fungsi Pointer menyediakan beberapa yang sangat


menarik, efisien dan elegan teknik pemrograman. Anda
dapat menggunakannya untuk mengganti switch/jika-
pernyataan, untuk menyadari Anda sendiri akhir-mengikat
atau untuk melaksanakan callback.
FUNGSI
Deklarasi dan Definisi Fungsi
Definisi Fungsi

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

float kuadrat ( float x )

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);
}

void sayHello(char nama[]) // definisi funsi sayHello()


{
cout<<"Selamat datang "<<nama;
}
Deklarasi Fungsi

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.

// Program mengecek sebuah bilangan integer atau bukan


#include <iostream.h>
#include <conio.h>
#include <math.h>
void cekInt(double);
void main()
{
double angka;
cout<<"Masukan sebuah angka :";cin>>angka;
cekInt(angka);
}

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.

Format Penulisan Nilai Balik


tipe_data nama_fungsi (parameter1, parameter2, ...) {
Staetmen_yang_akan_dilakukan;
...
return nilai_yang_akan_dikembalikan;
}

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

Menampilkan Deret Angka

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>

int hitung(int a, int *b){


*b = 15;
return a + *b;
}
main(){
int y,z,hasil;
y=10;
z=50;
printf("Sebelum Jalankan Fungsin");
printf("y=%d\n",y);
printf("z=%d\n",z);
hasil=hitung(y,&z);
printf("Sebelum Jalankan Fungsin");
printf("y=%d\n",y);
printf("z=%d\n",z);
printf("hasil=%d\n",hasil);
}

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, 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 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

Keunggulan model pendekatan pengembangan software dengan metode waterfall adalah


pencerminan kepraktisan rekayasa, yang membuat kualitas software tetap terjaga karena
pengembangannya yang terstruktur dan terawasi. Disisi lain model ini merupakan jenis model
yang bersifat dokumen lengkap, sehingga proses pemeliharaan dapat dilakukan dengan
mudah. Akan tetapi dikarenakan dokumentasi yang lengkap dan sangat teknis, membuat
pihak klien sulit membaca dokumen yang berujung pada sulitnya komunikasi antar
pengembang dan klien. Dokumentasi kode program yang lengkap juga secara tak langsung
menghapus ketergantungan pengembang terhadap pemrogram yang keluar dari tim
pengembang. Hal ini sangat menguntungkan bagi pihak pengembang dikarenakan proses
pengembangan perangkat lunak tetap dapat dilanjutkan tanpa bergantung pada pemrogram
tertentu.
Kekurangan 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

Proses-proses tersebut dapat dijelaskan sebagai berikut:


1. Pengumpulan kebutuhan: developer dan klien bertemu dan menentukan tujuan umum,
kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya;
2. Perancangan: perancangan dilakukan cepat dan rancangan mewakili semua aspek
software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype;
3. Evaluasi Prototype: klien mengevaluasi prototype yang dibuat dan digunakan untuk
memperjelas kebutuhan software.
Tahapan Pengembangan Aplikasi Prototyping
Tahapan-tahapan dalam Prototyping adalah sebagai berikut:

1. Pengumpulan kebutuhan: pelanggan dan pengembang bersama-sama mendefinisikan


format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar
sistem yang akan dibuat.
2. Membangun prototyping: membangun prototyping dengan membuat perancangan
sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat
input dan format output).
3. Evaluasi protoptyping: evaluasi ini dilakukan oleh pelanggan apakah prototyping yang
sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka
langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulang langkah 1, 2 ,
dan 3.
4. Mengkodekan sistem: dalam tahap ini prototyping yang sudah di sepakati diterjemahkan
ke dalam bahasa pemrograman yang sesuai.
5. Menguji sistem: setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai,
harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black
Box, Basis Path, pengujian arsitektur dan lain-lain.
6. Evaluasi sistem: pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai
dengan yang diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
7. Menggunakan sistem: perangkat lunak yang telah diuji dan diterima pelanggan siap
untuk digunakan.
Kelebihan Metode Prototyping
1. Adanya komunikasi yang baik antara pengembang dan pelanggan.
2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
3. Pelanggan berperan aktif dalam pengembangan sistem.
4. Lebih menghemat waktu dalam pengembangan sistem.
5. Penerapan menjadi lebihmudah karena pemakai mengetahui apa yang diharapkannya.

Kekurangan Metode Prototyping


1. Pelanggan tidak melihat bahwa perangkat lunak belum mencerminkan kualitas perangkat
lunak secara keseluruhan dan belum memikirkan peneliharaan dalam jangka waktu yang
lama.
2. Pengembang biasanya ingin cepat menyelesaikan proyek sehingga menggunakan algoritma
dan bahasa pemrograman sederhana.
3. Hubungan pelanggan dengan komputer mungkin tidak menggambarkan teknik
perancangan yang baik.
TERIMA KASIH

Anda mungkin juga menyukai