SlideShare a Scribd company logo
dasar-dasar algoritma
Pada dasarnya komputer adalah mesin yang
tidak dapat melakukan apa-apa, sehingga
diperlukan serangkaian instruksi yang
diberikan kepada komputer untuk dapat
bekerja dan memecahkan suatu masalah.
Langkah-langkah yang dilakukan dalam
memberikan instruksi kepada komputer
untuk memecahkan masalah disebut juga
Pemrograman Komputer.
Program adalah kumpulan instruksi yang
digunakan untuk mengatur komputer agar
melakukan suatu tindakan tertentu.
Definisi lain Program yaitu kata, ekspresi,
pernyataan atau kombinasinya / kumpulan
statement-statement yang dirangkai dan disusun
menjadi satu kesatuan prosedur yang berupa
urutan langkah-langkah logis penyelesaian
masalah yang diimplementasi kan dengan
penggunaan bahasa pemrograman sehingga
dapat dieksekusi oleh komputer dan dilihat hasil
akhirnya.
Pada dasarnya komputer mencakup 3
aspek penting, berupa Perangkat
Keras (hardware), Perangkat Lunak
(software) berupa program, serta
Perangkat Akal (brainware) atau orang
yang berperan dalam operasi
komputer maupun pengembangan
Perangkat Lunak.
Dalam Pemrograman Komputer, untuk
memberikan suatu instruksi harus digunakan
bahasa yang dimengerti oleh komputer tersebut,
yang disebut juga Bahasa Komputer. Dengan
bahasa ini, komputer akan mampu memahami
dan mengerti perintah-perintah yang diberikan.
Bahasa Komputer biasa juga disebut dengan
Bahasa Pemrograman Komputer, yaitu suatu
prosedur atau tata cara penulisan program, yang
dalam hal ini adalah kata, ekspresi, pernyataan
atau kombinasi semuanya yang disusun dan
dirangkai berupa urutan langkah-langkah
penyelesaian masalah.
Bahasa Pemrograman Komputer
secara garis besar dapat
dikelompokkan menjadi 2:
1. Bahasa Beraras Rendah (Low Level
Language)
2. Bahasa Beraras Tinggi (High Level
Language)
Komputer adalah mesin digital yang hanya
dapat mengenal kondisi ada arus listrik (biasa
dilambangkan dengan 1) atau tidak ada arus
listrik (biasa dilambangkan dengan 0)
Dengan kata lain, harus digunakan sandi 0
atau 1 untuk melakukan pemrograman
komputer. Bahasa Pemrograman yang
menggunakan sandi 1 atau 0 ini disebut
dengan Bahasa Mesin.
Bahasa Mesin sangat susah untuk dimengerti,
maka kemudian muncul ide untuk
melambangkan untaian sandi 0 dan 1 dengan
singkatan kata yang lebih mudah dipahami
oleh manusia. Singkatan kata ini kemudian
disebut Mnemonic Code.
Bahasa Pemrograman yang menggunakan
singkatan kata (Mnemonic Code) ini disebut
dengan Bahasa Assembly.
Contohnya, dalam prosesor Intel terdapat
perintah 0011 1010 0000 1011. Perintah ini
sama artinya dengan perintah assembly CMP AL,
0D, yang artinya bandingkan nilai register AL
dengan 0D. CMP adalah singkatan dari CoMPare.
Perangkat lunak yang mengkonversikan
perintah-perintah assembly ke dalam bahasa
mesin sering disebut juga assembler.
Bahasa Mesin dan Bahasa Assembly termasuk ke
dalam Bahasa Beraras Rendah (Low Level
Language).
Pemrograman dengan bahasa assembly
dirasakan masih terlalu sulit, sehingga
kemudian dikembangkan bahasa
pemrograman yang lebih mudah digunakan
karena menggunakan kata-kata yang mudah
dikenali oleh manusia.
Bahasa Pemrograman seperti ini disebut
Bahasa Generasi Ketiga atau 3GL (Third
Generation Language).
Bahasa Generasi Ketiga biasa juga
disebut dengan bahasa tingkat tinggi
atau HLL (high level language).
Contoh Bahasa Generasi Ketiga yaitu
Basic, Pascal, C, C++, COBOL dan
lain-lain.
Contoh perintah dalam bahas Pascal:
writeln (‘Algoritma’);
Contoh perintah dalam Bahasa C:
printf (“Algoritmanr”);
Contoh perintah dalam Bahasa C++:
cout << “Algoritma”<< endl;
Perangkat Lunak yang menerjemahkan program
dalam bahasa yang dimengerti manusia ke dalam
Bahasa Assembly atau Mesin ada dua macam,
yaitu:
1. Interpreter menerjemahkan program baris per
baris, jika suatu baris akan dieksekusi, maka
baris tersebut diterjemahkan dulu ke Bahasa
Mesin. Contoh: Basic
2. Kompiler menerjemahkan semua baris perintah
ke dalam bahasa mesin kemudian menjalankan
hasil penerjemahannya. Contoh: Pascal, C, dan
C++
Pada Bahasa Pemrograman Komputer ada
beberapa faktor yang harus diperhatikan:
1. Sintaksis, yaitu tata bahasa yang digunakan
dalam program atau aturan-aturan yang
mengatur tata cara penulisan kata, ekspresi,
dan pernyataan.
2. Semantik adalah maksud yang dikandung
dalam setiap pernyataan yang ada dalam
program atau aturan-aturan untuk
menyatakan suatu arti.
3. Kebenaran Logika berhubungan dengan benar
tidaknya urutan pernyataan yang ada dalam
program
Kesalahan sintaksis akan langsung kelihatan,
karena komputer akan menampilkan pesan
kesalahan
Kesalahan semantik biasanya terjadi karena
kekurang pahaman terhadap setiap pernyataan
yang dituliskan pada program, sehingga
walaupun program bisa berjalan tetapi tidak
seperti yang diharapkan.
Kesalahan logika merupakan kesalahan dalam
mengimplementasikan masalah yang dihadapi,
sehingga program yang ditulis tidak benar secara
logika.
1. Mendefinisikan masalah.
Tujuannya untuk memahami
permasalahan secara mendalam
berkaitan dengan input, perintah
yang digunakan dan bagaimana
bentuk ouputnya.
2. Menentukan solusi. Jika masalahnya terlalu
besar, dapat dibagi menjadi beberapa modul
yang dapat memudahkan penyelesaian
masalah
Contoh:
Program untuk menghitung luas dan keliling
persegi panjang inputnya adalah panjang
dan lebar, prosesnya dengan rumus luas =
panjang * lebar dan keliling = 2*
(panjang+lebar), serta output yang
diharapkan adalah luas dan keliling.
3. Memilih Algoritma. Algoritma dibuat dengan
tujuan untuk menyelesaikan masalah. Algoritma
tidak bisa sekali jadi, tetapi akan dikaji
berulang-ulang sampai diperoleh algoritma
yang tepat, benar, dan relevan.
Contoh menghitung luas dan keliling persegi
panjang dibuat algoritma yaitu:
a. Tentukan variabel dan tipe data yang
digunakan.
b. Masukkan input yaitu panjang dan lebar.
c. Lakukan proses pencarian luas = panjang *
lebar, dan keliling = 2*(panjang+lebar)
d. Tampilkan luas dan keliling persegi panjang
4. Menulis Program menggunakan suatu bahasa
pemrograman ke dalam komputer untuk
memecahkan masalah yang ada.
Di slide selanjutnya akan diperlihatkan contoh
Program Menghitung Luas dan Keliling Persegi
Panjang yang ditulis menggunakan Bahasa C.
/*-----------------------------------------------------------------------------------------------
Program ADP_1_langkah_pemrograman.cpp
Contoh Menulis Program Menghitung Luas dan Keliling Persegi Panjang
----------------------------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int panjang, lebar, luas, keliling;
printf("Contoh Menulis Program");
printf(" sebagai Langkah-langkah Pemrograman Komputern");
printf("______________________");
printf("_________________________________________n");
printf("n");
printf("Masukkan panjang: ");scanf("%d",&panjang);
printf("Masukkan lebar: ");scanf("%d",&lebar);
printf("n");
luas = panjang * lebar;
keliling = 2 * (panjang+lebar);
printf("Jadi Luas Persegi Panjang adalah: %dn",luas);
printf("Jadi Keliling Persegi Panjang adalah: %dn",keliling);
printf("n");
system("Pause");
}
• Hasil eksekusi program
5. Melakukan testing dan debugging. Testing
merupakan proses menjalankan program
secara rutin untuk menemukan kesalahan-
kesalahan dalam penulisan suatu pernyataan
dalam program. Sedangkan debugging
adalah proses menemukan kesalahan-
kesalahan dalam program dan kesalahan
yang ditemukan diperbaiki sampai tidak
muncul kesalahan lagi
6. Menuliskan Dokumentasi. Dokumentasi
yaitu catatan dari setiap langkah pekerjaan
dalam pembuatan program, yang dilakukan
dari awal sampai akhir. Dokumentasi sangat
penting untuk melakukan penelusuran jika
terjadi kesalahan dan penting untuk
pengembangan program. Dokumentasi juga
akan memberikan informasi yang cukup
memadai sehingga orang lain akan dapat
mengerti dan memahami alur logika
program,
Dokumentasi biasanya berupa komentar-
komentar pada tiap baris program. Hal yang
perlu diperhatikan:
1.komentar jangan terlalu panjang
2.komentar harus jelas maksudnya
3.komentar diletakkan pada tempat yang
tepat
4.keterangan yang harus ditulis harus logis
5.tidak menimbulkan salah pengertian
// -----------------------------------------------------------------------
// Program ADP_2_menulis_dokumentasi_program.cpp
// Contoh Menulis Dokumentasi Program
// -----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
//deklarasi variabel yang digunakan
int jari;
float luas, keliling;
//keterangan program
printf("Contoh Menulis Dokumentasi Programn");
printf("________________________________n");
printf("n");
//input variabel yang digunakan yaitu jari
printf("Masukkan jari-jari: "); scanf("%d",&jari);
printf("n");
//proses menghitung luas dan keliling lingkaran
luas = 3.141593 * jari * jari;
keliling = 2 * 3.141593 * jari;
//ouput luas dan keliling lingkaran
printf("Jadi luasnya adalah: %.2fn",luas);
printf("Jadi keliling adalah: %.2fn",keliling);
printf("n");
system("Pause");
}
• Hasil Eksekusi Program
Untuk komentar dalam bahasa C++
menggunakan tanda /* dan diakhiri dengan
*/, atau dengan tanda // di awal setiap
pernyataan
7. Melakukan Perawatan. Hal ini perlu
dilakukan karena kemungkinan munculnya
kesalahan di luar dugaan atau biasanya
pengguna meminta fasilitas yang baru dalam
program.
Dalam mengimplementasi urutan langkah
penyelesaian masalah harus menggunakan bentuk
dan rancang bangun yang mudah dipahami, tidak
berbelit-belit, sederhana dan dapat dikembangkan
siapa saja. Konsep ini dinamakan Pemrograman
Terstruktur, dengan ciri-ciri berikut ini:
1. Mempunyai teknik pemecahan permasalahan yang
tepat dan benar.
2. Memiliki algoritma pemecahan masalah yang
sederhana dan efisien.
3. Teknik penulisan program memiliki struktur logika
yang benar dan mudah dipahami.
4. Membutuhkan biaya testing yang rendah.
5. Memiliki dokumentasi yang baik.
Clarity, Simplicity dan Unity
Bahasa pemrograman harus dapat menolong
programmer untuk membuat suatu desain
program jauh sebelum programmer
melakukan coding. Kemudahan,
kesederhanaan dan kesatuan merupakan
suatu kombinasi yang membantu
programmer mengembangkan suatu
algoritma sehingga algoritma yang dihasilkan
mempunyai kompleksitas yang rendah.
Orthogonality
Orthogonality menunjuk kepada suatu atribut
yang dapat dikombinasikan dengan beragam
fitur bahasa pemrograman sehingga setiap
kombinasinya mempunyai arti dan dapat
digunakan
Kewajaran untuk aplikasi
Bahasa pemrograman membutuhkan syntax
yang tepat/cocok yang digunakan pada
struktur program untuk merefleksikan
struktur logika yang melandasi suatu
algoritma.
Mendukung Abstraksi
Abstraksi merupakan suatu hal yang
substansial bagi programmer untuk membuat
suatu solusi dari masalah yang dihadapi.
Kemudian abstraksi tersebut dapat dengan
mudah diimplementasikan menggunakan
fitur-fitur yang ada dalam bahasa
pemrograman.
Kemudahan untuk Verifikasi Program
Verifikasi program merupakan hal penting
bagi sebuah program karena dengan
verifikasi yang mudah maka suatu program
akan dengan mudah dibangun dan
dikembangkan.
Lingkungan Pemrograman
Bahasa pemrograman yang mempunyai
lingkungan pemrograman yang baik dan
lengkap akan memudahkan programmer
untuk mengimplementasikan abstraksi yang
sudah disusunnya.
Portabilitas Program
Salah satu kriteria penting untuk proyek
pemrograman adalah kemudahan program
yang sudah jadi untuk dipindah-pindahkan
dari komputer yang digunakan untuk
membuat dan mengembangkan ke komputer
lain yang akan menggunakannya.
Pemrogram atau Programmer adalah orang
yang menyusun atau membuat suatu
program.
Ciri-ciri Pemerogram yang baik:
1. Mampu menyusun algoritma dengan baik
2. Menguasai bahasa dan teknik penulisan
program dengan baik
3. Dapat bekerjasama dalam suatu tim
4. Dapat bekerja secara efisien dan tepat
waktu
Kata Algoritma diambil dari nama
ilmuwan muslim yaitu Abu Ja’far
Muhammad bin Musa Al-Khwarizmi
(780 – 846 M) yang berasal dari
Uzbekistan, yang banyak menghasilkan
karya dalam bidang matematika,
disamping karya-karya dalam bidang
lainnya seperti geografi dan musik.
Al-Khwarizmi menyatakan bahwa
algoritma adalah suatu metode khusus
untuk menyelesaikan suatu persoalan
Beberapa definisi Algoritma:
1. Menurut Rinaldi Munir (2002), algoritma adalah
urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis
2. Menurut Kamus Besar Bahasa Indonesia (1998),
algoritma adalah urutan logis pengambilan
keputusan untuk pemecahan masalah.
3. Menurut Team Gunadarma (1988), algoritma adalah
suatu himpunan hingga dari instruksi-instruksi
yang secara jelas memperinci langkah-langkah
proses pelaksanaan, dalam pemecahan suatu
masalah tertentu, atau suatu kelas masalah
tertentu, dengan dituntut pula bahwa himpunan
instruksi itu tersebut dapat dilaksanakan secara
mekanik.
Contoh 1: algoritma dalam kehidupan sehari-
hari (menulis surat):
1. Mempersiapkan kertas dan amplop.
2. Mempersiapkan alat tulis, seperti pena
atau pensil
3. Mulai menulis
4. Memasukkan kertas ke dalam amplop
5. Pergi ke kantor pos untuk mengeposkan
surat.
Contoh 2: algoritma untuk menghitung luas
lingkaran. (Rumus luas lingkaran, L = πR2):
1. Masukkan R.
2. Pi 3.14
3. L Pi * R * R
4. Tulis L
Tanda pada baris kedua dan ketiga berarti
nilai di sebelah kanan diberikan pada operan
di sebelah kiri.
Masalah Algoritma Terjemahkan
ke Dalam Bahasa Pemrograman Hasil/Solusi
Proses dari masalah hingga menjadi suatu
algoritma disebut “Tahap Pemecahan
Masalah”
Sedangkan dari Algoritma hingga menjadi
Solusi/Hasil disebut tahap Tahap
Implementasi. Hasil/Solusi yang dimaksud
adalah suatu program yang merupakan
implementasi dari algoritma yang disusun.
1. Uraian Deskriptif, yaitu menggunakan bahasa
sehari-hari.
2. Pseudocode, yaitu kode yang mirip dengan
kode pemrograman sebenarnya seperti Pascal
atau C.
3. Flowchart (Diagram Alir), yaitu gambar atau
diagram yang memperlihatkan urutan dan
hubungan antar proses beserta pernyataannya.
Gambar ini dinyatakan secara simbol, dan tiap
simbol menggambarkan proses tertentu.
Sedangkan antara proses digambarkan dengan
garis penghubung.
Bagan-bagan yang mempunyai
arus yang menggambarkan
langkah-langkah penyelesaian
suatu masalah.
Merupakan salah satu cara
penyajian dari suatu algoritma.
Ada 2 macam Flowchart :
– System Flowchart, yaitu urutan proses
dalam system dengan menunjukkan alat
media input, output serta jenis media
penyimpanan dalam proses pengolahan
data.
– Program Flowchart, yaitu urutan instruksi
yang digambarkan dengan simbol tertentu
untuk memecahkan masalah dalam suatu
program.
Simbol – simbol yang digunakan
dalam flowchart, yaitu
- Flow Direction Symbols (Simbol
penghubung alur)
- Processing Symbols (Simbol
proses).
- Input-output Symbols (Simbol
input-output)
Simbol – simbol flowchart
Simbol – simbol flowchart
Pembuatan flowchart
- Sebuah flowchart diawali dari satu titik START dan
diakhiri dengan END.
- Hindari pengulangan proses yang tidak perlu dan
logika yang berbelit sehingga jalannya proses
menjadi singkat.
- Jalannya proses digambarkan dari atas ke bawah
dan diberikan tanda panah untuk memperjelas.
- Masing – masing simbol sebaiknya menggunakan
suatu kata yang mewakili suatu pekerjaan
- Jika flowchart terpotong yang dikarenakan
keterbatasan tempat maka gunakan simbol
penghubung yang tepat.
Dalam pemrograman, algoritma
digunakan untuk tiga struktur dasar,
yaitu:
1. Struktur Urut (sequence structure),
2. Struktur Keputusan (decision
structure),
3. Struktur perulangan (looping
structure).
1. Struktur Urut (sequence structure), terdiri
dari pernyataan atau beberapa pernyataan
yang tidak mempunyai perulangan atau
keputusan di dalamnya.
Contoh: algoritma untuk menghitung luas
dan volume suatu balok.
Rumus Luas Balok,
L = (2*p*l) + (2*p*t) + (2*l*t)
Rumus Volume Balok,
V = p*l*t
Algoritma dari permasalahan di atas adalah:
1. Masukkan panjang
2. Masukkan lebar
3. Masukkan tinggi
4. Luas = (2*p*l)+(2*p*t)+(2*l*t)
5. Volume = p*l*t
6. Tampilkan Luas
7. Tampilkan Volume
Keterangan dari algoritma di atas:
Pada baris pertama, kedua & ketiga diminta untuk memasukkan
input yang berkaitan dengan balok yaitu panjang, lebar dan
tinggi. Panjang balok disimpan pada variabel panjang, lebar
balok disimpan pada variabel lebar dan tinggi balok disimpan
pada variabel tinggi.
Pada baris keempat dan kelima, diminta memasukkan rumus
untuk mencari luas dan volume balok, yaitu Luas =
(2*panjang*lebar) + (2*panjang*tinggi) + (2*lebar*tinggi), dan
Volume = panjang*lebar*tinggi.
Luas balok disimpan pada variabel luas dan Volume balok
disimpan pada variabel volume. Baris keenam dan ketujuh
merupakan hasil dari proses input dan proses perhitungan dari
variabel input yang dimasukkan dan nantinya akan ditampilkan
Luas dan Volume balok.
Flowchart dari algoritma Struktur Urut di atas adalah:
Contoh memecahkan masalah dalam algoritma Struktur Urut.
Program untuk menghitung luas dan volume suatu balok.
/* ----------------------------------------------------------------------
Program ADP_3_struktur_dasar_algoritma_urut.cpp
Contoh Struktur Dasar Algoritma
---------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int panjang, lebar, tinggi, luas, volume;
printf("Contoh Struktur Dasar Algoritma Urutn");
printf("Menghitung Luas & Volume Balokn");
printf(“______________________________n");
printf("n");
printf("Masukkan panjang: "); scanf("%d",&panjang);
printf("Masukkan lebar: "); scanf("%d",&lebar);
printf("Masukkan tinggi: "); scanf("%d",&tinggi);
luas=(2*panjang*lebar)+(2*panjang*tinggi)+(2*lebar*tinggi);
volume=panjang*lebar*tinggi;
printf("Jadi Luasnya adalah: %dn",luas);
printf("Jadi Volumenya adalah: %dn",volume);
system("Pause");
}
• Hasil eksekusi program
2. Struktur Keputusan (decision
structure), digunakan untuk
memilih salah satu alternatif
jawaban yang tepat dari pilihan
yang ada. C++ menyediakan
dua perintah pengambilan
keputusan yaitu perintah IF dan
SWITCH.
Contoh: algoritma untuk menghitung
total pembayaran dari pembelian
seorang pelanggan toko, dengan
ketentuan apabila pembelian pelanggan
tersebut sama dengan atau melebihi
100000, maka pelanggan tersebut
mendapat discount 10%, jika tidak
pelanggan tersebut hanya mendapat
discount 5%.
Algoritma dari permasalahan tersebut adalah:
1. Masukkan pembelian
2. Jika pembelian >= 100000, discount =10% *
pembelian
3. Total pembayaran = pembelian – discount
4. Jika pembelian < 100000, discount = 5% *
pembelian
5. Total pembayaran = pembelian – discount
6. Tampilkan pembelian
7. Tampilkan discount
8. Tampilkan total pembayaran
Keterangan dari algoritma di atas:
Pada baris pertama, diminta untuk memasukkan input yang
berkaitan dengan permasalahan di atas yaitu pembelian. Pembelian
tersebut disimpan pada variabel beli.
Pada baris kedua, akan dilakukan pengujian dan pengecekan
pembelian yang dimasukkan yaitu apabila pembelian pelanggan
tersebut sama dengan atau melebihi 100000 atau tidak.
Jika jawabannya ya, maka pelanggan tersebut mendapat discount
10%, dan total pembayarannya = pembelian-dicount. Discount
disimpan dalam variabel disc dan total pembayaran disimpan dalam
variabel total. Kemudian ke baris keenam sampai kedelapan.
Jika jawabannya tidak, maka kerjakan baris keempat dan kelima
yaitu discount hanya 5% dan total pembayaran = pembelian-
discount.
Selanjutnya pada baris keenam sampai kedelapan, akan ditampilkan
discount dan total pembayaran.
Flowchart dari algoritma Struktur Keputusan di atas adalah:
// ------------------------------------------------------------------------------
// Program ADP_4_struktur_dasar_algoritma_keputusan.cpp
// Contoh Struktur Dasar Algoritma
// ------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
long int beli,disc,total;
printf("Contoh Struktur Dasar Algoritma Keputusann")
printf("Program untuk menghitung Pembelian");
printf(" dengan discountn");
printf("___________________________________");
printf("________________n");
printf("n");
printf("Masukkan nilai pembelian: Rp. "); scanf("%d",&beli);
printf("n");
if (beli>=100000)
{
disc=0.1*beli;
total=beli-disc;
}
else
{
disc=0.05*beli;
total=beli-disc;
}
printf("Jadi pembelian adalah Rp. %dn",beli);
printf("dengan discount Rp. %dn",disc);
printf("dan total pembayaran sebesar Rp. %dn",total);
printf("n");
system("Pause");
}
Contoh memecahkan masalah dalam algoritma Struktur Keputusan.
Program untuk menghitung total pembayaran dari pembelian dengan discount
• Hasil eksekusi program
3. Struktur Perulangan (looping
structure), digunakan untuk
melakukan suatu proses secara
berulang-ulang, jika suatu kondisi
dipenuhi atau sebaliknya. Biasa
dipergunakan untuk mengulang
proses pemasukan data,
mengulang proses perhitungan,
dan mengulang proses penampilan
hasil pengolahan data.
Contoh: algoritma untuk menampilkan
bilangan dari 10 sampai 1 secara
menurun, yaitu 10,9,8,7,6,5,4,3,2,1.
Algoritma dari permasalahan tersebut:
1. Tentukan nilai awal, batas, dan
penurunan nilai
2. Lakukan perulangan sampai batas
terpenuhi
3. Tampilkan bilangan
Keterangan dari algoritma di atas:
Pada baris pertama, diminta untuk mendefinisikan variabel
bilangan dalam hal ini disimpan dalam variabel n. Adapun
nilai awal n adalah 10, batas dari bilangan adalah n>0.
Karena yang akan ditampilkan bilangan secara menurun,
maka bilangan awal dikurangi satu persatu. Dalam C++
penulisannya adalah n--.
Pada baris kedua, proses perulangan dimulai, n dimulai dari
10, karena 10>0, maka perulangan dilakukan serta proses
penurunan berjalan yaitu 10-1=9. Seterusnya, perulangan
dilakukan sampai n=0.
Apabila nilai n=0, maka proses perulangan dihentikan dan
langkah selanjutnya akan turun ke baris ketiga yaitu
menampilkan semua bilangan dalam perulangan tersebut.
Flowchart dari algoritma Struktur Perulangan di atas adalah:
Contoh memecahkan masalah dalam algoritma Struktur
Perulangan.
Program untuk menampilkan bilangan dari 10 sampai 1 secara
menurun
// -------------------------------------------------
// Program ADP_5_struktur_dasar_algoritma_perulangan.cpp
// Contoh Struktur Dasar Algoritma
// -------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
int n;
printf("Contoh Struktur Dasar Algoritma Perulangann");
printf("Program untuk menampilkan nilai 10 s.d. 1n");
printf("__________________________________________n");
printf("nt");
for (n=10; n>0; n--){
printf("%dnt",n);
}
printf("n");
system ("Pause");
}
Sejauh ini tidak ada standarisasi tentang
bagaimana menyusun algoritma. Secara
prinsip, setiap orang mempunyai kebebasan
untuk menyusun bentuk suatu algoritma. Tiap
orang dapat menggunakan kata-kata dalam
bahasa manusia, pseudocode, atau bahkan
diagram alir untuk mewujudkan suatu
algoritma. Tiap orang juga dapat menggunakan
cara-caranya sendiri untuk menuliskan suatu
algoritma dengan memegang teguh
konsistensi.
Namun demikian ada beberapa hal yang perlu diperhatikan dalam
menyusun suatu algoritma.
Menurut Knuth ( 1973, hal. 4) dan juga Horowitz (1999, hal. 1), ada lima
ciri-ciri penting yang harus dimiliki sebuah algoritma, yaitu:
1. Finitness, menyatakan bahwa suatu algoritma harus berakhir untuk
semua kondisi setelah memproses sejumlah langkah.
2. Definiteness, menyatakan bahwa setiap langkah harus dinyatakan
dengan jelas (tidak rancu atau memiliki dua arti).
3. Masukan, setiap algoritma dapat tidak memiliki masukan atau
mempunyai satu atau beberapa masukan. Masukan merupakan suatu
besaran yang diberikan di awal sebelum algoritma diproses.
4. Keluaran, setiap algoritma memiliki keluaran, entah hanya sebuah
keluaran atau banyak keluaran. Keluaran merupakan besaran yang
mempunyai kaitan atau hubungan dengan masukan.
5. Efektivitas, setiap algoritma diharapkan bersifat efektif, dalam arti
semua operasi yang dilaksanakan oleh algoritma harus sederhana dan
dapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiap
instruksi dalam algoritma dapat dikerjakan oleh orang dengan hanya
menggunakan kertas dan pensil.
Memiliki logika perhitungan / metode yang tepat
dalam memecahkan masalah
Menghasilkan output yang tepat dan benar dalam
waktu yang singkat.
Ditulis dengan bahasa yang standart secara
sistematis dan rapi sehingga tidak menimbulkan arti
ganda
Ditulis dengan format yang mudah dipahami, dan
diimplementasikan ke dalam bahasa pemograman
Semua Operasi yang dibutuhkan terdefinisi dengan
jelas
Semua proses harus selalu berakhir setelah sejumlah
langkah dilakukan.
Standart Teknik Pemecahan Masalah
– Top – Down : Merupakan teknik pemecahan masalah
yang paling banyak digunakan dimana pada teknik ini
suatu masalah yang besar / complex dibagi-bagi ke
dalam beberapa kelompok masalah yang lebih kecil,
Dari kelompok kecil kemudian dianalisa dan apabila
masih memungkinkan untuk dibagi lagi menjadi sub
bagian lalu kemudian di susun langkah-langkah
untuk menyelesaikan masalah secara detail.
– Bottom – Up : Teknik ini masalah yang besar/komplek
dipecahkan dengan melakukan penggabungan
prosedur-prosedur yang menjadi satu kesatuan
program guna menyelesaikan masalah tersebut,
teknik ini sudah mulai di tinggalkan.
Standart Penyusunan Program
– Kebenaran logika dan penulisan : Program
yang disusun harus memiliki ketepatan,
ketelitian, dan kebenaran dalam
perhitungan, sehingga hasilnya dapat
dipercaya serta harus teliti dalam
penulisannya.
– Waktu untuk penulisan program : Program
harus dapat menentukan batas waktu
minimum dan maksimum dalam penulisan
programnya yang tersedia secara wajar.
TIPE DATA DAN OPERATOR
Tipe data adalah suatu nilai yang
dapat dinyatakan dalam bentuk
konstanta atau variabel dan
operator yang dapat dikenakan
padanya. Konstanta menyatakan
nilai yang tetap, sedangkan
variabel menyatakan nilai yang
dapat diubah-ubah.
◦ Tipe terdiri dari :
- Tipe Sederhana (Simple Type), dapat dibagi menjadi
empat kelompok (disebut juga tipe data dasar), yaitu:
1. bilangan bulat (integer)
2. bilangan pecahan (float/real)
3. teks, yaitu char untuk satu karakter, biasa
menggunakan tanda petik tunggal (‘ ‘) dan string
untuk karakter lebih dari satu, biasa menggunakan
tanda petik ganda (“ “).
4. pointer, dan
5. Boolean.
- Tipe Terstruktur (Structure Type)
1. Array
2. Record
Tipe Integer atau Bilangan Bulat (cthnya (..., -2, -1, 0, 1, 2, ...))
dapat dideklarasikan dengan menggunakan kata kunci (keyword)
atau kata cadangan (reserved word) yaitu short atau long
Keyword Besar
Memori
Jangkauan Nilai
int 16 bit -32768 s.d. 32768
short int 16 bit -32768 s.d. 32768
long int 32 bit -2147483648 s.d.
2147483648
Keyword Besar
Memori
Jangkauan Nilai
Unsigned int 16 bit 0 s.d. 65535
Unsigned short
int
16 bit 0 s.d. 65535
Unsigned long
int
16 bit 0 s.d. 4294967295
// -------------------------------------------------------------------------
-----
// Program ADP_6_memperlihatkan_data_tipe_integer.cpp
// Contoh Program Untuk Memperlihatkan Data Bertipe Integer
// -------------------------------------------------------------------------
-----
#include <stdio.h>
#include <stdlib.h>
main()
{
int a,b,c; // deklarasi tipe data integer
printf("Contoh Program Untuk Menampilkan Data Bertipe Integern");
//Judul Program
printf("_____________________________________________________n"); //Judul
Program
printf("n");
a=25.5; // nilai a berupa bilangan pecahan
b=15.0; // nilai b berupa bilangan pecahan
c=a+b; // c adalah nilai a ditambah nilai b
printf("%d",c); // menampilkan nilai c hasil penambahan a & b
1. Tentukan nilai a
2. Tentukan nilai b
3. c = a + b
4. Tampilkan nilai
Keterangan dari algoritma di atas adalah : pada
baris pertama dan kedua ditentukan nilai a yaitu 25
dan nilai b yaitu 15 dengan keduanya bertipe
integer (int). Nilai a disimpan dalam variabel a dan
nilai b disimpan dalam variabel b. Pada baris ketiga,
dimasukkan variabel c dengan rumus = a + b,
sehingga pada baris keempat akan ditampilkan
proses perhitungan dari variabel c yaitu a + b = 25
+ 15 = 40, dimana nilai c disimpan dalam variabel c
dan bertipe data integer.
Tipe Pecahan atau Floating Point (cth (1/4, ½,
2/3,…) dapat dideklarasikan dengan
menggunakan kata kunci (keyword) atau kata
cadangan (reserved word) yaitu float, double,
dan long double
Keyword Besar
Memori
Jangkauan Nilai
float 32 bit 3.4E-038 s.d. 3.4E+038
double 64 bit 1.7E-038 s.d. 1.7E+038
long
double
64 bit 1.7E-038 s.d. 1.7E+038
// -------------------------------------------------------------------------
-------
// Program ADP_6_memperlihatkan_data_tipe_pecahan.cpp
// Contoh Program Untuk Memperlihatkan Data Bertipe Pecahan
// -------------------------------------------------------------------------
-------
#include <stdio.h>
#include <stdlib.h>
main()
{
float a,b,c;
printf("Contoh Program Untuk Menampilkan Data Bertipe Percahann");
printf("____________________________________________________n");
printf("n");
a=25;
b=10;
c=a/b;
printf("%fn",c);
printf("n");
1. Tentukan nilai a
2. Tentukan nilai b
3. c = a / b
4. Tampilkan nilai
Keterangan dari algoritma di atas adalah : pada
baris pertama dan kedua ditentukan nilai a yaitu 25
dan nilai b yaitu 10 dengan keduanya bertipe
pecahan (float). Nilai a disimpan dalam variabel a
dan nilai b disimpan dalam variabel b. Pada baris
ketiga, dimasukkan variabel c dengan rumus = a /
b, sehingga pada baris keempat akan ditampilkan
proses perhitungan dari variabel c yaitu a / b = 25 /
10 = 2.500000, dimana nilai c disimpan dalam
variabel c dan bertipe data float.
Teks dapat berupa suatu
karakter ataupun suatu
string. Tipe Teks dapat
dideklarasikan dengan
menggunakan kata kunci
(keyword) atau kata
cadangan (reserved word)
yaitu char.
// ----------------------------------------------------------------
// Program ADP_8_memperlihatkan_data_tipe_teks.cpp
// Contoh Program Untuk Memperlihatkan Data Bertipe Teks (karakter)
// ----------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
char a;
printf("Contoh Program Untuk Menampilkan Data Bertipe Teks
(karakter)n");
pintf(“_________________________________________________________n");
printf("n");
printf("Masukkan huruf: ");scanf("%c",&a);
printf("Huruf yang dimasukkan adalah: %cn",a);
printf("n");
system ("Pause");
}
1.Masukkan huruf
2.Tampilkan huruf
Keterangan dari algoritma di atas
adalah : pada baris pertama, diminta
untuk memasukkan input yang berupa
huruf dimana huruf tersebut bertipe
karakter (char). Huruf yang
dimasukkan tersebut disimpan dalam
variabel a. Pada baris kedua akan
ditampilkan variabel a tadi.
Deklarasi Tipe String
juga menggunakan
kata kunci char
dengan menyebut
panjang dari nilai
stringnya.
// ----------------------------------------------------------------
------------------
// Program ADP_8a_memperlihatkan_data_tipe_teks.cpp
// Contoh Program Untuk Memperlihatkan Data Bertipe Teks (string)
// ----------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
char nama[20];
printf("Contoh Program Untuk Menampilkan Data Bertipe Teks
(string)n");
printf("___________________________________________________________n");
printf("n");
printf("Masukkan nama Anda: ");scanf("%s",&nama);
printf("Nama yang dimasukkan adalah: %sn",nama);
printf("n");
system ("Pause");
1.Masukkan nama
2.Tampilkan nama
Keterangan dari algoritma di atas adalah :
pada baris pertama, diminta untuk
memasukkan input yang berupa nama
dimana namatersebut bertipe karakter
(dalam hal ini menggunakan tipe data
char yang mempunyai panjang 20
karakter). Nama yang dimasukkan
tersebut disimpan dalam variabel nama.
Pada baris kedua akan ditampilkan
Jadi perbedaan tipe data karakter dan string
adalah jika tipe data karakter dituliskan
dengan kata kunci char saja, sedangkan tipe
data string ditulis dengan kata kunci char
diikuti tanda kurung siku awal dan akhir,
dimana dalam tanda kurung siku tersebut
terdapat panjang karakter yang diinginkan.
Pointer adalah suatu variabel
yang menyimpan alamat dari
suatu data, bukan menyimpan
datanya sendiri. Pointer
dideklarasikan dengan
menggunakan tanda asteris (*)
di depan nama variabelnya.
// -----------------------------------------------------------------------------
--
// Program ADP_9_memperlihatkan_data_tipe_pointer.cpp
// Contoh Program Untuk Memperlihatkan Data Bertipe pointer
// -----------------------------------------------------------------------------
--
#include <stdio.h>
#include <stdlib.h>
main()
{
int a,b,c,*d,*e,*f;
a=1000;
b=2050;
c=500;
d=&a;
e=&b;
f=&c;
printf("Contoh Program Untuk Menampilkan Data Bertipe Pointern");
printf("___________________________________________________n");
printf("n");
printf("Pointer d menunjukkan alamat: %pn",d);
printf("Pointer e menunjukkan alamat: %pn",e);
printf("Pointer f menunjukkan alamat: %pn",f);
printf("Alamat tersebut berisi nilai: %dn",*d);
printf("Alamat tersebut berisi nilai: %dn",*e);
printf("Alamat tersebut berisi nilai: %dn",*f);
printf("n");
Contoh program untuk memperlihatkan data bertipe pointer
1. Definisikan variabel a
2. Definisikan variabel b
3. Tampilkan nilai b
4. Tampilkan nilai pointer b
Keterangan dari algoritma di atas adalah : pada baris pertama
dan kedua, diminta untuk mendefinisikan dua buah variabel,
yaitu variabel a dengan tipe integer dan variabel b yang
merupakan suatu pointer bertipe integer yang akan
menyimpan alamat dari suatu data. Variabel b merupakan
suatu pointer karena dideklarasikan dengan didahului suatu
karakter *. Operatos & digunakan untuk mengambil alamat
dari suatu data.
Pada baris ketiga dan keempat, variabel a diisi dengan nilai
integer 20 dan nilai ini disimpan pada suatu alamat tertentu.
Alamat tersebut kemudian diisikan ke pointer b dengan
menggunakan operator & sebagai berikut b = &a. Dengan
demikian pointer b sekarang berisi alamat dari nilai integer 20.
/* ------------------------------------------------------------
-----------------------------
Program ADP_10_memperlihatkan_data_tipe_pointer_pada_string.cpp
Contoh Program Untuk Memperlihatkan Data Bertipe pointer
-------------------------------------------------------------
---------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
char *nama;
nama="Muhammad Hasbi";
printf("Program untuk melihat tipe data Pointern");
printf("pada stringn");
printf("---------------------------------------n");
printf("n");
printf("%sn",nama);
printf("n");
system ("Pause");
Contoh program untuk memperlihatkan data bertipe pointer pada
string
1.Definisikan variabel nama
2.Tampilkan nilai pointer nama
Keterangan dari algoritma di atas adalah :
pada baris pertama diminta untuk
mendefinisikan sebuah variabel nama yang
merupakan suatu pointer karena
dideklarasikan dengan didahului suatu
karakter *. Operator & digunakan untuk
mengambil alamat dari suatu data. Dana
pada baris kedua, variabel naam diisi
dengan tipe char dan tipe data ini disimpan
dalam suatu alamat tertentu.
Dalam program C++ biasanya digunakan
variabel dan konstanta untuk mendefiniskan
sebuah nilai.
Varibel dalam program digunakan untuk
menyimpan suatu nilai, dan nilai yang ada
padanya dapat diubah-ubah selama eksekusi
program berlangsung.
Variabel yang akan digunakan dalam program
harus dideklarasikan terlebih dahulu.
Deklarasi Variabel adalah memesan memori dan
menentukan jenis data yang dapat disimpan di
dalamnya.
Bentuk umum pendeklarasian variabel adalah:
tipe daftar-variabel;
Daftar-variabel dapat berupa sebuah variabel atau
beberapa variabel yang dipisahkan dengan tanda
koma.
Contoh:
int jumlah;
float harga_per_satuan, total_harga;
Tipe Jumlah
Bit
Rentang Data Keterangan
Char 8 -128 s.d. 127 Karakter
Int 16 -32768 s.d.
32767
Bilangan bulat (integer)
Float 32 3.4E-38 s.d.
3.4E+38
Bilangan pecahan presisi
tunggal
Doubl
e
64 1.7E-38 a.d.
1.7E+38
Bilangan pecahan presisi
ganda
Void 0 0 Pointer
Tipe Variabel
Tipe Ukuran (Bit) Rentang Data
Unsigned char 8 0 s.d. 255
Char 8 -128 s.d. 127
Enum 16 -32768 s.d. 32767
Unsigned int 16 0 s.d. 65535
Short int 16 -32768 s.d. 32767
Int 16 -32768 s.d. 32767
Unsigned long 32 0 s.d. 4294967295
Long 32 -2147483648 s.d. 2147483647
Float 32 3.4E-38 s.d. 3.4E+38
Double 64 1.7E-308 s.d. 1.7E+308
Long double 80 3.4E-34932s.d. 1.1E+4932
Near pointer 16 Not applicable
Far pointer 32 Not applicable
Tipe Data, Ukuran, dan Rentang Data
Hanya boleh terdiri dari huruf, angka, atau
garis bawah (Tidak boleh menggunakan
symbol)
Tidak boleh diawali dengan angka
Case sensitive
Harus Unik (tidak boleh sama)
Panjang tidak dibatasi, akan tetapi jangan
terlalu panjang guna memudahkan dalam
penggunaan
Hendaknya mencerminkan kegunaannya
Untuk memberikan nilai ke variabel yang
telah dideklarasikan, bentuk pernyataan
yang digunakan adalah:
variabel = nilai;
Contoh:
jumlah = 50;
harga_per_satuan = 15.7;
total_harga = jumlah * harga_per_satuan;
Algoritma untuk contoh di atas:
1. Inisialisasikan variabel jumlah
2. Inisialisasikan variabel harga per satuan
3. Inisialisasikan total harga
4. Tentukan nilai jumlah
5. Tentukan nilai harga per satuan
6. Total harga = jumlah*harga per satuan
7. Tampilkan total harga
Keterangan algoritma di atas:
Pada baris pertama, kedua dan ketiga diminta untuk
menentukan tipe data yang tepat untuk variabel
jumlah dan variabel harga per satuan serta total
harga, dimana tipe data yang tepat adalah pecahan
(float). Variabel masing-masing disimpan dengan
nama jumlah, harga per satuan, serta harga_total.
Pada baris keempat dan kelima nilai darikan jumlah
ditentukan 50 dan nilai harga_per_satuan ditentu
15.7.
Pada baris keenam, dilakukan proses perhitungan
dan pencarian nilai dari harga_total dengan rumus =
jumlah*harga_per_satuan.
Pada baris ketujuh menampilkan harga_total.
/* -------------------------------------------
Nama Program: ADP_Soal12.cpp
Contoh Penggunaan dan Pemberian
Nilai Variabel
---------------------------------------------
*/
#include <stdio.h>
#include <stdlib.h>
main()
{
int jumlah;
float harga_satuan, harga_total;
jumlah = 50;
harga_satuan = 15.7;
harga_total = jumlah * harga_satuan;
printf("Contoh Penggunaan dan n");
printf(“Pemberian Nilai Variabeln”);
printf("--------------------------n");
printf("n");
printf("Harga Total = %.2fn", harga_total);
system("pause");
/* ----------------------------
Nama Program: ADP_Soal12b.cpp
Contoh Penggunaan variabel
---------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int jumlah;
float harga_satuan, harga_total;
printf("Contoh Penggunaan dann");
printf("Pemberian Nilai Variabeln");
printf("--------------------------n");
printf("Masukkan jumlah: ");scanf("%d",&jumlah);
printf("Masukkan Harga Satuan: ");scanf("%f",&harga_satuan);
harga_total = jumlah * harga_satuan;
printf("n");
printf("Harga Total = %.2fn", harga_total);
printf("n");
system("pause");
}
Beberapa modifikasi tipe (type
modifier) yang dapat dikenakan di
awal tipe data dasar (kecuali void)
adalah: signed, unsigned, long, dan
short.
Misal modifikasi tipe unsigned jika
diterapkan pada tipe int, akan menjadi
unsigned int.
Tipe Ukuran
(Bit)
Rentang Data
Unsigned char 8 0 s.d. 255
Signed char 8 -128 s.d. 127
Unsigned int 16 -32768 s.d. 32767
Signed int 16 -32768 s.d. 32767
Short int 16 0 s.d 65535
Unsigned short 16 -32768 s.d. 32767
Int 32 -2147483648 s.d. 2147483647
Signed short int 32 -2147483648 s.d. 2147483647
Unsigned Long
int
32 0 s.d. 4294967295
Signed long int 80 3.4E-4932 s.d. 1.1E+4932
Unsigned long
int
Long doubel
Modifikasi Tipe Variabel
Dari tabel di atas, dapat dilihat bahwa tipe char
sama dengan unsigned char, sedangkan signed
int, short int, signed short int, dan int
sebenarnya adalah sama. Perbedaan signed dan
unsigned terletak pada perlakuan bit tertinggi.
Jika dinyatakan dengan signed, maka bit tertinggi
digunakan sebagai bit tanda untuk menyatakan
apakah bilangannya positif atau negatif.
Hal yang perlu diingat dalam proses modifikasi
ini adalah tipe data hasil minimum harus
mempunyai panjang bit yang sama.
Dalam penulisan program beberapa tipe data
boleh tidak ditulis secara lengkap, misalnya:
1.Tipe short int cukup ditulis menjadi short
2.Tipe long int boleh ditulis menjadi long
3.Tipe signed int bisa ditulis menjadi signed
4.Tipe unsigned int boleh ditulis dengan
unsigned
Konstanta adalah nilai numeris atau karakter
yang tetap.
C++ mendukung empat kelas konstanta,
yaitu floating point, integer, string, dan
karakter.
Penulisan konstanta mempunyai aturan
tersendiri sesuai dengan tipe masing-masing.
Konstanta Integer
Dapat berupa integer biasa, long integer, dan
unsigned integer.
Nilai konstanta integer dapat berupa nilai
desimal, oktal (ditulis dengan didahului oleh
digit 0), atau hexadesimal (ditulis dengan
didahului digit 0 dan karakter X).
Sedangkan konstanta unsigned integer dapat
ditulis dengan diakhiri huruf U atau u.
Konstant integer ditulis dengan tanpa
mengandung pemisah ribuan dan tidak
mengandung bagian pecahan. Contoh -20
dan 2345.
Konstanta long integer penulisannya diakhiri
dengan tanda L atau l, contohnya 346600L
atau 325100l.
Konstanta unsigned integer jika nilainya
melebihi 65535 maka secara otomatis akan
diperlakukan sebagai unsigned long int,
contoh 431000u.
Konstanta Floating Point
Dapat mengandung nilai pecahan (dengan
tanda berupa titik) dan dapat ditulis dalam
bentuk pecahan desimal biasa maupun
bentuk eksponensial (menggunakan tanda E),
contoh 35.6 dan 3.2E+5 (maksudnya 3,2 x
105).
Konstanta pecahan selalu dinyatakan dalam
double, kecuali jika diakhiri dengan F atau f
(yang berarti menyatakan konstanta float).
Konstanta String
Merupakan deretan karakter yang diawali dengan
dan diakhiri dengan tanda petik-ganda (“).
Konstanta string yang berisi satu karakter
berbeda dengan konstanta karakter, sebab
konstanta karakter diawali dan diakhiri dengan
tanda petik-tunggal. Jadi “c” tidak sama dengan
‘c’.
Konstanta string dapat mengandung karakter
yang menggunakan tanda  (karakter rangkaian
escape).
Konstanta Karakter
Selalu ditulis dengan diawali dan diakhiri
dengan tanda petik-tunggal. Contoh ‘C’ dan
‘&’.
Beberapa konstanta karakter dapat ditulis
dengan diawali tanda  (penempatan tanda 
setelah tanda petik tunggal).
Karakter yang berawalan tanda  disebut
rankaian escape (escape sequence).
Sequence Karakter Keterangan
a Bel Bunyi Bel
b BS Mundur 1 karekter (backspace)
f FF Ganti halaman (form feed)
n LF Ganti baris (line feed)
r CR Kembali ke awal kolom (carriage return)
t HT Tabulasi horizontal (horizontal tab)
v VT Tabulasi vertikal (vertical tab)
  Backslash
’ ‘ Petik tunggal
” “ Petik ganda
? ? Tanda tanya
DDD Apapun DDD adalah digit nilai oktal
xHHH Apapun HHH adalah digit nilai heksadesimal
0 NULL Karakter ASCII = 0
Ekspresi adalah sesuatu yang dapat menghasilkan nilai
Ekspresi dibagi menjadi 2 yaitu Operand dan Operator
Operator dibagi 2 berdasarkan operand yaitu
– Unary : satu operand
– Binary : dua operand
Contoh Ekpresi : 6 + 3
Angka 6 dan angka 3 adalah Operand sedangkan Simbol
tambah adalah operator
Contoh Unary : - 4
Simbol minus adalah Operator dan Angka 4 adalah
Operand
Contoh Binary : 7 * 2
Angka 7 dan 2 adalah Operand dan Simbol asteris
adalah operator
Operasi apa saja yang dapat dikenakan pada tipe
data, variabel dan konstanta tidak lepas dari
operator.
Operator merupakan simbol atau kata yang dapat
digunakan dalam program untuk melakukan
suatu operasi atau manipulasi, seperti
menjumlahkan dua buah nilai, memberikan nilai
ke suatu variabel, membandingkan dua buah
nilai dan lain-lain.
Sebagian operator C++ tergolong sebagai
operator binary, yaitu operator yang dikenakan
terhadap dua buah nilai (operand).
Operator Pengerjaan (assignment operator)
Operator Aritmatika
/* ----------------------------
Nama Program: ADP_Soal13.cpp
Contoh Penggunaan
Operator Pngerjaan
---------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int a,b,c;
a=10;
c=b=a;
printf("Contoh Program Penggunaan Operator Pengerjaann");
printf("_____________________________________________n");
printf("n");
printf("a=%dn",a);
printf("b=%dn",b);
printf("c=%dn",c);
system("pause");
}
Operator Keterangan
* Perkalian
/ Pembagian
% Modulus atau sisa
pembagian
+ Penjumlahan
- Pengurangan
Operator Binary
Operator Keterangan
+ Tanda plus
- Tanda minus
++ Prefix: preincrement; Postfix:
postincrement
-- Prefix: predecrement; postfix:
postdecrementOperator Unary
/* ----------------------------
Nama Program: ADP_Soal14.cpp
Contoh Penggunaan
Operator Aritmatika
---------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
float luas, pi, jari;
pi = 3.141593;
jari = 12.0;
luas = pi*jari*jari;
printf("Contoh Program Penggunaan Operator Arimatikan");
printf("_____________________________________________n");
printf("n");
printf("Jari-jari = %fn",jari);
printf("luas = %fn",luas);
printf("n");
system("pause");
}
Tertingg
i
++ --
- (unary minus)
* / %
Terenda
h
+ -
Hirarki pada operator aritmatika
C++ mempunyai operator terkenal yaitu
operator peningkatan (increment operator)
yang menggunakan tanda ++ dan operator
penurunan (decrement operator) yang
menggunakan tanda --.
Operator peningkatan digunakan untuk
menambahkan nilai 1 pada nilai sebelumnya
dan operator penurunan digunakan untuk
mengurangi nilai 1 pada nilai sebelumnya.
Operato
r
Keterangan
<< Shift left (pergeseran ke kiri)
>> Shift right (pergeseran ke kanan)
& Operasi bit AND
| Operasi bit OR
^ Operasi bit XOR
~ Operasi bit NOT
Operator Bitwise
Tertingg
i
~
>> <<
&
^
Terenda |
Digunakan untuk membandingkan dua buah
nilai dan akan dihasilkan perbandingannya,
yaitu betul (bernilai 1) atau salah (bernilai 0)
Operator ini banyak digunakan pada
penyeleksian suatu kondisi di statemen IF
Operator Keterangan
> Lebih besar
>= Lebih besar sama dengan
< Lebih kecil
<= Lebih kecil sama dengan
== Sama dengan
!= Tidak sama dengan
Disamping operator hubungan, C++ juga
menyediakan tiga buah operator logika yang
biasanya berpasangan dengan operator
hubungan
Operator Keterangan
&& Operator Logika AND
|| Operator Logika OR
! Operator Logika NOT
A B A && B A || B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
/* -------------------------------------
Nama Program: ADP_Soal16.cpp
Contoh Penggunaan Operator Logika AND
------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int nilai, tugas;
printf("Contoh Program Penggunaan Operator Logika ANDn");
printf("_____________________________________________n");
printf("n");
printf("Masukkan Nilai: ");scanf("%d",&nilai);
printf("Masukkan Nilai Tugas: ");scanf("%d",&tugas);
if(nilai>70 && tugas>=75)
printf("Lulusn");
else
printf("Tidak Lulusn");
printf("_______________________________________________");
printf("n");
printf("n");
system("pause");
}
Operator Keterangan
& Address of operator
* Indirection operator
/* -------------------------------
Nama Program: ADP_Soal17.cpp
Contoh Penggunaan Operator Koma
------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
char kar1, kar2;
(kar1='A', kar2='B');
printf("Contoh Program Penggunaan Operator Koman");
printf("_______________________________________n");
printf("n");
printf("%cn",kar1);
printf("%cn",kar2);
system("pause");
}
a = a + b a +=b
a = a – b a -=b
STRUKTUR KEPUTUSAN (DECISION)
Struktur keputusan (decision) adalah struktur
program yang melakukan proses pengujian
untuk mengambil suatu keputusan apakah
suatu baris atau blok instruksi akan diproses
atau tidak. Pengujian kondisi ini dilakukan
untuk memilih salah satu dari beberapa
alternatif yang tersedia.
C++ menyediakan dua perintah pengambilan
keputusan yaitu perintah IF dan perintah
SWITCH yang disertai dengan CASE
Syarat dalam dunia pemrograman
adalah sebuah pernyataan
Boolean, yang dapat bernilai
benar (true) atau salah (false).
Biasanya sebuah syarat terdiri dari
operand-operand yang
dihubungkan dengan operator
logika. Yaitu: =, <>, >, <, >=,
<=, and dan or.
Berguna untuk memilih satu dari
dua atau lebih alternatif jawaban
yang tersedia.
Jika perintah IF tersebut terdiri
dari 2 atau lebih pernyataan,
maka pernyataan tersebut harus
berada di antara begin dan end.
Bentuk umum perintah if (tunggal sederhana)
if (kondisi)
pernyataan
Bentuk di atas mempunyai arti jika kondisi bernilai
benar maka pernyataan di bawahnya akan dikerjakan.
Bentuk perintah if tunggal blok statemen (majemuk).
if (kondisi)
{
pernyataan1
pernyataan2
dst
}
/* ----------------------------------------------------------------------
Nama Program: ADP_19
Struktur Keputusan dengan Statemen if Tunggal Sederhana
----------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int beli, diskon, total;
printf("Contoh Struktur Keputusann");
printf("dengan Statemen if Tunggal Sederhanan");
printf("____________________________________n");
printf("n");
printf("Masukkan nilai pembelian: "); scanf("%d",&beli);
if (beli>100000)
diskon=10*beli/100;
total=beli-diskon;
printf("n");
printf("Jadi pembelian adalah: %dn",beli);
printf("dengan discount: %dn",diskon);
printf("dan total pembayaran sebesar Rp. %dn",total);
system("pause");
}
/* -----------------------------
Nama Program: ADP_Soal15b.cpp
Statemen if Tunggal Sederhana
----------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int jumlah_anak;
float gaji_kotor, gaji_bersih, tunjangan, potongan,
persen_tunjangan=0.2, persen_potongan=0.05;
printf("Contoh Program Penggunaan Statemen if Tunggal Majemukn");
printf("_______________________________________________________n");
printf("n");
printf("Gaji kotor yang diperoleh = Rp. ");scanf("%f",&gaji_kotor);
printf("Jumlah anak = ");scanf("%d",&jumlah_anak);
if(jumlah_anak>2)
{
persen_tunjangan = 0.3;
persen_potongan = 0.07;
}
tunjangan = persen_tunjangan * gaji_kotor;
potongan = persen_potongan * gaji_kotor;
gaji_bersih = gaji_kotor + tunjangan - potongan;
printf("Besarnya Tunjangan = Rp. %.2fn",tunjangan);
printf("Besarnya Potongan = Rp. %.2fn",potongan);
printf("Jadi, Gaji Bersihnya = Rp. %.2fn",gaji_bersih);
system("pause");
}
/* --------------------------------------------------------------------
Nama Program: ADP_20
Contoh Struktur Keputusan dengan Statemen if Majemuk
--------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int beli, diskon, pajak, total_harga;
printf("Contoh Struktur Keputusann");
printf("dengan Statemen if Majemuk
printf("__________________________n");
printf("n");
printf("Masukkan nilai pembelian: "); scanf("%d",&beli);
if (beli>100000)
{
diskon=10*beli/100;
pajak=0.01*beli;
}
total_harga=beli-diskon;
printf("n");
printf("Jadi pembelian adalah: %dn",beli);
printf("dengan discount: %dn",diskon);
printf("dikenakan pajak: %dn",pajak);
printf("dan total pembayaran dengan diskon Rp. %dn",total_harga);
printf("dan total pembayaran dikenakan pajak sebesar Rp. %dn",total_harga+pajak);
system("pause");
}
Bentuk umum dari if .. else
if (kondisi)
pernyataan1
else
pernyataan2
Bentuk umum ini berarti jika kondisi benar
maka pernyataan1 akan dikerjakan dan jika
kondisi salah maka pernyataan2 yang akan
dikerjakan
/* ---------------------------------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan dengan if..else
---------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int nilai;
printf("Contoh Struktur Keputusan Dengan if..elsen");
printf("_________________________________________n");
printf("n");
printf("Masukkan sebuah nilai: ");scanf("%d",&nilai);
if (nilai>70)
printf("Lulusn");
else
printf("Tidak Lulusn");
printf("n");
system("pause");
}
Bentuk umum dari if .. else
if (kondisi1)
pernyataan1
else if (kondisi2)
pernyataan2
Bentuk ini disebut if..else if tangga, karena
mempunyai bentuk seperti sebuah tangga
Contoh:
Akar-akar dari suatu persamaan kuadrat
aX2 + bX2 + c = 0 tergantung dari nilai determinannya. Nilai determinan (D) dapat
dihitung dengan rumus:
D = b2 – 4ac
Jika D bernilai positif, maka akan mempunyai dua akar riel yang berbeda yaitu:
X1 = dan X2 =
Jika D bernilai 0, maka akan mempunyai dua buah akar riel kembar, yaitu
X1 = X2 =
jika D bernilai negatif, maka akan dihasilkan dua akar imajiner:
X1 = X2 = , tanda i menunjukkan bahwa
nilai tersebut
adalah nilai imajiner.
/* -------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan
dengan if..else if..else
------------------------- */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
float A, B, C, D, X1, X2;
printf("Contoh Struktur Keputusann");
printf("dengan Statemen if..else if..elsen");
printf("n");
printf("Menghitung Akar-akar Persamaan
Kuadrat");
printf("____________________________________n");
printf("n");
/* Masukkan Data Koefisien Persamaan Kuadrat
*/
printf("Masukkan nilai a: ");scanf("%f",&A);
printf("Masukkan nilai b: ");scanf(“%f",&B);
printf("Masukkan nilai c: ");scanf("%f",&C);
printf("n");
/* Menghitung Nilai Determinan */
D = B*B - 4*A*C;
/* Menyeleksi Nilai Determinan */
if(D==0){
X1 = -B / (2*A);
printf("Dua akar riel kembar: n");
printf("X1 = X2 = %.2fn",X1);
}
else if (D>0){
X1 = (-B + sqrt(D)) / (2*A);
X2 = (-B - sqrt(D)) / (2*A);
printf("Dua akar riel berlainan: n");
printf("X1 = %.2fn",X1);
printf("X2 = %.2fn",X2);
}
else if (D<0){
X1 = -B / (2*A);
X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan: n");
printf("X1 = %.2f + %.2f in",X1,X2);
printf("X2 = %.2f - %.2f in",X1,X2);
}
system("pause");
}
/* -------------------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan
dengan if..else if..else Alternatif
-------------------------------------- */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
float A, B, C, D, X1, X2;
printf("Contoh Struktur Keputusann");
printf("dengan Statemen if..else if..else
Alternatifn");
printf("n");
printf("Menghitung Akar-akar Persamaan
Kuadrat");
printf("____________________________________n");
printf("n");
/* Masukkan Data Koefisien Persamaan Kuadrat
*/
printf("Masukkan nilai a: ");scanf("%f",&A);
printf("Masukkan nilai b: ");scanf(“%f",&B);
printf("Masukkan nilai c: ");scanf("%f",&C);
printf("n");
/* Menghitung Nilai Determinan */
/* Menyeleksi Nilai Determinan */
if(D==0){
X1 = -B / (2*A);
printf("Dua akar riel kembar: n");
printf("X1 = X2 = %.2fn",X1);
}
if (D>0){
X1 = (-B + sqrt(D)) / (2*A);
X2 = (-B - sqrt(D)) / (2*A);
printf("Dua akar riel berlainan: n");
printf("X1 = %.2fn",X1);
printf("X2 = %.2fn",X2);
}
if (D<0){
X1 = -B / (2*A);
X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan: n");
printf("X1 = %.2f + %.2f in",X1,X2);
printf("X2 = %.2f - %.2f in",X1,X2);
}
system("pause");
}
Bentuk umum
if (kondisi1)
if (kondisi2)
pernyataan1;
else
pernyataan2;
else
pernyataan3;
d
/* --------------------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan if Bersarang
-------------------------------------- */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
float A, B, C, D, X1, X2;
printf("Contoh Struktur Keputusann");
printf("dengan Statemen if Bersarangn");
printf("_________________________n");
printf("n");
printf("Menghitung Akar-akar
PersamaanKuadratn");
printf("n");
/* Masukkan Data Koefisien Persamaan Kuadrat */
printf("Masukkan nilai a: ");scanf("%f",&A);
printf("Masukkan nilai b: ");scanf("%f",&B);
printf("Masukkan nilai c: ");scanf("%f",&C);
printf("n");
/* Menghitung Nilai Determinan */
D = B*B - 4*A*C;
/* Menyeleksi Nilai Determinan */
if(D>=0)
if(D==0){
X1 = -B / (2*A);
printf("Dua akar riel kembar: n");
printf("X1 = X2 = %fn",X1);
}
else{
X1 = (-B + sqrt(D)) / (2*A);
X2 = (-B - sqrt(D)) / (2*A);
printf("Dua akar riel berlainan: n");
printf("X1 = %fn",X1);
printf("X2 = %fn",X2);
}
else{
X1 = -B / (2*A);
X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan:
n");
printf("X1 = %f + %f in",X1,X2);
printf("X2 = %f - %f in",X1,X2);
}
system("pause");
}
/* ----------------------------
Nama Program: ADP_Soal21.cpp
Contoh Struktur Keputusan
dengan if..else majemuk
---------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int nilai;
char huruf;
printf("Contoh Program Struktur Keputusann");
printf("dengan if..else majemukn");
printf("_________________________________n");
Printf("Masukkan Nilai Akhir Mahasiswa: "); scanf("%d",&nilai);
if (nilai>=81 && nilai <=100)
huruf='A';
else
if (nilai>=71 && nilai <81)
huruf='B';
else
if (nilai>=61 && nilai <71)
huruf='C';
else
if (nilai>=51 && nilai <61)
huruf='D';
else
huruf='E';
printf("Jadi Nilai Akhir Mahasiswa: %d, dengan Huruf : %c",nilai, huruf);
printf("n");
system("Pause");
}
Perintah SWITCH merupakan
pernyataan yang dirancang untuk
menangani pengambilan
keputusan yang melibatkan
sejumlah pilihan alternatif yang
diantaranya untuk menggantikan
pernyataan IF bertingkat.
Bentuk umum
switch (ekspresi)
{
case konstanta1;
pernyataan1;
break;
case konstanta2;
pernyataan2;
break;
default:
pernyataanx;
}
main()
{
int kdhari;
printf("Masukkan Kode Hari [1..7]: "); scanf("%d",&kdhari);
switch (kdhari)
{
case 1:
printf("Senin");
break;
case 2:
printf("Selasa");
break;
case 3:
printf("Rabu");
break;
case 4:
printf("Kamis");
break;
case 5:
printf("Jum'at");
break;
case 6:
printf("Sabtu");
break;
case 7:
printf("Minggu");
break;
default:
printf("Kode tidak ada, hari tidak ditemukan");
}
printf("n");
printf("n");
system("pause");
}
Buatlah flowchart dan program untuk
menghitung besarnya tunjangan yang akan
diterima oleh seorang pegawai. Besar tunjangan
tergantung dari jumlah anaknya. Jika pegawai tsb
mempunyai anak kurang dari 3, maka
tunjangannya adalah sebesar 20% dari gaji
kotornya. Jika jumlahnya lebih besar atau sama
dengan 3, maka tunjangannya adalah 30% dari
gaji kotornya. Gaji juga akan dipotong untuk
keperluan asuransi, 5% untuk yang mempunyai
anak kurang dari 3 dan 7% untuk yang lebih
besar atau sama dengan 3.
Buatlah flowchart dan program dalam bentuk
menu, untuk menghitung:
a. Volume dari tabung
b. Luas dan keliling persegi panjang
c. Luas dan keliling bujur sangkar
Buatlah flowchart di sebuah kertas dan
programnya dalam bentuk file
ALGORITMA & DASAR PEMROGRAMAN
Perintah perulangan (looping)
digunakan untuk melakukan suatu
proses secara berulang-ulang, jika
suatu kondisi dipenuhi atau
sebaliknya.
Pada prakteknya proses
pengulangan biasanya digunakan
untuk beberapa hal, misalnya
mengulang proses pemasukan data,
mengulang proses perhitungan dan
Proses looping yang menggunakan
penghitung (counter) dapat dibuat
menggunakan pernyataan FOR. Pernyataan ini
digunakan bila sudah diketahui berapa kali
sebuah atau beberap pernyataan akan
dilakukan perulangan.
Bentuk umum:
for(awal;akhir;peningkatan/penurunan)
{
pernyataan;
}
Bentuk di atas berarti:
a.Awal adalah inisialisasi untuk memberi nilai awal
terhadap variabel pengendali looping (disebut juga
indeks atau loop-control variable).
b. Akhir adalah kondisi untuk keluar dari looping
atau kondisi yang harus dipenuhi supaya
perulangan masih dapat terus dilakukan.
c.Penurunan/peningkatan adalah pengatur kenaikan
atau penurunan nilai variabel pengendali looping
Misalkan untuk menampilkan tulisan “Contoh
Penggunaan Statemen For” sebanyak 5 kali, maka
sesuai dengan bentuk umum di atas penulisannya
adalah sebagai berikut:
/* ---------------------------------
Nama Program: ADP_21cpp
Statemen for
----------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int X;
printf("Contoh Program Penggunaan Statemen
forn");
printf("_______________________________n");
printf("n");
for(X=1; X<=5; X++)
printf("Contoh Penggunaan Statemen Forn");
printf("n");
system ("pause");
}
Algoritma program di atas adalah:
1. Tentukan nilai awal, batas akhir dan penambahan nilai
2. Cetak kalimat
3. Ulangi langkah 1 sampai batas akhir
Beberapa contoh perulangan dengan statemen for dan variasinya adalah:
1. Perulangan Positif,
2. Perulangan Negatif,
3. Perulangan dengan Blok Statemen,
4. Statemen For Tanpa Nilai Awal,
5. Statemen For Tanpa Peningkatan,
6. Statemen For Tanpa Nilai Awal dan Peningkatan
7. Perulangan For Tanpa Nilai Awal, Akhir, dan Peningkatan
8. Perulangan dengan Statemen Kosong
9. Variasi di Kondisi Perulangan
10. Statemen For Menggunakan Operator Koma
11.Perulangan For Bersarang
12.Statemen break untuk Menghentikan Perulangan for
/* ------------------------------------------------------------
--
Nama Program: ADP_2_for_perulangan_positif.cpp
Statemen for Perulangan Positif dengan Penambahan 1
------------------------------------------------------------
---- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I;
printf("Contoh Program Penggunaan Statemen for");
printf(" Perulangan Positif dengan Penambahan 1n");
printf(“______________________________n");
printf("nt");
for(I=-5; I<=5; I++)
printf("%dnt",I);
printf("n");
system ("pause");
/* --------------------------------------------------------------
-------------
Nama Program: ADP_2a_for_perulangan_positif.cpp
Statemen for Perulangan Positif dengan Penambahan lebih dari 1
--------------------------------------------------------------
------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I;
printf("Contoh Program Penggunaan Statemen for");
printf(" Perulangan Positif dengan Penambahan Lebih Dari 1n");
printf("______________________________________n");
printf("nt");
for(I=-5; I<=10; I+=3)
printf("%dnt",I);
printf("n");
/* ------------------------------------------------------------
-----
Nama Program: ADP_3_for_perulangan_negatif.cpp
Statemen for Perulangan Negatif dengan Pengurangan 1
------------------------------------------------------------
------ */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I;
printf("Contoh Program Penggunaan Statemen for");
printf(" Perulangan Negatif dengan Pengurangan 1n");
printf(“_______________________________n");
printf("nt");
for(I=5; I>0; I--)
printf("%dnt",I);
printf("n");
/* ------------------------------------------------------------
-----------------
Nama Program: ADP_3a_for_perulangan_negatif.cpp
Statemen for Perulangan Negatif dengan Pengurangan Lebih dari 1
------------------------------------------------------------
------------------ */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I;
printf("Contoh Program Penggunaan Statemen for");
printf(" Perulangan Negatif dengan Pengurangan Lebih dari 1n");
printf("_______________________________________n");
printf("nt");
for(I=5; I>=-5; I-=3)
printf("%dnt",I);
printf("n");
/* -------------------------------
Nama Program: ADP_25.cpp
Statemen for Perulangan Dengan
Blok Statemen
------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I,N;
float X, Rata, Total=0;
printf("Contoh Program Penggunaan Statemen
forn");
printf("untuk Perulangan Dengan Blok
Statemenn");
printf("_____________________________________n");
printf("n");
/*Masukkan Jumlah Data*/
printf("Masukkan Jumlah Data yang diinginkan: ");
scanf("%d",&N);
printf("n");
/*Memasukkan Nilai dari masing-masing Data*/
for(I=1; I<=N; I++){
printf("Data ke %d : ",I);scanf("%f",&X);
Total=Total+X;
}
Rata=Total/N;
/*Menampilkan Hasil*/
printf("Banyaknya data: %dn",N);
printf("Nilai total seluruh data:
%.2fn",Total);
printf("Rata-rata nilai:
%.2fn",Rata);
printf("n”);
system ("pause");
}
/* ----------------------------------------------------------------------
-
Nama Program: ADP_4_statemen_for_tanpa_nilai_awal.cpp
Statemen for Tanpa Nilai Awal
----------------------------------------------------------------------
- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int X;
X=1;
printf("Contoh Program Penggunaan Statemen forn");
printf("Tanpa Nilai Awaln");
printf(“_______________________________n");
printf("n");
for(; X<=5; X++)
printf("Contoh Penggunaan Statemen For Tanpa Nilai Awaln");
printf("n");
/* --------------------------------------------------------------------
-----------------
Nama Program: ADP_5_statemen_for_tanpa_peningkatan_penurunan.cpp
Statemen for Tanpa Nilai Peningkatan atau Penurunan
---------------------------------------------------------------------
------------------ */
#include <stdio.h>
#include <stdlib.h>
main()
{
int X;
printf("Contoh Program Penggunaan Statemen forn");
printf("Tanpa Nilai Peningkatan atau Penurunann");
printf(“_______________________________n");
printf("n");
for(X=1; X<=5;){
X++;
printf("Contoh Penggunaan Statemen For Tanpa Nilai Peningkatan atau
Penurunann");
}
printf("n");
/* -------------------------------------------------------
----------------------------------
Nama Program:
ADP_5a_statemen_for_tanpa_peningkatan_penurunan.cpp
Statemen for Tanpa Nilai Peningkatan atau Penurunan
-------------------------------------------------------
----------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int X;
printf("Contoh 2 Program Penggunaan Statemen forn");
printf("Tanpa Nilai Peningkatan atau Penurunann");
printf(“_________________________________n");
printf("nt");
for(X=3; X<=7;){
printf("%dnt",X++);
}
printf("n");
/* -------------------------------------------------------
-----------------------------------
Nama Program:
ADP_5b_statemen_for_tanpa_peningkatan_penurunan.cpp
Statemen for Tanpa Nilai Peningkatan atau Penurunan
-------------------------------------------------------
----------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int X;
printf("Contoh 3 Program Penggunaan Statemen forn");
printf("Tanpa Nilai Peningkatan atau Penurunann");
printf(“_________________________________n");
printf("nt");
for(X=3; X<=7;){
printf("%dnt",++X);
}
printf("n");
/* ----------------------------------------------------------------------
-------------------------
Nama Program: ADP_6_for_tanpa_nilai_awal_dan_peningkatan_penurunan.cpp
Statemen for Tanpa Nilai Awal dan Peningkatan atau Penurunan
----------------------------------------------------------------------
------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int X=1;
printf("Contoh Program Penggunaan Statemen forn");
printf("Tanpa Nilai Awal dana Peningkatan atau Penurunann");
printf(“_____________________________________n");
printf("n");
for(; X<=5;){
X++;
printf("Contoh Penggunaan Statemen For Tanpa Nilai Awal");
printf(" dan Peningkatan atau Penurunann");
}
printf("n");
/* --------------------------------------------------------------------
----------------------------------
Nama Program:
ADP_7_for_tanpa_nilai_awal_akhir_dan_peningkatan_penurunan.cpp
Statemen for Tanpa Nilai Awal, Akhir dan Peningkatan atau Penurunan
----------------------------------------------------------------------
-------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
printf("Contoh Program Penggunaan Statemen forn");
printf("Tanpa Nilai Awal, Nilai Akhir, dan Peningkatan atau Penurunann");
printf(“_____________________________________________n");
printf("n");
for(;;){
printf("Contoh Penggunaan Statemen For Tanpa Nilai Awal");
printf(" dan Peningkatan atau Penurunan yang akan ditampilkan TANPA
HENTIn");
}
/* -------------------------------------------------------------------
------------------------------------
Nama Program:
ADP_7a_for_tanpa_nilai_awal_akhir_dan_peningkatan_penurunan.cpp
Statemen for Tanpa Nilai Awal, Akhir dan Peningkatan atau Penurunan
dengan statemen break
-------------------------------------------------------------------
-------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
printf("Contoh Program Penggunaan Statemen forn");
printf("Tanpa Nilai Awal, Nilai Akhir, dan Peningkatan atau Penurunann");
printf("_____________________________________________n");
printf("n");
for(;;){
printf("Contoh Penggunaan Statemen For Tanpa Nilai Awal");
printf(" dan Peningkatan atau Penurunann");
printf(" dengan statemen breakn");
break;
}
printf("n");
/* -------------------------------------
Nama Program: ADP_25.cpp
Statemen for Tanpa Nilai Awal,
Akhir, dan Peningkatan atau Penurunan
------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
printf("Contoh Program Penggunaan Statemen forn");
printf("Tanpa Nilai Awal, Akhir, dan");
printf("Peningkatan atau Penurunann");
printf("_______________________________________n");
printf("n");
for(;;)
{
printf("Tampilan ini terus ditampilkan TANPA BERHENTIn");
printf("n");
break;
}
system ("pause");
}
/* ------------------------------------------
Nama Program: ADP_25.cpp
Statemen for dengan Perulangan menggunakan
Statemen Kosong
------------------------------------------ */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int I;
long int J;
clrscr();
printf("Contoh Variasi Program di Kondisi Perulangann");
printf("____________________________________________n");
printf("n");
for(I=1; I<=10;I++){
gotoxy(40,12);printf("/");
for(J=0;J<500000000;J++);
gotoxy(40,12);printf("");
for(J=0;J<500000000;J++);
}
system ("pause");
}
/* --------------------------------------------
Nama Program: ADP_25.cpp
Contoh Variasi Program di Kondisi Perulangan
-------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I, J, N;
printf("Contoh Variasi Program Menggunakan Operator Koman");
printf("________________________________________________n");
printf("n");
N=5;
for(I=1,J=N;I<=N;I++,J--)
printf("I = %d dan Y = %dn",I,J);
system ("pause");
}
/* -------------------------------------
Nama Program: ADP_25.cpp
Contoh Program Statemen for bersarang
------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int I, J;
printf("Contoh Program Penggunaan Statemen for
bersarangn");
printf("________________________________________________n");
printf("n");
for(I=1;I<=3;I++){
for(J=1;J<=4;J++)
printf(" (I = %d, Y = %d)",I,J);
printf("n");
Bentuk umum:
while (kondisi)
pernyataan;
atau
while (kondisi){
pernyataan1;
pernyataan2;
}
Pernyataan dapat berupa pernyataan kosong,
pernyataan tunggal atau blok pernyataan
yang akan diproses secara berulang-ulang.
Proses perulangan akan masih dilakukan jika
kondisi yang diseleksi di pernyataan while
masih bernilai benar dan perulangan akan
berhenti jika kondisinya sudah bernilai salah.
/*-----------------------------------
Program ADP_While_1.cpp
Statemen while
----------------------------------- */
#include<stdio.h>
#include<stdlib.h>
main()
{
int X;
printf("Contoh Program Penggunaan Statemen Whilen");
printf("________________________________________n");
X=7;
while(X>5)printf("%d",X++);
system("pause");
}
/* ------------------------------------
Program ADP_While_1a.cpp
Statemen while
------------------------------------ */
#include<stdio.h>
#include<stdlib.h>
main()
{
int X;
printf("Contoh 2 Program Penggunaan Statemen Whilen");
printf("________________________________________n");
printf("nt");
X=3;
while(X<=7)printf("%dnt",X+=2);
printf("n");
system("pause");
}
/* ------------------------------------
Program ADP_While_1b.cpp
Statemen while
------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
char C='0';
printf("Contoh 3 Program Penggunaan Statemen Whilen");
printf("________________________________________n");
printf("n”);
while(!(C=='N' || C== 'n')) C=getche();
system("pause");
}
Bentuk umum:
do pernyataan;
while (kondisi)
atau
while (kondisi){
pernyataan1;
pernyataan2;
}
WHILE
DO... WHILE
WHILE... CONTINUE
ALGORITMA DAN DASAR PEMROGRAMAN
Program komputer yang dibuat untuk
menjawab permasalahan umumnya
berukuran sangat besar, karena itu perlu
dibuat potongan-potongan program yang
lebih kecil (biasa disebut modul) yang lebih
mudah untuk ditangani dibanding dengan
program yang terdiri dari banyak baris.
Modul program ini disebut fungsi (function).
Pemrograman C ditulis dengan
mengkombinasikan fungsi baru yang ditulis
oleh pemrogram (disebut programmer-
defined function) dengan fungsi yang telah
tersedia di dalam pustakanya (disebut
standard library).
Fungsi merupakan blok dari kode yang
dirancang untuk melakukan tugas khusus.
Tujuan pembuatan fungsi:
1. Program menjadi lebih terstruktur dengan
memecah program menjadi beberapa
program yang lebih kecil, yang masing-
masing mempunyai tugas tertentu.
2. Mengurangi duplikasi kode atau penulisan
kode yang sama yang ditulis secara
berulang-ulang.
Supaya dapat digunakan, fungsi harus dapat
dipanggil dari bagian program yang
membutuhkannya. Karena itu fungsi harus
diberi nama dan nama ini harus didefinisikan
dan dideklarasikan terlebih dahulu.
Pemanggilan fungsi bertujuan untuk
mengerjakan suatu tugas tertentu yang dapat
berupa tugas input/output, tugas
penyeleksian, atau tugas perhitungan.
Bagian program yang menggunakan fungsi
dapat berkomunikasi dengan fungsinya lewat
pengiriman parameter-parameter yang
dilakukan melalui argumen-argumen fungsi.
Fungsi terdiri dari dua buah komponen
utama, yaitu definisi fungsi dan tubuh fungsi.
Definisi fungsi berisi tipe dari fungsi, nama
fungsi, dan argumen-argumennya jika
digunakan.
Tubuh fungsi berisi statemen-statemen yang
akan melakukan tugas yang diberikan kepada
fungsi tersebut, yang ditulis di dalam tanda
kurung kurawal buka dan tutup.
Bentuk umum fungsi, yaitu:
Definisi fungsi ditulis sebelum tubuh fungsi
tanpa diakhiri dengan titik koma.
Tipe di definisi fungsi menunjukkan tipe dari
fungsi, dimana tipe dari fungsi ini tergantung
dari tipe data hasil balik yang akan diberikan
oleh fungsi.Jika hasil balik dari fungsi
misalnya berupa nilai pecahan, maka tipe
fungsi dapat dibuat float atau double atau
long double.
Jika fungsi tidak memberikan hasil balik,
maka tipenya adalah void. Tipe dari fungsi ini
dapat tidak ditulis jika tipenya adalah int atau
char. Jadi, jika suatu fungsi didefinisikan
tanpa menggunakan tipenya, maka akan
dianggap bertipe int.
Nama dari fungsi merupakan nama yang
dibentuk sendiri oleh pembuat program.
Sebuah fungsi dapat memiliki satu atau lebih
argumen yang ditulis dengan dipisahkan oleh
koma atau suatu fungsi dapat tidak
mempunyai argumen sama sekali. Jika
argumen tidak digunakan, kurung buka dan
kurung tutup setelah nama dari fungsi tetap
harus dituliskan.
Tipe data void dapat dituliskan sebagai
pengganti argumen untuk fungsi yang tidak
menggunakan argumen.
Argumen yang berada di definisi fungsi ini
disebut dengan argumen formal atau
parameter formal. Parameter-parameter
formal ini dimaksudkan sebagai alat
komunikasi untuk data yang dikirimkan dari
bagian program yang menggunakan fungsi
ke fungsi bersangkutan.
Parameter-parameter formal dapat dituliskan
dengan dua cara, yaitu cara baru dan cara lama.
Cara baru dilakukan dengan menuliskan
parameter-parameter formal yang diawali
dengan tipe datanya. Contohnya:
int Fungsi_Ku(float A, int B, char C)
Contoh yang salah:
int Fungsi_Ku(float A, B, char C)
Cara lama untuk menuliskan parameter formal adalah
dengan memecahnya menjadi dua bagian. Pertama, semua
parameter formal ditulis tanpa tipe datanya. Kedua,
parameter-parameter formal ini dideklarasikan terpisah
dengan tipe datanya setelah definisi dari fungsi. Contoh:
int Fungsi_Ku(A, B, C)
float A;
int B;
char C;
{
/*tubuh fungsi*/
}
/*tidak diakhiri titik koma*/
/*diakhiri titik koma*/
/*diakhiri titik koma*/
/*diakhiri titik koma*/
Standar ANSI lebih menganjurkan
penggunaan cara baru.
Penulisan parameter-parameter formal
dengan cara lama digunakan pada awal
bahasa C diciptakan dan masih banyak yang
menggunakannya sampai saat ini untuk
menjaga kompatibilitas dengan kompiler C
yang menggunakan cara lama. Kompiler-
kompiler C yang baru umumnya mendukung
dua cara penulisan ini.
Berikut ini beberapa contoh penulisan
definisi fungsi yang benar:
char Ke_Besar(char C)
void Tampil_N(int N)
void Hapus_Layar()
void Hapus_Layar(void)
double Maksimum(double X, double Y)
Parameter formal adalah variabel yang ada
pada daftar parameter dalam definisi fungsi.
Parameter aktual adalah parameter yang
dapat berupa variabel atau konstanta maupun
ungkapan yang dipakai dalam pemanggilan
fungsi.
Suatu fungsi yang memberikan hasil balik
selain tipe int perlu dideklarasikan sebelum
digunakan, karena jika suatu fungsi tidak
dideklarasikan akan dianggap fungsi tersebut
memberikan nilai balik berupa tipe int.
Untuk alasan dokumentasi program yang
baik, sebaiknya semua fungsi yang digunakan
dideklarasikan terlebih dahulu termasuk yang
bertipe int.
Beberapa kompiler C dapat diatur untuk
selalu mendeteksi semua deklarasi fungsi-
fungsi yang digunakan termasuk yang bertipe
int.
Deklarasi fungsi ditulis sebelum fungsi
tersebut digunakan.
Bentuk umum deklarasi fungsi:
tipe nama-fungsi(argumen);
Tipe adalah tipe dari fungsi yang akan
digunakan dan harus sama dengan tipe
fungsi yang didefinisikan
/* ----------------------------------------------------
--------------------
Nama Program: ADP_fungsi_1_deklarasi_fungsi.cpp
Mendeklarasikan Fungsi
----------------------------------------------------
-------------------- */
#include <stdio.h>
#include <stdlib.h>
double Absolut(double X); //deklarasi fungsi
main()
{
float Nilai;
printf("Contoh Program Mendeklarasikan Fungsin");
printf("__________________________________n");
printf("n");
Nilai = -123.45;
printf("%7.2f nilai mutlaknya adalah %7.2fn", Nilai,
Absolut(Nilai));
printf("n");
system("pause");
}
//fungsi untuk memutlakkan nilai negatip
double Absolut(double X) //definisi fungsi
{
if(X<0) X=-X;
/* ----------------------------------------------------
--------------------
Nama Program: ADP_fungsi_1_deklarasi_fungsi.cpp
Mendeklarasikan Fungsi
----------------------------------------------------
-------------------- */
#include <stdio.h>
#include <stdlib.h>
//fungsi untuk memutlakkan nilai negatip
//dimana fungsi dideklarasikan terlebih dahulu
double Absolut(double X) //definisi fungsi
{
if(X<0) X=-X;
return(X);
}
main()
{
float Nilai;
printf("Contoh Program Mendeklarasikan Fungsin");
printf("__________________________________n");
printf("n");
Nilai = -123.45;
printf("%7.2f nilai mutlaknya adalah %7.2fn", Nilai,
Absolut(Nilai));
printf("n");
system("pause");
Prototype fungsi adalah mendeklarasikan
fungsi dengan menyebutkan argumen
fungsinya.
Pada contoh program
ADP_fungsi_1_deklarasi_fungsi.cpp,
prototype fungsi terdapat pada bagian
deklarasi fungsi dimana fungsi double
Absolut menyebutkan argumen fungsi
(double X).
Suatu fungsi dibuat untuk maksud
menyelesaikan tugas tertentu.
Suatu fungsi dapat hanya melakukan suatu tugas
saja tanpa memberikan suatu hasil balik atau
melakukan suatu tugas dan kemudian
memberikan suatu hasil balik.
Fungsi yang hanya melakukan suatu tugas saja
tanpa memberikan hasil balik misalnya adalah
fungsi untuk menampilkan hasil di layar.
/* ----------------------------------------------------------------------
----
Nama Program: ADP_fungsi_2_hasil_balik_fungsi.cpp
Hasil Balik Fungsi
-----------------------------------------------------------------------
---- */
#include <stdio.h>
#include <stdlib.h>
void Tampil_S_N(char *String, int N); //prototype fungsi
main()
{
printf("Contoh Program Hasil Balik Fungsin");
printf("_____________________________n");
printf("n");
Tampil_S_N("Bahasa Cn",3);
printf("n");
system("pause");
}
//fungsi menampilkan n kali nilai string
void Tampil_S_N(char *String, int N) //definisi fungsi
{
int I;
for(I=1;I<=N;I++) printf(String);
}
Fungsi Tampil_S_N() pada contoh di slide
sebelumnya tidak memberikan hasil balik. Fungsi
yang tidak memberikan hasil balik adalah fungsi
yang mempunyai tipe hasil void.
Jika suatu fungsi memberikan hasil balik,
makanilai hasil balik yang diberikan oleh fungsi
dapat dilakukan oleh statemen return yang
diikuti oleh nilai hasil baliknya yang ditulis dalam
tanda kurung. Statemen return saja tanpa diikuti
oleh nilai baliknya akan mengembalikan proses
dari fungsi kebagian program yang
memanggilnya tanpa memberikan nilai hasil
baliknya.
/* ----------------------------------------------------------------------
----
Nama Program: ADP_fungsi_2a_hasil_balik_fungsi.cpp
Hasil Balik Fungsi
-----------------------------------------------------------------------
---- */
#include <stdio.h>
#include <stdlib.h>
void Tampil_S_N(char *String, int N); //prototype fungsi
main()
{
printf("Contoh Program Hasil Balik Fungsin");
printf("_____________________________n");
printf("n");
Tampil_S_N("Bahasa Cn",3);
printf("n");
system("pause");
}
//fungsi menampilkan n kali nilai string
void Tampil_S_N(char *String, int N) //definisi fungsi
{
int I;
for(I=1;I<=N;I++) printf(String);
return;
}
Program berikut ini dimaksudkan untuk
menghitung N Faktorial (N!). Nilai N! adalah
sebesar 1 x 2 x ... x N dengan N adalah nilai
positif. Jika N bernilai negatif atau nol,maka
fungsi faktorial() akan memberikan hasil balik
nilai 0. Nilai F adalah hasil balik yang akan
diberikan oleh fungsi untuk nilai N positif.
Variabel F ini pertama kali harus diberikan nilai
awal 1. Jika nilai F mempunyai nilai awal 0, maka
hasilnya akan selalu nol, karena bilangan apapun
dikalikan dengan 0 hasilnya 0.
/* --------------------------------------------------
Nama Program: ADP_fungsi_2b_hasil_balik_fungsi.cpp
Hasil Balik Fungsi
-------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
long int Faktorial(int N); //prototype fungsi
main()
{
int N;
long int Fak;
printf("Contoh Program Hasil Balik Fungsin");
printf("_________________________________n");
printf("n");
printf("Jumlah Faktorial: ");scanf("%d",&N);
Fak = Faktorial(N);
printf("%d faktorial = %ldn",N,Fak);
printf("n");
system("pause");
}
//fungsi menghitung N faktorial
long int Faktorial(int N) //definisi fungsi
{
int I;
long int F=1;
if(N<=0)
return(0);
for(I=2;I<=N;I++) F *=I;
return(F);
}
Program di atas memberikan nilai hasil balik
dengan tipe long int. Tipe nilai hasil balik
adalah tipe dari fungsinya, sehingga fungsi
Faktorial() ini juga harus bertipe long int.
Hubungan antara bagian program yang
memanggil fungsi, parameter aktual,
parameter formal, dan hasil balik dari fungsi
dapat digambarkan seperti pada slide
berikutnya.
Hasil dari fungsi Faktorial() ini,yaitu nilai dari
F akan dtierima oleh variabel Fak di bagian
program yang memanggil fungsi.
Variabel-variabel yang digunakan untuk
operasi fungsi mempunyai ruang lingkup
tertentu, yaitu apakah hanya berlaku di blok
statemen saja, di dalam suatu fungsi saja
ataukah di semua bagian program.
Terdapat tiga macam variabel, yaitu variabel
lokal, global, atau statis.
Variabel Lokal adalah variabel yang nama dan
nilainya hanya dikenal di suatu blok statemen
tertentu saja atau di dalam suatu fungsi.
Variabel bersifat lokal jika dideklarasikan di
dalam blok bersangkutan.
Variabel lokal akan dihapus dari memori jika
proses sudah meninggalkan blok statemen
dimana variabel lokal terletak.
/* ----------------------------------------------
Nama Program: ADP_fungsi_3_variabel_fungsi.cpp
Variabel Lokal Fungsi
---------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
float Tambah(float A, float B); //prototype fungsi
main()
{
float Hasil;
printf("Contoh Program Variabel Lokal Fungsin");
printf("____________________________________n");
printf("n");
Hasil = Tambah(2,3);
printf("%fn", Hasil); //Hasil variabel lokal fungsi utama
printf("n");
system("pause");
}
//fungsi menampilkan menghitung penambahan
float Tambah(float A, float B) //definisi fungsi
{
float C; //C variabel lokal fungsi Tambah
C = A + B;
return(C);
}
Variabel C pada contoh program di atas
merupakan variabel lokal di fungsi Tambah().
Variabel C ini tidak dikenal di fungsi main()
(fungsi utama), sehingga variabel ini tidak
dapat digunakan di fungsi utama. Sebaliknya
variabel Hasil merupakan variabel yang
sifatnya lokal di fungsi utama dan tidak
dikenal di fungsi Tambah().
Varibel Global adalah variabel yang dikenal di
semua bagian-bagian tertentu dari program.
Variabel-variabel global dapat dibuat dengan
cara mendeklarasikan di luar suatu blok
statemen atau di luar fungsi-fungsi yang
menggunakannya.
/* ----------------------------------------------
Nama Program: ADP_fungsi_3_variabel_fungsi.cpp
Variabel Global Fungsi
---------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
float Tambah(float A, float B); //prototype fungsi
float C; //C variabel global
main()
{
printf("Contoh Program Variabel Global Fungsin");
printf("_____________________________________n");
printf("n");
Tambah(2,3);
printf("%fn",C);
printf("n");
system("pause");
}
//fungsi menghitung penambahan
float Tambah(float A, float B) //definisi fungsi
{
C = A + B;
return(C);
}
Variabel C dideklarasikan di luar fungsi utama
dan fungsi Tambah(),sehingga bersifat global
(dikenal dan dianggap sama) di kedua fungsi
tersebut. Karena bersifat global, maka
perubahan nilai variabel C di salah satu
fungsi tersebut berarti juga merubah nilai
variabel C di fungsi yang lainnya.
Variabel statik bersifat tetap, yaitu tidak dihapus
variabel dan nilainya selama proses program.
Berbeda dengan variabel lokal, yaitu variabelnya
akan dihapus setelah proses keluar dari blok
yang mendeklarasikannya, maka variabel statik
akan tetap ada dan nilainya akan tetap
dipertahankan walaupun proses telah keluar dari
bloknya.
Variabel statik dibuat dengan dideklarasikan
menggunakan pengubah dari (modifier) static.
/* ----------------------------------------------
Nama Program: ADP_fungsi_5_variabel_fungsi.cpp
Variabel Statik Fungsi
---------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
long int X(long int N); //prototype fungsi
main()
{
int I, N;
long int Fak;
printf("Contoh Program Variabel Statik Fungsin");
printf("________________________________n");
printf("n");
printf("Berapa Jumlah Faktorial: ");scanf("%d",&N);
printf("n");
//menghitung N faktorial
if(N<=0) Fak=0;
else
for(I=1;I<=N;I++) Fak=X(I);
printf("%d faktorial = %ldn", N, Fak);
system("pause");
}
//fungsi X
long int X(long int I) //definisi fungsi
{
static long int F=I;
F = F * I;
return(F);
}
Pengiriman paramater ke suatu fungsi dapat
dilakukan dengan dua cara, yaitu pengiriman
secara nilai (by value) atau secara acuan (by
reference).
Pengiriman secara nilai yang dikirimkan
adalah nilai, sedangkan pengiriman secara
acuan yang dikirimkan adalah alamat dari
nilainya.
Pengiriman parameter secara nilai mempunyai karakteristik:
1. Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan
alamat memori letak dari datanya.
2. Fungsi yang menerima kiriman nilai ini akan menyimpannya di
alamat yang terpisah dari nilai aslinya yang digunakan oleh
bagian program yang memanggil fungsi.
3. Karena alasan nomor 2 di atas, maka perubahan nilai di fungsi
tidak akan merubah nilai asli di bagian program yang memanggil
fungsi walaupun keduanya menggunakan nama variabel yang
sama.
4. Pengirimannya searah, artinya dari bagian program yang
memanggil fungsi ke fungsi yang dipanggil.
5. Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan,
tidak hanya untuk sebuah variabel atau elemen larik atau
konstanta saja.
/* ------------------------------------------------------
----------------------------------
Nama Program:
ADP_fungsi_6_pengiriman_parameter_byvalue.cpp
Pengiriman Parameter Secara Nilai (by value)
------------------------------------------------------
---------------------------------- */
#include <stdio.h>
#include <stdlib.h>
void Secara_Nilai(float A, float B, char C); //prototype fungsi
main()
{
char C = 'a';
float A = 25, *Alamat_A;
Alamat_A = &A;
printf("Contoh Program Pengiriman Parameter Secara Nilain");
printf("__________________________________________n");
printf("n");
Secara_Nilai(A, A/3, C);
printf("Di fungsi utama setelah memanggil fungsi Secara_Nilai:
n");
printf("Nilai A adalah %f di alamat %pn", A, Alamat_A);
printf("Nilai A/3 adalah %fn", A/3);
printf("Nilai karakter C adalah %cn", C);
printf("n");
system("pause");
}
//fungsi Secara_Nilai
void Secara_Nilai(float A, float B, char C) //definisi fun
{
float *Alamat_A;
Alamat_A = &A;
A = 7;
printf("Di fungsi Secara_Nilai: n");
printf("Nilai A adalah %f di alamat %pn", A, Alamat
printf("Nilai B adalah %fn", B);
printf("Nilai karakter C adalah %cnn", C);
}
Dari hasil program contoh di atas dapat dijelaskan sebagai berikut:
1. Parameter-parameter aktual yang dikirimkan adalah nilai datanya,
yaitu untuk variabel A, A/3 dan C sebagai berikut:
Secara_Nilai(A, A/3, C);
2. Variabel-variabel A dan C menempati memori berbeda untuk fungsi
utama yang memanggil fungsi dan yang digunakan di fungsi
Secara_Nilai(). Untuk fungsi utama, nilai variabel A disimpan di alamat
0012FF50, sedang di fungsi Secara_Nilai(), nilai variabel A disimpan di
alamat memori 0012FF38.
3. Perubahan nilai variabel A di fungsi Secara_Nilai() menjadi bernilai 7
tidak merubah nilai variabel A di fungsi utama yang akan tetap
bernilai 25.
4. Pengiriman suatu nilai merupakan pengiriman satu arah seperti
terlihat berikut ini
5. Pengiriman secara nilai dapat mengirimkan suatu ungkapan, yaitu A/3
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma
1   ADP Algoritma

More Related Content

What's hot

Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemogramanankg44
 
Algoritma 1 pertemuan 1
Algoritma 1 pertemuan 1Algoritma 1 pertemuan 1
Algoritma 1 pertemuan 1
adekurnia solihin
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compilerModul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Beny Abd
 
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Unm tki1-kb3-ppt1-alur logika pemrograman komputer Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Hairil Rahman
 
Pertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasarPertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasarDisma Ariyanti W
 
Bahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrogramanBahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrograman
Andri Yanto
 
Materi 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMateri 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMelva Amma Kalian
 
Bab 2 Definisi Algoritma
Bab 2 Definisi AlgoritmaBab 2 Definisi Algoritma
Bab 2 Definisi Algoritmapakdemamo
 
flowchart
flowchartflowchart
flowchart
Aser Willi
 
Pengenalan Algoritma Komputer
Pengenalan Algoritma KomputerPengenalan Algoritma Komputer
Pengenalan Algoritma Komputer
Salman's Education Center
 
Definisi Algoritma
Definisi AlgoritmaDefinisi Algoritma
Definisi Algoritma
Barmed Studio
 
Modul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman IIModul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman II
syahril17
 
Pertemuan_2
Pertemuan_2Pertemuan_2
Pertemuan_2
kartiria sonata
 
Materi Pemrograman Dasar SMK
Materi Pemrograman Dasar SMKMateri Pemrograman Dasar SMK
Materi Pemrograman Dasar SMK
Martin Arale
 

What's hot (18)

Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
 
Algoritma 1 pertemuan 1
Algoritma 1 pertemuan 1Algoritma 1 pertemuan 1
Algoritma 1 pertemuan 1
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compilerModul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
 
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Unm tki1-kb3-ppt1-alur logika pemrograman komputer Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
 
Pertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasarPertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasar
 
Bahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrogramanBahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrograman
 
Materi 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMateri 1. algoritma pemrograman
Materi 1. algoritma pemrograman
 
Bab 2 Definisi Algoritma
Bab 2 Definisi AlgoritmaBab 2 Definisi Algoritma
Bab 2 Definisi Algoritma
 
flowchart
flowchartflowchart
flowchart
 
Pengenalan Algoritma Komputer
Pengenalan Algoritma KomputerPengenalan Algoritma Komputer
Pengenalan Algoritma Komputer
 
Definisi Algoritma
Definisi AlgoritmaDefinisi Algoritma
Definisi Algoritma
 
Modul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman IIModul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman II
 
Pertemuan1 ok
Pertemuan1 okPertemuan1 ok
Pertemuan1 ok
 
Bab 1
Bab 1 Bab 1
Bab 1
 
Pertemuan_2
Pertemuan_2Pertemuan_2
Pertemuan_2
 
Materi Pemrograman Dasar SMK
Materi Pemrograman Dasar SMKMateri Pemrograman Dasar SMK
Materi Pemrograman Dasar SMK
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
 

Similar to 1 ADP Algoritma

1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma
Hardini_HD
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
Avenzz Venzz
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritmaFisma Ananda
 
Algoritma pemrograman terstruktur
Algoritma pemrograman terstrukturAlgoritma pemrograman terstruktur
Algoritma pemrograman terstruktur
Raden Maulana
 
Module algoritma
Module algoritma Module algoritma
Module algoritma
Rony BolaNk
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
Syaiful Ahdan
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrogramanMastur Cell
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchart
Syaiful Ahdan
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
Yusup Palsu
 
Sekilas tentang c
Sekilas tentang cSekilas tentang c
Sekilas tentang c
Dyes Wirok
 
01 komponen dasar komputer (1)
01 komponen dasar komputer (1)01 komponen dasar komputer (1)
01 komponen dasar komputer (1)
adi yusuf
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortran
radikaljakas
 
Bab i
Bab iBab i
Bab i
Bab iBab i
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchart
Maryanto Sumringah SMA 9 Tebo
 
Bab II
Bab IIBab II
Bab II
rozita izan
 

Similar to 1 ADP Algoritma (20)

1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
Algoritma pemrograman terstruktur
Algoritma pemrograman terstrukturAlgoritma pemrograman terstruktur
Algoritma pemrograman terstruktur
 
Module algoritma
Module algoritma Module algoritma
Module algoritma
 
Tahap pemrograman
Tahap pemrogramanTahap pemrograman
Tahap pemrograman
 
Tahap pemrograman
Tahap pemrogramanTahap pemrograman
Tahap pemrograman
 
Tahap pemrograman
Tahap pemrogramanTahap pemrograman
Tahap pemrograman
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
 
Algoritam1
Algoritam1Algoritam1
Algoritam1
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchart
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
 
Sekilas tentang c
Sekilas tentang cSekilas tentang c
Sekilas tentang c
 
01 komponen dasar komputer (1)
01 komponen dasar komputer (1)01 komponen dasar komputer (1)
01 komponen dasar komputer (1)
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortran
 
Bab i
Bab iBab i
Bab i
 
Bab i
Bab iBab i
Bab i
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchart
 
Bab II
Bab IIBab II
Bab II
 

More from Avenzz Venzz

Mtk
MtkMtk
Pancasila
PancasilaPancasila
Pancasila
Avenzz Venzz
 
Modul praktikum Pascal
Modul praktikum PascalModul praktikum Pascal
Modul praktikum Pascal
Avenzz Venzz
 
Modul praktikum bahasa pemrograman pascal to mahasiswa ab
Modul praktikum bahasa pemrograman pascal to mahasiswa abModul praktikum bahasa pemrograman pascal to mahasiswa ab
Modul praktikum bahasa pemrograman pascal to mahasiswa ab
Avenzz Venzz
 
7 pointer
7   pointer7   pointer
7 pointer
Avenzz Venzz
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)Avenzz Venzz
 
6 adp array (larik) - copy
6   adp array (larik) - copy6   adp array (larik) - copy
6 adp array (larik) - copyAvenzz Venzz
 
5 adp fungsi & rekursi
5   adp fungsi & rekursi5   adp fungsi & rekursi
5 adp fungsi & rekursi
Avenzz Venzz
 
4 adp struktur perulangan
4   adp struktur perulangan4   adp struktur perulangan
4 adp struktur perulangan
Avenzz Venzz
 
3 adp struktur keputusan
3   adp struktur keputusan3   adp struktur keputusan
3 adp struktur keputusan
Avenzz Venzz
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operatorAvenzz Venzz
 
Algoritma 2 adp tipe data dan operator
Algoritma 2   adp tipe data dan operatorAlgoritma 2   adp tipe data dan operator
Algoritma 2 adp tipe data dan operator
Avenzz Venzz
 

More from Avenzz Venzz (13)

Mtk
MtkMtk
Mtk
 
Pancasila
PancasilaPancasila
Pancasila
 
Modul praktikum Pascal
Modul praktikum PascalModul praktikum Pascal
Modul praktikum Pascal
 
Modul praktikum bahasa pemrograman pascal to mahasiswa ab
Modul praktikum bahasa pemrograman pascal to mahasiswa abModul praktikum bahasa pemrograman pascal to mahasiswa ab
Modul praktikum bahasa pemrograman pascal to mahasiswa ab
 
8 struktur
8   struktur8   struktur
8 struktur
 
7 pointer
7   pointer7   pointer
7 pointer
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6 adp array (larik) - copy
6   adp array (larik) - copy6   adp array (larik) - copy
6 adp array (larik) - copy
 
5 adp fungsi & rekursi
5   adp fungsi & rekursi5   adp fungsi & rekursi
5 adp fungsi & rekursi
 
4 adp struktur perulangan
4   adp struktur perulangan4   adp struktur perulangan
4 adp struktur perulangan
 
3 adp struktur keputusan
3   adp struktur keputusan3   adp struktur keputusan
3 adp struktur keputusan
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
 
Algoritma 2 adp tipe data dan operator
Algoritma 2   adp tipe data dan operatorAlgoritma 2   adp tipe data dan operator
Algoritma 2 adp tipe data dan operator
 

Recently uploaded

RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
asyi1
 
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptxSEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
bobobodo693
 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
UditGheozi2
 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
MuhammadBagusAprilia1
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
EkoPutuKromo
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
gloriosaesy
 
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-OndelSebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
ferrydmn1999
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
setiatinambunan
 
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik DosenUNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
AdrianAgoes9
 
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
smp4prg
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
SEMUELSAMBOKARAENG
 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
muhammadRifai732845
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
Nur afiyah
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
lindaagina84
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
DEVI390643
 
Karier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptx
Karier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptxKarier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptx
Karier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptx
adolfnuhujanan101
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
 
Laporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdfLaporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdf
gloriosaesy
 
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 BandungBahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Galang Adi Kuncoro
 
PPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdfPPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdf
safitriana935
 

Recently uploaded (20)

RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
 
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptxSEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
 
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-OndelSebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
 
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik DosenUNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
 
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
 
Karier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptx
Karier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptxKarier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptx
Karier-Dan-Studi-Lanjut-Di-Bidang-Informatika.pptx
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
 
Laporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdfLaporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdf
 
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 BandungBahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
 
PPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdfPPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdf
 

1 ADP Algoritma

  • 2. Pada dasarnya komputer adalah mesin yang tidak dapat melakukan apa-apa, sehingga diperlukan serangkaian instruksi yang diberikan kepada komputer untuk dapat bekerja dan memecahkan suatu masalah. Langkah-langkah yang dilakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah disebut juga Pemrograman Komputer.
  • 3. Program adalah kumpulan instruksi yang digunakan untuk mengatur komputer agar melakukan suatu tindakan tertentu. Definisi lain Program yaitu kata, ekspresi, pernyataan atau kombinasinya / kumpulan statement-statement yang dirangkai dan disusun menjadi satu kesatuan prosedur yang berupa urutan langkah-langkah logis penyelesaian masalah yang diimplementasi kan dengan penggunaan bahasa pemrograman sehingga dapat dieksekusi oleh komputer dan dilihat hasil akhirnya.
  • 4. Pada dasarnya komputer mencakup 3 aspek penting, berupa Perangkat Keras (hardware), Perangkat Lunak (software) berupa program, serta Perangkat Akal (brainware) atau orang yang berperan dalam operasi komputer maupun pengembangan Perangkat Lunak.
  • 5. Dalam Pemrograman Komputer, untuk memberikan suatu instruksi harus digunakan bahasa yang dimengerti oleh komputer tersebut, yang disebut juga Bahasa Komputer. Dengan bahasa ini, komputer akan mampu memahami dan mengerti perintah-perintah yang diberikan. Bahasa Komputer biasa juga disebut dengan Bahasa Pemrograman Komputer, yaitu suatu prosedur atau tata cara penulisan program, yang dalam hal ini adalah kata, ekspresi, pernyataan atau kombinasi semuanya yang disusun dan dirangkai berupa urutan langkah-langkah penyelesaian masalah.
  • 6. Bahasa Pemrograman Komputer secara garis besar dapat dikelompokkan menjadi 2: 1. Bahasa Beraras Rendah (Low Level Language) 2. Bahasa Beraras Tinggi (High Level Language)
  • 7. Komputer adalah mesin digital yang hanya dapat mengenal kondisi ada arus listrik (biasa dilambangkan dengan 1) atau tidak ada arus listrik (biasa dilambangkan dengan 0) Dengan kata lain, harus digunakan sandi 0 atau 1 untuk melakukan pemrograman komputer. Bahasa Pemrograman yang menggunakan sandi 1 atau 0 ini disebut dengan Bahasa Mesin.
  • 8. Bahasa Mesin sangat susah untuk dimengerti, maka kemudian muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah dipahami oleh manusia. Singkatan kata ini kemudian disebut Mnemonic Code. Bahasa Pemrograman yang menggunakan singkatan kata (Mnemonic Code) ini disebut dengan Bahasa Assembly.
  • 9. Contohnya, dalam prosesor Intel terdapat perintah 0011 1010 0000 1011. Perintah ini sama artinya dengan perintah assembly CMP AL, 0D, yang artinya bandingkan nilai register AL dengan 0D. CMP adalah singkatan dari CoMPare. Perangkat lunak yang mengkonversikan perintah-perintah assembly ke dalam bahasa mesin sering disebut juga assembler. Bahasa Mesin dan Bahasa Assembly termasuk ke dalam Bahasa Beraras Rendah (Low Level Language).
  • 10. Pemrograman dengan bahasa assembly dirasakan masih terlalu sulit, sehingga kemudian dikembangkan bahasa pemrograman yang lebih mudah digunakan karena menggunakan kata-kata yang mudah dikenali oleh manusia. Bahasa Pemrograman seperti ini disebut Bahasa Generasi Ketiga atau 3GL (Third Generation Language).
  • 11. Bahasa Generasi Ketiga biasa juga disebut dengan bahasa tingkat tinggi atau HLL (high level language). Contoh Bahasa Generasi Ketiga yaitu Basic, Pascal, C, C++, COBOL dan lain-lain.
  • 12. Contoh perintah dalam bahas Pascal: writeln (‘Algoritma’); Contoh perintah dalam Bahasa C: printf (“Algoritmanr”); Contoh perintah dalam Bahasa C++: cout << “Algoritma”<< endl;
  • 13. Perangkat Lunak yang menerjemahkan program dalam bahasa yang dimengerti manusia ke dalam Bahasa Assembly atau Mesin ada dua macam, yaitu: 1. Interpreter menerjemahkan program baris per baris, jika suatu baris akan dieksekusi, maka baris tersebut diterjemahkan dulu ke Bahasa Mesin. Contoh: Basic 2. Kompiler menerjemahkan semua baris perintah ke dalam bahasa mesin kemudian menjalankan hasil penerjemahannya. Contoh: Pascal, C, dan C++
  • 14. Pada Bahasa Pemrograman Komputer ada beberapa faktor yang harus diperhatikan: 1. Sintaksis, yaitu tata bahasa yang digunakan dalam program atau aturan-aturan yang mengatur tata cara penulisan kata, ekspresi, dan pernyataan. 2. Semantik adalah maksud yang dikandung dalam setiap pernyataan yang ada dalam program atau aturan-aturan untuk menyatakan suatu arti. 3. Kebenaran Logika berhubungan dengan benar tidaknya urutan pernyataan yang ada dalam program
  • 15. Kesalahan sintaksis akan langsung kelihatan, karena komputer akan menampilkan pesan kesalahan Kesalahan semantik biasanya terjadi karena kekurang pahaman terhadap setiap pernyataan yang dituliskan pada program, sehingga walaupun program bisa berjalan tetapi tidak seperti yang diharapkan. Kesalahan logika merupakan kesalahan dalam mengimplementasikan masalah yang dihadapi, sehingga program yang ditulis tidak benar secara logika.
  • 16. 1. Mendefinisikan masalah. Tujuannya untuk memahami permasalahan secara mendalam berkaitan dengan input, perintah yang digunakan dan bagaimana bentuk ouputnya.
  • 17. 2. Menentukan solusi. Jika masalahnya terlalu besar, dapat dibagi menjadi beberapa modul yang dapat memudahkan penyelesaian masalah Contoh: Program untuk menghitung luas dan keliling persegi panjang inputnya adalah panjang dan lebar, prosesnya dengan rumus luas = panjang * lebar dan keliling = 2* (panjang+lebar), serta output yang diharapkan adalah luas dan keliling.
  • 18. 3. Memilih Algoritma. Algoritma dibuat dengan tujuan untuk menyelesaikan masalah. Algoritma tidak bisa sekali jadi, tetapi akan dikaji berulang-ulang sampai diperoleh algoritma yang tepat, benar, dan relevan. Contoh menghitung luas dan keliling persegi panjang dibuat algoritma yaitu: a. Tentukan variabel dan tipe data yang digunakan. b. Masukkan input yaitu panjang dan lebar. c. Lakukan proses pencarian luas = panjang * lebar, dan keliling = 2*(panjang+lebar) d. Tampilkan luas dan keliling persegi panjang
  • 19. 4. Menulis Program menggunakan suatu bahasa pemrograman ke dalam komputer untuk memecahkan masalah yang ada. Di slide selanjutnya akan diperlihatkan contoh Program Menghitung Luas dan Keliling Persegi Panjang yang ditulis menggunakan Bahasa C.
  • 20. /*----------------------------------------------------------------------------------------------- Program ADP_1_langkah_pemrograman.cpp Contoh Menulis Program Menghitung Luas dan Keliling Persegi Panjang ----------------------------------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int panjang, lebar, luas, keliling; printf("Contoh Menulis Program"); printf(" sebagai Langkah-langkah Pemrograman Komputern"); printf("______________________"); printf("_________________________________________n"); printf("n"); printf("Masukkan panjang: ");scanf("%d",&panjang); printf("Masukkan lebar: ");scanf("%d",&lebar); printf("n"); luas = panjang * lebar; keliling = 2 * (panjang+lebar); printf("Jadi Luas Persegi Panjang adalah: %dn",luas); printf("Jadi Keliling Persegi Panjang adalah: %dn",keliling); printf("n"); system("Pause"); }
  • 22. 5. Melakukan testing dan debugging. Testing merupakan proses menjalankan program secara rutin untuk menemukan kesalahan- kesalahan dalam penulisan suatu pernyataan dalam program. Sedangkan debugging adalah proses menemukan kesalahan- kesalahan dalam program dan kesalahan yang ditemukan diperbaiki sampai tidak muncul kesalahan lagi
  • 23. 6. Menuliskan Dokumentasi. Dokumentasi yaitu catatan dari setiap langkah pekerjaan dalam pembuatan program, yang dilakukan dari awal sampai akhir. Dokumentasi sangat penting untuk melakukan penelusuran jika terjadi kesalahan dan penting untuk pengembangan program. Dokumentasi juga akan memberikan informasi yang cukup memadai sehingga orang lain akan dapat mengerti dan memahami alur logika program,
  • 24. Dokumentasi biasanya berupa komentar- komentar pada tiap baris program. Hal yang perlu diperhatikan: 1.komentar jangan terlalu panjang 2.komentar harus jelas maksudnya 3.komentar diletakkan pada tempat yang tepat 4.keterangan yang harus ditulis harus logis 5.tidak menimbulkan salah pengertian
  • 25. // ----------------------------------------------------------------------- // Program ADP_2_menulis_dokumentasi_program.cpp // Contoh Menulis Dokumentasi Program // ----------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> main() { //deklarasi variabel yang digunakan int jari; float luas, keliling; //keterangan program printf("Contoh Menulis Dokumentasi Programn"); printf("________________________________n"); printf("n"); //input variabel yang digunakan yaitu jari printf("Masukkan jari-jari: "); scanf("%d",&jari); printf("n"); //proses menghitung luas dan keliling lingkaran luas = 3.141593 * jari * jari; keliling = 2 * 3.141593 * jari; //ouput luas dan keliling lingkaran printf("Jadi luasnya adalah: %.2fn",luas); printf("Jadi keliling adalah: %.2fn",keliling); printf("n"); system("Pause"); }
  • 27. Untuk komentar dalam bahasa C++ menggunakan tanda /* dan diakhiri dengan */, atau dengan tanda // di awal setiap pernyataan
  • 28. 7. Melakukan Perawatan. Hal ini perlu dilakukan karena kemungkinan munculnya kesalahan di luar dugaan atau biasanya pengguna meminta fasilitas yang baru dalam program.
  • 29. Dalam mengimplementasi urutan langkah penyelesaian masalah harus menggunakan bentuk dan rancang bangun yang mudah dipahami, tidak berbelit-belit, sederhana dan dapat dikembangkan siapa saja. Konsep ini dinamakan Pemrograman Terstruktur, dengan ciri-ciri berikut ini: 1. Mempunyai teknik pemecahan permasalahan yang tepat dan benar. 2. Memiliki algoritma pemecahan masalah yang sederhana dan efisien. 3. Teknik penulisan program memiliki struktur logika yang benar dan mudah dipahami. 4. Membutuhkan biaya testing yang rendah. 5. Memiliki dokumentasi yang baik.
  • 30. Clarity, Simplicity dan Unity Bahasa pemrograman harus dapat menolong programmer untuk membuat suatu desain program jauh sebelum programmer melakukan coding. Kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi yang membantu programmer mengembangkan suatu algoritma sehingga algoritma yang dihasilkan mempunyai kompleksitas yang rendah.
  • 31. Orthogonality Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan
  • 32. Kewajaran untuk aplikasi Bahasa pemrograman membutuhkan syntax yang tepat/cocok yang digunakan pada struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
  • 33. Mendukung Abstraksi Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat suatu solusi dari masalah yang dihadapi. Kemudian abstraksi tersebut dapat dengan mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.
  • 34. Kemudahan untuk Verifikasi Program Verifikasi program merupakan hal penting bagi sebuah program karena dengan verifikasi yang mudah maka suatu program akan dengan mudah dibangun dan dikembangkan.
  • 35. Lingkungan Pemrograman Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap akan memudahkan programmer untuk mengimplementasikan abstraksi yang sudah disusunnya.
  • 36. Portabilitas Program Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk membuat dan mengembangkan ke komputer lain yang akan menggunakannya.
  • 37. Pemrogram atau Programmer adalah orang yang menyusun atau membuat suatu program. Ciri-ciri Pemerogram yang baik: 1. Mampu menyusun algoritma dengan baik 2. Menguasai bahasa dan teknik penulisan program dengan baik 3. Dapat bekerjasama dalam suatu tim 4. Dapat bekerja secara efisien dan tepat waktu
  • 38. Kata Algoritma diambil dari nama ilmuwan muslim yaitu Abu Ja’far Muhammad bin Musa Al-Khwarizmi (780 – 846 M) yang berasal dari Uzbekistan, yang banyak menghasilkan karya dalam bidang matematika, disamping karya-karya dalam bidang lainnya seperti geografi dan musik. Al-Khwarizmi menyatakan bahwa algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan
  • 39. Beberapa definisi Algoritma: 1. Menurut Rinaldi Munir (2002), algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis 2. Menurut Kamus Besar Bahasa Indonesia (1998), algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah. 3. Menurut Team Gunadarma (1988), algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi itu tersebut dapat dilaksanakan secara mekanik.
  • 40. Contoh 1: algoritma dalam kehidupan sehari- hari (menulis surat): 1. Mempersiapkan kertas dan amplop. 2. Mempersiapkan alat tulis, seperti pena atau pensil 3. Mulai menulis 4. Memasukkan kertas ke dalam amplop 5. Pergi ke kantor pos untuk mengeposkan surat.
  • 41. Contoh 2: algoritma untuk menghitung luas lingkaran. (Rumus luas lingkaran, L = πR2): 1. Masukkan R. 2. Pi 3.14 3. L Pi * R * R 4. Tulis L Tanda pada baris kedua dan ketiga berarti nilai di sebelah kanan diberikan pada operan di sebelah kiri.
  • 42. Masalah Algoritma Terjemahkan ke Dalam Bahasa Pemrograman Hasil/Solusi Proses dari masalah hingga menjadi suatu algoritma disebut “Tahap Pemecahan Masalah” Sedangkan dari Algoritma hingga menjadi Solusi/Hasil disebut tahap Tahap Implementasi. Hasil/Solusi yang dimaksud adalah suatu program yang merupakan implementasi dari algoritma yang disusun.
  • 43. 1. Uraian Deskriptif, yaitu menggunakan bahasa sehari-hari. 2. Pseudocode, yaitu kode yang mirip dengan kode pemrograman sebenarnya seperti Pascal atau C. 3. Flowchart (Diagram Alir), yaitu gambar atau diagram yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambar ini dinyatakan secara simbol, dan tiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung.
  • 44. Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. Merupakan salah satu cara penyajian dari suatu algoritma.
  • 45. Ada 2 macam Flowchart : – System Flowchart, yaitu urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. – Program Flowchart, yaitu urutan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program.
  • 46. Simbol – simbol yang digunakan dalam flowchart, yaitu - Flow Direction Symbols (Simbol penghubung alur) - Processing Symbols (Simbol proses). - Input-output Symbols (Simbol input-output)
  • 47. Simbol – simbol flowchart
  • 48. Simbol – simbol flowchart
  • 49. Pembuatan flowchart - Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. - Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. - Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. - Masing – masing simbol sebaiknya menggunakan suatu kata yang mewakili suatu pekerjaan - Jika flowchart terpotong yang dikarenakan keterbatasan tempat maka gunakan simbol penghubung yang tepat.
  • 50. Dalam pemrograman, algoritma digunakan untuk tiga struktur dasar, yaitu: 1. Struktur Urut (sequence structure), 2. Struktur Keputusan (decision structure), 3. Struktur perulangan (looping structure).
  • 51. 1. Struktur Urut (sequence structure), terdiri dari pernyataan atau beberapa pernyataan yang tidak mempunyai perulangan atau keputusan di dalamnya. Contoh: algoritma untuk menghitung luas dan volume suatu balok. Rumus Luas Balok, L = (2*p*l) + (2*p*t) + (2*l*t) Rumus Volume Balok, V = p*l*t
  • 52. Algoritma dari permasalahan di atas adalah: 1. Masukkan panjang 2. Masukkan lebar 3. Masukkan tinggi 4. Luas = (2*p*l)+(2*p*t)+(2*l*t) 5. Volume = p*l*t 6. Tampilkan Luas 7. Tampilkan Volume
  • 53. Keterangan dari algoritma di atas: Pada baris pertama, kedua & ketiga diminta untuk memasukkan input yang berkaitan dengan balok yaitu panjang, lebar dan tinggi. Panjang balok disimpan pada variabel panjang, lebar balok disimpan pada variabel lebar dan tinggi balok disimpan pada variabel tinggi. Pada baris keempat dan kelima, diminta memasukkan rumus untuk mencari luas dan volume balok, yaitu Luas = (2*panjang*lebar) + (2*panjang*tinggi) + (2*lebar*tinggi), dan Volume = panjang*lebar*tinggi. Luas balok disimpan pada variabel luas dan Volume balok disimpan pada variabel volume. Baris keenam dan ketujuh merupakan hasil dari proses input dan proses perhitungan dari variabel input yang dimasukkan dan nantinya akan ditampilkan Luas dan Volume balok.
  • 54. Flowchart dari algoritma Struktur Urut di atas adalah:
  • 55. Contoh memecahkan masalah dalam algoritma Struktur Urut. Program untuk menghitung luas dan volume suatu balok. /* ---------------------------------------------------------------------- Program ADP_3_struktur_dasar_algoritma_urut.cpp Contoh Struktur Dasar Algoritma ---------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int panjang, lebar, tinggi, luas, volume; printf("Contoh Struktur Dasar Algoritma Urutn"); printf("Menghitung Luas & Volume Balokn"); printf(“______________________________n"); printf("n"); printf("Masukkan panjang: "); scanf("%d",&panjang); printf("Masukkan lebar: "); scanf("%d",&lebar); printf("Masukkan tinggi: "); scanf("%d",&tinggi); luas=(2*panjang*lebar)+(2*panjang*tinggi)+(2*lebar*tinggi); volume=panjang*lebar*tinggi; printf("Jadi Luasnya adalah: %dn",luas); printf("Jadi Volumenya adalah: %dn",volume); system("Pause"); }
  • 57. 2. Struktur Keputusan (decision structure), digunakan untuk memilih salah satu alternatif jawaban yang tepat dari pilihan yang ada. C++ menyediakan dua perintah pengambilan keputusan yaitu perintah IF dan SWITCH.
  • 58. Contoh: algoritma untuk menghitung total pembayaran dari pembelian seorang pelanggan toko, dengan ketentuan apabila pembelian pelanggan tersebut sama dengan atau melebihi 100000, maka pelanggan tersebut mendapat discount 10%, jika tidak pelanggan tersebut hanya mendapat discount 5%.
  • 59. Algoritma dari permasalahan tersebut adalah: 1. Masukkan pembelian 2. Jika pembelian >= 100000, discount =10% * pembelian 3. Total pembayaran = pembelian – discount 4. Jika pembelian < 100000, discount = 5% * pembelian 5. Total pembayaran = pembelian – discount 6. Tampilkan pembelian 7. Tampilkan discount 8. Tampilkan total pembayaran
  • 60. Keterangan dari algoritma di atas: Pada baris pertama, diminta untuk memasukkan input yang berkaitan dengan permasalahan di atas yaitu pembelian. Pembelian tersebut disimpan pada variabel beli. Pada baris kedua, akan dilakukan pengujian dan pengecekan pembelian yang dimasukkan yaitu apabila pembelian pelanggan tersebut sama dengan atau melebihi 100000 atau tidak. Jika jawabannya ya, maka pelanggan tersebut mendapat discount 10%, dan total pembayarannya = pembelian-dicount. Discount disimpan dalam variabel disc dan total pembayaran disimpan dalam variabel total. Kemudian ke baris keenam sampai kedelapan. Jika jawabannya tidak, maka kerjakan baris keempat dan kelima yaitu discount hanya 5% dan total pembayaran = pembelian- discount. Selanjutnya pada baris keenam sampai kedelapan, akan ditampilkan discount dan total pembayaran.
  • 61. Flowchart dari algoritma Struktur Keputusan di atas adalah:
  • 62. // ------------------------------------------------------------------------------ // Program ADP_4_struktur_dasar_algoritma_keputusan.cpp // Contoh Struktur Dasar Algoritma // ------------------------------------------------------------------------------ #include <stdio.h> #include <stdlib.h> main() { long int beli,disc,total; printf("Contoh Struktur Dasar Algoritma Keputusann") printf("Program untuk menghitung Pembelian"); printf(" dengan discountn"); printf("___________________________________"); printf("________________n"); printf("n"); printf("Masukkan nilai pembelian: Rp. "); scanf("%d",&beli); printf("n"); if (beli>=100000) { disc=0.1*beli; total=beli-disc; } else { disc=0.05*beli; total=beli-disc; } printf("Jadi pembelian adalah Rp. %dn",beli); printf("dengan discount Rp. %dn",disc); printf("dan total pembayaran sebesar Rp. %dn",total); printf("n"); system("Pause"); } Contoh memecahkan masalah dalam algoritma Struktur Keputusan. Program untuk menghitung total pembayaran dari pembelian dengan discount
  • 64. 3. Struktur Perulangan (looping structure), digunakan untuk melakukan suatu proses secara berulang-ulang, jika suatu kondisi dipenuhi atau sebaliknya. Biasa dipergunakan untuk mengulang proses pemasukan data, mengulang proses perhitungan, dan mengulang proses penampilan hasil pengolahan data.
  • 65. Contoh: algoritma untuk menampilkan bilangan dari 10 sampai 1 secara menurun, yaitu 10,9,8,7,6,5,4,3,2,1. Algoritma dari permasalahan tersebut: 1. Tentukan nilai awal, batas, dan penurunan nilai 2. Lakukan perulangan sampai batas terpenuhi 3. Tampilkan bilangan
  • 66. Keterangan dari algoritma di atas: Pada baris pertama, diminta untuk mendefinisikan variabel bilangan dalam hal ini disimpan dalam variabel n. Adapun nilai awal n adalah 10, batas dari bilangan adalah n>0. Karena yang akan ditampilkan bilangan secara menurun, maka bilangan awal dikurangi satu persatu. Dalam C++ penulisannya adalah n--. Pada baris kedua, proses perulangan dimulai, n dimulai dari 10, karena 10>0, maka perulangan dilakukan serta proses penurunan berjalan yaitu 10-1=9. Seterusnya, perulangan dilakukan sampai n=0. Apabila nilai n=0, maka proses perulangan dihentikan dan langkah selanjutnya akan turun ke baris ketiga yaitu menampilkan semua bilangan dalam perulangan tersebut.
  • 67. Flowchart dari algoritma Struktur Perulangan di atas adalah:
  • 68. Contoh memecahkan masalah dalam algoritma Struktur Perulangan. Program untuk menampilkan bilangan dari 10 sampai 1 secara menurun // ------------------------------------------------- // Program ADP_5_struktur_dasar_algoritma_perulangan.cpp // Contoh Struktur Dasar Algoritma // ------------------------------------------------- #include <stdio.h> #include <stdlib.h> main() { int n; printf("Contoh Struktur Dasar Algoritma Perulangann"); printf("Program untuk menampilkan nilai 10 s.d. 1n"); printf("__________________________________________n"); printf("nt"); for (n=10; n>0; n--){ printf("%dnt",n); } printf("n"); system ("Pause"); }
  • 69.
  • 70. Sejauh ini tidak ada standarisasi tentang bagaimana menyusun algoritma. Secara prinsip, setiap orang mempunyai kebebasan untuk menyusun bentuk suatu algoritma. Tiap orang dapat menggunakan kata-kata dalam bahasa manusia, pseudocode, atau bahkan diagram alir untuk mewujudkan suatu algoritma. Tiap orang juga dapat menggunakan cara-caranya sendiri untuk menuliskan suatu algoritma dengan memegang teguh konsistensi.
  • 71. Namun demikian ada beberapa hal yang perlu diperhatikan dalam menyusun suatu algoritma. Menurut Knuth ( 1973, hal. 4) dan juga Horowitz (1999, hal. 1), ada lima ciri-ciri penting yang harus dimiliki sebuah algoritma, yaitu: 1. Finitness, menyatakan bahwa suatu algoritma harus berakhir untuk semua kondisi setelah memproses sejumlah langkah. 2. Definiteness, menyatakan bahwa setiap langkah harus dinyatakan dengan jelas (tidak rancu atau memiliki dua arti). 3. Masukan, setiap algoritma dapat tidak memiliki masukan atau mempunyai satu atau beberapa masukan. Masukan merupakan suatu besaran yang diberikan di awal sebelum algoritma diproses. 4. Keluaran, setiap algoritma memiliki keluaran, entah hanya sebuah keluaran atau banyak keluaran. Keluaran merupakan besaran yang mempunyai kaitan atau hubungan dengan masukan. 5. Efektivitas, setiap algoritma diharapkan bersifat efektif, dalam arti semua operasi yang dilaksanakan oleh algoritma harus sederhana dan dapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiap instruksi dalam algoritma dapat dikerjakan oleh orang dengan hanya menggunakan kertas dan pensil.
  • 72. Memiliki logika perhitungan / metode yang tepat dalam memecahkan masalah Menghasilkan output yang tepat dan benar dalam waktu yang singkat. Ditulis dengan bahasa yang standart secara sistematis dan rapi sehingga tidak menimbulkan arti ganda Ditulis dengan format yang mudah dipahami, dan diimplementasikan ke dalam bahasa pemograman Semua Operasi yang dibutuhkan terdefinisi dengan jelas Semua proses harus selalu berakhir setelah sejumlah langkah dilakukan.
  • 73. Standart Teknik Pemecahan Masalah – Top – Down : Merupakan teknik pemecahan masalah yang paling banyak digunakan dimana pada teknik ini suatu masalah yang besar / complex dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil, Dari kelompok kecil kemudian dianalisa dan apabila masih memungkinkan untuk dibagi lagi menjadi sub bagian lalu kemudian di susun langkah-langkah untuk menyelesaikan masalah secara detail. – Bottom – Up : Teknik ini masalah yang besar/komplek dipecahkan dengan melakukan penggabungan prosedur-prosedur yang menjadi satu kesatuan program guna menyelesaikan masalah tersebut, teknik ini sudah mulai di tinggalkan.
  • 74. Standart Penyusunan Program – Kebenaran logika dan penulisan : Program yang disusun harus memiliki ketepatan, ketelitian, dan kebenaran dalam perhitungan, sehingga hasilnya dapat dipercaya serta harus teliti dalam penulisannya. – Waktu untuk penulisan program : Program harus dapat menentukan batas waktu minimum dan maksimum dalam penulisan programnya yang tersedia secara wajar.
  • 75.
  • 76. TIPE DATA DAN OPERATOR
  • 77. Tipe data adalah suatu nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel dan operator yang dapat dikenakan padanya. Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah.
  • 78. ◦ Tipe terdiri dari : - Tipe Sederhana (Simple Type), dapat dibagi menjadi empat kelompok (disebut juga tipe data dasar), yaitu: 1. bilangan bulat (integer) 2. bilangan pecahan (float/real) 3. teks, yaitu char untuk satu karakter, biasa menggunakan tanda petik tunggal (‘ ‘) dan string untuk karakter lebih dari satu, biasa menggunakan tanda petik ganda (“ “). 4. pointer, dan 5. Boolean. - Tipe Terstruktur (Structure Type) 1. Array 2. Record
  • 79. Tipe Integer atau Bilangan Bulat (cthnya (..., -2, -1, 0, 1, 2, ...)) dapat dideklarasikan dengan menggunakan kata kunci (keyword) atau kata cadangan (reserved word) yaitu short atau long Keyword Besar Memori Jangkauan Nilai int 16 bit -32768 s.d. 32768 short int 16 bit -32768 s.d. 32768 long int 32 bit -2147483648 s.d. 2147483648 Keyword Besar Memori Jangkauan Nilai Unsigned int 16 bit 0 s.d. 65535 Unsigned short int 16 bit 0 s.d. 65535 Unsigned long int 16 bit 0 s.d. 4294967295
  • 80. // ------------------------------------------------------------------------- ----- // Program ADP_6_memperlihatkan_data_tipe_integer.cpp // Contoh Program Untuk Memperlihatkan Data Bertipe Integer // ------------------------------------------------------------------------- ----- #include <stdio.h> #include <stdlib.h> main() { int a,b,c; // deklarasi tipe data integer printf("Contoh Program Untuk Menampilkan Data Bertipe Integern"); //Judul Program printf("_____________________________________________________n"); //Judul Program printf("n"); a=25.5; // nilai a berupa bilangan pecahan b=15.0; // nilai b berupa bilangan pecahan c=a+b; // c adalah nilai a ditambah nilai b printf("%d",c); // menampilkan nilai c hasil penambahan a & b
  • 81. 1. Tentukan nilai a 2. Tentukan nilai b 3. c = a + b 4. Tampilkan nilai Keterangan dari algoritma di atas adalah : pada baris pertama dan kedua ditentukan nilai a yaitu 25 dan nilai b yaitu 15 dengan keduanya bertipe integer (int). Nilai a disimpan dalam variabel a dan nilai b disimpan dalam variabel b. Pada baris ketiga, dimasukkan variabel c dengan rumus = a + b, sehingga pada baris keempat akan ditampilkan proses perhitungan dari variabel c yaitu a + b = 25 + 15 = 40, dimana nilai c disimpan dalam variabel c dan bertipe data integer.
  • 82. Tipe Pecahan atau Floating Point (cth (1/4, ½, 2/3,…) dapat dideklarasikan dengan menggunakan kata kunci (keyword) atau kata cadangan (reserved word) yaitu float, double, dan long double Keyword Besar Memori Jangkauan Nilai float 32 bit 3.4E-038 s.d. 3.4E+038 double 64 bit 1.7E-038 s.d. 1.7E+038 long double 64 bit 1.7E-038 s.d. 1.7E+038
  • 83. // ------------------------------------------------------------------------- ------- // Program ADP_6_memperlihatkan_data_tipe_pecahan.cpp // Contoh Program Untuk Memperlihatkan Data Bertipe Pecahan // ------------------------------------------------------------------------- ------- #include <stdio.h> #include <stdlib.h> main() { float a,b,c; printf("Contoh Program Untuk Menampilkan Data Bertipe Percahann"); printf("____________________________________________________n"); printf("n"); a=25; b=10; c=a/b; printf("%fn",c); printf("n");
  • 84. 1. Tentukan nilai a 2. Tentukan nilai b 3. c = a / b 4. Tampilkan nilai Keterangan dari algoritma di atas adalah : pada baris pertama dan kedua ditentukan nilai a yaitu 25 dan nilai b yaitu 10 dengan keduanya bertipe pecahan (float). Nilai a disimpan dalam variabel a dan nilai b disimpan dalam variabel b. Pada baris ketiga, dimasukkan variabel c dengan rumus = a / b, sehingga pada baris keempat akan ditampilkan proses perhitungan dari variabel c yaitu a / b = 25 / 10 = 2.500000, dimana nilai c disimpan dalam variabel c dan bertipe data float.
  • 85. Teks dapat berupa suatu karakter ataupun suatu string. Tipe Teks dapat dideklarasikan dengan menggunakan kata kunci (keyword) atau kata cadangan (reserved word) yaitu char.
  • 86. // ---------------------------------------------------------------- // Program ADP_8_memperlihatkan_data_tipe_teks.cpp // Contoh Program Untuk Memperlihatkan Data Bertipe Teks (karakter) // ---------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> main() { char a; printf("Contoh Program Untuk Menampilkan Data Bertipe Teks (karakter)n"); pintf(“_________________________________________________________n"); printf("n"); printf("Masukkan huruf: ");scanf("%c",&a); printf("Huruf yang dimasukkan adalah: %cn",a); printf("n"); system ("Pause"); }
  • 87. 1.Masukkan huruf 2.Tampilkan huruf Keterangan dari algoritma di atas adalah : pada baris pertama, diminta untuk memasukkan input yang berupa huruf dimana huruf tersebut bertipe karakter (char). Huruf yang dimasukkan tersebut disimpan dalam variabel a. Pada baris kedua akan ditampilkan variabel a tadi.
  • 88. Deklarasi Tipe String juga menggunakan kata kunci char dengan menyebut panjang dari nilai stringnya.
  • 89. // ---------------------------------------------------------------- ------------------ // Program ADP_8a_memperlihatkan_data_tipe_teks.cpp // Contoh Program Untuk Memperlihatkan Data Bertipe Teks (string) // ---------------------------------------------------------------- ------------------ #include <stdio.h> #include <stdlib.h> main() { char nama[20]; printf("Contoh Program Untuk Menampilkan Data Bertipe Teks (string)n"); printf("___________________________________________________________n"); printf("n"); printf("Masukkan nama Anda: ");scanf("%s",&nama); printf("Nama yang dimasukkan adalah: %sn",nama); printf("n"); system ("Pause");
  • 90. 1.Masukkan nama 2.Tampilkan nama Keterangan dari algoritma di atas adalah : pada baris pertama, diminta untuk memasukkan input yang berupa nama dimana namatersebut bertipe karakter (dalam hal ini menggunakan tipe data char yang mempunyai panjang 20 karakter). Nama yang dimasukkan tersebut disimpan dalam variabel nama. Pada baris kedua akan ditampilkan
  • 91. Jadi perbedaan tipe data karakter dan string adalah jika tipe data karakter dituliskan dengan kata kunci char saja, sedangkan tipe data string ditulis dengan kata kunci char diikuti tanda kurung siku awal dan akhir, dimana dalam tanda kurung siku tersebut terdapat panjang karakter yang diinginkan.
  • 92. Pointer adalah suatu variabel yang menyimpan alamat dari suatu data, bukan menyimpan datanya sendiri. Pointer dideklarasikan dengan menggunakan tanda asteris (*) di depan nama variabelnya.
  • 93. // ----------------------------------------------------------------------------- -- // Program ADP_9_memperlihatkan_data_tipe_pointer.cpp // Contoh Program Untuk Memperlihatkan Data Bertipe pointer // ----------------------------------------------------------------------------- -- #include <stdio.h> #include <stdlib.h> main() { int a,b,c,*d,*e,*f; a=1000; b=2050; c=500; d=&a; e=&b; f=&c; printf("Contoh Program Untuk Menampilkan Data Bertipe Pointern"); printf("___________________________________________________n"); printf("n"); printf("Pointer d menunjukkan alamat: %pn",d); printf("Pointer e menunjukkan alamat: %pn",e); printf("Pointer f menunjukkan alamat: %pn",f); printf("Alamat tersebut berisi nilai: %dn",*d); printf("Alamat tersebut berisi nilai: %dn",*e); printf("Alamat tersebut berisi nilai: %dn",*f); printf("n"); Contoh program untuk memperlihatkan data bertipe pointer
  • 94. 1. Definisikan variabel a 2. Definisikan variabel b 3. Tampilkan nilai b 4. Tampilkan nilai pointer b Keterangan dari algoritma di atas adalah : pada baris pertama dan kedua, diminta untuk mendefinisikan dua buah variabel, yaitu variabel a dengan tipe integer dan variabel b yang merupakan suatu pointer bertipe integer yang akan menyimpan alamat dari suatu data. Variabel b merupakan suatu pointer karena dideklarasikan dengan didahului suatu karakter *. Operatos & digunakan untuk mengambil alamat dari suatu data. Pada baris ketiga dan keempat, variabel a diisi dengan nilai integer 20 dan nilai ini disimpan pada suatu alamat tertentu. Alamat tersebut kemudian diisikan ke pointer b dengan menggunakan operator & sebagai berikut b = &a. Dengan demikian pointer b sekarang berisi alamat dari nilai integer 20.
  • 95. /* ------------------------------------------------------------ ----------------------------- Program ADP_10_memperlihatkan_data_tipe_pointer_pada_string.cpp Contoh Program Untuk Memperlihatkan Data Bertipe pointer ------------------------------------------------------------- ---------------------------- */ #include <stdio.h> #include <stdlib.h> main() { char *nama; nama="Muhammad Hasbi"; printf("Program untuk melihat tipe data Pointern"); printf("pada stringn"); printf("---------------------------------------n"); printf("n"); printf("%sn",nama); printf("n"); system ("Pause"); Contoh program untuk memperlihatkan data bertipe pointer pada string
  • 96. 1.Definisikan variabel nama 2.Tampilkan nilai pointer nama Keterangan dari algoritma di atas adalah : pada baris pertama diminta untuk mendefinisikan sebuah variabel nama yang merupakan suatu pointer karena dideklarasikan dengan didahului suatu karakter *. Operator & digunakan untuk mengambil alamat dari suatu data. Dana pada baris kedua, variabel naam diisi dengan tipe char dan tipe data ini disimpan dalam suatu alamat tertentu.
  • 97. Dalam program C++ biasanya digunakan variabel dan konstanta untuk mendefiniskan sebuah nilai. Varibel dalam program digunakan untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat diubah-ubah selama eksekusi program berlangsung. Variabel yang akan digunakan dalam program harus dideklarasikan terlebih dahulu.
  • 98. Deklarasi Variabel adalah memesan memori dan menentukan jenis data yang dapat disimpan di dalamnya. Bentuk umum pendeklarasian variabel adalah: tipe daftar-variabel; Daftar-variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan tanda koma. Contoh: int jumlah; float harga_per_satuan, total_harga;
  • 99. Tipe Jumlah Bit Rentang Data Keterangan Char 8 -128 s.d. 127 Karakter Int 16 -32768 s.d. 32767 Bilangan bulat (integer) Float 32 3.4E-38 s.d. 3.4E+38 Bilangan pecahan presisi tunggal Doubl e 64 1.7E-38 a.d. 1.7E+38 Bilangan pecahan presisi ganda Void 0 0 Pointer Tipe Variabel
  • 100. Tipe Ukuran (Bit) Rentang Data Unsigned char 8 0 s.d. 255 Char 8 -128 s.d. 127 Enum 16 -32768 s.d. 32767 Unsigned int 16 0 s.d. 65535 Short int 16 -32768 s.d. 32767 Int 16 -32768 s.d. 32767 Unsigned long 32 0 s.d. 4294967295 Long 32 -2147483648 s.d. 2147483647 Float 32 3.4E-38 s.d. 3.4E+38 Double 64 1.7E-308 s.d. 1.7E+308 Long double 80 3.4E-34932s.d. 1.1E+4932 Near pointer 16 Not applicable Far pointer 32 Not applicable Tipe Data, Ukuran, dan Rentang Data
  • 101. Hanya boleh terdiri dari huruf, angka, atau garis bawah (Tidak boleh menggunakan symbol) Tidak boleh diawali dengan angka Case sensitive Harus Unik (tidak boleh sama) Panjang tidak dibatasi, akan tetapi jangan terlalu panjang guna memudahkan dalam penggunaan Hendaknya mencerminkan kegunaannya
  • 102. Untuk memberikan nilai ke variabel yang telah dideklarasikan, bentuk pernyataan yang digunakan adalah: variabel = nilai; Contoh: jumlah = 50; harga_per_satuan = 15.7; total_harga = jumlah * harga_per_satuan;
  • 103. Algoritma untuk contoh di atas: 1. Inisialisasikan variabel jumlah 2. Inisialisasikan variabel harga per satuan 3. Inisialisasikan total harga 4. Tentukan nilai jumlah 5. Tentukan nilai harga per satuan 6. Total harga = jumlah*harga per satuan 7. Tampilkan total harga
  • 104. Keterangan algoritma di atas: Pada baris pertama, kedua dan ketiga diminta untuk menentukan tipe data yang tepat untuk variabel jumlah dan variabel harga per satuan serta total harga, dimana tipe data yang tepat adalah pecahan (float). Variabel masing-masing disimpan dengan nama jumlah, harga per satuan, serta harga_total. Pada baris keempat dan kelima nilai darikan jumlah ditentukan 50 dan nilai harga_per_satuan ditentu 15.7. Pada baris keenam, dilakukan proses perhitungan dan pencarian nilai dari harga_total dengan rumus = jumlah*harga_per_satuan. Pada baris ketujuh menampilkan harga_total.
  • 105. /* ------------------------------------------- Nama Program: ADP_Soal12.cpp Contoh Penggunaan dan Pemberian Nilai Variabel --------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int jumlah; float harga_satuan, harga_total; jumlah = 50; harga_satuan = 15.7; harga_total = jumlah * harga_satuan; printf("Contoh Penggunaan dan n"); printf(“Pemberian Nilai Variabeln”); printf("--------------------------n"); printf("n"); printf("Harga Total = %.2fn", harga_total); system("pause");
  • 106. /* ---------------------------- Nama Program: ADP_Soal12b.cpp Contoh Penggunaan variabel ---------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int jumlah; float harga_satuan, harga_total; printf("Contoh Penggunaan dann"); printf("Pemberian Nilai Variabeln"); printf("--------------------------n"); printf("Masukkan jumlah: ");scanf("%d",&jumlah); printf("Masukkan Harga Satuan: ");scanf("%f",&harga_satuan); harga_total = jumlah * harga_satuan; printf("n"); printf("Harga Total = %.2fn", harga_total); printf("n"); system("pause"); }
  • 107. Beberapa modifikasi tipe (type modifier) yang dapat dikenakan di awal tipe data dasar (kecuali void) adalah: signed, unsigned, long, dan short. Misal modifikasi tipe unsigned jika diterapkan pada tipe int, akan menjadi unsigned int.
  • 108. Tipe Ukuran (Bit) Rentang Data Unsigned char 8 0 s.d. 255 Signed char 8 -128 s.d. 127 Unsigned int 16 -32768 s.d. 32767 Signed int 16 -32768 s.d. 32767 Short int 16 0 s.d 65535 Unsigned short 16 -32768 s.d. 32767 Int 32 -2147483648 s.d. 2147483647 Signed short int 32 -2147483648 s.d. 2147483647 Unsigned Long int 32 0 s.d. 4294967295 Signed long int 80 3.4E-4932 s.d. 1.1E+4932 Unsigned long int Long doubel Modifikasi Tipe Variabel
  • 109. Dari tabel di atas, dapat dilihat bahwa tipe char sama dengan unsigned char, sedangkan signed int, short int, signed short int, dan int sebenarnya adalah sama. Perbedaan signed dan unsigned terletak pada perlakuan bit tertinggi. Jika dinyatakan dengan signed, maka bit tertinggi digunakan sebagai bit tanda untuk menyatakan apakah bilangannya positif atau negatif. Hal yang perlu diingat dalam proses modifikasi ini adalah tipe data hasil minimum harus mempunyai panjang bit yang sama.
  • 110. Dalam penulisan program beberapa tipe data boleh tidak ditulis secara lengkap, misalnya: 1.Tipe short int cukup ditulis menjadi short 2.Tipe long int boleh ditulis menjadi long 3.Tipe signed int bisa ditulis menjadi signed 4.Tipe unsigned int boleh ditulis dengan unsigned
  • 111. Konstanta adalah nilai numeris atau karakter yang tetap. C++ mendukung empat kelas konstanta, yaitu floating point, integer, string, dan karakter. Penulisan konstanta mempunyai aturan tersendiri sesuai dengan tipe masing-masing.
  • 112. Konstanta Integer Dapat berupa integer biasa, long integer, dan unsigned integer. Nilai konstanta integer dapat berupa nilai desimal, oktal (ditulis dengan didahului oleh digit 0), atau hexadesimal (ditulis dengan didahului digit 0 dan karakter X). Sedangkan konstanta unsigned integer dapat ditulis dengan diakhiri huruf U atau u.
  • 113. Konstant integer ditulis dengan tanpa mengandung pemisah ribuan dan tidak mengandung bagian pecahan. Contoh -20 dan 2345. Konstanta long integer penulisannya diakhiri dengan tanda L atau l, contohnya 346600L atau 325100l. Konstanta unsigned integer jika nilainya melebihi 65535 maka secara otomatis akan diperlakukan sebagai unsigned long int, contoh 431000u.
  • 114. Konstanta Floating Point Dapat mengandung nilai pecahan (dengan tanda berupa titik) dan dapat ditulis dalam bentuk pecahan desimal biasa maupun bentuk eksponensial (menggunakan tanda E), contoh 35.6 dan 3.2E+5 (maksudnya 3,2 x 105). Konstanta pecahan selalu dinyatakan dalam double, kecuali jika diakhiri dengan F atau f (yang berarti menyatakan konstanta float).
  • 115. Konstanta String Merupakan deretan karakter yang diawali dengan dan diakhiri dengan tanda petik-ganda (“). Konstanta string yang berisi satu karakter berbeda dengan konstanta karakter, sebab konstanta karakter diawali dan diakhiri dengan tanda petik-tunggal. Jadi “c” tidak sama dengan ‘c’. Konstanta string dapat mengandung karakter yang menggunakan tanda (karakter rangkaian escape).
  • 116. Konstanta Karakter Selalu ditulis dengan diawali dan diakhiri dengan tanda petik-tunggal. Contoh ‘C’ dan ‘&’. Beberapa konstanta karakter dapat ditulis dengan diawali tanda (penempatan tanda setelah tanda petik tunggal). Karakter yang berawalan tanda disebut rankaian escape (escape sequence).
  • 117. Sequence Karakter Keterangan a Bel Bunyi Bel b BS Mundur 1 karekter (backspace) f FF Ganti halaman (form feed) n LF Ganti baris (line feed) r CR Kembali ke awal kolom (carriage return) t HT Tabulasi horizontal (horizontal tab) v VT Tabulasi vertikal (vertical tab) Backslash ’ ‘ Petik tunggal ” “ Petik ganda ? ? Tanda tanya DDD Apapun DDD adalah digit nilai oktal xHHH Apapun HHH adalah digit nilai heksadesimal 0 NULL Karakter ASCII = 0
  • 118. Ekspresi adalah sesuatu yang dapat menghasilkan nilai Ekspresi dibagi menjadi 2 yaitu Operand dan Operator Operator dibagi 2 berdasarkan operand yaitu – Unary : satu operand – Binary : dua operand Contoh Ekpresi : 6 + 3 Angka 6 dan angka 3 adalah Operand sedangkan Simbol tambah adalah operator Contoh Unary : - 4 Simbol minus adalah Operator dan Angka 4 adalah Operand Contoh Binary : 7 * 2 Angka 7 dan 2 adalah Operand dan Simbol asteris adalah operator
  • 119. Operasi apa saja yang dapat dikenakan pada tipe data, variabel dan konstanta tidak lepas dari operator. Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi atau manipulasi, seperti menjumlahkan dua buah nilai, memberikan nilai ke suatu variabel, membandingkan dua buah nilai dan lain-lain. Sebagian operator C++ tergolong sebagai operator binary, yaitu operator yang dikenakan terhadap dua buah nilai (operand).
  • 120. Operator Pengerjaan (assignment operator) Operator Aritmatika
  • 121. /* ---------------------------- Nama Program: ADP_Soal13.cpp Contoh Penggunaan Operator Pngerjaan ---------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int a,b,c; a=10; c=b=a; printf("Contoh Program Penggunaan Operator Pengerjaann"); printf("_____________________________________________n"); printf("n"); printf("a=%dn",a); printf("b=%dn",b); printf("c=%dn",c); system("pause"); }
  • 122. Operator Keterangan * Perkalian / Pembagian % Modulus atau sisa pembagian + Penjumlahan - Pengurangan Operator Binary Operator Keterangan + Tanda plus - Tanda minus ++ Prefix: preincrement; Postfix: postincrement -- Prefix: predecrement; postfix: postdecrementOperator Unary
  • 123. /* ---------------------------- Nama Program: ADP_Soal14.cpp Contoh Penggunaan Operator Aritmatika ---------------------------- */ #include <stdio.h> #include <stdlib.h> main() { float luas, pi, jari; pi = 3.141593; jari = 12.0; luas = pi*jari*jari; printf("Contoh Program Penggunaan Operator Arimatikan"); printf("_____________________________________________n"); printf("n"); printf("Jari-jari = %fn",jari); printf("luas = %fn",luas); printf("n"); system("pause"); }
  • 124. Tertingg i ++ -- - (unary minus) * / % Terenda h + - Hirarki pada operator aritmatika
  • 125. C++ mempunyai operator terkenal yaitu operator peningkatan (increment operator) yang menggunakan tanda ++ dan operator penurunan (decrement operator) yang menggunakan tanda --. Operator peningkatan digunakan untuk menambahkan nilai 1 pada nilai sebelumnya dan operator penurunan digunakan untuk mengurangi nilai 1 pada nilai sebelumnya.
  • 126. Operato r Keterangan << Shift left (pergeseran ke kiri) >> Shift right (pergeseran ke kanan) & Operasi bit AND | Operasi bit OR ^ Operasi bit XOR ~ Operasi bit NOT Operator Bitwise Tertingg i ~ >> << & ^ Terenda |
  • 127. Digunakan untuk membandingkan dua buah nilai dan akan dihasilkan perbandingannya, yaitu betul (bernilai 1) atau salah (bernilai 0) Operator ini banyak digunakan pada penyeleksian suatu kondisi di statemen IF
  • 128. Operator Keterangan > Lebih besar >= Lebih besar sama dengan < Lebih kecil <= Lebih kecil sama dengan == Sama dengan != Tidak sama dengan
  • 129. Disamping operator hubungan, C++ juga menyediakan tiga buah operator logika yang biasanya berpasangan dengan operator hubungan Operator Keterangan && Operator Logika AND || Operator Logika OR ! Operator Logika NOT
  • 130. A B A && B A || B 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1
  • 131. /* ------------------------------------- Nama Program: ADP_Soal16.cpp Contoh Penggunaan Operator Logika AND ------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int nilai, tugas; printf("Contoh Program Penggunaan Operator Logika ANDn"); printf("_____________________________________________n"); printf("n"); printf("Masukkan Nilai: ");scanf("%d",&nilai); printf("Masukkan Nilai Tugas: ");scanf("%d",&tugas); if(nilai>70 && tugas>=75) printf("Lulusn"); else printf("Tidak Lulusn"); printf("_______________________________________________"); printf("n"); printf("n"); system("pause"); }
  • 132. Operator Keterangan & Address of operator * Indirection operator
  • 133. /* ------------------------------- Nama Program: ADP_Soal17.cpp Contoh Penggunaan Operator Koma ------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { char kar1, kar2; (kar1='A', kar2='B'); printf("Contoh Program Penggunaan Operator Koman"); printf("_______________________________________n"); printf("n"); printf("%cn",kar1); printf("%cn",kar2); system("pause"); }
  • 134. a = a + b a +=b a = a – b a -=b
  • 136. Struktur keputusan (decision) adalah struktur program yang melakukan proses pengujian untuk mengambil suatu keputusan apakah suatu baris atau blok instruksi akan diproses atau tidak. Pengujian kondisi ini dilakukan untuk memilih salah satu dari beberapa alternatif yang tersedia. C++ menyediakan dua perintah pengambilan keputusan yaitu perintah IF dan perintah SWITCH yang disertai dengan CASE
  • 137. Syarat dalam dunia pemrograman adalah sebuah pernyataan Boolean, yang dapat bernilai benar (true) atau salah (false). Biasanya sebuah syarat terdiri dari operand-operand yang dihubungkan dengan operator logika. Yaitu: =, <>, >, <, >=, <=, and dan or.
  • 138. Berguna untuk memilih satu dari dua atau lebih alternatif jawaban yang tersedia. Jika perintah IF tersebut terdiri dari 2 atau lebih pernyataan, maka pernyataan tersebut harus berada di antara begin dan end.
  • 139. Bentuk umum perintah if (tunggal sederhana) if (kondisi) pernyataan Bentuk di atas mempunyai arti jika kondisi bernilai benar maka pernyataan di bawahnya akan dikerjakan. Bentuk perintah if tunggal blok statemen (majemuk). if (kondisi) { pernyataan1 pernyataan2 dst }
  • 140.
  • 141.
  • 142. /* ---------------------------------------------------------------------- Nama Program: ADP_19 Struktur Keputusan dengan Statemen if Tunggal Sederhana ----------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int beli, diskon, total; printf("Contoh Struktur Keputusann"); printf("dengan Statemen if Tunggal Sederhanan"); printf("____________________________________n"); printf("n"); printf("Masukkan nilai pembelian: "); scanf("%d",&beli); if (beli>100000) diskon=10*beli/100; total=beli-diskon; printf("n"); printf("Jadi pembelian adalah: %dn",beli); printf("dengan discount: %dn",diskon); printf("dan total pembayaran sebesar Rp. %dn",total); system("pause"); }
  • 143. /* ----------------------------- Nama Program: ADP_Soal15b.cpp Statemen if Tunggal Sederhana ----------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int jumlah_anak; float gaji_kotor, gaji_bersih, tunjangan, potongan, persen_tunjangan=0.2, persen_potongan=0.05; printf("Contoh Program Penggunaan Statemen if Tunggal Majemukn"); printf("_______________________________________________________n"); printf("n"); printf("Gaji kotor yang diperoleh = Rp. ");scanf("%f",&gaji_kotor); printf("Jumlah anak = ");scanf("%d",&jumlah_anak); if(jumlah_anak>2) { persen_tunjangan = 0.3; persen_potongan = 0.07; } tunjangan = persen_tunjangan * gaji_kotor; potongan = persen_potongan * gaji_kotor; gaji_bersih = gaji_kotor + tunjangan - potongan; printf("Besarnya Tunjangan = Rp. %.2fn",tunjangan); printf("Besarnya Potongan = Rp. %.2fn",potongan); printf("Jadi, Gaji Bersihnya = Rp. %.2fn",gaji_bersih); system("pause"); }
  • 144. /* -------------------------------------------------------------------- Nama Program: ADP_20 Contoh Struktur Keputusan dengan Statemen if Majemuk --------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int beli, diskon, pajak, total_harga; printf("Contoh Struktur Keputusann"); printf("dengan Statemen if Majemuk printf("__________________________n"); printf("n"); printf("Masukkan nilai pembelian: "); scanf("%d",&beli); if (beli>100000) { diskon=10*beli/100; pajak=0.01*beli; } total_harga=beli-diskon; printf("n"); printf("Jadi pembelian adalah: %dn",beli); printf("dengan discount: %dn",diskon); printf("dikenakan pajak: %dn",pajak); printf("dan total pembayaran dengan diskon Rp. %dn",total_harga); printf("dan total pembayaran dikenakan pajak sebesar Rp. %dn",total_harga+pajak); system("pause"); }
  • 145. Bentuk umum dari if .. else if (kondisi) pernyataan1 else pernyataan2 Bentuk umum ini berarti jika kondisi benar maka pernyataan1 akan dikerjakan dan jika kondisi salah maka pernyataan2 yang akan dikerjakan
  • 146.
  • 147. /* --------------------------------------------------- Nama Program: ADP_21 Contoh Struktur Keputusan dengan if..else ---------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int nilai; printf("Contoh Struktur Keputusan Dengan if..elsen"); printf("_________________________________________n"); printf("n"); printf("Masukkan sebuah nilai: ");scanf("%d",&nilai); if (nilai>70) printf("Lulusn"); else printf("Tidak Lulusn"); printf("n"); system("pause"); }
  • 148. Bentuk umum dari if .. else if (kondisi1) pernyataan1 else if (kondisi2) pernyataan2 Bentuk ini disebut if..else if tangga, karena mempunyai bentuk seperti sebuah tangga
  • 149.
  • 150. Contoh: Akar-akar dari suatu persamaan kuadrat aX2 + bX2 + c = 0 tergantung dari nilai determinannya. Nilai determinan (D) dapat dihitung dengan rumus: D = b2 – 4ac Jika D bernilai positif, maka akan mempunyai dua akar riel yang berbeda yaitu: X1 = dan X2 = Jika D bernilai 0, maka akan mempunyai dua buah akar riel kembar, yaitu X1 = X2 = jika D bernilai negatif, maka akan dihasilkan dua akar imajiner: X1 = X2 = , tanda i menunjukkan bahwa nilai tersebut adalah nilai imajiner.
  • 151. /* ------------------------- Nama Program: ADP_21 Contoh Struktur Keputusan dengan if..else if..else ------------------------- */ #include <stdio.h> #include <math.h> #include <stdlib.h> main() { float A, B, C, D, X1, X2; printf("Contoh Struktur Keputusann"); printf("dengan Statemen if..else if..elsen"); printf("n"); printf("Menghitung Akar-akar Persamaan Kuadrat"); printf("____________________________________n"); printf("n"); /* Masukkan Data Koefisien Persamaan Kuadrat */ printf("Masukkan nilai a: ");scanf("%f",&A); printf("Masukkan nilai b: ");scanf(“%f",&B); printf("Masukkan nilai c: ");scanf("%f",&C); printf("n"); /* Menghitung Nilai Determinan */ D = B*B - 4*A*C; /* Menyeleksi Nilai Determinan */ if(D==0){ X1 = -B / (2*A); printf("Dua akar riel kembar: n"); printf("X1 = X2 = %.2fn",X1); } else if (D>0){ X1 = (-B + sqrt(D)) / (2*A); X2 = (-B - sqrt(D)) / (2*A); printf("Dua akar riel berlainan: n"); printf("X1 = %.2fn",X1); printf("X2 = %.2fn",X2); } else if (D<0){ X1 = -B / (2*A); X2 = sqrt(-D) / (2*A); printf("Dua akar imajiner berlainan: n"); printf("X1 = %.2f + %.2f in",X1,X2); printf("X2 = %.2f - %.2f in",X1,X2); } system("pause"); }
  • 152. /* ------------------------------------- Nama Program: ADP_21 Contoh Struktur Keputusan dengan if..else if..else Alternatif -------------------------------------- */ #include <stdio.h> #include <math.h> #include <stdlib.h> main() { float A, B, C, D, X1, X2; printf("Contoh Struktur Keputusann"); printf("dengan Statemen if..else if..else Alternatifn"); printf("n"); printf("Menghitung Akar-akar Persamaan Kuadrat"); printf("____________________________________n"); printf("n"); /* Masukkan Data Koefisien Persamaan Kuadrat */ printf("Masukkan nilai a: ");scanf("%f",&A); printf("Masukkan nilai b: ");scanf(“%f",&B); printf("Masukkan nilai c: ");scanf("%f",&C); printf("n"); /* Menghitung Nilai Determinan */ /* Menyeleksi Nilai Determinan */ if(D==0){ X1 = -B / (2*A); printf("Dua akar riel kembar: n"); printf("X1 = X2 = %.2fn",X1); } if (D>0){ X1 = (-B + sqrt(D)) / (2*A); X2 = (-B - sqrt(D)) / (2*A); printf("Dua akar riel berlainan: n"); printf("X1 = %.2fn",X1); printf("X2 = %.2fn",X2); } if (D<0){ X1 = -B / (2*A); X2 = sqrt(-D) / (2*A); printf("Dua akar imajiner berlainan: n"); printf("X1 = %.2f + %.2f in",X1,X2); printf("X2 = %.2f - %.2f in",X1,X2); } system("pause"); }
  • 153. Bentuk umum if (kondisi1) if (kondisi2) pernyataan1; else pernyataan2; else pernyataan3; d
  • 154.
  • 155. /* -------------------------------------- Nama Program: ADP_21 Contoh Struktur Keputusan if Bersarang -------------------------------------- */ #include <stdio.h> #include <math.h> #include <stdlib.h> main() { float A, B, C, D, X1, X2; printf("Contoh Struktur Keputusann"); printf("dengan Statemen if Bersarangn"); printf("_________________________n"); printf("n"); printf("Menghitung Akar-akar PersamaanKuadratn"); printf("n"); /* Masukkan Data Koefisien Persamaan Kuadrat */ printf("Masukkan nilai a: ");scanf("%f",&A); printf("Masukkan nilai b: ");scanf("%f",&B); printf("Masukkan nilai c: ");scanf("%f",&C); printf("n"); /* Menghitung Nilai Determinan */ D = B*B - 4*A*C; /* Menyeleksi Nilai Determinan */ if(D>=0) if(D==0){ X1 = -B / (2*A); printf("Dua akar riel kembar: n"); printf("X1 = X2 = %fn",X1); } else{ X1 = (-B + sqrt(D)) / (2*A); X2 = (-B - sqrt(D)) / (2*A); printf("Dua akar riel berlainan: n"); printf("X1 = %fn",X1); printf("X2 = %fn",X2); } else{ X1 = -B / (2*A); X2 = sqrt(-D) / (2*A); printf("Dua akar imajiner berlainan: n"); printf("X1 = %f + %f in",X1,X2); printf("X2 = %f - %f in",X1,X2); } system("pause"); }
  • 156. /* ---------------------------- Nama Program: ADP_Soal21.cpp Contoh Struktur Keputusan dengan if..else majemuk ---------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int nilai; char huruf; printf("Contoh Program Struktur Keputusann"); printf("dengan if..else majemukn"); printf("_________________________________n"); Printf("Masukkan Nilai Akhir Mahasiswa: "); scanf("%d",&nilai); if (nilai>=81 && nilai <=100) huruf='A'; else if (nilai>=71 && nilai <81) huruf='B'; else if (nilai>=61 && nilai <71) huruf='C'; else if (nilai>=51 && nilai <61) huruf='D'; else huruf='E'; printf("Jadi Nilai Akhir Mahasiswa: %d, dengan Huruf : %c",nilai, huruf); printf("n"); system("Pause"); }
  • 157. Perintah SWITCH merupakan pernyataan yang dirancang untuk menangani pengambilan keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk menggantikan pernyataan IF bertingkat.
  • 158. Bentuk umum switch (ekspresi) { case konstanta1; pernyataan1; break; case konstanta2; pernyataan2; break; default: pernyataanx; }
  • 159.
  • 160. main() { int kdhari; printf("Masukkan Kode Hari [1..7]: "); scanf("%d",&kdhari); switch (kdhari) { case 1: printf("Senin"); break; case 2: printf("Selasa"); break; case 3: printf("Rabu"); break; case 4: printf("Kamis"); break; case 5: printf("Jum'at"); break; case 6: printf("Sabtu"); break; case 7: printf("Minggu"); break; default: printf("Kode tidak ada, hari tidak ditemukan"); } printf("n"); printf("n"); system("pause"); }
  • 161. Buatlah flowchart dan program untuk menghitung besarnya tunjangan yang akan diterima oleh seorang pegawai. Besar tunjangan tergantung dari jumlah anaknya. Jika pegawai tsb mempunyai anak kurang dari 3, maka tunjangannya adalah sebesar 20% dari gaji kotornya. Jika jumlahnya lebih besar atau sama dengan 3, maka tunjangannya adalah 30% dari gaji kotornya. Gaji juga akan dipotong untuk keperluan asuransi, 5% untuk yang mempunyai anak kurang dari 3 dan 7% untuk yang lebih besar atau sama dengan 3.
  • 162. Buatlah flowchart dan program dalam bentuk menu, untuk menghitung: a. Volume dari tabung b. Luas dan keliling persegi panjang c. Luas dan keliling bujur sangkar Buatlah flowchart di sebuah kertas dan programnya dalam bentuk file
  • 163. ALGORITMA & DASAR PEMROGRAMAN
  • 164. Perintah perulangan (looping) digunakan untuk melakukan suatu proses secara berulang-ulang, jika suatu kondisi dipenuhi atau sebaliknya. Pada prakteknya proses pengulangan biasanya digunakan untuk beberapa hal, misalnya mengulang proses pemasukan data, mengulang proses perhitungan dan
  • 165. Proses looping yang menggunakan penghitung (counter) dapat dibuat menggunakan pernyataan FOR. Pernyataan ini digunakan bila sudah diketahui berapa kali sebuah atau beberap pernyataan akan dilakukan perulangan. Bentuk umum: for(awal;akhir;peningkatan/penurunan) { pernyataan; }
  • 166. Bentuk di atas berarti: a.Awal adalah inisialisasi untuk memberi nilai awal terhadap variabel pengendali looping (disebut juga indeks atau loop-control variable). b. Akhir adalah kondisi untuk keluar dari looping atau kondisi yang harus dipenuhi supaya perulangan masih dapat terus dilakukan. c.Penurunan/peningkatan adalah pengatur kenaikan atau penurunan nilai variabel pengendali looping Misalkan untuk menampilkan tulisan “Contoh Penggunaan Statemen For” sebanyak 5 kali, maka sesuai dengan bentuk umum di atas penulisannya adalah sebagai berikut:
  • 167. /* --------------------------------- Nama Program: ADP_21cpp Statemen for ----------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int X; printf("Contoh Program Penggunaan Statemen forn"); printf("_______________________________n"); printf("n"); for(X=1; X<=5; X++) printf("Contoh Penggunaan Statemen Forn"); printf("n"); system ("pause"); }
  • 168.
  • 169. Algoritma program di atas adalah: 1. Tentukan nilai awal, batas akhir dan penambahan nilai 2. Cetak kalimat 3. Ulangi langkah 1 sampai batas akhir Beberapa contoh perulangan dengan statemen for dan variasinya adalah: 1. Perulangan Positif, 2. Perulangan Negatif, 3. Perulangan dengan Blok Statemen, 4. Statemen For Tanpa Nilai Awal, 5. Statemen For Tanpa Peningkatan, 6. Statemen For Tanpa Nilai Awal dan Peningkatan 7. Perulangan For Tanpa Nilai Awal, Akhir, dan Peningkatan 8. Perulangan dengan Statemen Kosong 9. Variasi di Kondisi Perulangan 10. Statemen For Menggunakan Operator Koma 11.Perulangan For Bersarang 12.Statemen break untuk Menghentikan Perulangan for
  • 170. /* ------------------------------------------------------------ -- Nama Program: ADP_2_for_perulangan_positif.cpp Statemen for Perulangan Positif dengan Penambahan 1 ------------------------------------------------------------ ---- */ #include <stdio.h> #include <stdlib.h> main() { int I; printf("Contoh Program Penggunaan Statemen for"); printf(" Perulangan Positif dengan Penambahan 1n"); printf(“______________________________n"); printf("nt"); for(I=-5; I<=5; I++) printf("%dnt",I); printf("n"); system ("pause");
  • 171. /* -------------------------------------------------------------- ------------- Nama Program: ADP_2a_for_perulangan_positif.cpp Statemen for Perulangan Positif dengan Penambahan lebih dari 1 -------------------------------------------------------------- ------------- */ #include <stdio.h> #include <stdlib.h> main() { int I; printf("Contoh Program Penggunaan Statemen for"); printf(" Perulangan Positif dengan Penambahan Lebih Dari 1n"); printf("______________________________________n"); printf("nt"); for(I=-5; I<=10; I+=3) printf("%dnt",I); printf("n");
  • 172. /* ------------------------------------------------------------ ----- Nama Program: ADP_3_for_perulangan_negatif.cpp Statemen for Perulangan Negatif dengan Pengurangan 1 ------------------------------------------------------------ ------ */ #include <stdio.h> #include <stdlib.h> main() { int I; printf("Contoh Program Penggunaan Statemen for"); printf(" Perulangan Negatif dengan Pengurangan 1n"); printf(“_______________________________n"); printf("nt"); for(I=5; I>0; I--) printf("%dnt",I); printf("n");
  • 173. /* ------------------------------------------------------------ ----------------- Nama Program: ADP_3a_for_perulangan_negatif.cpp Statemen for Perulangan Negatif dengan Pengurangan Lebih dari 1 ------------------------------------------------------------ ------------------ */ #include <stdio.h> #include <stdlib.h> main() { int I; printf("Contoh Program Penggunaan Statemen for"); printf(" Perulangan Negatif dengan Pengurangan Lebih dari 1n"); printf("_______________________________________n"); printf("nt"); for(I=5; I>=-5; I-=3) printf("%dnt",I); printf("n");
  • 174. /* ------------------------------- Nama Program: ADP_25.cpp Statemen for Perulangan Dengan Blok Statemen ------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int I,N; float X, Rata, Total=0; printf("Contoh Program Penggunaan Statemen forn"); printf("untuk Perulangan Dengan Blok Statemenn"); printf("_____________________________________n"); printf("n"); /*Masukkan Jumlah Data*/ printf("Masukkan Jumlah Data yang diinginkan: "); scanf("%d",&N); printf("n"); /*Memasukkan Nilai dari masing-masing Data*/ for(I=1; I<=N; I++){ printf("Data ke %d : ",I);scanf("%f",&X); Total=Total+X; } Rata=Total/N; /*Menampilkan Hasil*/ printf("Banyaknya data: %dn",N); printf("Nilai total seluruh data: %.2fn",Total); printf("Rata-rata nilai: %.2fn",Rata); printf("n”); system ("pause"); }
  • 175.
  • 176. /* ---------------------------------------------------------------------- - Nama Program: ADP_4_statemen_for_tanpa_nilai_awal.cpp Statemen for Tanpa Nilai Awal ---------------------------------------------------------------------- - */ #include <stdio.h> #include <stdlib.h> main() { int X; X=1; printf("Contoh Program Penggunaan Statemen forn"); printf("Tanpa Nilai Awaln"); printf(“_______________________________n"); printf("n"); for(; X<=5; X++) printf("Contoh Penggunaan Statemen For Tanpa Nilai Awaln"); printf("n");
  • 177. /* -------------------------------------------------------------------- ----------------- Nama Program: ADP_5_statemen_for_tanpa_peningkatan_penurunan.cpp Statemen for Tanpa Nilai Peningkatan atau Penurunan --------------------------------------------------------------------- ------------------ */ #include <stdio.h> #include <stdlib.h> main() { int X; printf("Contoh Program Penggunaan Statemen forn"); printf("Tanpa Nilai Peningkatan atau Penurunann"); printf(“_______________________________n"); printf("n"); for(X=1; X<=5;){ X++; printf("Contoh Penggunaan Statemen For Tanpa Nilai Peningkatan atau Penurunann"); } printf("n");
  • 178. /* ------------------------------------------------------- ---------------------------------- Nama Program: ADP_5a_statemen_for_tanpa_peningkatan_penurunan.cpp Statemen for Tanpa Nilai Peningkatan atau Penurunan ------------------------------------------------------- ----------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int X; printf("Contoh 2 Program Penggunaan Statemen forn"); printf("Tanpa Nilai Peningkatan atau Penurunann"); printf(“_________________________________n"); printf("nt"); for(X=3; X<=7;){ printf("%dnt",X++); } printf("n");
  • 179. /* ------------------------------------------------------- ----------------------------------- Nama Program: ADP_5b_statemen_for_tanpa_peningkatan_penurunan.cpp Statemen for Tanpa Nilai Peningkatan atau Penurunan ------------------------------------------------------- ----------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int X; printf("Contoh 3 Program Penggunaan Statemen forn"); printf("Tanpa Nilai Peningkatan atau Penurunann"); printf(“_________________________________n"); printf("nt"); for(X=3; X<=7;){ printf("%dnt",++X); } printf("n");
  • 180. /* ---------------------------------------------------------------------- ------------------------- Nama Program: ADP_6_for_tanpa_nilai_awal_dan_peningkatan_penurunan.cpp Statemen for Tanpa Nilai Awal dan Peningkatan atau Penurunan ---------------------------------------------------------------------- ------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int X=1; printf("Contoh Program Penggunaan Statemen forn"); printf("Tanpa Nilai Awal dana Peningkatan atau Penurunann"); printf(“_____________________________________n"); printf("n"); for(; X<=5;){ X++; printf("Contoh Penggunaan Statemen For Tanpa Nilai Awal"); printf(" dan Peningkatan atau Penurunann"); } printf("n");
  • 181. /* -------------------------------------------------------------------- ---------------------------------- Nama Program: ADP_7_for_tanpa_nilai_awal_akhir_dan_peningkatan_penurunan.cpp Statemen for Tanpa Nilai Awal, Akhir dan Peningkatan atau Penurunan ---------------------------------------------------------------------- -------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { printf("Contoh Program Penggunaan Statemen forn"); printf("Tanpa Nilai Awal, Nilai Akhir, dan Peningkatan atau Penurunann"); printf(“_____________________________________________n"); printf("n"); for(;;){ printf("Contoh Penggunaan Statemen For Tanpa Nilai Awal"); printf(" dan Peningkatan atau Penurunan yang akan ditampilkan TANPA HENTIn"); }
  • 182. /* ------------------------------------------------------------------- ------------------------------------ Nama Program: ADP_7a_for_tanpa_nilai_awal_akhir_dan_peningkatan_penurunan.cpp Statemen for Tanpa Nilai Awal, Akhir dan Peningkatan atau Penurunan dengan statemen break ------------------------------------------------------------------- -------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { printf("Contoh Program Penggunaan Statemen forn"); printf("Tanpa Nilai Awal, Nilai Akhir, dan Peningkatan atau Penurunann"); printf("_____________________________________________n"); printf("n"); for(;;){ printf("Contoh Penggunaan Statemen For Tanpa Nilai Awal"); printf(" dan Peningkatan atau Penurunann"); printf(" dengan statemen breakn"); break; } printf("n");
  • 183. /* ------------------------------------- Nama Program: ADP_25.cpp Statemen for Tanpa Nilai Awal, Akhir, dan Peningkatan atau Penurunan ------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { printf("Contoh Program Penggunaan Statemen forn"); printf("Tanpa Nilai Awal, Akhir, dan"); printf("Peningkatan atau Penurunann"); printf("_______________________________________n"); printf("n"); for(;;) { printf("Tampilan ini terus ditampilkan TANPA BERHENTIn"); printf("n"); break; } system ("pause"); }
  • 184. /* ------------------------------------------ Nama Program: ADP_25.cpp Statemen for dengan Perulangan menggunakan Statemen Kosong ------------------------------------------ */ #include <stdio.h> #include <stdlib.h> #include <conio.h> main() { int I; long int J; clrscr(); printf("Contoh Variasi Program di Kondisi Perulangann"); printf("____________________________________________n"); printf("n"); for(I=1; I<=10;I++){ gotoxy(40,12);printf("/"); for(J=0;J<500000000;J++); gotoxy(40,12);printf(""); for(J=0;J<500000000;J++); } system ("pause"); }
  • 185. /* -------------------------------------------- Nama Program: ADP_25.cpp Contoh Variasi Program di Kondisi Perulangan -------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int I, J, N; printf("Contoh Variasi Program Menggunakan Operator Koman"); printf("________________________________________________n"); printf("n"); N=5; for(I=1,J=N;I<=N;I++,J--) printf("I = %d dan Y = %dn",I,J); system ("pause"); }
  • 186. /* ------------------------------------- Nama Program: ADP_25.cpp Contoh Program Statemen for bersarang ------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int I, J; printf("Contoh Program Penggunaan Statemen for bersarangn"); printf("________________________________________________n"); printf("n"); for(I=1;I<=3;I++){ for(J=1;J<=4;J++) printf(" (I = %d, Y = %d)",I,J); printf("n");
  • 187. Bentuk umum: while (kondisi) pernyataan; atau while (kondisi){ pernyataan1; pernyataan2; }
  • 188. Pernyataan dapat berupa pernyataan kosong, pernyataan tunggal atau blok pernyataan yang akan diproses secara berulang-ulang. Proses perulangan akan masih dilakukan jika kondisi yang diseleksi di pernyataan while masih bernilai benar dan perulangan akan berhenti jika kondisinya sudah bernilai salah.
  • 189. /*----------------------------------- Program ADP_While_1.cpp Statemen while ----------------------------------- */ #include<stdio.h> #include<stdlib.h> main() { int X; printf("Contoh Program Penggunaan Statemen Whilen"); printf("________________________________________n"); X=7; while(X>5)printf("%d",X++); system("pause"); }
  • 190. /* ------------------------------------ Program ADP_While_1a.cpp Statemen while ------------------------------------ */ #include<stdio.h> #include<stdlib.h> main() { int X; printf("Contoh 2 Program Penggunaan Statemen Whilen"); printf("________________________________________n"); printf("nt"); X=3; while(X<=7)printf("%dnt",X+=2); printf("n"); system("pause"); }
  • 191. /* ------------------------------------ Program ADP_While_1b.cpp Statemen while ------------------------------------- */ #include <stdio.h> #include <stdlib.h> #include <conio.h> main() { char C='0'; printf("Contoh 3 Program Penggunaan Statemen Whilen"); printf("________________________________________n"); printf("n”); while(!(C=='N' || C== 'n')) C=getche(); system("pause"); }
  • 192. Bentuk umum: do pernyataan; while (kondisi) atau while (kondisi){ pernyataan1; pernyataan2; }
  • 194. ALGORITMA DAN DASAR PEMROGRAMAN
  • 195. Program komputer yang dibuat untuk menjawab permasalahan umumnya berukuran sangat besar, karena itu perlu dibuat potongan-potongan program yang lebih kecil (biasa disebut modul) yang lebih mudah untuk ditangani dibanding dengan program yang terdiri dari banyak baris. Modul program ini disebut fungsi (function).
  • 196. Pemrograman C ditulis dengan mengkombinasikan fungsi baru yang ditulis oleh pemrogram (disebut programmer- defined function) dengan fungsi yang telah tersedia di dalam pustakanya (disebut standard library). Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas khusus.
  • 197. Tujuan pembuatan fungsi: 1. Program menjadi lebih terstruktur dengan memecah program menjadi beberapa program yang lebih kecil, yang masing- masing mempunyai tugas tertentu. 2. Mengurangi duplikasi kode atau penulisan kode yang sama yang ditulis secara berulang-ulang.
  • 198. Supaya dapat digunakan, fungsi harus dapat dipanggil dari bagian program yang membutuhkannya. Karena itu fungsi harus diberi nama dan nama ini harus didefinisikan dan dideklarasikan terlebih dahulu. Pemanggilan fungsi bertujuan untuk mengerjakan suatu tugas tertentu yang dapat berupa tugas input/output, tugas penyeleksian, atau tugas perhitungan.
  • 199. Bagian program yang menggunakan fungsi dapat berkomunikasi dengan fungsinya lewat pengiriman parameter-parameter yang dilakukan melalui argumen-argumen fungsi.
  • 200. Fungsi terdiri dari dua buah komponen utama, yaitu definisi fungsi dan tubuh fungsi. Definisi fungsi berisi tipe dari fungsi, nama fungsi, dan argumen-argumennya jika digunakan. Tubuh fungsi berisi statemen-statemen yang akan melakukan tugas yang diberikan kepada fungsi tersebut, yang ditulis di dalam tanda kurung kurawal buka dan tutup.
  • 202. Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri dengan titik koma. Tipe di definisi fungsi menunjukkan tipe dari fungsi, dimana tipe dari fungsi ini tergantung dari tipe data hasil balik yang akan diberikan oleh fungsi.Jika hasil balik dari fungsi misalnya berupa nilai pecahan, maka tipe fungsi dapat dibuat float atau double atau long double.
  • 203. Jika fungsi tidak memberikan hasil balik, maka tipenya adalah void. Tipe dari fungsi ini dapat tidak ditulis jika tipenya adalah int atau char. Jadi, jika suatu fungsi didefinisikan tanpa menggunakan tipenya, maka akan dianggap bertipe int. Nama dari fungsi merupakan nama yang dibentuk sendiri oleh pembuat program.
  • 204. Sebuah fungsi dapat memiliki satu atau lebih argumen yang ditulis dengan dipisahkan oleh koma atau suatu fungsi dapat tidak mempunyai argumen sama sekali. Jika argumen tidak digunakan, kurung buka dan kurung tutup setelah nama dari fungsi tetap harus dituliskan. Tipe data void dapat dituliskan sebagai pengganti argumen untuk fungsi yang tidak menggunakan argumen.
  • 205. Argumen yang berada di definisi fungsi ini disebut dengan argumen formal atau parameter formal. Parameter-parameter formal ini dimaksudkan sebagai alat komunikasi untuk data yang dikirimkan dari bagian program yang menggunakan fungsi ke fungsi bersangkutan.
  • 206. Parameter-parameter formal dapat dituliskan dengan dua cara, yaitu cara baru dan cara lama. Cara baru dilakukan dengan menuliskan parameter-parameter formal yang diawali dengan tipe datanya. Contohnya: int Fungsi_Ku(float A, int B, char C) Contoh yang salah: int Fungsi_Ku(float A, B, char C)
  • 207. Cara lama untuk menuliskan parameter formal adalah dengan memecahnya menjadi dua bagian. Pertama, semua parameter formal ditulis tanpa tipe datanya. Kedua, parameter-parameter formal ini dideklarasikan terpisah dengan tipe datanya setelah definisi dari fungsi. Contoh: int Fungsi_Ku(A, B, C) float A; int B; char C; { /*tubuh fungsi*/ } /*tidak diakhiri titik koma*/ /*diakhiri titik koma*/ /*diakhiri titik koma*/ /*diakhiri titik koma*/
  • 208. Standar ANSI lebih menganjurkan penggunaan cara baru. Penulisan parameter-parameter formal dengan cara lama digunakan pada awal bahasa C diciptakan dan masih banyak yang menggunakannya sampai saat ini untuk menjaga kompatibilitas dengan kompiler C yang menggunakan cara lama. Kompiler- kompiler C yang baru umumnya mendukung dua cara penulisan ini.
  • 209. Berikut ini beberapa contoh penulisan definisi fungsi yang benar: char Ke_Besar(char C) void Tampil_N(int N) void Hapus_Layar() void Hapus_Layar(void) double Maksimum(double X, double Y)
  • 210. Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi. Parameter aktual adalah parameter yang dapat berupa variabel atau konstanta maupun ungkapan yang dipakai dalam pemanggilan fungsi.
  • 211. Suatu fungsi yang memberikan hasil balik selain tipe int perlu dideklarasikan sebelum digunakan, karena jika suatu fungsi tidak dideklarasikan akan dianggap fungsi tersebut memberikan nilai balik berupa tipe int. Untuk alasan dokumentasi program yang baik, sebaiknya semua fungsi yang digunakan dideklarasikan terlebih dahulu termasuk yang bertipe int.
  • 212. Beberapa kompiler C dapat diatur untuk selalu mendeteksi semua deklarasi fungsi- fungsi yang digunakan termasuk yang bertipe int. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan.
  • 213. Bentuk umum deklarasi fungsi: tipe nama-fungsi(argumen); Tipe adalah tipe dari fungsi yang akan digunakan dan harus sama dengan tipe fungsi yang didefinisikan
  • 214. /* ---------------------------------------------------- -------------------- Nama Program: ADP_fungsi_1_deklarasi_fungsi.cpp Mendeklarasikan Fungsi ---------------------------------------------------- -------------------- */ #include <stdio.h> #include <stdlib.h> double Absolut(double X); //deklarasi fungsi main() { float Nilai; printf("Contoh Program Mendeklarasikan Fungsin"); printf("__________________________________n"); printf("n"); Nilai = -123.45; printf("%7.2f nilai mutlaknya adalah %7.2fn", Nilai, Absolut(Nilai)); printf("n"); system("pause"); } //fungsi untuk memutlakkan nilai negatip double Absolut(double X) //definisi fungsi { if(X<0) X=-X;
  • 215. /* ---------------------------------------------------- -------------------- Nama Program: ADP_fungsi_1_deklarasi_fungsi.cpp Mendeklarasikan Fungsi ---------------------------------------------------- -------------------- */ #include <stdio.h> #include <stdlib.h> //fungsi untuk memutlakkan nilai negatip //dimana fungsi dideklarasikan terlebih dahulu double Absolut(double X) //definisi fungsi { if(X<0) X=-X; return(X); } main() { float Nilai; printf("Contoh Program Mendeklarasikan Fungsin"); printf("__________________________________n"); printf("n"); Nilai = -123.45; printf("%7.2f nilai mutlaknya adalah %7.2fn", Nilai, Absolut(Nilai)); printf("n"); system("pause");
  • 216. Prototype fungsi adalah mendeklarasikan fungsi dengan menyebutkan argumen fungsinya. Pada contoh program ADP_fungsi_1_deklarasi_fungsi.cpp, prototype fungsi terdapat pada bagian deklarasi fungsi dimana fungsi double Absolut menyebutkan argumen fungsi (double X).
  • 217. Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi dapat hanya melakukan suatu tugas saja tanpa memberikan suatu hasil balik atau melakukan suatu tugas dan kemudian memberikan suatu hasil balik. Fungsi yang hanya melakukan suatu tugas saja tanpa memberikan hasil balik misalnya adalah fungsi untuk menampilkan hasil di layar.
  • 218. /* ---------------------------------------------------------------------- ---- Nama Program: ADP_fungsi_2_hasil_balik_fungsi.cpp Hasil Balik Fungsi ----------------------------------------------------------------------- ---- */ #include <stdio.h> #include <stdlib.h> void Tampil_S_N(char *String, int N); //prototype fungsi main() { printf("Contoh Program Hasil Balik Fungsin"); printf("_____________________________n"); printf("n"); Tampil_S_N("Bahasa Cn",3); printf("n"); system("pause"); } //fungsi menampilkan n kali nilai string void Tampil_S_N(char *String, int N) //definisi fungsi { int I; for(I=1;I<=N;I++) printf(String); }
  • 219. Fungsi Tampil_S_N() pada contoh di slide sebelumnya tidak memberikan hasil balik. Fungsi yang tidak memberikan hasil balik adalah fungsi yang mempunyai tipe hasil void. Jika suatu fungsi memberikan hasil balik, makanilai hasil balik yang diberikan oleh fungsi dapat dilakukan oleh statemen return yang diikuti oleh nilai hasil baliknya yang ditulis dalam tanda kurung. Statemen return saja tanpa diikuti oleh nilai baliknya akan mengembalikan proses dari fungsi kebagian program yang memanggilnya tanpa memberikan nilai hasil baliknya.
  • 220. /* ---------------------------------------------------------------------- ---- Nama Program: ADP_fungsi_2a_hasil_balik_fungsi.cpp Hasil Balik Fungsi ----------------------------------------------------------------------- ---- */ #include <stdio.h> #include <stdlib.h> void Tampil_S_N(char *String, int N); //prototype fungsi main() { printf("Contoh Program Hasil Balik Fungsin"); printf("_____________________________n"); printf("n"); Tampil_S_N("Bahasa Cn",3); printf("n"); system("pause"); } //fungsi menampilkan n kali nilai string void Tampil_S_N(char *String, int N) //definisi fungsi { int I; for(I=1;I<=N;I++) printf(String); return; }
  • 221. Program berikut ini dimaksudkan untuk menghitung N Faktorial (N!). Nilai N! adalah sebesar 1 x 2 x ... x N dengan N adalah nilai positif. Jika N bernilai negatif atau nol,maka fungsi faktorial() akan memberikan hasil balik nilai 0. Nilai F adalah hasil balik yang akan diberikan oleh fungsi untuk nilai N positif. Variabel F ini pertama kali harus diberikan nilai awal 1. Jika nilai F mempunyai nilai awal 0, maka hasilnya akan selalu nol, karena bilangan apapun dikalikan dengan 0 hasilnya 0.
  • 222. /* -------------------------------------------------- Nama Program: ADP_fungsi_2b_hasil_balik_fungsi.cpp Hasil Balik Fungsi -------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> long int Faktorial(int N); //prototype fungsi main() { int N; long int Fak; printf("Contoh Program Hasil Balik Fungsin"); printf("_________________________________n"); printf("n"); printf("Jumlah Faktorial: ");scanf("%d",&N); Fak = Faktorial(N); printf("%d faktorial = %ldn",N,Fak); printf("n"); system("pause"); } //fungsi menghitung N faktorial long int Faktorial(int N) //definisi fungsi { int I; long int F=1; if(N<=0) return(0); for(I=2;I<=N;I++) F *=I; return(F); }
  • 223. Program di atas memberikan nilai hasil balik dengan tipe long int. Tipe nilai hasil balik adalah tipe dari fungsinya, sehingga fungsi Faktorial() ini juga harus bertipe long int. Hubungan antara bagian program yang memanggil fungsi, parameter aktual, parameter formal, dan hasil balik dari fungsi dapat digambarkan seperti pada slide berikutnya.
  • 224. Hasil dari fungsi Faktorial() ini,yaitu nilai dari F akan dtierima oleh variabel Fak di bagian program yang memanggil fungsi.
  • 225. Variabel-variabel yang digunakan untuk operasi fungsi mempunyai ruang lingkup tertentu, yaitu apakah hanya berlaku di blok statemen saja, di dalam suatu fungsi saja ataukah di semua bagian program. Terdapat tiga macam variabel, yaitu variabel lokal, global, atau statis.
  • 226. Variabel Lokal adalah variabel yang nama dan nilainya hanya dikenal di suatu blok statemen tertentu saja atau di dalam suatu fungsi. Variabel bersifat lokal jika dideklarasikan di dalam blok bersangkutan. Variabel lokal akan dihapus dari memori jika proses sudah meninggalkan blok statemen dimana variabel lokal terletak.
  • 227. /* ---------------------------------------------- Nama Program: ADP_fungsi_3_variabel_fungsi.cpp Variabel Lokal Fungsi ---------------------------------------------- */ #include <stdio.h> #include <stdlib.h> float Tambah(float A, float B); //prototype fungsi main() { float Hasil; printf("Contoh Program Variabel Lokal Fungsin"); printf("____________________________________n"); printf("n"); Hasil = Tambah(2,3); printf("%fn", Hasil); //Hasil variabel lokal fungsi utama printf("n"); system("pause"); } //fungsi menampilkan menghitung penambahan float Tambah(float A, float B) //definisi fungsi { float C; //C variabel lokal fungsi Tambah C = A + B; return(C); }
  • 228. Variabel C pada contoh program di atas merupakan variabel lokal di fungsi Tambah(). Variabel C ini tidak dikenal di fungsi main() (fungsi utama), sehingga variabel ini tidak dapat digunakan di fungsi utama. Sebaliknya variabel Hasil merupakan variabel yang sifatnya lokal di fungsi utama dan tidak dikenal di fungsi Tambah().
  • 229. Varibel Global adalah variabel yang dikenal di semua bagian-bagian tertentu dari program. Variabel-variabel global dapat dibuat dengan cara mendeklarasikan di luar suatu blok statemen atau di luar fungsi-fungsi yang menggunakannya.
  • 230. /* ---------------------------------------------- Nama Program: ADP_fungsi_3_variabel_fungsi.cpp Variabel Global Fungsi ---------------------------------------------- */ #include <stdio.h> #include <stdlib.h> float Tambah(float A, float B); //prototype fungsi float C; //C variabel global main() { printf("Contoh Program Variabel Global Fungsin"); printf("_____________________________________n"); printf("n"); Tambah(2,3); printf("%fn",C); printf("n"); system("pause"); } //fungsi menghitung penambahan float Tambah(float A, float B) //definisi fungsi { C = A + B; return(C); }
  • 231. Variabel C dideklarasikan di luar fungsi utama dan fungsi Tambah(),sehingga bersifat global (dikenal dan dianggap sama) di kedua fungsi tersebut. Karena bersifat global, maka perubahan nilai variabel C di salah satu fungsi tersebut berarti juga merubah nilai variabel C di fungsi yang lainnya.
  • 232. Variabel statik bersifat tetap, yaitu tidak dihapus variabel dan nilainya selama proses program. Berbeda dengan variabel lokal, yaitu variabelnya akan dihapus setelah proses keluar dari blok yang mendeklarasikannya, maka variabel statik akan tetap ada dan nilainya akan tetap dipertahankan walaupun proses telah keluar dari bloknya. Variabel statik dibuat dengan dideklarasikan menggunakan pengubah dari (modifier) static.
  • 233. /* ---------------------------------------------- Nama Program: ADP_fungsi_5_variabel_fungsi.cpp Variabel Statik Fungsi ---------------------------------------------- */ #include <stdio.h> #include <stdlib.h> long int X(long int N); //prototype fungsi main() { int I, N; long int Fak; printf("Contoh Program Variabel Statik Fungsin"); printf("________________________________n"); printf("n"); printf("Berapa Jumlah Faktorial: ");scanf("%d",&N); printf("n"); //menghitung N faktorial if(N<=0) Fak=0; else for(I=1;I<=N;I++) Fak=X(I); printf("%d faktorial = %ldn", N, Fak); system("pause"); } //fungsi X long int X(long int I) //definisi fungsi { static long int F=I; F = F * I; return(F); }
  • 234. Pengiriman paramater ke suatu fungsi dapat dilakukan dengan dua cara, yaitu pengiriman secara nilai (by value) atau secara acuan (by reference). Pengiriman secara nilai yang dikirimkan adalah nilai, sedangkan pengiriman secara acuan yang dikirimkan adalah alamat dari nilainya.
  • 235. Pengiriman parameter secara nilai mempunyai karakteristik: 1. Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya. 2. Fungsi yang menerima kiriman nilai ini akan menyimpannya di alamat yang terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi. 3. Karena alasan nomor 2 di atas, maka perubahan nilai di fungsi tidak akan merubah nilai asli di bagian program yang memanggil fungsi walaupun keduanya menggunakan nama variabel yang sama. 4. Pengirimannya searah, artinya dari bagian program yang memanggil fungsi ke fungsi yang dipanggil. 5. Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel atau elemen larik atau konstanta saja.
  • 236. /* ------------------------------------------------------ ---------------------------------- Nama Program: ADP_fungsi_6_pengiriman_parameter_byvalue.cpp Pengiriman Parameter Secara Nilai (by value) ------------------------------------------------------ ---------------------------------- */ #include <stdio.h> #include <stdlib.h> void Secara_Nilai(float A, float B, char C); //prototype fungsi main() { char C = 'a'; float A = 25, *Alamat_A; Alamat_A = &A; printf("Contoh Program Pengiriman Parameter Secara Nilain"); printf("__________________________________________n"); printf("n"); Secara_Nilai(A, A/3, C); printf("Di fungsi utama setelah memanggil fungsi Secara_Nilai: n"); printf("Nilai A adalah %f di alamat %pn", A, Alamat_A); printf("Nilai A/3 adalah %fn", A/3); printf("Nilai karakter C adalah %cn", C); printf("n"); system("pause"); } //fungsi Secara_Nilai void Secara_Nilai(float A, float B, char C) //definisi fun { float *Alamat_A; Alamat_A = &A; A = 7; printf("Di fungsi Secara_Nilai: n"); printf("Nilai A adalah %f di alamat %pn", A, Alamat printf("Nilai B adalah %fn", B); printf("Nilai karakter C adalah %cnn", C); }
  • 237.
  • 238. Dari hasil program contoh di atas dapat dijelaskan sebagai berikut: 1. Parameter-parameter aktual yang dikirimkan adalah nilai datanya, yaitu untuk variabel A, A/3 dan C sebagai berikut: Secara_Nilai(A, A/3, C); 2. Variabel-variabel A dan C menempati memori berbeda untuk fungsi utama yang memanggil fungsi dan yang digunakan di fungsi Secara_Nilai(). Untuk fungsi utama, nilai variabel A disimpan di alamat 0012FF50, sedang di fungsi Secara_Nilai(), nilai variabel A disimpan di alamat memori 0012FF38. 3. Perubahan nilai variabel A di fungsi Secara_Nilai() menjadi bernilai 7 tidak merubah nilai variabel A di fungsi utama yang akan tetap bernilai 25. 4. Pengiriman suatu nilai merupakan pengiriman satu arah seperti terlihat berikut ini 5. Pengiriman secara nilai dapat mengirimkan suatu ungkapan, yaitu A/3