Anda di halaman 1dari 26

Nama NIM Kelompok

: Agus Gede Adi Prayoga : 1104505095 : XX

PRAKTIKUM ALGORITMA DAN PEMROGRAMAN MODUL II PEMROGRAMAN MODULAR


2.1 1. 2. 3. 4. 5. Tujuan Memahami dasar-dasar pemrograman C++. Memahami konsep variabel lokal dan variabel global dalam pemrograman. Memahami konsep fungsi dan prosedur dalam pemrograman modular. Memahami konsep passing by value dan passing by reference dalam pemrograman dengan fungsi maupun prosedur. Memahami pengaplikasian pemrograman modular pada C++.

2.2 2.2.1 2.2.2 2.2.3 2.2.4

Tugas Pendahuluan Jelaskan tentang konsep variabel lokal dan variabel global serta perbedaannya. Jelaskan tentang konsep fungsi dan prosedur, perbedaan keduanya, serta aplikasinya dalam pemrograman dengan C++. Jelaskan tentang konsep passing by value dan passing by reference, perbedaannya, serta aplikasinya dalam pemrograman dengan Bahasa C++. Buatlah flowchart dan pseudocode (notasi algoritma) dari program pada soal di bawah ini, lalu lakukan trace terhadap flowchart yang anda buat sehingga yakin bahwa flowchart tersebut sudah benar.

2.3 Jawaban 2.3.1 Langkah-langkah dalam instalasi kompiler C++ dengan menggunakan Borland Builder versi 6.0 di komputer. Double klik master program Borland Builder versi 6. Setelah muncul jendela extracting archive, pilih Browse untuk meletakkan di direktori mana file yang telah di extract akan diletakkan kemudian klik Install.

File Borland akan diextract.

Setelah proses mengextract data selesai. Cari file yang telah diextract di direktori penyimpanan, lalu cari folder Borland C++ Builder Version 6 kemudian doble klik icon setup. Setup proses penginstalan.

Klik Next untuk tampilan jendela berikut.

Pada tampilan jendela berikut, isi Serial Number dan Authorization Key lalu klik Next.

Pilih I accept the terms in license agreement, kemudian klik Next.

Klik Next untuk tampilan jendela berikut.

Pada tampilan jendela berikut akan diminta untuk jenis instalasi yang diinginkan, untuk instalan secara umun dan dipakai oleh semua user pilih Typical. Klik Next.

Jika ingin menggunakan VisiBroker/CORBA support, klik Next.

Klik Office 2000 jika computer terinstal MS Office 2000 ke atas, lalu klik Next.

Jika ingin menggunakan jenis database Interbase Client pilih fitur ini, kemudian klik Next.

Pilih I agree with the terms of the license. Klik Next.

Untuk lebih mudah, biarkan tujuan tempat-tempat instalasi seperti semula (default), klik Next.

Biarkan pilihan default, klik Next.

Klik Instal, untuk memulai proses instalasi.

Borland akan melakukan proses penginstalan.

Klik Finish.

Contoh program sederhana perkalian dua bilangan. Pseudocode Kamus Lokal : x y hasil Algoritma : READ x READ y hasil=x*y PRINT hasil

: : :

float float float

Trace Input : x=4 y=9 Proses : hasil = 4*9 = 36 Output : 36 Flowchart

S T A R T

x, y

hasil = x*y

hasil

1.3.2 Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data. Tipe data menentukan apakah sebuah nilai dapat dimiliki sebuah data atau tidak, serta operasi apa yang dapat dilakukan pada data tersebut. Tipe data dasar adalah tipe data yang dapat langsung digunakan. Secara umum terdapat 2 tipe data dasar, yaitu numerik dan kategorik. Tipe data numerik terdiri atas angka/ kumpulan angka serta dapat mengalami operasi perhitungan, sedangkan tipe data kategorik dapat berupa angka maupun huruf namun tidak dapat mengalami operasi perhitungan.

Berikut beberapa tipe data dasar C++ : Tipe Data Char Short int Keterangan Abjad/karakter atau untuk bilangan bulat kecil Bilangan bulat dengan jangkauan pendek Bilangan bulat Int Integer dengan jangkauan panjang 4 byte Ukuran memori 1 byte 2 byte Jangkauan signed: -128 to 127 unsigned: 0 to 255 signed: -32768 to 32767 unsigned: 0 to 65535 signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 1 (true) atau 0 (false)

Long int

4 byte

Bool

Float Double Long double Wchar_t

Boolean, dapat bernilai benar atau salah (true or false) Angka dengan titik mengambang (bilangan cacah) Bilangan cacah dengan ketelitian ganda Bilangan cacah dengan ketelitian ganda panjang Karakter lebar, biasa dipakai untuk Unicode karakter

i byte 3.4e +/- 38 (7 digit) 4 byte 8 byte 8 byte 2 byte 1.7e +/- 308 (15 digits) 1.7e +/- 308 (15 digits) 1 karakter lebar

1.3.2.1 Tipe integer/ bilangan bulat Integer adalah tipe data dasar berupa bilangan yang tidak mengandung pecahan desimal. Tipe data ini digunakan untuk data-data bilangan yang tidak mengandung angka dibelakang koma. Tipe data yang termasuk tipe data integer yaitu tipe data short int, int dan long int. 1.3.2.2 Tipe real/ bilangan riil Real adalah tipe data dasar berupa bilangan yang memiliki pecahan desimal. Tipe data ini digunakan untuk perhitungan yang melibatkan bilangan pecahan, seperti perhitungan kosinus, akar persamaan, dan sebagainya. Tipe data yang termasuk tipe data real yaitu tipe data float, double, dan long double.

1.3.2.3 Tipe char/ karakter Char adalah tipe data dasar yang terdiri atas satu buah angka, huruf, tanda baca atau karakter khusus. Untuk menyimpan sebuah karakter, diperlukan 1 byte atau 8 bit tempat didalam memori. 1.3.2.4 Tipe string String adalah tipe data dasar yang berupa kumpulan karakter dengan panjang tertentu. Meskipun berupa kumpulan karakter, karena tipe data string sering digunakan dalam pemrograman, string dianggap sebagai tipe data dasar. Untuk penyimpanan string didalam memori, dibutuhkan 1 byte untuk tiap karakternya.

1.3.2.5 Tipe Boolean/ logika Tipe data ini digunakan untuk data-data yang hanya mengandung nilai logika (Boolean). Nilai logika itu sendiri hanya terdiri dari nilai benar (direpresentasikan dengan nilai 1) dan salah (direpresentasikan dengan nilai 0). Dalam pemrograman, nilai ini umumnya lebih dikenal dengan nilai true (benar) dan false (salah). 1.3.3 Struktur kontrol pada bahasa pemrograman C++ sangat diperlukan untuk membuat program dengan kondisi bersyarat atau proses pemilihan sesuai dengan kondisi yang digunakan. Untuk itu, bahasa pemrograman C++ menyediakan beberapa struktur kontrol, yaitu : 1.3.3.1 Statement If Pernyataan If akan menentukan sebuah pernyataan (blok kode) yang akan eksekusi jika dan hanya jika bernilai benar (true). Perintah IF digunakan untuk menyatakan pernyataan kondisional.

Sintaks dapat ditulis sebagai berikut: If (kondisi) statement; Flowchart

Salah kondisi Benar statemen

contoh penulisan programnya: #include <iostream> using namespace std; int main ( ) { int nilai; cout <<"masukkan nilai : "; cin>>nilai; if (nilai>50) cout <<"lulus"; return 0; }

1.3.3.2 Statement If.else Apabila ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false. Sintaksnya dapat ditulis sebagai berikut: If (kondisi) { Statemen1; } else { statemen2; } Flowchart

True

kondisi

false

Statemen1

Statemen2

contoh penulisan programnya:

#include <iostream> using namespace std; int main() { int nilai; cout <<"berapa umur anda : "; cin>>umur; if (umur>=17){ cout <<" anda sudah dewasa "; }else{ if (umur<17) cout <<" anda belum dewasa/anak-anak "; } return 0; }

1.3.3.3 Statement Switch Mengkonstruksikan cabang untuk beberapa kondisi dari nilai.

Sintaksnya dapat ditulis sebagai berikut: switch (ekspresi) { case value1 : statement1; break; case value2 : statement2; break; case valueN : statementN; break; default : statement_alternatif; break; }

#include <iostream> using namespace std; int main ( ) { int bil; cout <<"masukkan sebuah bilangan (1-5): "; cin>>bil; switch (bil) { case 1: cout <<"bhs jepang "<<bil<<" : adalah ichi"; break; case 2: cout <<"bhs jepang "<<bil<<" : adalah ni"; break; case 3: cout <<"bhs jepang "<<bil<<" : adalah san"; break; case 4: cout <<"bhs jepang "<<bil<<" : adalah yon"; break; case 5: cout <<"bhs jepang "<<bil<<" : adalah go"; break; default: cout <<"tidak terdapat bhs jepang "<<bil; } return 0; } 1.3.4 Penjelasan dan contoh statemen perulangan for, while, dan do while: 1.3.4.1 Statement For Perulangan for merupakan perulangan yang sudah diketahui jumlah perulangannya serta memiliki kondisi awal dan kondisi akhir. //untuk perulangan yang sifatnya naik (increment) for (variable = nilai awal; kondisi; variable++) {statemen yang akan diulang; } //untuk perulangan yang sifatnya menurun (decrement) for (variable = nilai awal; kondisi; variable--) {statemen yang akan diulang; } Sebagai catatan, jika kita melakukan perulangan yang sifatnya naik maka nilai awal dari variable yang kita definisikan haruslah lebih kecil dari nilai akhir yang dituliskan dalam kondisi. Sebaliknya, jika kita akan melakukan.

#include <iostream> using namespace std; int main() { int i; for (i=0; i<4; i++) { cout <<" Saya mahasiwa TI "<<endl; } return 0; }

perulangan yang sifatnya menurun maka nilai awal harus lebih besar dari nilai akhir. Berikut ini contoh program yang menunjukkan perulangan dengan menggunakan struktur for. Program diatas jika dijalankan hasilnya adalah: Saya mahasiwa TI Saya mahasiwa TI Saya mahasiwa TI Saya mahasiwa TI Penjelasan: statemen Saya mahasiwa TI akan diulang sebanyak 4 kali yaitu dengan menghitung dari nilai a ke-0 sampai a ke-2. 1.3.4.2 Statement While Perulangan while merupakan perulangan dengan pengecekan kondisi dilakukan di awal perulanggan. While (kondisi) { Statemen yang akan diulang; } Berikut ini contoh program menggunakan struktur while. yang menunjukkan perulangan dengan

#include <iostream> using namespace std; int main() { int i; i=0; while (i<4){ cout <<" Universitas Udayana "<<endl; i++; } return 0; } bila program diatas dijalankan maka hasilnya akan seperti ini: Universitas Udayana Universitas Udayana Universitas Udayana Universitas Udayana 1.3.4.3 Statement Do while Struktur perulangan do-while hampir sama dengan perulangan while, hanya saja struktur perulangan do while pengecekan kondisi perulangan dilakukan di akhir perulangan. do { Statemen yang akan diulang; } while (kondisi); Berikut ini contoh program yang diambil dari kasus sebelumnya namun disini kita akan menggunakan struktur do-while.

#include <iostream> using namespace std; int main() { int i=0; do { cout <<" Universitas Udayana "<<endl; i++; } while (i<4); return 0; } 1.3.5 Flowchart, pseudocode, dan dari program-program di bawah ini adalah: 1.3.5.1 Buatlah program untuk menghitung akar-akar persamaan kuadrat x1dan x2 dari persamaan ax2 + bx + c. Program bisa menampilkan keterangan apakah akar-akar tersebut apakah real atau imajiner (ditentukan dari determinan D = b2 4ac), dan apakah akar-akar tersebut kembar atau berbeda. Input program berupa nilai a, b dan c. Output berupa nilai x1dan x2, real atau imajiner dan kembar atau berbeda.

Flowchart: start

inputa,b,c

Db*b-4*a*c

D>0 y

D=0?

x1=(-b+sqrt(D))/2*a; x2=(-b-sqrt(D))/2*a

y x1,x2=(-b)/2*a print x1,x2, akar real berbeda

print x1,x2, akar real kembar

print akarimaji ner stop

Pseudocode: Deklarasi a,b,c:integer; D,x1,x2:real; Proses inputa,b,c D=b*b-4*a*c if D>0 x1=(-b+sqrt(D))/2*a x2=(-b-sqrt(D))/2*a print x1, x2, akar real berbeda else if D=0 x1, x2=(-b)/2*a print x1, x2, akar real kembar else print akarimajiner end if trace: Input : a b c Proses: D x1 x2 Output : x1 x2 = 1 = 6 = 8 = (6*6) (4*1*8) = 4 = (- 6 + sqrt (4)) / 2*1 = - 1 = (- 6 sqrt(4)) / 2*1 = - 5 = -1 = -5

akar real berbeda

1.3.5.2 Buatlah program untuk menentukan nilai huruf akhir suatu matakuliah dengan ketentuan : NilaiAngka = (NilaiTugas x 35%) + (Nilai Middle x 30%) + (NilaiUjian x 35%) Nilaihurufditentukandenganketentuanberikut. (NA = NilaiAngka) 0 NA < 45 E 45 NA < 55 D 55 NA < 65 C 65 NA < 80 B 80 NA < 100 A

Input program berupa nilai tugas, nilai middle dan nilai ujian. Output berupa nilai angka dan nilai huruf yang didapat dengan ketentuan diatas.

Flowchart: start

nilaitugas, nilai middle, nilaiujian

NA (nilai tugas*0.35)+(nilai middle*0.30)+(nilai ujian*0.35) print NA

NA<45

print E

NA<55

print D

NA<65

print C

NA<80

print B

print A

stop

Pseudocode: Deklarasi nilai tugas,nilai middle,nilai ujian:integer; NA:real; Proses input nilaitugas input nilaimiddle input nilaiujian NA=(nilaitugas x 35%) + (nilai middle x 30%) + (nilaiujian x 35%) print NA if NA<45 print E else if NA<55 print D else if NA<65 print C else if NA<80 print B else print A end if trace: Input : nilaitugas nilai middle nilaiujian Proses: NA = (75*0.35)+(95*0.30)+(80*0.35) = 82.75 A = 80 = 85 = 87

Output:

1.3.5.3 Buatlah program untuk menampilkan deret bilangan prima dan Fibonacci dari n buah bilangan yang diinputkan. Input merupakan sembarang bilangan n. Output merupakan deret n buah bilangan prima dan Fibonacci.

Flowchart bilangan prima Start

Input N

x=2, y=i-1 For i= 2 to n i>=2 t y B y End

i=2 t For x to y

Print i M= i%x t M>0 y x++ i++ B i++

Pseudocode Deret Bilangan Prima programderet_bil_prima; var

a,c,j,i:integer; begin write('Masukanangka :'); readln(a); for j=1 to a do begin c:=0; for i:=1 to j do begin if j mod i = 0 then c:=c+1; end; if c=2 then write(j,' ') end; readln; end.

Flowchart bilangan Fibonacci

Start

Fibo [ ], i, n, jwb

Input n

Fibo [0]=0

Fibo [1]=1

Print Fibo[0], fibo[1]

i=2 ; i<n

Fibo [i] = fibo[i-1] + fibo[i-2]

Print Fibo[i]

End

Pseudocode programfibonacci; var a,b,c,d,e:integer; begin writeln('masukanbilangan : ');readln(a); c:=1; d:=1; for b:=1 to a do begin if (b=1)or(b=2) then write(c,' ') else begin e:=c+d; c:=d; d:=e; write(e,' '); end; end; readln; end.

1.3.6 Seni penulisan program dapat dilihat sebagai berikut: 1.3.6.1 tiap baris perintah (statement) diakhiri dengan tanda ; kecuali penggunaan file Header dan Deklarasi kostanta. 1.3.6.2 memiliki main( ) sebagai blok main program, blok main program dimulai dengan symbol { dan diakhiri dengan symbol } 1.3.6.3 Untuk mendeklarasikan lebih dari satu variabel, variabel tersebut dipisah dengan tanda koma (,). 1.3.6.4 Untuk menambahkan pernyataan/komentar dalam source menggunakan tanda // untuk perbaris, sedangkan apabila banyak maka menggunakan blok /* diakhir pernyataan */. 1.3.6.5 Perhatikan struktur dan kerangka penulisan program C++ 1.3.6.6 Perhatikan bahwa pada C++ berlaku case sensitive (huruf besar dan huruf kecil adalah beda). 1.3.6.7 Perhatikan penggunaan \n dan endl 1.3.6.8 Perhatikan extension file source untuk C++ adalah.cpp 1.3.6.9 Perhatikan langkah langkah kompilasi program C++ 1.3.6.10 Latih penangan error padasaat compile.

Anda mungkin juga menyukai