• Tidak ada hasil yang ditemukan

Pemrograman Algoritma Struktur Data

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Algoritma Struktur Data"

Copied!
162
0
0

Teks penuh

(1)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

01

87042  Tim Dosen      

Abstract 

Kompetensi 

 Pengenalan Bahasa C++

 Konstanta dan tipe data dalam C++  Mencetak nilai konstanta bilangan integer

dan float serta string dalam C++  Memberi nilai ke dalam variabel bilangan

integer dan float dalam C++

 Mampu menggunakan IDE Borland C++

 Mampu membuat program console sederhana dalam Bahasa C++ dan mencetak konstanta bilangan, karakter dan string dalam Bahasa C++

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

(2)

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

(3)

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 :

(4)

#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;

(5)

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 /*...*/

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

(6)

e. Nama identifier sebaiknya disesuaikan dengn kebutuhannya artinya jangan sampai orang lain bingung hanya karena salah satu penamaan identifier.

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

(7)

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; ... }; #include<iostream.h> #include<string.h> int main()

(8)

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

(9)

contoh :

#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;

}

(10)

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 = ... Masukan sebuah kata = ... Masukkan Angka = ...

Huruf yang Anda masukkan adalah ... Kata yang Anda masukkan adalah ... Angka yang Anda masukkan adalah ...

(11)

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.

(12)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

02

87042  Tim Dosen      

Abstract 

Kompetensi 

 Operator || dan && dalam bahasa C++  Proses konversi dari multi conditions

menjadi nested if

 Mampu menggunakan operator || (OR) dan && (AND) dan melakukan kombinasi antara berbagai operator tersebut.

 Mampu melakukan konversi dari multi conditions menjadi nested if

(13)

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 Contoh

+ Positif +7

- Negatif -7

++ Incremen C++

-- decremen C--

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

(14)

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

(15)

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.

Operator Keterangan

* Perkalian

/ Pembagian

% Modulus atau sisa bagi

+ Penjumlahan

- Pengurangan

(16)

#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:

(17)

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

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

}

(18)

c. Operator Relasional

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;

(19)

if (nilai % 2 == 0)

cout<<nilai<<" adalah bilangan Genap"<<endl; else

cout<<nilai<<" adalah bilangan Ganjil"<<endl; getch();

}

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:

Operator Keterangan

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

1001 9

1010 10

(20)

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

1001 9

1010 10

1011 11

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

1001 9

1010 10

0011 3

 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 29 0011 1010 58

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

0001 1101 29 0000 1110 14 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();

(21)

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

(22)

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!

(23)

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.

(24)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

03

87042  Tim Dosen      

Abstract 

Kompetensi 

 Struktur Kondisi IF

 Struktur Kondisi Switch Case

 Mampu menggunakan struktur kondisi IF dalam bahasa pemrograman C++.  Mampu menggunakan struktur kondisi

Switch Case dalam bahasa pemrograman C++.

(25)

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

}

(26)

2. Struktur dua kondisi (perintah if – else)

 Perintah if...else 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(); }

(27)

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; } .... else { statemen_jika_semua_kondisi_tidak_terpenuhi; } Contoh 1: #include <vcl.h> #pragma hdrstop #include <iostream.h>

(28)

#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 :

(29)

#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();

}

(30)

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

(31)

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; …

(32)

default:

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;

(33)

default:

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

(34)

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.

(35)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

04

87042  Tim Dosen      

Abstract 

Kompetensi 

 Struktur perulangan dengan for,   do‐while dan while   Pengaplikasian struktur perulangan   untuk memecahkan soal‐soal   matematika dan fisika       Mampu menggunakan struktur  perulangan dengan for, do‐while dan  while dalam Bahasa Pemrograman C++   Mampu memanfaatkan struktur  perulangan untuk memecahkan soal‐soal  matematika dan fisika   

(36)

 

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

(37)

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.

(38)

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 :

(39)

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 :

(40)

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 :

(41)

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;

(42)

cout<<"Masukan Angka : "; cin>>b;

for(a = b-1; a>=0; a--){ cout<<u[a]<<" ";} getch(); } 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();

}

(43)

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

(44)

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

(45)

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.

(46)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

05

87042  Tim Dosen      

Abstract 

Kompetensi 

 Function Dalam Bahasa C        Mampu membuat program yang  mengandung void function dan typed  function     

(47)

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.

(48)

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 :

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

int x,y;

cout<<"Masukan nilai pertama:"; cin>>x; cout<<"Masukan nilai kedua:"; cin>>y;

cout<<"Hasil Penjumlahan:"<<Tambah(x,y)<<endl; cout<<"Hasil Pengurangan:"<<Kurang(x,y)<<endl; cout<<"Hasil Perkalian:"<<Kali(x,y)<<endl; cout<<"Hasil Pembagian:"<<Bagi(x,y)<<endl; getch(); }

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

(56)

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

(57)

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;

(58)

getch(); }

void tukar(int& X, int& Y) { int Z; Z = X; X = Y; Y = Z; } Hasil eksekusi :

(59)

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.

(60)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

06

87042  Tim Dosen      

Abstract 

Kompetensi 

 Fungsi Rekursif      

 Mampu  menjelaskan  konsep  fungsi  rekursif 

 Mampu  mengimplementasikan  masalah  matematika  yang  solusinya  bersifat  rekursif  dengan  program  yang  mengandung fungsi rekursif 

(61)

 

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

(62)

using namespace std;

//mendefinisikan Fungsi Faktorial int Faktorial(int X)

{

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 :

(63)

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>

(64)

#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

2. Buat program untuk menghitung deret S = 2+4+6+8+10+….+2N menggunakan Function Rekursi

3. Buat program untuk menghitung 10 deret Fibonacci dengan menggunakan Function Rekursi:

(65)

Jawab :

No.1 Program Deret //Deret #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> int S(int n) { if (n==1) return (1); else return (n + S(n-1)); } main () { int n; cout<<”Masukkan n = “; cin>>n; cout<<”Deret S = 1 + 2 + 3 + 4 + 5 + …+ n \n”; cout<<”Jumlah Deret S = “<<S(n); getch(); } Hasil Eksekusi :

(66)

No. 2 //Deret #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> int S(int n) { if (n==1) return (2); else return (2*n + S(n-1)); } main () { int n; cout<<"Masukkan n = "; cin>>n; cout<<"Deret S = 2 + 4 + 6 + 8 + 10 + ...+ n \n"; cout<<"Jumlah Deret S = "<<S(n); getch(); }

(67)
(68)

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.

Moh. Sjukani, Algoritma & Struktur Data dengan C, C++ dan JAVA, Mitra Wacana Media, Bandung, 2004.

(69)

     

MODUL PERKULIAHAN

   

Pemrograman

Algoritma

Struktur Data

     

Modul Standar untuk

digunakan dalam Perkuliahan

di Universitas Mercu Buana

   

       

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

  Ilmu Komputer  Tehnik Informatika 

07

87042  Tim Dosen      

Abstract 

Kompetensi 

 Array satu dimensi dan   Array dua dimensi      

 Mampu membuat program untuk menginisialisasi array satu dimensi dan array dua dimensi.

 Mampu membuat program untuk mengisi elemen array satu dimensi dan array dua dimensi menggunakan struktur perulangan.

(70)

 

ARRAY

Array adalah himpunan elemen (variabel) dengan tipe data yang sama dan disimpan secara berurutan dalam memori yang ditandai dengan memberikan indeks pada suatu nama variabel.

1. Array Berdimensi Satu

Gambaran sebuah Array ditunjukkan pada contoh di bawah ini, dimana kita dapat menyimpan 5 nilai dengan tipe float tanpa harus mendeklarasikan 5 identifier variabel yang berbeda. Perhatikan contoh di bawah ini :

Elemen-elemen Array

0 1 2 3 4

Nama Array

Gambar 1. Gambaran Sebuah Array

Bagian kosong di atas merepresentasikan elemen array, dalam kasus ini adalah nilai integer. Angka 0 – 4 merupakan indeks dan selalu dimulai dari 0. Seperti penggunaan variabel pada umumnya, array harus dideklarasikan terlebih dahulu, dengan format sebagai berikut :

Type name [elements];

Maka contoh array di atas dideklarasikan sebagai berikut : Float Suhu [5] ;

Inisialisasi Array

Ketika mendeklarasikan array lokal (didalam fungsi), jika tidak diberikan nilai maka isi dari array tidak akan ditentukan (undetermined) sampai nilai diberikan. Jika mendeklarasikan array global array (di luar semua fungsi) maka isi dari array akan diinisialisasikan sebagai 0 :

(71)

0 1 2 3 4

Suhu 0 0 0 0 0

Atau dideklarasikan dengan memberikan nilai array yang dituliskan dalam kurung kurawal :

Float Suhu [5] = { 28.5, 28, 29, 30.5, 27}

Maka elemen array akan berisi :

0 1 2 3 4

Suhu 28.5 28 29 30.5 27

Nilai array dapat di akses secara individual, dengan format : name [index]

Maka dari contoh sebelumnya nama yang digunakan untuk mengakses masing-masing elemen :

Suhu[0] Suhu[1] Suhu[2] Suhu[3] Suhu[4] Suhu

Misalkan akan disimpan nilai 75 pada elemen ke tiga, maka instruksinya : Suhu[2] = 28; Dan jika nilai elemen ke tiga tadi akan diberikan ke variabel a, maka dapat dituliskan :

a = Suhu[2]; contoh 1:

Buatlah program untuk menampilkan data suatu suhu //contoh Array #include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void contoh() { float Suhu[5]= {27.5, 28, 29, 30.5, 27}; for (int i=0; i<5; i++)

(72)

cout<<"Suhu [" <<i<< "] = "<<Suhu[i]<<endl; } void main() { contoh(); getchar(); } Hasil Eksekusi : Contoh 2:

Buat program nilai dan jumlahkan nilai tersebut, kemudian hitung jumlahnya dan nilai rata-rata dari 5 buah bilangan yang dimasukkan

#include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void main() { int daf_nilai[5]; int i,jum; float rata;

for (i=1; i<=5; i++) {

cout<<"Masukkan nilai tes ke-" <<i<< " : "; cin>>daf_nilai[i];

}

jum = 0 ;

(73)

jum = jum + daf_nilai[i]; rata = jum / 5; cout<<"Jumlah : "<<jum<<endl; cout<<"Rata-rata : "<<rata<<endl; getch(); } Hasil eksekusi :

2. Array Multidimensi

Array multidimensi dapat dianggap sebagai “array dari array”. Contoh array 2 dimensi dapat dibayangkan sebagai table berdimensi 2 yang tersusun dari elemen-elemennya, semua bertipe sama.

Contoh :

suhu 0 1 2 3 4

0 1 2

Array suhu menyatakan array dua dimensi berukuran 3 x 5 elemen bertipe integer. Cara mendeklarasikan dalam bahasa C ++ adalah ;

Int suhu [3] [5];

Sedangkan cara untuk menunjuk pada salah satu elemennya bisa dilakukan dengan menyebutkan nama array diikuti dengan alamat sel menurut baris dan kolomnya, misalnya :

(74)

Array multidimensi tidak hanya terbatas pada array dimensi 2 saja tetapi dapat berupa array dimensi 3 dan seterusnya.

3. Array Sebagai Parameter

Suatu saat kita mungkin perlu untuk menjadikan array sebagai parameter sebuah fungsi. Dalam C/C++ tidak memungkinkan untuk mengirimkan nilai seluruh blok memori sebagai parameter fungsi, tetapi kita dapat mengirimkan alamat awalnya.

Agar sebuah fungsi dapat menerima array sebagai parameter, cara yang dilakukan adalah menentukan tipe dan nama array (tanpa menentukan banyak elemen) dalam parameter fungsi saat fungsi dideklarasikan.

Contoh :

Void coba_array (int array1[])

Prosedur acak akan menerima sebuah parameter bertipe integer dengan nama p_array, untuk mengirimkan sebuah array yang dideklarasikan sebagai :

Int array [40];

Cukup memanggil fungsi dengan statement :

Coba_array (array); Contoh : #include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h>

void array (int data[], int panjang) {

for (int n=0; n<panjang; n++) cout<< data[n] << " "; cout<<endl; } void main() { int array1[]={5,10,15}; int array2[]={2,4,6,8,10}; array(array1,3); array(array2,5); getchar(); }

(75)

Hasil Eksekusi :

Seperti kita lihat pada program di atas, parameter pertama (int data[ ]) menerima sebarang array yang tipenya int, berapapun panjangnya. Untuk itu perlu ditambahkan parameter yang kedua untuk memberitahu panjang array yang dikirim. Nilai ini kemudian dapat dipakai pada statement perulangan for untuk menampilkan elemen array sesuai banyaknya. Dalam deklarasi fungsi juga diperbolehkan untuk memasukkan array multidimensi. Format untuk menyertakan array berbeda dengan format parameter array dimensi satu. Contoh deklarasi parameter array dimensi 3:

Void coba_array ( int array1[ ] [3] [4] )

Perhatikan kurung siku pertama [ ] dibiarkan kosong sementara yang lainnya harus ditentukan. Hal ini karena compiler dalam fungsi harus dapat menentukan berapa besar array pada dimensi tambahan.

Untuk bisa mengetahui lebih jelas tentang sifat-sifat array sebagai parameter sebuah fungsi kita perlu memahami lebih lanjut tentang operasi pointer.

Latihan :

Buat program C++ untuk menampilkan 5 nama Mahasiswa yang diinput melalui keyboard. #include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void data_mahasiswa() { string nama [5]; int indeks;

for (indeks=1; indeks <=5; indeks++) {

cout<<"Masukkan nama mahasiswa ke-"<<indeks<<" : "; cin >> nama[indeks];

(76)

} clrscr();

cout <<" Daftar Nama Mahasiswa " << endl; cout <<"--- " << endl;

cout <<"No | Nama Mahasiswa " << endl; cout <<"--- " << endl;

for (indeks=1; indeks <=5; indeks++) {

cout << indeks << '\t' << nama[indeks]<<endl; } } void main() { clrscr(); data_mahasiswa(); getch(); }

Jika kita input nama berikut :

(77)

Soal :

Dari program latihan di atas kembangkan sehingga dapat menyimpan ‘Umur’ dan ‘Jenis Kelamin’ dari mahasiswa. Untuk umur adalah yang berumur di atas 20 tahun saja. Kemudian tambahkan program tersebut untuk menghitung rata-rata umur dari semua mahasiswa yang dimasukkan.

Programnya : #include <vcl.h> #pragma hdrstop #include<iostream.h> #include<conio.h> void data_mahasiswa() { string nama [5]; int umur [5]; char jenis[5]; int indeks; int x;

float jumlah, rata;

for (indeks=1; indeks <=5; indeks++) {

cout<<"Masukkan nama mahasiswa ke-"<<indeks<<" : "; cin >> nama[indeks];

cout<<"Masukkan umur mahasiswa ke-"<<indeks<<" : "; cin >> umur[indeks];

cout<<"Masukkan jenis mahasiswa ke-"<<indeks<<" : "; cin >> jenis[indeks];

} clrscr();

cout <<" Daftar Nama Mahasiswa " << endl; cout <<"--- " << endl; cout <<"No | Nama | Umur | Jenis " << endl; cout <<"--- " << endl; x=umur[0];

for (indeks=1; indeks <=5; indeks++) if (umur[indeks] > x)

(78)

x=umur[indeks];

for (indeks=1; indeks <=5; indeks++) {

if (umur[indeks]>=17)

cout << indeks << '\t' << nama[indeks]<<'\t'<<umur[indeks]<<'\t'<<jenis[indeks]<<endl; }

jumlah = 0;

for (indeks=1; indeks <=5; indeks++) jumlah = jumlah + umur[indeks]; rata = jumlah/indeks;

cout<<endl;

cout<<"umur yang paling tua = "<<x<<endl; cout<<endl;

cout<<"Jumlah Umur = "<<jumlah<<endl; cout<<"Rata-rata = "<<rata<<endl; } void main() { clrscr(); data_mahasiswa(); getch(); }

(79)
(80)

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.

Moh. Sjukani, Algoritma & Struktur Data dengan C, C++ dan JAVA, Mitra Wacana Media, Bandung, 2004.

Gambar

Gambar 1. Gambaran Sebuah Array
Gambar 2. Penentuan tipe Pointer  Contoh lain :
gambar 3. Variabel pointer yang menunjuk ke struktur
Gambar berikut menunjukkan keadaan setelah pernyataan tersebut dieksekusi :                     novel                                                           judul
+6

Referensi

Garis besar

Dokumen terkait

Perbedaannya, array adalah struktur data yang tipe data dari elemen-elemennya harus sama dan elemen tersebut diakses melalui indeks sedangkan struktur adalah struktur data yang

Salah satu bentuk struktur data yang berisi kumpulan data yang tersusun secara sekuensial, saling bersambungan, dinamis adalah senarai berkait ( linked list

Gambar 4 menunjukkan sebuah array dengan jumlah elemen 10, sedangkan List 3 menunjukkan contoh kode array dalam bahasa Java.. Setiap elemen dari array dapat diakses dengan indek

bahwa selalu ada elemen sebelum elemen pertama yang sebenarnya pada linked list... Linked Lists:

 Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data

Perbedaannya, array adalah struktur data yang tipe data dari elemen-elemennya harus sama dan elemen tersebut diakses melalui indeks sedangkan struktur adalah struktur data yang

Kegunaan array selain menyimpan data antara lain: - Pengindeksan: Anda dapat mengakses elemen-elemen dalam array dengan menggunakan indeks numerik, yang memungkinkan Anda untuk

Membaca isi Array Contoh isi array sbb: Untuk membaca atau mendapatkan nilai dari elemen ke 2 dari array diatas yaitu: x[2]; Untuk digunakan pada perintah cout bisa sbb: cout...