Soal 1

advertisement
Memulai Pemrograman C++
Sparisoma Viridi dan Suprijadi
1
Materi kuliah
•
•
•
•
•
•
•
•
Asumsi untuk peserta
Program hello
Komentar program
Penamaan variabel
Jenis-jenis variabel
Struktur program
Contoh program
Sekilas fungsi
2
Asumsi untuk peserta
• Compiler g++ telah terinstal (baik dalam OS
Windows, Linux, ataupun Mac)
• Penyunting teks ASCII telah terinstal
(Notepad++, Kate, Kwrite, Joe, Emacs, Pico,
Nano, ..)
• Peserta kuliah telah pernah menggunakan
console atau command prompt
3
Program hello
• Program paling sederhana
• Standar berbagai sistem yang menghasilkan
keluaran (PC, microcontroller, gadget, ..)
• Uji antarmuka dengan pengguna
4
Program hello (cont.)
• Code program
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
cout << "Hello world!" << endl;
return 0;
}
5
Program hello (cont.)
• Kompilasi
$ g++ hello.cpp
• Eksekusi (Linux)
$ ./a.out
• Eksekusi (Windows)
$ a.exe
6
Program hello (cont.)
• Keluaran
Hello world!
7
Program hello (cont.)
• Soal 1. Bagaimana mengubah cara kompilasi
apabila berkas keluaran yang dapat dieksekusi
memiliki nama hello?
• Soal 2. Bila nama Anda adalah X, ubahlah
program hello sehingga menghasilkan
keluaran
Hello X, apa kabar?
8
Komentar program
• Dapat hanya satu baris
// Ini adalah baris komentar
• Dapat terdiri dari beberapa baris
/*
Ini adalah blok baris-baris
yang berisikan komentar
*/
9
Komentar program (cont.)
• Jangan malas menuliskan komentar
• Tuliskan hal-hal yang dapat membantu Anda
dan juga pembaca program Anda untuk
mengerti kode program yang dituliskan
• Umumnya programer pemula malas untuk
menuliskan komentar
• Beberapa saat setelah menulis program,
programer dapat lupa maksudnya
10
Komentar program (cont.)
• Ilustrasi pemberian komentar
// Rumus akar persamaan kuadrat
double D = b * b – 4 * a * c;
double x1 = (-b + sqrt(D)) / (2*a);
double x2 = (-b - sqrt(D)) / (2*a);
• Komentar dapat diperjelas dengan
// Persamaan kuadrat
// y = a * x^2 + b * x + c
11
Komentar program (cont.)
• Komentar yang kurang jelas
// Konversi temperatur
double y1 = (x / 5) * 9 + 32;
double y2 = (x – 32) / 9 * 5;
• Soal 3. Apakah Anda dapat menduga maksud
potongan kode di atas? Bagaimanakah komentar tersebut dapat diperjelas?
12
Penamaan variabel
• Dimulai dengan huruf
• Setelahnya diikuti dengan huruf, angka, atau
garis bawah
• Huruf besar dan kecil terbedakan
• Tidak boleh menggunakan reserved words
• Soal 4. Dapatkah Anda menyebutkan 10 buah
contoh reserved words?
13
Penamaan variabel (cont.)
• Dipilih sedapat mungkin agar keterbacaan
kode menjadi mudah
• Manakah potongan kode di bawah ini yang
lebih mudah dimengerti? Baris ini?
A = a * t / 2;
Ataukah baris ini?
luas = alas * tinggi / 2;
14
Penamaan variabel (cont.)
• Keterbacaan kode dapat ditingkatkan dengan
menggunakan komentar dan pemilihan
variabel yang sesuai
// p: tekanan
// Vi: volume awal (inisial)
// Vf: volume akhir (final)
// W: usaha gas pada proses isobarik
W = p * (Vf – Vi);
15
Penamaan variabel (cont.)
• Bandingkan dengan kode sebelumnya
// x:
// y:
// z:
// a:
a = x
tekanan
volume awal (inisial)
volume akhir (final)
usaha gas pada proses isobarik
* (z – y);
• Manakah kode yang lebih jelas menurut
Anda?
16
Penamaan variabel (cont.)
• Soal 5. Sebuah benda bermassa m ditimbang
dengan menggunakan neraca pegas, di mana
benda tersebut tenggelam dalam fluida dengan rapat massa ρ. Buatlah potongan kode
dengan menggunakan komentar dan pemilihan nama variabel yang tepat sehingga kode
tersebut memiliki keterbacaan yang baik. Percepatan gravitasi di tempat tersebut adalah g.
Tentukan bacaan dari neraca pegas.
17
Jenis-jenis variabel
•
•
•
•
•
Bilangan bulat (integer): int
Bilangan riil (double): double
Logika bolean (boolean): bool
Karakter (character): char
Kumpulan karakter (string): string
18
Jenis-jenis variabel (cont.)
• Dapat didefinisikan dulu, diberi nilai kemudian
double x;
x = 1.602E-19;
• Didefinisikan sekaligus diinisialisasi nilainya
double x = 1.602E-19;
• Adakah nama variabel yang lebih baik atau
tepat untuk x?
19
Jenis-jenis variabel (cont.)
• Contoh jenis variabel yang lain
int a = -3;
bool GENAP = true;
char = 'A';
string nama = "Mahasiswa";
• Terdapat pula jenis variabel yang belum
dibahas saat ini, misalnya: short, long,
unsigned, single, ..
20
Jenis-jenis variabel (cont.)
• Soal 6. Tunjukkan baris mana yang benar dan
baris mana yang salah dari potongan kode di
bawah ini terkait dengan jenis variabel dan
nilainya.
double x = 1;
int y = 1.2;
char z = 'ab';
string = "u";
bool = 'true';
21
Struktur program
• Judul dan keterangan terkait
/*
akar.cpp | Versi 20140831
Menghitung akar persamaan kuadrat
Sparisoma Viridi | [email protected]
Compile: g++ akar.cpp –o akar
Execute: ./akar
*/
• Soal 7. Jelaskan maksud setiap baris kode.
22
Struktur program (cont.)
• Pustaka yang digunakan
#include
#include
#include
#include
#include
#include
<iostream>
<fstream>
<cstring>
<cstdlib>
<cmath>
"simulasi.h"
• Soal 8. Apakah perbedaan dari <> dan ""?
23
Struktur program (cont.)
• Ruang nama (namespace) yang digunakan
using namespace std;
• Untuk menampilkan tulisan pada console
cout << "Hello" << endl;
std::cout << "Hello" << endl;
• Soal 9. Seberapa efesien penggunaan ruang
nama dalam contoh di atas?
24
Struktur program (cont.)
• Definisi fungsi-fungsi yang dibuat
void hello(void);
double luas(double, double);
• Soal 10. Apakah Anda dapat menebak maksud
dari kedua fungsi di atas? Jelaskan.
25
Struktur program (cont.)
• Program utama
int main(int argc, char *argv) {
// Kode dalam program utama
double A = luas(1.0, 2.0);
// Nilai balikan:
// 0: program berjalan baik
// .. nilai-nilai lain
return 0;
}
26
Struktur program (cont.)
• Badan fungsi-fungsi sebelumnya
void hello(void) {
cout << "Hello" << endl;
}
double luas(double alas, double tinggi)
double x = alas * tinggi / 2;
return x;
}
27
Struktur program (cont.)
• Dengan demikian susunan program utuh
adalah
Judul dan keterangan terkait
Pustaka yang digunakan
Ruang nama (namespace) yang digunakan
Definisi fungsi-fungsi yang dibuat
Program utama
Badan fungsi-fungsi sebelumnya
28
Contoh program
• Perhatikan fungsi di bawah ini
double akar(double a, double b, double c, int n)
{
double D = b*b – 4*a*c;
double x = -b / (2*a);
if(n == 1) {
x = x + sqrt(D) / (2*a);
} else {
x = x - sqrt(D) / (2*a);
}
return x;
}
29
Contoh program (cont.)
• Soal 11. Pustaka apa saja yang diperlukan
agar fungsi akar() dapat digunakan?
• Soal 12. Buatlah suatu program utuh dengan
memanfaatkan fungsi akar() tersebut, di
mana nilai a, b, dan c diberikan dan program
dapat menampilkan keluaran kedua akar yang
dicari.
30
Sekilas fungsi
• Fungsi adalah suatu bagian program yang
mengerjakan satu satuan pekerjaan dan sering
digunakan
• Definisi
jenis_variabel nama_fungsi(
jenis_variabel variabel_1,
jenis_variabel variabel_2,
..) {
// Isi fungsi
}
31
Sekilas fungsi (cont.)
• Fungsi dapat mengembalikan nilai berbentuk
jenis_variabel tertentu atau tidak sama
sekali (void)
• Nilai balikan diberikan pada akhir fungsi
dengan menggunakan return
32
Sekilas fungsi (cont.)
• Pisahkan antara menampilkan hasil,
menyimpan data, atau proses I/O dengan
proses perhitungan dalam suatu fungsi
• Hal ini bertujuan agar saat kode ingin
dimodifikasi, ditingkatkan kemampuannya,
atau lainnnya, cukup bagian tersebut yang
perlu diubah
• Ilustrasi: keluaran semula ke console menjadi
ke berkas (file)
33
Sekilas fungsi (cont.)
• Lebih detil mengenai fungsi akan dibahas
pada pertemuan berikutnya 
34
Terima kasih
35
Download