Modul Praktikum Dasar Pemrograman - 2
Modul Praktikum Dasar Pemrograman - 2
Disusun oleh:
Alfian Ma’arif, S. T., M. Eng.
LABORATORIUM KOMPUTER
PRAGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
2020
DAFTAR ISI
2
PRAKTIKUM I
PENGANTAR BAHASA C
A. KOMPETENSI DASAR
C. DASAR TEORI
3
1: #include <file_header>
2: [deklarasi obyek]
3: [void] main ( )
4: {
5: [deklarasi variabel]
6: [pernyataan;]
7: … // isi program
8: [return nilai;]
9: }
Keterangan program:
header yang berisi obyek bawaan dari C yang digunakan dalam program.
Baris 3: Merupakan program utama yang berupa fungsi main ( ), satu-satunya fungsi
yang harus ada dalam program C, keyword void menunjukkan bahwa fungsi
Baris 4: {… Adalah awal blok (bisa awal blok program/fungsi atau awal blok
pernyataan majemuk).
fungsi.
Baris 6,7: Merupakan isi dari program, yang terdiri dari pernyataan-pernyataan C.
semicolon.
4
Tanda // (double slash) merupakan tanda penulisan komentar, selain itu C
berupa nama pembuat kode, tanggal pembuatan, fungdi perintah atau bagian
peka/membedakan huruf kecil dan besar, variabel a dengan variabel A adalah dua hal
yang berbeda.
} // akhir program
Setelah program disimpan dalam file dengan ekstensi .cpp, kemudian program
dikompile dan dieksekusi, maka hasilnya berupa tulisan pada layar terminal:
Program C memang tidak pernah lepas dari fungsi. Sebuah program C minimal
mengandung sebuah fungsi, yaitu fungsi main( ). Fungsi ini menjadi awal dan akhir
eksekusi program C.
5
Instruksi yang diawali dengan symbol # adalah sebuah direktif, bukan instruksi yang
akan dijalankan pada saat program yang dibuat dieksekusi, tetapi merupakan perintah
merupakan file header yang berisi definisi variabel, konstanta, dan fungsi untuk
digunakan dalam program. Direktif ini biasanya diletakkan di bagian awal program.
Semua program C memiliki sebuah fungsi utama yang akan dijalankan pertama kali
Kode escape adalah kode karakter yang penulisannya diawali dengan symbol \ (back
slash).
D. TUGAS PENDAHULUAN
6
6. Semua program C memiliki sebuah fungsi utama yang akan dijalankan pertama kali
LANGKAH PERCOBAAN
2. Klik Tombol New, pilih empty file atau dari menu File – New – Empty File.
3. Simpan file dengan menu: file-save atau tekan tombol SAVE (atau pilih menu File-
5. Kompile dan jalankan program sekaligus dengan memilih menu: Build – Build and
6. Jika ada kesalahan muncul jendela message, perbaiki program sesuai dengan peran
Program1_1.c
Program1_1.c
main( )
{
puts(“Hallo kawan!“)
}
7
#include <stdio.h>
Sebelum tanda } tambahkan:
return 0;
Perbaiki pula Error yang lain jika ada.
Program1_2.c
Buatlah program menggunakan puts untuk menampilkan tulisan berikut di layar. (isi titik-
titik dengan nama anda). Hasil eksekusi program adalah sbb:
Program1_3.c
Gantilah fungsi puts pada program sebelumnya menjadi printf (tanpa mengubah
parameternya). Apa yang terjadi? Apa perbedaan antara puts dan printf?
Program1_4.c
Buatlah program menggunakan fungsi puts dan printf untuk menampilkan tulisan berikut
di layar. Hasil eksekusi program adalah sebagai berikut:
E. TUGAS
Perhatikan hasil eksekusi ketiga program berikut. Bagaimana efek karakter escape /t, /n,
/r dan /a? Apa Fungsi perintah /t, /n, /r dan /a?
Program1_5_1.c
8
#include <stdio.h>
void main()
{
printf (“1 \t2 \t3 \t4 \t5 \t6 \t7 \t8 \n”) ;
printf (“Program \tKomputer \tBahasa \tC++”) ;
printf (“\t di Lab \t ini \n”) ;
printf (“Saya sedang mempelajari \r”) ;
}
Program1_5_2.c
#include <stdio.h>
void main()
{
printf (“kode escape \n”) ;
}
Program1_5_3.c
#include <stdio.h>
void main()
{
puts(“suara apakah ini? \a”) ;
}
9
PRAKTIKUM II
A. KOMPETENSI DASAR
B. TUJUAN
VARIABEL
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap,
nilai dari suatu variabel bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variabel
Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
Karena bersifat case-sensitive sehingga antara nim, NIM dan Nim dianggap berbeda
10
Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah (underscore).
$,?,%,#,!,%,*,(,),-,+,= , dsb
OPERATOR ARITMATIKA
* untuk perkalian
/ untuk pembagian
+ untuk pertambahan
- Untuk pengurangan
OPERATOR PEMBANDING
== Sama dengan
11
OPERATOR LOGIKA
|| Logika OR (ATAU)
TIPE DATA
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi
setiap instruksi yang akan dilaksanakan oleh komputer. Misalnya saja 5 dibagi 2 bisa saja
menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer
maka akan menghasilkan nilai 2 namun jika keduanya bertipe float maka akan
menghasilkan nilai 2.5000000. pemilihan tipe data yang tepat akan membuat proses
(short)
12
1 byte True atau false Boolean
Bool
Kedua fungsi ini digunakan untuk mengambil input dari keyboard dan memasukkannya
ke dalam suatu variabel, hanya saja parameter keduanya berbeda. Fungsi gets hanya dapat
mengambil input bertipe string, sedangkan scanf dapat mengambil input bertipe string
D. TUGAS PENDAHULUAN
13
2. Mengapa tipe data sangat penting?
E. LANGKAH PERCOBAAN
Program_2_1.c
#include <stdio.h>
main( )
{
char nama[20];
printf(“Masukkan namamu: ”);
gets (nama);
printf(“Hallo ”);
puts(nama);
printf(“Betul kan, namamu %s?\n”, nama);
return 0;
}
Ganti:
gets (nama);
menjadi:
scanf (“%s” , nama);
14
Program matematika bilangan bulat & riil : pembagian
Program_2_2.c
#include <stdio.h>
main ( )
{
int a = 10, c;
float b = 3.5, d;
c = a/b; d = a/b;
printf (“a = %d\n”,a);
printf (“b = %f\n”,b);
printf (“c = %d\n”,c);
printf (“d = %f\n”,d);
return 0;
}
Perhatikan cara menginisialisasi nilai variabel a dan b.
15
Program input ke variabel bilangan : menghitung akar
Program_2_3.c
#include <stdio.h>
main ( )
{
int a ;
float b ;
printf (“Masukkan nilai a = ”) ;
scanf (“%d” ,a) ;
b = sqrt (a) ;
printf (“Akar dari a = %f ” ,b) ;
return 0;
}
Tambahkan #include <math.h> pada bagian atas, lalu compile lagi. Jika berhasil,
jalankan.
Ganti:
scanf (“%d”,a);
menjadi:
scanf (‘%d”,&a);
Parameter scanf adalah pass by reference, sehingga harus diberi alamat variabel .
Notasi “&” digunakan untuk menunjukkan alamat variabel “a” atau pointer ke variabel
“a”
Jalankan program yang sudah diperbaiki. Isi nilai a dengan 9, 16, 25, dll.
16
Ganti:
scanf (“%d”,&a);
menjadi:
scanf (“%f,&a);
(10) Apa yang terjadi? (11) Mengapa harus %d, dan bukannya %f?
Ganti:
menjadi:
printf (“akar dari a = %d”,b);
(12) Apa yang terjadi? (13) Mengapa harus %f, dan bukannya %d?
Program_2_4.c
#include <stdio.h>
main ( )
{
float a, b, c, rerata;
Jalankan program di atas dengan mengisikan tiga buah bilangan dengan diselingi spasi
17
Program menghitung invers
Program_2_5.c
#include <stdio.h>
main ()
{
int a;
float b, c;
18
D. TUGAS
Compile dan jalankan program berikut. Meskipun nilai b dan c memiliki tipe data
yang berbeda, perhatikan hasil program pada terminal meskipun operasinya sama?
Program_2_6.c
#include <stdio.h>
main()
{
float a=3, b;
double c;
b = 1000/a;
c = 1000/a;
printf (“a = %f\n”, a);
printf (“b = %f\n”, b);
printf (“c = %f\n”, c);
}
19
2. Peraturan tampilan
Compile dan jalankan program berikut. Perhatikan tampilan nilai a dan b untuk
setiap format specifier yang berbeda. Tuliskan secara singkat maksud dari masing-
Program_2_7.c
#include <stdio.h>
main()
{
double a=3.0, b;
b = 1000.0/a;
printf (“a = %f\t\t b = %f\n”, a, b);
printf (“a = %7.2f\t\t b = %7.2f\n”, a, b);
printf (“a = %+7.4f\t\t b = %+7.4f\n”, a, b);
printf (“a = %g\t\t b = %g\n”, a, b);
printf (“a = %e\t b = %e\n”, a, b);
printf (“a = %5.2e\t\t b = %5.2e\n”, a, b);
}
20
PRAKTIKUM III
INPUT & OUTPUT
A. KOMPETENSI DASAR
Setelah menyelesaikan praktikum ini, mahasiswa dapat memahami implementasi konsep
dasar pemrograman dengan alat bantu Code Blocks.
C. DASAR TEORI
21
Ketika file stream digunakan unutk membuka file, maka operasi-operasi input/output
pada stream tersebut secara fisik terlihat pada file tersebut. Pada level paling bawah, suatu
file diinterpretasikan sebagai suatu barisan atau stream dari bytes. Pada level ini konsep
tipe data tidak ada. Sedangkan pada level user, suatu file terdiri dari suatu barisan data dari
satu atau lebih tipe karakter, nilai-nilai numeric, dan obyek-obyek kelas.
Pernyataan/perintah keluaran/output adalah pernyataan yang dipakai untuk
menampilkan suatu data ke perangkat output, misal layar monitor. Argument dapat berupa
data string atau variabel yang sudah dideklerasikan. Perintah yang digunakan adalah cout.
Operasi output dilakukan oleh operator leftshift atau operator insertion (<<). Sintaksis yang
digunakan pada perintah keluaran tersebut adalah :
cout << daftar_keluaran
Pernyataan/perintah masukan/input adalah pernyataan yang dipakai untuk
memasukan suatu harga ke dalam variabel tertentu dari perangkat input, misal keyboard.
Perintah yang digunakan adalah cin. operasi input dilakukan oleh operator rightshift atau
operator extraction (>>). Sintaksis yang digunakan untuk perintah masukan adalah sebagai
berikut :
D. TUGAS PPENDAHULUAN
1. Jelaskan apa yang dimaksud dengan:
a. Stream
b. Extraction eperator
c. Insertion operator
2. Jelaskan fungsi perintah cin dan perintah cout
3. Tuliskan sintaksis yang digunakan pada perintah masukan dan keluaran !
E. LANGKAH PERCOBAAN
Program_3_1.cpp
#include<iostream.h>
main()
22
{
cout<<”Assalamualaikum…!\nSaya sedang belajar
bahasa C++”
}
Program _3_2.cpp
#include<iostream.h>
main()
{
Cout<< “Assalamualaikum…!” <<end1
<< “Saya sedang belajar bahasa
C++”;
}
Buatlah program menggunakan cout untuk menampilkan tulisan yang sama dengan
program_l_2 pada soal no (2) pada pratikum unit 1 (3). Beri nama Program_3_3.cpp
23
Input string menggunakan stream : Nama
Program_3_4.cpp
#include<iostream.h>
main()
{
char nama[80];
Cout<<”Masukkan nama: “;
Cin >> nama;
Cout << “Hallo “ << nama << end1
<< “Betul kan, namamu “ << nama;
}
Program_3_5.cpp
#include <iostream.h>
main()
{
int a;
float b;
Bandingkan dengan program serupa pada Pratikum unit 1 yang mengisikan variabel
dengan fungsi scanf. Apakah perbedaan perlakuan terhadap variabel a untuk input
menggunakan cin dalam program_3_5.cpp dengan program menggunakan scanf (6)?
Ganti tipe variabel a menjadi bilangan riil. Periksalah apakah ada bagian lain yang perlu
dimodifikasi akibat pergantian tipe data tersebut ? (7)
24
Program_3_6.cpp
#include <iostream.h>
main()
{
float a, b, c, rerata;
Apakah kesalahan dalam program tersebut (8)? Bagaimanakah yang benar (9)?
Jelaskan program di atas dengan mengisikan tiga buah bilangan dengan diselingi spasi
(contoh: 10 20 45).
Dalam membuat program, usahakan agar mudah dimengerti, yaitu dengan memberi nama
variabel yang mempunyai arti, memberi keterangan, dan membuat program terstruktur
dengan baik.
25
F. TUGAS
Buatlah program untuk mengisikan data diri melalui keyboard dan menampilkan di layar
berikut ini; kemudian lakukan modifikasi agar tampilan data tampak lebih rapi. Beri
penjelasan untuk tiap baris instruksi.
Program_3_7.cpp
main() (2)
{ (3)
CharNama[50],Alamat (4)
[40],progStudi[15]; (5)
int angkatan; (6)
26
PRAKTIKUM IV
PERCABANGAN (1)
A. KOMPETENSI DASAR
Setelah menyelesaikan praktikum ini, mahasiswa dapat memahami implementasi konsep
bahasa pemrograman dengan alat bantu Code Blocks.
C. DASAR TEORI
Dalam bahasa C++, struktur kondisional didukung oleh dua perintah dasar yaitu : if dan
switch. Bentuk perintah if mempunyai beberapa variasi sebagai berikut :
a. Bentuk if pertama
Struktur sintaksis if pertama mempunyai bentuk sebagai berikut :
if (kondisi)
{
Pernyataan
}
Bentuk pertama ini merupakan bentuk perintah if yang paling sederhana. Dalam bentuk
ini, pernyataan akan dikerjakan jika kondisi bernilai benar. Nilai benar dalam bahasa C++
dinyatakan dengan nilai 1 (satu) sedang nilai yang salah dinyatakan dengan nilai 0 (nol).
b. Bentuk if kedua
Struktur sintaksis if kedua mempunyai bentuk sebagai berikut :
27
if (kondisi)
{
Pernyataan
}
else
{
Pernyataan
lain
}
Dalam bentuk kedua, jika kondisi bernilai benar, maka mengerjakan pernyataan. Tetapi
jika kondisi bernilai salah, maka yang dikerjakan pernyataan lainnya.
if (kondisi 1)
{
pernyataan 1;
}
else if (kodisi 2)
{
Pernyataan 2
}
...
Else
{
Pernyataan lain ;
}
28
Bentuk ketiga ini merupakan perluasan bentuk kedua if yang mana dalam pernyataan else
terdapat if lagi. Bentuk ini digunakan untuk menyatakan pilihan yang lebih dari dua.
Dalam bentuk ini terdapat beberapa kondisi yang akan diuji oleh perintah if. Jika salah
kondisi benar, maka pernyataan yang bersesuaian dengan kondisi tersebut akan dikerjakan.
Jika seluruh kondisi tidak ada yang benar, maka akan dikerjakan pernyataan yang lain.
D. TUGAS PENDAHULUAN
1. Dua perintah dasar struktur kondisional dalam C++ adalah....dan....
2. Jelaskan struktur sintaksis if, if-else, if-else if
3. Buat program sederhana yang menggunakan struktur kondisional
a. if
b. if-else
c. if-else if
E. LANGKAH PERCOBAAN
Percabangan tunggal
Program_4_1.cpp
#include <iostream.h>
using namespace std;
int main()
{
int umur;
cout << “masukkan umurmu = “;
cin >> umur;
if umur >= 60;
cout << “ Hallo Mbah…!! ” << endl;
cout << “ Jadi umurmu ” << umur << “ tahun”;
}
Compile program tersebut. Error message apakah yang muncul (1). Bagaimana yang
benar? (2). Perbaiki program tersebut dan jalankan beberapa kali dengan mengisikan nilai
umur yang bervariasi.
Program_4_2.cpp
Tambahkan baris berikut :
Setelah baris
29
cout << “ Hallo mbah…!! ” << endl ;
Program_4_3.cpp
Buatlah program sesuai contoh berikut :
#include <iostream.h>
using namespace std;
int main()
{
int tahun, umur ;
cout << “masukkan tahun kelahiranmu = “;
cin >> tahun;
Umur = 2009-tahun;
Cout << “Umurmu\t” << umur << “tahun\n”;
if (umur < 17);
cout << “kamu belum sweet seventeen\n”;
cout << “belum cukup umur\n”;
}
Compile program tersebut. Jalankan dan isikan tahun kelahiranmu, misal 1994, 1975, atau
yang lain. (5) Kesalahan apakah yang terjadi? (6) Bagaimanakah yang benar ?
Program_4_4.cpp
Percabangan IF-ELSE
#include <iostream.h>
using namespace std;
int main()
{
int N;
cout << “masukkan nilai (0 s/d 100)= ” ;
cin >> N;
if (N >= 50)
cout << “lulus”
else (N < 50)
cout << “Tidak lulus”;
}
30
(7) Error apakah yang muncul? (8) Bagaimanakah yang benar? Perbaiki dan jalankan
dengan mengisikan beberapa nilai N.
Program_4_5.cpp
Percabangan bertingkat : IF-ELSE IF
#include<iostream.h>
using namespace std;
int main()
{
int N;
Jalankan dan isikan nilai 15, 25, 50, 75 dan 100. Hasilnya tidak sesuai dengan yang
seharusnya. (9) Jelaskan mengapa bisa terjadi seperti itu? Perbaiki program di atas dengan
struktur percabangan bertingkat : if. . . else if. . .dst.
Buat flowchart program tersebut (10).
Program_4_6.cpp
Kondisi kombinatorial
Perbaiki Program_4_5.cpp dengan kondisi yang merupakan kombinasi logika, misalnya
jika N lebih dari atau sama dengan 60 tetapi kurang dari 80 maka …, tanpa menggunakan
percabangan bertingkat. Buat flowchart dari program tersebut (11).
F. TUGAS
Menu : Program Konversi Suhu
Program_4_7.cpp
31
Buatlah program untuk menghitung konversi suhu dari C ke F dan sebaliknya. Program
dimulai dengan mengisikan suhu yang akan dikonversi, kemudian manampilkan pilihan
(menu) sebagai berikut :
Setelah dipilih, maka program melakukan perhitungan konversi sesuai dengan yang dipilih
dan menampilkan hasilnya. Gunakan struktur percabangan if untuk program tersebut. Buat
flowchart-nya terlebih dahulu, kemudian buat programnya.
32
PRAKTIKUM V
PERCABANGAN (2)
A. KOMPETENSI DASAR
Setelah menyelesaikan praktikum ini, mahasiswa dapat memahami implementasi konsep
dasar pemrograman dengan alat bantu Code Blocks.
C. DASAR TEORI
Kasus yang terjadi pada if bertumpuk, kadang dapat membosankan dalam menulis program,
karena menulis beberapa perintah yang hampir sama secara berulang – ulang. Hal demikian
akan semakin terlihat jika ekspresi yang harus diuji oleh perintah if semakin banyak. Dalam
kasus seperti ini C++ menyediakan perintah khusus yaitu switch. Perintah switch
memungkinkan untuk melakukan sejumlah tindakan berbeda terhadap sejumlah kemungkinan
nilai. Bentuk umum perintah switch adalah sebagai berikut.
switch (ekspresi)
{
case label1: pernyataan1; break;
case label1: pernyataan1; break;
…
default: pernyataan lain;
}
Bentuk perintah tersebut dibaca:
Jika ekspresi sama dengan label1, maka kerjakan pernyataan1.
Jika ekspresi sama dengan label2, maka kerjakan pernyataan2.
…
Dan seterusnya
Jika ekspresi tidak sesuai dengan semua label, maka kerjakan
pernyataan lain.
33
Jadi misalnya ekspresi sama dengan label1, maka pernyataan1 akan dieksekusi hingga
ditemukan statemen break, kemudian program akan melompat ke bagian akhir struktur
switch.
Pernyataan switch penggunaannya terbatas, yaitu bahwa label hanya dapat berupa konstanta
bertipe char atau int.
D. TUGAS PENDAHULUAN
1. Jelaskan penggunaan struktur kondisional switch.
2. Jelaskan struktur sintaksis switch.
3. Jelaskan fungsi perintah break, label, goto.
4. Jelaskan keterbatasan struktur switch.
E. LANGKAH PERCOBAAN
char kategori;
float diskon;
int main()
{
cout << ”Kategori pelanggan (A/ B/ C/ D/ E) = ”;
cin >> kategori;
switch(kategori)
{
case ’A’:
diskon=40;
case ’B’:
diskon=25;
case ’C’:
case ’D’:
diskon=10;
default:
diskon=0;
}
cout << ”Diskon = ” << diskon << “%”;
}
34
1.3. Program_5_2.cpp
Jalankan program berikut dan isikan pilih = 1, 2, 3, dan 4. Bagaimana keluarannya? (3).
#include<iostream>
using namespace std;
int pilih;
int main()
{
cout << “Pilihan” << endl;
cout << “1. Jakarta ” << endl;
cout << “2. Bandung ” << endl;
cout << “3. Surabaya ” << endl;
cout << endl;
cout << “Pilihan = ”;
cin >> (pilih);
switch(pilih)
{
case 1:
cout << “Pilihan ke Jakarta” << endl;
break;
case 2:
cout << “Pilihan ke Bandung” << endl;
break;
case 3:
cout << “Pilihan ke Surabaya” << endl;
break;
default:
cout << “Pilihan Anda Salah” << endl;
break;
}
}
Modifikasilah Program_5_2.cpp sehingga akan keluar tampilan sebagai berikut (4).
Konsentrasi yang dipilih
1. Teknik Kendali
2. Teknik Elektronika dan Telekomunikasi
3. Teknik Komputer dan Teknologi Informasi
Pilihan = 1
Teknik Kendali
int main()
{
35
cout << ”Ini langkah pertama” << endl;
goto LABEL2;
LABEL1:
cout << “Ini langkah kedua” << endl;
goto LABEL3;
LABEL2:
cout << “Ini langkah ketiga” << endl;
goto LABEL1;
LABEL3:
cout << “Ini langkah keempat” << endl;
}
F. TUGAS
Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya.
Program dimulai dengan mengisikan suhu yang akan dikonversi, kemudian menampilkan
pilihan (menu) sebagai berikut.
Pilih konversi berikut
A. Celcius ke Fahrenheit
B. Fahrenheit ke Celcius
C. Celcius ke Reamur
D. Reamur ke Celcius
E. Fahrenheit ke Reamur
F. Reamur ke Fahrenheit
Setelah dipilih, maka program melakukan perhitungan konversi sesuai dengan yang dipilih
dan menampilkan hasilnya. Pergunakan struktur percabangan switch. Buat flowchart terlebih
dahulu, kemudian susun programnya.
36
PRAKTIKUM VI
PERULANGAN
G. KOMPETENSI DASAR
I. DASAR TEORI
Perulangan adalah suatu tindakan untuk melakukan hal yang serupa berkali-kali, misalnya
menampilkan tulisan “Teknik Elektro UAD” seratus kali.
1.6. Perulangan Bersyarat “Periksa-Jalankan”: WHILE
Struktur while mempunyai bentuk sebagai berikut:
while (kondisi)
{
Pernyataan;
}
1.7. Perulangan Bersyarat “Jalankan-Periksa”: DO-WHILE
Struktur perulangan do-while mempunyai bentuk sebagai berikut:
do
{
Pernyataan;
}
while (kondisi);
Bentuk perintah tersebut dibaca:
Kerjakan pernyataan selama kondisi bernilai benar (true)
Dalam struktur ini pernyataan paling sedikit akan dikerjakan satu kali. Pernyataan pasti
dikerjakan karena langkah pertama struktur perulangan do-while mengerjakan pernyataan,
kemudian baru diikuti pengujian terhadap kondisi. Struktur ini sangat cocok untuk program
yang tidak memerlukan pengujian terlebih dahulu sebelum mengerjakan pernyataan.
1.8. Perulangan dengan FOR
Struktur perulangan for mempunyai bentuk sebagai berikut:
for (inisialisasi; konidis; perubahan)
37
{
Pernyataan;
}
Struktur for digunakan untuk perulangan dengan jumlah pengulangan sudah dipastikan.
Keterangan
Inisialisasi berfungsi untuk memberi nilai awal pada variabel kendali
Kondisi berfungsi untuk mengendalikan perulangan, dilanjutkan/ diakhiri
Perubahan berfungsi untuk menyatakan perubahan nilai variabel kendali yaitu penambahan
atau pengurangan
J. TUGAS PENDAHULUAN
1. Bagaimana struktur sintaksis while, do…while, dan for, kemudian beri penjelasan
2. Buat flowchart untuk struktur perulangan while, do…while, dan for.
K. LANGKAH PERCOBAAN
1.10. Program_6_1.cpp
#include<iostream> (1)
#include<conio.h> (2)
using namespace std; (3)
char nama[80]; (4)
int tombol=’Y’; (5)
38
1.12. Program_6_2.cpp
#include<iostream>
using namespace std;
int cacah;
float nilai, jumlah=0, rerata
int main()
{
cout<<” MENGHITUNG RERATA NILAI\n”;
cout<<” Masukkan nilai” <<” (masukkan bilangan negatif untuk
mengakhiri \n\n”;
do
{
cacah++;
cout<<” Data ke-” << cacah << “ = ”;
}
while (nilai>=0);
rerata = jumlah/cacah;
cout<<” \n Banyakknya Data =” << cacah;
cout<<” \n Jumlah =” << jumlah;
cout<<” \n Rerata =” << rerata;
}
1.14. Program_6_3.cpp
#include<iostream>
using namespace std;
int i=0;
int main()
{
cout<<i;
do{
i++;
cout<<” - “;
//if (i==4)
//break
cout<<I;
} while(i<10)
cout<<”\nSelesai\n”;
}
39
1.15. FOR untuk Perulangan
Jalankan program_6_4.cpp dan perhatikan hasilnya. Ubah baris instruksi for berikut
for(i=1; i<=20; i++)
Menjadi
for(i=10; i<=20; i++)
for(i=1; i<=10; i++)
Jelaskan pengaruh yang terjadi untuk ketiga macam perubahan tersebut (8).
1.16. Program_6_4.cpp
#include<iostream>
using namespace std;
int i=0;
int main()
{
for(i=1; i<=20; i++)
{
cout<<”Kalang ke-” <<i<<endl;
}
}
1.18. Program_6_5.cpp
#include<iostream>
#include<iomanip.h>
int main()
{
for(int i=1; i<=10; i++)
{
for(int j=1; j<=10; j++)
{
cout<<setw(5)<<i*j;
}
cout<<endl;
}
}
40
L. TUGAS
1.20. Program_6_6.cpp
Banyaknya nilai = 3
Data ke-1 = 10
Data ke-2 = 9
Data ke-3 = 8
Jumlah = 27
Rerata = 9
Buatlah dalam 2 versi, pertama menggunakan struktur perulangan WHILE dan kedua
menggunakan struktur perulangan DO-WHILE. Buat flowchart-nya terlebih dahulu,
kemudian susun programnya.
1.22. Program_6_7.cpp
Tabel Konversi Suhu
--------------------------------------------------
C F R K
0 32 0 273
5 41 4 278
10 50 8 283
…
95 203 76 368
100 212 80 373
41
PRAKTIKUM VII
ARRAY (LARIK)
A. KOMPETENSI DASAR
Setelah menyelesaikan praktikum ini, mahasiswa dapat memahami implementasi
konsep dasar pemrograman dengan alat bantu code blocks.
C. DASAR TEORI
Larik (array) merupakan struktur penyimpanan sekumpulan data secara beruntun
didalam memori, tiap elemen data diacu menggunakan indeks. Indeks menyatakan
posisi data relatif dalam kumpulannya. Array (larik) juga merupakan elemen data
dengan tipe sama.
Contoh :
Larik nilai suhu dengan 7 elemen yang tiap elemen berisi data suhu dengan tipe integer.
indeks nilai
0 32
1 31
2 30
3 32
4 33
5 32
6 31
42
Deklarasi array:
tipeData namaArray
[jumlahElemen];
Larik tersebut dapat dideklarasikan sebagai berikut:
int nilaiSuhu[7];
Artinya: array dengan nama nilaiSuhu memiliki 7 buah elemen dengan tipe data
int.
Jumlah elemen larik harus sudah diketahui sebelum program dieksekusi, jumlah elemen
larik tidak dapat diubah selama program dieksekusi.
Mengakses elemen array
Notasi untuk mengakses elemen array:
namaArray[indeks]
indeks 0 1 2 3 4
0
1
2
Artinya mengakses elemen dengan indeks baris =1, dan indeks kolom = 3.
Literal String
43
String berarti deretan atau kombinasi sejumlah karakter, yang ditulis di antara tanda
petik ganda (“).
Contoh:
“universitas Ahmad Dahlan”
“Jl. Prof. Dr. Soepomo”
“” disebut string kosong
D. TUGAS PENDAHULUAN
1. Jelaskan apa yang dimaksud dengan struktur penyimpanan array (larik)
2. Jelaskan cara deklarasi array
3. Tuliskan cara deklarasi array dua dimensi 3 kolom 100 baris dengan nama
DataNilai tipe char.
4. Jelaskan cara mengakses elemen array
5. Sebutkan beberapa perintah untuk operasi pada variabel dengan tipe string
E. LANGKAH PERCOBAAN
Array pada perhitungan nilai rerata
Ingat kembali program menghitung rerata nilai pada praktikum II. sebagai ganti
menggunakan 3 buah variabel (a, b, dan c), program tersebut dapat dimodifikasi
menggunakan sebuah variabel larik dengan nama a, seperti pada program_7_1.cpp
Buat program tersebut, beri penjelasan skrip program baris 1-5 (1), kemudian jalankan.
Error apa yang terjadi (2) dan bagaimana yang benar (3)?
Program_7_1.cpp
#include <iostream>
using namespace std;
int main ()
{
float rerata, a[3]; (1)
44
Program menghitung rerata secara umum dapat berupa program seperti berikut
Program_7_2.cpp
#include <iostream>
using namespace std;
int main ()
{
int N;
float jumlah, rerata, a[5];
cout << "Banyaknya nilai = ";
cin >> N;
jumlah = 0;
for (int i=0; i<N; i++)
{
cout << "Nilai ke-" << (i+1) << " = ";
cin >> a[i];
jumlah = jumlah+a[i];
}
rerata = jumlah/N;
cout << "Rerata = " << rerata;
}
Beri penjelasan skrip program tersebut baris demi baris (4)? isikan banyaknya nilai=4
dan isikan nilai-nilainya. Program berjalan dengan lancer. Lalu coba lagi dengan
banyaknya nilai = 15 dan isikan nilai nilainya. Apa yang terjaadi dan mengapa begitu,
serta bagaimana memperbaikinya (5)?
45
Pengulangan FOR untuk mengisi dan menampilkan array dua dimensi (matriks)
Program_7_3.cpp adalah sebuah contoh program yang digunakan untuk mengisi nilai-
nilai elemen pada matriks ukuran 3x3.
Program_7_3.cpp
#include <iostream>
using namespace std;
int main ()
{
int N = 3;
float A[5][5];
for (int i=0; i<N; i++)
{
for (int j=0; j<N; j++)
{
cout << "A(" << i << "," << j << ") = ";
cin >> A[i][j];
}
}
cout << "Matriks A =\n";
for (i=0; i<N; i++)
{
for (int j=0; j<N; j++)
{
cout << "\t" << A [i][j];
}
cout << endl ;
}
}
F. TUGAS
Operasi pada string: Utak-atik nama
Program_7_4.cpp
46
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char nama[80], nama2[80], tulisan[80];
int panjang, posisi;
cout << “Masukkan nama = “;
gets(nama);
strcpy(tulisan,”Halo “);
cout << strcat(tulisan,nama) << endl;
if (strcmp(nama,”Miko”) == 0){
cout << “Namamu Miko kan” << endl;
}
else
{
cout << “Namamu bukan Miko” << endl;
}
panjang = strlen(nama);
cout << “panjang namamu “ << panjang << endl;
posisi = strcspn(nama,”z”);
strcpy(nama2,nama);
cout << strupr(nama2) << endl;
cout << strlwr(nama2) << endl;
cout << strrev(nama2) << endl;
cout << strset(nama2,’x’) << endl;
}
Jalankan program7_4.cpp, amati dan tuliskan tampilan hasil eksekusi pada terminal
ketika diberi masukan:
47
1. Miko (7)
2. Miko (8)
3. Ahmad Dahlan (9)
4. Zainal (10)
5. Nama masing-masing (11)
Ganti baris:
cout << strset(nama2,’x’) <<
endl;
Menjadi:
cout << strset(nama2,’a’) <<
endl;
Dari pengamatan hasil eksekusi tersebut, jelaskan kegunaan fungsi-fungsi berikut ini:
Strlen(), strcpy(),strcat(), strcmp(), strlen(), strcspn(),
strupr(), strlwr(), strrev(), dan strset().
48
PRAKTIKUM VIII
FUNGSI
A. KOMPETENSI DASAR
Setelah menyelesaikan praktikum ini, mahasiswa dapat memahami implementasi konsep dasar
pemrograman dengan alat bantu Code Blocks.
C. DASAR TEORI
Sebuah fungsi pada C++ berisi sejumlah pernyataan C++ yang dikemas dengan sebuah
nama. Selanjutnya nama ini dapat dipanggil beberapa kali dalam suatu kode C++. Salah satu
fungsi yang sering dilibatkan dalam aplikasi berbasis konsol yaitu main ( ). Biasanya di dalam
fungsi tersebut dituliskan sejumlah pernyataan.
Tujuan utama pembuatan fungsi adalah untuk membuat suatu aplikasi agar dapat
dipecah menjadi sejumlah bagian yang dapat dikelola dengan lebih mudah oleh pemrogram
dari pada kalau aplikasi hanya mengandung sebuah fungsi, misalnya fungsiA ( ), fungsiB ( ),
dan fungsiC ( ). Kemudian di dalam fungsi main ( ), terdapat pemanggilan ketiga fungsi
tersebut sebagai berikut:
int main()
{
fungsiA();
fungsiB();
fungsiC();
return 0;
49
}
Dalam implementasinya, pemrogram dapat berkonsentrasi untuk menuliskan fungsiA ( )
secara detail terlebih dahulu, kemudian ke fungsi – fungsi berikutnya sehingga seluruh kode
dituliskan.
Dalam praktiknya fungsiA( ) juga bisa tersusun atas sejumlah fungsi. Berikut adalah contoh
kerangka pemakaian fungsi dalam sebuah aplikasi.
main( )
Struktur fungsi
tipe_nilai_balik nama_fungsi (tipe_parameterA, tipe_parameterB, . . .)
{
pernyataan_1;
. . .
pernyataan_n;
return nilai_balik;
}
Penjelasan:
tipe_nilai_balik nama_fungsi (tipe_parameterA, tipe_parameterB, . . .) disebut judul fungsi,
yang terdiri dari tiga bagian:
1. tipe_nilai_balik : menetukan tipe nilai yang diberikan oleh fungsi ketika fungsi dipanggil.
Nilai balik ditentukan melalui pernyataan return.
2. nama_fungsi
3. parameter : digunakan untuk melewatkan nilai ke fungsi.
Antar parameter dipisahkan oleh tanda koma (,). Jika tak ada parameter, judul fungsi berupa:
tipe_nilai_balik nama_fungsi()
50
dalam definisi fungsi, tanda titik koma sesudah tanda } tidak diperlukan.
Pada bagian pernyataan fungsi terdapat pernyataan return yang digunakan untuk mengakhiri
eksekusi fungsi dan memberikan nilai balik, yaitu nilai yang diberikan oleh fungsi ketika
fungsi dipanggil.
Contoh:
Long kuadrat(long x)
{
long hasil = x * x;
return hasil;
}
Artinya didefinisikan fungsi dengan nama kuadrat ( ) yang digunakan untuk menghitung nilai
kuadrat dari sebuah bilangan. Nama parameter adalah x, dengan tipe long dan memberikan
nilai balik berupa perkalian x dengan x dan bertipe long.
51
4. Jelaskan apa yang dimaksud dengan fungsi tipe void dan beri contohnya
E. LANGKAH PERCOBAAN
Fungsi pada perhitungan nilai rerata
Program menghitung rerata yang telah pernah dipelajari pada praktikum sebelumnya, dapat
dibuat menjadi beberapa fungsi. Jalankan program_8_1.cpp dan berikan penjelasan baris
demi baris (1).
Program_8_1.cpp
#include <iostream>
using namespace std;
int N;
float jumlah, rerata, data[100];
void Masukan_Data()
{
cout << “Banyaknya nilai = “;
cin >> N;
for (int i=0; i<N; i++)
{
cout << “Nilai ke-” << (i+1) << “ = “;
cin >> data[i];
}
}
void Hitung_Rerata()
{
jumlah = 0;
for (int i=0; i<N; i++)
{
jumlah = jumlah+data[i];
}
rerata = jumlah/N;
}
void Tampilkan_Hasil()
{
cout << “Jumlah = “ << jumlah << endl;
52
cout << “Rerata = “ << rerata << endl;
}
int main()
{
Masukan_Data();
Hitung_Rerata();
Tampilkan_Hasil();
}
Jika diketahui rumus untuk menampilkan standar deviasi adalah sebagai berikut:
∑(𝑋 − 𝑢)2
𝛼2 =
𝑁
∑𝑋
𝑢=
𝑁
Tambahkan sebuah fungsi untuk perhitungan setandar deviasi, serta tambahkan perintah untuk
menampilkan hasil perhitungan tersebut pada fungsi void tampilkan_hasil ( ) (2).
53
cin >> X[i][j];
}
}
}
int main()
{
float A[5][5];
cout << “Masukan elemen matriks A\n”;
MengisiMatriks(A);
cout << “Matriks A = \n”;
MenampilkanMatriks(A);
}
#include <iostream.h>
using namespace std;
54
float Suhu_C, Suhu_F; //definisikan variabel
float C_ke_F(float C)
{
float F;
F = 1.8*C+32.0;
return F;
}
void Mengisi_Input()
{
cout << “Isikan nilai Suhu C = “; // tampilkan
tulisan
cin >> Suhu_C; //isikan nilai Suhu C
}
void Mengkonversi()
{
Suhu_F = C_ke_F(Suhu_C); //hitung nilai Suhu F
}
void Menampilkan_Hasil()
{
cout << “Temperatur” << Suhu_C << “C = “ << Suhu_F
<< “F” << endl;
}
int main()
{
Mengisi_Input();
Mengkonversi();
Menampilkan_Hasil();
}
55
Jalankan program Program_8_3.cpp dan lihat hasilnya. Pindahkan keempat fungsi yang ada
ke bagian bawah setelah akhir dari program utama main ( ) lalu compile. Error apa yang
muncul (5)? Di atas fungsi main ( ) tambah pendefinisian keempat fungsi tadi seperti berikut:
float C_ke_f(float C);
void Mengisi_Input ();
void Mengkonversi ();
Void Menampilkan_hasil ();
Jalankan. Apa guna pendefinisian fungsi tersebut (6).
F. TUGAS
Buatlah Program_8_4.cpp untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya.
Program dimulai dengan menampilkan pilihan (menu) sebagai berikut:
Pilih konversi berikut:
A. Celcius ke Fahrenheit
B. Fahrenheit ke Celcius
C. Celcius ke Reamur
D. Reamur ke Celcius
E. Fahrenheit ke Reamur
F. Reamur ke Fahrenheit
Setelah menu dipilih, isikan suhu yang akan dikonversi, kemudian program melakukan
perhitungan konversi sesuai menu yang dipilih dan menampilkan hasilnya. Gunakan struktur
pemrograman fungsi untuk masing-masing jenis konversi (7).
56