Pemrograman Algoritma Struktur Data pdf

MODUL PERKULIAHAN

Pemrograman Algoritma

Struktur Data

Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana

Fakultas

Progra Studi

Tatap Muka

Kode MK

Disusu Oleh

Il u Ko puter

Teh ik I for atika

01 Tim Dosen

A stra t

Ko pete si

 Pengenalan Bahasa C++  Mampu menggunakan IDE Borland C++  Konstanta dan tipe data dalam C++

 Mampu membuat program console  Mencetak nilai konstanta bilangan integer

sederhana dalam Bahasa C++ dan dan float serta string dalam C++

mencetak konstanta bilangan, karakter dan  Memberi nilai ke dalam variabel bilangan

string dalam Bahasa C++

integer dan float dalam C++  Mampu memberi nilai ke dalam variabel bertipe data bilangan integer dan float serta menampilkan nilai variabel bilangan integer dan float

STRUKTUR DASAR C++

1. Pendahuluan

Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu.

Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa pemograman seperti bahasa C atau C++.

2. C dan C++

Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C “. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari operator increment pada bahasa C.

3. Mengenal C++

 C++ merupakan perluasan bahasa C dengan tambahan fasilitas kelas (Class).  Program C++ berupa sekumpulan fungsi. Bahkan program utama juga berbentuk

fungsi, yaitu fungsi main().  Kode C++ bersifat case sensitive , artinya membedakan antara huruf kapital dengan huruf kecil.  Bahasa C dan C++ merupakan bahasa yang sangat populer dalam dunia pengembangan perangkat lunak. Kedua bahasa ini digolongkan ke dalam bahasa tingkat menengah ( middle level language ).

 Keistimewaan dari bahasa C++ adalah karena bahasa ini mendukung pemrograman berarah objek atau yang lebih sering dikenal dengan istilah Object Oriented Programming (OOP).

Mengapa perlu Object Oriented Programming (OOP)?

 Mempermudah programmer menulis program.  Mempercepat proses pembuatan program  Mempermudah pemeliharaan program

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Bahasa C

 Fleksibel: dapat mengakses/mendekati mesin, namun mudah dimengerti oleh manusia.  Portabel: dipakai mulai dari komputer mikro sampai superkomputer.  Bahasa yang paling banyak digunakan dalam ilmu komputer, untuk membuat OS,

aplikasi, dan lain lain.  Didukung oleh banyak pustaka (libraries)

Bahasa C++

 Merupakan pengembangan bahasa C dan diberi kemampuan OOP.  C++ merupakan subset dari bahasa C, maka pustaka yang ditulis dalam bahasa C

dapat dipergunakan dalam bahasa C++.

Kerangka program C++

#include <iostream.h> //Protopype fungsi

tipe_data nama_fungsi(parameter1,parameter2,..); //Fungsi utama

void main() {

statemen_yang_akan_dilakukan; ... return 0;

//Implementasi fungsi

tipe_data nama_fungsi(parameter1,parameter2,...) {

statemen_yang_akan_dilakukan; ...

Contoh1 :

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

#include<iostream.h> int main() {

cout <<"Selamat menggunakan C++"; return 0;

} Keterangan:  #include adalah sebuah prosesor pengarah yang mengatakan kepada kompiler untuk

meletakan kode dari header file iostream.h kedalam program. Fungsi cout memerlukan file iostream.h.

 Main adalah nama judul fungsi.  Tanda () digunakan untuk mengapit argumen fungsi yaitu nilai yang akan dilewatkan ke

fungsi.  Tanda { pada fungsi main() menyatakan awal eksekusi program. Adapun } pada fungsi main() menyatakan akhir eksekusi program.  Pemakaian fungsi cout dipakai untuk menampilkan text di layar monitor anda.  memakai tanda atau symbol <<, yang diketahui sebagai operator pemasukan (insertion

operators). Tanda tersebut mengatakan kepada kompiler agar segera menghasilkan output sesuai dengan input anda.

 ”Selamat menggunakan C++ “ adalah suatu pernyataan yang diapit oleh tanda petik ganda. Setiap pernyataan harus diakhiri dengan tanda titik koma (;).  return 0 maksudnya pada baris ini juga ada kode yang memerintahkan fungsi main kembali ke 0. Pada saat satu kali kembali. Contoh 2:

#include <iostream.h> int main() {

int x, y, z; cout <<“Masukkan bilangan kesatu:“; cin >> x;

cout <<“Masukkan bilangan kedua:“; cin >> y; z = x + y; cout << ”Jadi hasil penjumlahannya adalah: ” << z; return 0;

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil Eksekusi :

1. Komentar :

 Komentar merupakan bagian yang penting dalam program.  Komentar tidak akan mempengaruhi terhadap jalannya program karena

komentar tidak ikut dieksekusi pada saat proses kompilasi.  Fungsi komentar antara lain:

1. Menjelaskan tujuan / fungsi program

2. Memudahkan saat program dibuat atau direvisi

3. Menjelaskan keterangan-keterangan lain tentang kegunaan sejumlah pernyataan dalam program.

a. Menggunakan tanda //

Pada C++ suatu komentar diawali dengan dua tanda garis miring (//). Semua tulisan yang terletak sesudah tanda // hingga akhir baris dengan sendirinya akan diperlakukan sebagai keterangan. Tanda ini digunakan untuk menuliskan komentar yang banyaknya hanya satu baris.

b. Menggunakan tanda /*.NNNN*/

Tanda ini dapat digunakan untuk menuliskan komentar yang banyaknya satu baris atau lebih. Bentuk ini bermanfaat untuk mengabaikan sejumlah pernyataan yang telah dibuat oleh pemrograman karena suatu alasan misalnya sedang melacak kesalahan.

2. Identifier

 Identifier (pengenalan) adalah suatu nama yang biasa dipakai dalam pemrograman

untuk menyatakan variabel, konstanta bernama, tipe data, fungsi, label, objek. Indentifikasi dilakukan untuk mempermudah proses penanganan data atau nilai.

 Ketentuan penulisan identifier:

a. Tidak boleh berupa angka atau diawali dengan karakter yang berupa angka.

b. Tidak boleh mengandung spasi.

c. Tidak boleh menggunakan karakter-karakter simbol ( #, @, ?, $, dll).

d. Tidak boleh menggunakan kata kunci (keyword) yang terdapat pada C++.

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

Contoh identifier:  int bilangan_bulat;  long X2;  int A[5]  const int MAX=5;  int A=10, B=15, C=25;

3. Tipe Data

Tipe data berfungsi untuk merepresentasikan jenis dari sebuah nilai yang terdapat dalam program. Dalam C++ terdapat beberapa tipe data dasar yang telah didefinisikan yaitu:

1. Tipe bilangan bulat (integer) Digunakan untuk data-data angka yang tidak mengandung angka dibelakang koma. Misalnya 3, 21, 78.

contoh: #include <iostream.h>

int main() { int x; //mendeklarasikan variabel x dengn tipe data int x=3;

//melakukan assigment terhadap variabel x cout <<“Nilai x adalah “<<x; return 0;

2. Tipe Bilangan Desimal (floating-point)  Adalah tipe yang mempresentasikan data-data bilangan yang mengandung

angka dibelakang koma, misalnya 3.16, 21.5, dll. Tipe data Float = 32, double = 64, dan long double = 80.

Contoh: #include <iostream.h> int main() {

double y; y = 27.55;

//melakukan assigment terhadap variabel y cout <<“Nilai y adalah “<<y;

return 0; }

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

3. Tipe Logika (boolean)

Tipe ini merepresentasikan data-data yang hanya mengandung dua buah nilai, yaitu nilai logika (boolean) yang terdiri dari nilai benar (direpresentasikan dengan nilai 1) dan nilai salah (direpresentasikan dengan nilai 0).

4. Tipe Karakter / String

Tipe ini merepresentasikan data-data yang berupa karakter, dan dinyatakan dengan tipe char, sedangkan untuk string dinyatakan dengan pointer dari tipe char yaitu char*. Contoh :

#include <iostream.h> int main() {

char Karakter ='A'; char*nama ="Susi Susanti"; char Jurusan[15]="INFORMATIKA"; cout <<Karakter<<endl; cout <<nama<<endl; cout <<Jurusan<<endl; return 0;

5. Tipe data Bentukan

Adalah tipe data yang dibuat sendiri sesuai kebutuhan dalam program yang akan dimuat.

a. Struktur

Struktur adlah tipe data bentukan yang menyimpan lebih dari satu variabel bertipe sama maupun berbeda.

Deklarasinya:

Struct nama_struktur { Tipe_data variabel1; Tipe_data variabel2;

.NNNNN }; #include<iostream.h> #include<string.h> int main()

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

{ struct MAHASISWA { char NIM[15]; char Nama[20]; char Alamat[30]; char Kota[15];

}A; strcpy(A.NIM,"01500024"); strcpy(A.Nama,"Susi Susanti"); strcpy(A.Alamat,"Jl.Raya Meruya Selatan"); strcpy(A.Kota,"Jakarta"); cout<<A.NIM<<endl; cout<<A.Nama<<endl; cout<<A.Alamat<<endl; cout<<A.Kota<<endl; return 0;

Hasil Eksekusi :

b. Enumerasi

Tipe Enumerasi adalah tipe data yang nilainya terbatas pada nilai-nilai yang telah didefinisikan saja. Tipe enumerasi digunakan untuk membentuk tipe data yang nilainya pasti.

Deklarasinya:

enum nama_tipe {nilai1, nilai2,....}; Contoh pendefinisian tipe enumerasi: enum JENIS_KELAMIN{Pria, Wanita}; enum HARI{Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu};

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

#include<iostream.h> #include<string.h> enum JENIS_KELAMIN{Pria, Wanita}; int main() {

struct MAHASISWA { char NIM[15]; char Nama[20]; char Alamat[30]; char Kota[15]; JENIS_KELAMIN gender;

}A; strcpy(A.NIM,"01500024"); strcpy(A.Nama,"Susi Susanti"); strcpy(A.Alamat,"Jl.Raya Meruya Selatan"); strcpy(A.Kota,"Jakarta"); A.gender=Wanita;

cout<<"NIM

: "<<A.NIM<<endl;

cout<<"Nama

: "<<A.Nama<<endl;

cout<<"Alamat

: "<<A.Alamat<<endl;

cout<<"Kota : "<<A.Kota<<endl; cout<<"Jenis Kelamin

: "<<A.gender<<endl; return 0; }

Hasil Eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Latihan :

1. Buatlah program dengan menggunakan struct dengan hasil eksekusi program sebagai berikut:

Plat Nomor Kendaraan

: B1669OK

Jenis Kendaraan

: AVANZA

Nama Pemilik

: Bambang Susilo

Alamat

: Jl. Meruya raya No 1

Kota

: Jakarta

2. Buatlah program dengan tampilan sbb: Masukkan sebuah huruf = .NNNNNNNNNNNN Masukan sebuah kata = .NNNNNNNNNNNNNNNN Masukkan Angka = .NNNNNNNNNNNNNNNNN Huruf yang Anda masukkan adalah .NNNNNNNNNNNN Kata yang Anda masukkan adalah .NNNNNNNNNNNNN Angka yang Anda masukkan adalah .NNNNNNN

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Daftar Pustaka

Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2 , Graha Ilmu, Yogyakarta, 2009.

Budi Raharjo, Pemrograman C++ , Informatika, Bandung, 2010. Moh. Sjukani, Algoritma & Struktur Data dengan C, C++ dan JAVA , Mitra Wacana Media,

Bandung, 2004.

2015 Pemrograman Algoritma Struktur Data Modul 01

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

MODUL PERKULIAHAN

Pemrograman Algoritma

Struktur Data

Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana

Fakultas

Progra Studi

Tatap Muka

Kode MK

Disusu Oleh

Il u Ko puter

Teh ik I for atika

02 Tim Dosen

A stra t

Ko pete si

 Operator || dan && dalam bahasa C++  Mampu menggunakan operator || (OR) dan && (AND) dan melakukan kombinasi  Proses konversi dari multi conditions

antara berbagai operator tersebut. menjadi nested if

 Mampu melakukan konversi dari multi conditions menjadi nested if

OPERATOR C++

 Operator adalah simbol yang mengolah nilai pada operand dan menghasilkan satu nilai baru.  Operator dapat dikelompokan menjadi 4 bagian yaitu:

1. Operator Assignment

2. Operator Unary

3. Operator Binary

4. Operator Ternary

1. Operator Assignment

Adalah operator yang berfungsi untuk memasukkan (assign) nilai ke dalam suatu variabel ataupun konstanta. Operator ini dilambangkan dengan tanda sama dengan (=) Contoh:

MyChar = 'C'; MyString = "Rahasia C++"; MyInteger = 24; MyDouble = 22.021;

2. Operator Unary Adalah operator yang hanya melibatkan sebuah operand. Yang termasuk ke dalam tabel operator unary antara lain:

Operator

Jenis Operasi

 Increment adalah suatu penambahan nilai yang terjadi pada sebuah variabel. Operator yang digunakan untuk melakukan increment adalah operator ++. Ada dua jenis increment dalam C++ yaitu pre-increment dan post-increment . Pre-increment artinya melakukan penambahan nilai sebelum suatu variabel itu diproses. Post-incremen artinya melakukan proses terlebih dahulu sebelum dilakukan penambahan nilai.

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

 Decrement merupakan kebalikan dari proses increment , yaitu menurunkan (mengurangi) nilai dari suatu variabel. Operator yang digunakan untuk melakukan decrement adalah operator --. Decrement juga dibagi 2 yaitu pre-decrement dan post-decrement.

Contoh : #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int A; //mendeklarasikan variabel

A = 5; cout<<"Contoh melakukan pre-increment \n"; cout<<"Nilai A awal adalah : "<<A<<endl; cout<<"Nilai ++A adalah :"<<++A<<endl; cout<<"Nilai A akhir adalah:"<<A<<endl; cout<<'\n'<<endl; cout<<"Contoh melakukan pre-decrement \n"; cout<<"Nilai A awal adalah : "<<A<<endl; cout<<"Nilai --A adalah :"<<--A<<endl; cout<<"Nilai A akhir adalah:"<<A<<endl; cout<<'\n'<<endl;

//mengubah nilai A menjadi 10

A = 10; cout<<"Contoh melakukan post-increment \n"; cout<<"Nilai A awal adalah : "<<A<<endl; cout<<"Nilai A++ adalah :"<<A++<<endl; cout<<"Nilai A akhir adalah:"<<A<<endl; cout<<'\n'<<endl; cout<<"Contoh melakukan post-decrement \n"; cout<<"Nilai A awal adalah : "<<A<<endl; cout<<"Nilai A-- adalah :"<<A--<<endl; cout<<"Nilai A akhir adalah:"<<A<<endl; cout<<'\n'<<endl;

getch(); }

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil Eksekusi :

3. Operator Binary

Adalah operator yang digunakan dalam operasi yang melibatkan dua buah operand. Operator Binary dikelompokan menjadi 4 jenis yaitu:

a. Operator Aritmatika

b. Operator Logika

c. Operator Relasional

d. Operator Bitwise

a. Operator Aritmatika

Adalah operator yang digunakan untuk melakukan operasi-operasi aritmatika seperti penjumlahan, pengurangan, dan sebagainya.

Modulus atau sisa bagi

Penjumlahan

Pengurangan

Contoh :

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> int main() {

int X = 10, Y = 3; int jumlah, kurang, kali, bagi, sisa_bagi; jumlah = X + Y; kurang = X - Y; kali = X * Y; bagi = X / Y; sisa_bagi= X % Y; cout<<X<<" + "<<Y<<" = "<<jumlah<<endl; cout<<X<<" - "<<Y<<" = "<<kurang<<endl; cout<<X<<" * "<<Y<<" = "<<kali<<endl; cout<<X<<" / "<<Y<<" = "<<bagi<<endl; cout<<X<<" % "<<Y<<" = "<<sisa_bagi<<endl; getch();

Hasil eksekusi :

b. Operator Logika

Adalah operator yang digunakan untuk melakukan operasi dimana nilai yang dihasilkan dari operasi tersebut hanya bernilai benar (true / 1) atau salah (false / 0). Nilai ini biasa disebut dengan boolean. Yang termasuk operator logika antara lain:

1. Operator AND (&&)

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

2. Operator OR (||)

hanya akan menghasilkan nilai 0 (salah) jika semua operand-nya bernilai salah, namun jika tidak maka operasi tersebut akan menghasilkan nilai 1 (benar).

3. Operator NOT (!)

Nilai yang dihasilkan oleh nilai NOT adalah kebalikan dari nilai yang dikandung di dalamnya. Jika nilai awal 1 (benar) maka nilai operasi NOT menjadi 0 (salah).

Contoh : #include <vcl.h>

#pragma hdrstop #include<iostream.h> #include<conio.h> int main() {

cout<<"Logika AND"<<endl; cout<<" 1 AND 1 = "<<(1&&1)<<endl; cout<<" 1 AND 0 = "<<(1&&0)<<endl; cout<<" 0 AND 1 = "<<(0&&1)<<endl; cout<<" 0 AND 0 = "<<(0&&0)<<endl; cout<<endl; cout<<"Logika OR"<<endl; cout<<" 1 OR 1 = "<<(1||1)<<endl; cout<<" 1 OR 0 = "<<(1||0)<<endl; cout<<" 0 OR 1 = "<<(0||1)<<endl; cout<<" 0 OR 0 = "<<(0||0)<<endl; cout<<endl; cout<<"Logika NOT"<<endl; cout<<" NOT 1 = "<<(!1)<<endl; cout<<" NOT 0 = "<<(!0)<<endl; getch();

Hasil Eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

Adalah operator yang digunakan untuk menentukan relasi atau hubungan dari dua buah operand. Operator ini banyak digunakan untuk melakukan pengecekan sebuah ekspresi (kondisi) dalam struktur percabangan. OperatorJenis

Operasi

Lebih besar

Lebih kecil

Lebih besar atau sama dengan

Lebih kecil atau sama dengan

Sama dengan

Tidak sama dengan

Contoh : #include <vcl.h>

#pragma hdrstop #include<iostream.h> #include<conio.h> int main() {

int nilai; //memasukkan bilangan bulat cout<<" Masukkan sebuah bilangan bulat : "; cin>>nilai;

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

} Hasil eksekusi :

d. Operator Bitwise

Adalah operator yang digunakan untuk melakukan operasi-operasi yang berhubungan dengan pemanipulasian bit. Yang termasuk dalam operator bitwise anta lain:

Shift left

shift right

operasi bit AND

Operasi bit OR

Operasi bit XOR

Operasi bit NOT

 Operator & berguna untuk melakukan operasi ”DAN” pada tataran bit.

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

 Operator | berguna untuk melakukan operasi ”ATAU” pada tataran bit.

 Operator ^ berguna untuk melakukan operasi ”ATAU EKSKLUSIF” pada tataran bit.

 Operator ~ memberikan hasil dengan masing-masing bit berupa kebalikan dari bit operand. 1011 1001 0100 0110

 Operator << (geser kiri) berfungsi untuk menggeser bit-bit ke kiri. contoh: 29 << 1 memberikan nilai hasil 58 0001 1101

 Operator << (geser kanan) berfungsi untuk menggeser bit-bit ke kanan. contoh: 29 << 1 memberikan nilai 14 0001 1101

Contoh : #include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> int main() {

int x=64; int y= 1; cout<<" NOT "<<x<<" = "<< ~x<<endl; cout<<x<<" OR "<<y<<" = "<<(x|y)<<endl; cout<<x<<" AND "<<y<<" = "<<(x&y)<<endl; cout<<x<<" XOR "<<y<<" = "<<(x^y)<<endl; cout<<x<<" GESER KIRI "<<y<<" = "<<(x<<y)<<endl; cout<<x<<" GESER KANAN "<<y<<" = "<<(x>>y)<<endl; getch();

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil eksekusi :

4. Operator Ternary

 Adalah operator yang digunakan dalam operasi yang melibatkan tiga buah operand. Bentuk umum:

Ekspresi1? Ekspresi2: Ekspresi3;

Jika ekspresi1 bernilai benar, maka program akan mengeksekusi ekspresi2. Sedangkan jika ekspresi1 salah maka yang dieksekusi adalah ekspresi3.

Contoh :

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> int main() {

int angka; cout<<"Masukkan bilangan: "; cin>>angka; (angka %2 ==0) ? (cout<<angka<<" adalah bilangan Genap \n") :

(cout<<angka<<" adalah bilangan Ganjil \n"); getch(); }

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Latihan :

1. Buatlah program untuk menentukan bilangan positif atau negatif dengan menggunakan operator ternary!

2. Buatlah program untuk menentukan nilai mahasiswa lulus atau tidak lulus (nilai lulus jika >= 65) dengan menggunakan operator ternary!

3. Buatlah program untuk menghitung menghitung luas persegi panjang (panjang * lebar) dengan inputan dari user

4. Buatlah program untuk menghitung menghitung Keliling lingkaran (2 * PI * jari-jari), Dengan inputan dari user!

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Daftar Pustaka

Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2 , Graha Ilmu, Yogyakarta, 2009.

Budi Raharjo, Pemrograman C++ , Informatika, Bandung, 2010. Moh. Sjukani, Algoritma & Struktur Data dengan C, C++ dan JAVA , Mitra Wacana Media,

Bandung, 2004.

2015 Pemrograman Algoritma Struktur Data Modul 02

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

MODUL PERKULIAHAN

Pemrograman Algoritma

Struktur Data

Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana

Fakultas

Progra Studi

Tatap Muka

Kode MK

Disusu Oleh

Il u Ko puter

Teh ik I for atika

03 Tim Dosen

A stra t

Ko pete si

 Struktur Kondisi IF  Mampu menggunakan struktur kondisi IF dalam bahasa pemrograman C++.  Struktur Kondisi Switch Case  Mampu menggunakan struktur kondisi

Switch Case dalam bahasa pemrograman C++.

PERCABANGAN (DECISION)

 Decision digunakan untuk memilih salah satu alternatif jawaban yang tepat dari pilihan yang ada.  Suatu pemilihan statemen yang akan dieksekusi dimana pemilihan tersebut didasarkan atas kondisi tertentu.  Statemen yang terdapat dalam sebuah blok percabangan akan dieksekusi jika kondisi yang didefinisikan terpenuhi (bernilai benar) Artinya jika kondisi tidak terpenuhi (bernilai

salah) maka statemen tersebut tidak ikut dieksekusi atau akan diabaikan oleh compiler.

1. Struktur satu kondisi (perintah IF)

• digunakan untuk menyeleksi suatu kondisi tunggal. • Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada

di dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah: if(kondisi)

pernyataan;

contoh : #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int nilai; //memasukkan bilangan bulat cout<<"Masukkan sebuah bilangan bulat: "; cin>>nilai; //menampilkan teks jika nilai yang tersimpan lebih besar dari 0 if (nilai > 0) cout<<"Nilai yang Anda masukkan adalah bilangan positif"; getch();

Hasil Eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

2. Struktur dua kondisi (perintah if – else)

 Perintah if.NNNNelse minimal terdapat dua pernyataan.  Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama

yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan.

Bentuk Umum :

if (kondisi) {

statemen_jika_kondisi_terpenuhi;

else { statemen_jika_kondisi_tidak_terpenuhi;

Contoh :

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int nilai; cout<<"Masukkan sebuah bilangan bulat: "; cin>>nilai; if (nilai %2 == 0)

{ cout<<nilai <<" adalah bilangan genap";

} else {

cout<<nilai <<" adalah bilangan ganjil"; } getch(); }

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

3. Struktur tiga kondisi (perintah multiple if – else)

Percabangan jenis ini merupakan perluasan dari struktur yang memiliki dua kondisi diatas yaitu dengan menyisipkan satu atau lebih kondisi ke dalamnya. Bentuk umum:

if (kondisi1) {

statemen_jika_kondisi1_terpenuhi; } else if (kondisi2)

{ statemen_jika_kondisi2_terpenuhi; } else if (kondisi3) {

statemen_jika_kondisi3_terpenuhi; }

NNNN else

{ statemen_jika_semua_kondisi_tidak_terpenuhi; }

Contoh 1: #include <vcl.h> #pragma hdrstop #include <iostream.h>

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

#include <conio.h> void main() {

int nilai; //memasukkan bilangan bulat cout<<"Masukkan sebuah bilangan yang akan diperiksa : "; cin>>nilai; //pengecek bilangan apakah habis dibagi dua atau tidak if (nilai > 0) {

cout<<nilai<< " adalah bilangan positif ";

} else if (nilai < 0) {

cout<<nilai<< " adalah bilangan negatif ";

} else {

cout<< " Anda memasukkan bilangan NOL ";

} getch();

} Hasil Eksekusi :

Contoh 2 :

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int nilai; char huruf; cout<<"Masukkan nilai : " ; cin>>nilai;

if ((nilai>=81) && (nilai<=100)) huruf='A'; else if ((nilai>=71) && (nilai<=80)) huruf='B';

else if ((nilai>=61) && (nilai<=70)) huruf='C';

else if ((nilai>=51) && (nilai<=60)) huruf='D';

else huruf='E';

cout<<"Jadi nilai huruf yang didapat adalah: "<<huruf; getch();

} Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Latihan : Buatlah program untuk menentukan huruf, dengan ketentuan sebagai berikut:

 Jika karakter >=’A’ dan karakter <=’Z’ maka Karakter yang Anda masukkan adalah huruf besar.  Jika karakter >=’a’ dan karakter <=’z’ maka Karakter yang Anda masukkan adalah huruf kecil.  Jika karakter >=’0’ dan karakter <=’9’ maka Karakter yang Anda masukkan adalah Angka.  Jika bukan semuanya berarti Karakter yang Anda masukkan adalah bukan alphanumeric. Jawab :

#include <vcl.h> #pragma hdrstop //Program menentukan karakter #include <iostream.h> #include <conio.h> void main() {

char karakter; cout<<"Masukkan sebuah karakter: "; cin>>karakter; if (karakter >= 'A' && karakter <= 'Z')

cout<<"Masukkan Anda adalah huruf besar"; else if (karakter >= 'a' && karakter <= 'z') cout<<"Masukkan Anda adalah huruf kecil"; else if (karakter >= '0' && karakter <= '9') cout<<"Masukkan Anda adalah angka"; else cout<<"Masukkan Anda bukan alphanumeric"; getch(); }

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil Eksekusi :

4. Perintah switch

 Perintah ini memiliki bentuk switch – case yang digunakan untuk pilihan berjumlah banyak.  Perintah switch tidak dianjurkan pada pilihan yang melibatkan jangkauan nilai (range) tetapi dianjurkan pada pilihan berupa konstanta dan banyak misalnya untuk memilih menu.

Bentuk umum: switch (pernyataan) {

case nilai_1:

blok_pernyataan1; break;

case nilai_2:

blok_pernyataan2; break;

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

blok_pernyataan_n;

Cara kerjanya:

1. switch akan mengevaluasi pilihan dan apabila isinya sama dengan nilai_1,

maka blok pernyataan 1 akan dijalankan sampai menemukan perintah break untuk kemudian keluar dari blok switch.

2. Bila pilihan tidak sama isinya dengan nilai_1, maka akan dicocokkan lagi dengan nilai_2. dan apabila isinya sama dengan nilai_2, maka blok pernyataan 2 akan dijalankan sampai menemukan perintah break untuk kemudian keluar dari blok

switch.

3. Terakhir, apabila isi pilihan tidak sesuai dengan nilai_1, nilai_2 dan seterusnya maka secara otomatis yang dijalankan adalah blok pernyataan default. Contoh : #include <vcl.h>

#pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

{ int bil; cout<<"Masukkan sebuah angka (1 .. 7): "; cin>>bil; switch (bil) {

case 1:

cout<<"Hari ke - "<<bil<<"adalah MINGGU"; break;

case 2:

cout<<"Hari ke - "<<bil<<" adalah SENIN"; break;

case 3:

cout<<"Hari ke - "<<bil<<"adalah SELASA"; break; case 4:

cout<<"Hari ke - "<<bil<<"adalah RABU"; break;

case 5:

cout<<"Hari ke - "<<bil<<"adalah KAMIS"; break;

case 6:

cout<<"Hari ke - "<<bil<<"adalah JUMAT"; break;

case 7:

cout<<"Hari ke - "<<bil<<"adalah SABTU"; break;

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

cout<<"Kode tidak ada";

} getch(); } }

Hasil eksekusi :

Soal Latihan :

1. Buatlah program menggunakan menu :

A. Menentukan karakter

B. Toko Buku

C. Buatlah program untuk menentukan masukkan dari user apakah berupa huruf vokal atau konsonan!

2. Buatlah program untuk menghitung luas dengan menggunakan menu, dengan ketentuan sebagai berikut:

1. Menghitung Luas Bujur Sangkar.

2. Menghitung Luas Persegi Panjang.

3. Menghitung Luas Segi Tiga

4. Menghitung Luas Lingkaran.

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Daftar Pustaka

Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2 , Graha Ilmu, Yogyakarta, 2009.

Budi Raharjo, Pemrograman C++ , Informatika, Bandung, 2010. Moh. Sjukani, Algoritma & Struktur Data dengan C, C++ dan JAVA , Mitra Wacana Media,

Bandung, 2004.

2015 Pemrograman Algoritma Struktur Data Modul 03

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

MODUL PERKULIAHAN

Pemrograman Algoritma

Struktur Data

Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana

Fakultas

Progra Studi

Tatap Muka

Kode MK

Disusu Oleh

Il u Ko puter

Teh ik I for atika

04 Tim Dosen

A stra t

Ko pete si

 Struktur perula ga de ga for,  Ma pu e ggu aka struktur do‐while da while perula ga de ga for, do‐while da  Pe gaplikasia struktur perula ga

while dala Bahasa Pe rogra a C++ u tuk e ecahka soal‐soal

 Ma pu e a faatka struktur ate atika da fisika

perula ga u tuk e ecahka soal‐soal

ate atika da fisika

PERULANGAN (LOOPING)

1. Pernyataan While Pada pernyataan while, pengecekan terhadap loop dilakukan dibagian awal (sebelum

tubuh loop). Bentuk umum :

while (kondisi) pernyataan;

Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan

berhenti bila kondisinya bernilai salah. Contoh :

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int x; x = 1; /* awal variabel */ while (x <= 10) /* Batas akhir perulangan */

cout<<"Bahasa C++ "<<endl; x ++; /* variabel x ditambah dengan 1 */

} getch();

Hasil Eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Keterangan :  Pada perulangan while, proses atau perintah mencetak kata-kata “BAHASA C++”

akan terus dilakukan selama variabel x masih kurang atau sama dengan 10. Setiap kali melakukan perulangan, nilai dari variabel x akan bertambah 1.

Contoh 2: #include <vcl.h>

#pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int i = 0; while (i != 99) {

cout<<" Masukkan Sebuah Bilangan : "; cin>>i; cout<<"Bilangan Anda adalah= "<<i<<endl;

} getch(); }

Hasil eksekusi :

Ket :  Program minta inputan dari user dengan tipe integer  Selama user belum memasukkan nilai 99 maka program akan terus melooping.  Looping akan berhenti jika user telah memasukkan angka 99.

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

2. Pernyatan Do .. While…

 Pada pernyataan do-while, tubuh loop berupa pernyataan.  Pada pernyataan do, mula-mula pernyataan dijalankan.  Selanjutnya, kondisi diuji. Seandainya kondisi bernilai benar, maka pernyataan

dijalankan lagi, kemudian kondisi diperiksa kembali, dan seterusnya.  Kalau kondisi bernilai salah, maka pernyataan tidak dijalankan lagi.  Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya

saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan.

Bentuk umum: do

pernyataan; while (kondisi)

Contoh :

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

int x; x = 1; do

{ cout<<"BAHASA C++ "<<endl; x ++;

} while(x <= 10); getch();

} Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

3. Pernyataan For

Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Bentuk umum perulangan for:

for(inisialisasi; syarat; penambahan)

pernyataan;

Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol. syarat : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan. penambahan : pengatur perubahan nilai variabel kontrol. Contoh :

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> void main() {

/* Program perulangan menggunakan for */ int x; for(x = 1; x<= 10; x++) {

cout<<"BAHASA C++ "<<endl;

} getch();

Hasil Eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

4. FOR BERSARANG (NESTED FOR)

For bersarang dapat melibatkan lebih dari satu variabel namun yang jelas satu diantaranya akan digunakan sebagai indeks perulangan. Bentuk umum:

for( variabel1=nilai_awal; kondisi1; variabel1++){ for( variabel2=nilai_awal; kondisi2; variabel2++){ for( variabel3=nilai_awal; kondisi3; variabel3++){ Statemen_statemen yang akan diulang;

Contoh 1 : #pragma hdrstop #include <iostream.h> #include <conio.h> #include <iomanip.h> int main() {

int x,y;

for (x=1; x<=10; x++)

for (y=1; y<=10; y++) { cout<<setw(4)<<x*y<<" "; } cout<<"\n";

} getch();

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Contoh 2 : #pragma hdrstop #include <iostream.h> #include <conio.h> #include <iomanip.h> int main() {

int x,y ; for (x=1; x<=10; x++) {

for (y=1; y<=x; y++) { cout<<setw(4)<<x*y<<" "; } cout<<"\n";

} getch();

} Hasil eksekusi :

Contoh 3:

#pragma hdrstop #include <iostream.h> #include <conio.h> #include <iomanip.h> int main() {

int b,a,e; char u[26]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

Hasil eksekusi :

Contoh 4 :

#pragma hdrstop #include <iostream.h> #include <conio.h> #include <iomanip.h> int main() {

int a,b,e; char u[26]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cout<<"Masukan Angka : "; cin>>e; for(b = 0; b< e; b++){ for(a = 0; a<= b; a++){ cout<<u[a]<<" ";} cout<<endl;}

getch(); }

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 04

8 tゥュ@dッウ・ョ

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Contoh program faktorial : #include <vcl.h> #pragma hdrstop #include <iostream> #include<conio.h> using namespace std; long faktorial(int m) {

if (m == 0) return 1; else return m * faktorial(m - 1);

} int main() {

int n = 3; cout << n << "! = " << faktorial(n) << endl; n = 6; cout << n << "! = "

<< faktorial(n) << endl; getch(); }

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil eksekusi :

Soal Latihan :

1. Buatlah program dengan menggunakan while dengan tampilan sbb:

2. Buatlah program dengan menggunakan nested for dengan tampilan sbb:

3. Buatlah program untuk menampilkan deret bilangan genap antara 2 sampai 30, dengan menggunakan for

4. Buatlah program untuk menampilkan deret bilangan ganjil antara 11 sampai 50

5. Buatlah program untuk menampilkan deret bilangan genap antara 3 sampai 50

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Daftar Pustaka

Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2 , Graha Ilmu, Yogyakarta, 2009.

Budi Raharjo, Pemrograman C++ , Informatika, Bandung, 2010. Moh. Sjukani, Algoritma & Struktur Data dengan C, C++ dan JAVA , Mitra Wacana Media,

Bandung, 2004.

2015 Pemrograman Algoritma Struktur Data Modul 04

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

MODUL PERKULIAHAN

Pemrograman Algoritma

Struktur Data

Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana

Fakultas

Progra Studi

Tatap Muka

Kode MK

Disusu Oleh

Il u Ko puter

Teh ik I for atika

05 Tim Dosen

A stra t

Ko pete si

 Fu ctio Dala Bahasa C  Ma pu e buat progra ya g

e ga du g void fu ctio da typed

fu ctio

Function (Fungsi)

Fungsi adalah satu blok kode yang dapat melakukan tugas tertentu atau satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Sebuah fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama. Nama tersebut selanjutnya dapat dipanggil berkali-kali di beberapa tempat dalam program. Keuntungan pembuatan fungsi secara umum adalah :

 Program besar dapat dipisah menjadi program-program kecil.  Dapat dikerjakan oleh beberapa orang sehingga koordinasi mudah.  Kemudahan dalam mencari kesalahan-kesalahan karena alur logika jelas dan

kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.  Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan.  Mempermudah dokumentasi. Sifat-sifat dari fungsi yang baik adalah :

 Nilai fan-in tinggi, artinya semakin sering suatu fungsi dipanggil oleh pengguna semakin tinggi nilai fan-in.  Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah nilai fan-out.  Self-contained tinggi, artinya kemampuan untuk memenuhi kebutuhannya sendiri.

Bentuk umum sebuah fungsi adalah:

Tipe_fungsi nama_fungsi (parameter fungsi) Deklarasi parameter { Tubuh fungsi }

Tipe fungsi digunakan untuk menentukan tipe keluaran fungsi

I. Fungsi Tanpa Nilai Balik

Fungsi tanpa nilai balik (return Value) digunakan untuk melakukan proses-proses yang tidak menghasilkan nilai, seperti melakukan pengulangan, proses pengesetan nilai ataupun yang lainnya.

Fungsi semacam ini tipe kembaliannya akan diisi dengan nilai void.

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Bentuk umumnya:

Void_nama_fungsi(parameter1, parameter2,..) {

Statemen_yang_akan_dieksekusi; ...

Contoh : #include <vcl.h>

#pragma hdrstop #include<iostream.h> #include<conio.h> void tulis(void) {

int j; for (j=0;j<10;j++) {

cout<<"Belajar Bahasa C++"<<endl;

} } main(void) {

tulis(); getch();

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

2. Fungsi Dengan Nilai Balik

Fungsi dengan nilai balik yaitu fungsi yang digunakan untuk melakukan proses-proses yang berhubungan dengan nilai. Adapun cara pendefinisiannya adalah dengan menuliskan tipe data dari nilai yang akan dikembalikan didepan nama fungsi.

Bentuk umum: tipe_data nama_fungsi(parameter1, parameter2,..)

Statemen_yang_akan_dieksekusi; ... return nilai_balik;

} Contoh : #include <vcl.h>

#pragma hdrstop #include<iostream.h> #include<conio.h> #include<iostream.h> LuasBujurSangkar(int sisi) {

int L; L = sisi * sisi; return L;

} main() {

int s, Luas; cout<<"Masukkan nilai sisi : "; cin>>s; Luas=LuasBujurSangkar(s); cout<<"Luas Bujur Sangkar adalah "<<Luas; getch();

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil Eksekusi :

3. Fungsi Dengan Parameter

Parameter adalah suatu variabel yang berfungsi untuk menampung nilai yang akan dikirimkan ke dalam fungsi. Parameter itu sendiri terbagi dua macam yaitu:  Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi

fungsi.  Parameter aktual adalah parameter (tidak selamanya menyatakan variabel) yang digunakan dalam pemanggilan fungsi.

Contoh : #include <vcl.h>

#pragma hdrstop #include<iostream.h> #include<conio.h> int TambahSatu(int X) {

X = X + 1; return X; } main() {

int bilangan; cout<<"Masukkan sebuah bilangan : "; cin>>bilangan; cout<<"Nilai akhirnya adalah "<<TambahSatu(bilangan); getch();

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil Eksekusi :

Melewatkan Parameter

Ada 2 cara melewatkan Parameter yaitu:

1. Berdasarkan nilai ( pass by value ).

2. Berdasarkan referensi ( pass by reference ). Contoh :

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void Kali2(int& X) {

X = X * 2; cout<<"Nilai didalam fungsi adalah: "<<X<<endl; } main() {

int bilangan; cout<<"Masukkan sebuah bilangan : "; cin>>bilangan;

cout<<endl; cout<<"Nilai awal : "<<bilangan<<endl; //memanggil nilai awal Kali2(bilangan); //memangggil fungsi Kali2 cout<<"Nilai akhirnya adalah "<<bilangan<<endl; getchar();

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil Eksekusi :

Contoh pass by reference

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void Kali2(int& X) {

X = X * 2; cout<<"Nilai didalam fungsi adalah: "<<X<<endl; } main() {

int bilangan; cout<<"Masukkan sebuah bilangan : "; cin>>bilangan; cout<<endl; cout<<"Nilai awal : "<<bilangan<<endl; //memanggil nilai awal Kali2(bilangan); //memangggil fungsi Kali2 cout<<"Nilai akhirnya adalah "<<bilangan<<endl; getch();

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h>

void Kali2(int& X); main() {

int bilangan; cout<<"Masukkan sebuah bilangan : "; cin>>bilangan; cout<<endl; cout<<"Nilai awal : "<<bilangan<<endl; //memanggil nilai awal Kali2(bilangan); //memangggil fungsi Kali2 cout<<"Nilai akhirnya adalah "<<bilangan<<endl; getch();

} void Kali2(int& X) {

X = X * 2; cout<<"Nilai didalam fungsi adalah: "<<X<<endl; }

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Soal Latihan :

1. Buatlah suatu fungsi untuk menjumlahkan 2 buah bilangan Program :

#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> int Tambah (int a, int b) {

int r; r = a + b; return (r);

} int main() {

int z; z = Tambah(5,3); cout<<"Hasilnya = " <<z<<endl; getch();

2. Buatlah Program tambah, kurang, kali, bagi dengan menggunakan fungsi Program :

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> float Tambah(float x, float y); float Kurang(float x, float y); float Kali(float x, float y); float Bagi(float x, float y); int main() {

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

float Tambah(float x, float y) { return (x+y); }

float Kurang(float x, float y)

{ return (x-y); }

float Kali(float x, float y)

{ return (x*y); }

float Bagi(float x, float y)

{ return (x/y); }

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

3. Buatlah program menggunakan fungsi untuk menghitung luas persegi panjang dan luas bujur sangkar!

Program : #include <vcl.h>

#pragma hdrstop #include<iostream.h> #include<conio.h> LuasBujurSangkar(int sisi) {

int L; L = sisi * sisi; return L;

} LuasPersegiPanjang(int panjang, int lebar) {

int L; L = panjang * lebar; return L;

} main() { int s,p,l, Luas; cout<<"Menghitung Luas Bujur Sangkar"<<endl; cout<<"Masukkan nilai sisi : "; cin>>s; Luas=LuasBujurSangkar(s); cout<<"Luas Bujur Sangkar adalah "<<Luas<<endl; cout<<endl; cout<<"Menghitung Luas Persegi Panjang"<<endl; cout<<"Masukkan panjang : "; cin>>p; cout<<"Masukkan lebar : "; cin>>l; Luas=LuasPersegiPanjang(p,l); cout<<"Luas Bujur Sangkar adalah "<<Luas<<endl; getch();

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Hasil eksekusi

4. Buatlah fungsi tukar dari 2 buah inputan user! //Program tukar

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void tukar(int& X, int& Y); main() {

int a,b; cout<<"Masukkan bilangan pertama: "; cin>>a; cout<<"Masukkan bilangan kedua: "; cin>>b; cout<<endl; cout<<"Sebelum ditukar (): "<<endl; cout<<"Nilai pertama = "<<a<<endl; cout<<"Nilai kedua = "<<b<<endl; cout<<endl;

tukar(a,b); cout<<"Sesudah ditukar () adalah "<<endl; cout<<"Nilai pertama = "<<a<<endl; cout<<"Nilai kedua = "<<b<<endl; cout<<endl;

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

int Z; Z = X;

X = Y; Y = Z; }

Hasil eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

Daftar Pustaka

Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2 , Graha Ilmu, Yogyakarta, 2009.

Budi Raharjo, Pemrograman C++ , Informatika, Bandung, 2010. Indra Yatini B, Flowchart, Algoritma, dan Pemrograman Menggunakan Bahasa C++ Builder ,

Graha Ilmu, Yogyakarta, 2010.

2015 Pemrograman Algoritma Struktur Data Modul 05

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

MODUL PERKULIAHAN

Pemrograman Algoritma

Struktur Data

Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana

Fakultas

Progra Studi

Tatap Muka

Kode MK

Disusu Oleh

Il u Ko puter

Teh ik I for atika

06 Tim Dosen

A stra t

Ko pete si

 Fu gsi Rekursif

 Ma pu

e jelaska ko sep fu gsi

rekursif

 Ma pu e gi ple e tasika asalah ate atika ya g solusi ya bersifat rekursif

de ga

progra ya g

e ga du g fu gsi rekursif

Fungsi Rekursif

Rekursif berarti suatu proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi.

Rekursif merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman modern mendukung keberadaan proses rekursif ini. Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang tidak bisa diketahui kapan akan berakhir. Dalam pemakaian sehari-hari, rekursi merupakan teknik pemrograman yang berdaya guna untuk digunakan pada pekerjaan pemrograman dengan mengekspresikannya ke dalam suku-suku dari program lain dengan menambahkan langkah- langkah sejenis. Contoh paling sederhana dari proses rekursi adalah menghitung nilai faktorial dari bilangan bulat. Nilai faktorial, secara rekursif dapat ditulis sebagai :

0! = 1 N! = N x (N-1)!, Untuk N > 0

yang secara notasi pemrograman bisa ditulis sebagai : FAKTORIAL (0) = 1

FAKTORIAL (N) = N * FAKTORIAL (N-1) 2) Persamaan 2) di atas merupakan contoh hubungan rekurens (recurrence relation), yang

berarti bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil.

Persamaan 1) yang tidak bersifat rekursif, disebut nilai awal. Setiap fungsi rekursi paling sedikit mempunyai 1 (satu) nilai awal; jika tidak, fungsi tersebut tidak bisa dihitung secara eksplisit.

Contoh program Rekursif

1. Faktorial : #include <vcl.h>

#pragma hdrstop #include <iostream> #include <conio.h>

2015 Pemrograman Algoritma Struktur Data Modul 06

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id http://www.mercubuana.ac.id

if (X==1) return (1); return X * Faktorial(X-1); //memanggil dirinya sendiri

} // Fungsi Utama int main() {

int Bilangan,Hasil; cout<<"Masukkan Bilangan Yang Akan Dihitung : "; cin>>Bilangan; //Memanggil Fungsi Faktorial Hasil=Faktorial(Bilangan); //Menampilkan Hasil cout<<Bilangan<<" ! = "<<Hasil; getch();

Hasil Eksekusi :

2015 Pemrograman Algoritma Struktur Data Modul 06

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

2. Faktorial #include <vcl.h>

#pragma hdrstop #include <iostream.h> #include <conio.h> long factorial(long a) {

if (a>1) return (a*factorial(a-1)); else return(1);

} int main () {

long L; cout<<"Masukkan nilai : "; cin>>L; cout<< "!" << L << " = " << factorial (L); getch();

3. Program Pangkat : //Pangkat

#include <vcl.h> #pragma hdrstop #include <iostream.h>

2015 Pemrograman Algoritma Struktur Data Modul 06

Pusat Bahan Ajar dan eLearning

http://www.mercubuana.ac.id

#include <conio.h> double Pangkat(double A, int N) {

if (N==0) return 1; else return A * Pangkat(A, N-1); } void main () {

int A,N; cout<<"Masukkan nilai = "; cin>>A; cout<<"Pangkat berapa = "; cin>>N; cout<<"Hasil Pangkat = "<<Pangkat(A,N); getch();

} Hasil Eksekusi :

Latihan :

1. Buat program untuk menghitung deret S = 1+2+3+4+5+….+N menggunakan Function Rekursi