nama.docx

31
Nama : Agus Gede Adi Prayoga NIM : 1104505095 Kelompok : XX PRAKTIKUM ALGORITMA DAN PEMROGRAMAN MODUL II PEMROGRAMAN MODULAR 2.1 Tujuan 1. Memahami dasar-dasar pemrograman C++. 2. Memahami konsep variabel lokal dan variabel global dalam pemrograman. 3. Memahami konsep fungsi dan prosedur dalam pemrograman modular. 4. Memahami konsep passing by value dan passing by reference dalam pemrograman dengan fungsi maupun prosedur. 5. Memahami pengaplikasian pemrograman modular pada C++. 2.2 Tugas Pendahuluan 2.2.1 Jelaskan tentang konsep variabel lokal dan variabel global serta perbedaannya. 2.2.2 Jelaskan tentang konsep fungsi dan prosedur, perbedaan keduanya, serta aplikasinya dalam pemrograman dengan C++. 2.2.3 Jelaskan tentang konsep passing by value dan passing by reference, perbedaannya, serta aplikasinya dalam pemrograman dengan Bahasa C++. 2.2.4 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.

Upload: adi-prayoga

Post on 25-Apr-2015

29 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Nama.docx

Nama : Agus Gede Adi PrayogaNIM : 1104505095Kelompok : XX

PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

MODUL IIPEMROGRAMAN MODULAR

2.1 Tujuan1. Memahami dasar-dasar pemrograman C++. 2. Memahami konsep variabel lokal dan variabel global dalam pemrograman.

3. Memahami konsep fungsi dan prosedur dalam pemrograman modular.

4. Memahami konsep passing by value dan passing by reference dalam pemrograman dengan fungsi maupun prosedur.

5. Memahami pengaplikasian pemrograman modular pada C++.

2.2 Tugas Pendahuluan2.2.1 Jelaskan tentang konsep variabel lokal dan variabel global serta

perbedaannya.2.2.2 Jelaskan tentang konsep fungsi dan prosedur, perbedaan keduanya, serta

aplikasinya dalam pemrograman dengan C++. 2.2.3 Jelaskan tentang konsep passing by value dan passing by reference,

perbedaannya, serta aplikasinya dalam pemrograman dengan Bahasa C++.2.2.4 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 Jawaban2.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.

Page 2: Nama.docx

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.

Page 3: Nama.docx

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.

Page 4: Nama.docx

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.

Page 5: Nama.docx

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.

Page 6: Nama.docx

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

Biarkan pilihan default, klik Next.

Klik Instal, untuk memulai proses instalasi.

Page 7: Nama.docx

Borland akan melakukan proses penginstalan.

Klik Finish.

Page 8: Nama.docx

Contoh program sederhana perkalian dua bilangan.

Pseudocode

Kamus Lokal :x : floaty : floathasil : float

Algoritma :READ ← xREAD ← yhasil=x*yPRINT hasil

Trace

Input :x = 4y = 9

Proses :hasil = 4*9 = 36

Output :36

Flowchart

S T A R T

E N D

x, y

hasil = x*y

hasil

Page 9: Nama.docx

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

Jangkauan

CharAbjad/karakter atau untuk bilangan bulat kecil

1 bytesigned: -128 to 127 unsigned: 0 to 255

Short intBilangan bulat dengan jangkauan pendek 2 byte

signed: -32768 to 32767unsigned: 0 to 65535

Int

Bilangan bulat

4 byte

signed: -2147483648 to 2147483647unsigned: 0 to 4294967295

Long int

Integer dengan jangkauan panjang

4 byte

signed: -2147483648 to 2147483647unsigned: 0 to 4294967295

BoolBoolean, dapat bernilai benar atau salah (true or false)

i byte1 (true) atau 0 (false)

FloatAngka dengan titik mengambang (bilangan cacah)

4 byte3.4e +/- 38 (7 digit)

DoubleBilangan cacah dengan ketelitian ganda

8 byte1.7e +/- 308 (15 digits)

Long doubleBilangan cacah dengan ketelitian ganda panjang

8 byte1.7e +/- 308 (15 digits)

Wchar_tKarakter lebar, biasa dipakai untuk Unicode karakter

2 byte1 karakter lebar

Page 10: Nama.docx

1.3.2.1 Tipe integer/ bilangan bulatInteger 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 riilReal 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/ karakterChar 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 stringString 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/ logikaTipe 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 IfPernyataan 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:

Page 11: Nama.docx

If (kondisi)

statement;

Flowchart

Salah

Benar

contoh penulisan programnya:

1.3.3.2 Statement If.elseApabila ingin mengeksekusi beberapa pernyataan dengan kondisi

true dan pernyataan yang lain dengan kondisi false.

Sintaksnya dapat ditulis sebagai berikut:

If (kondisi) {

Statemen1;

} else {

statemen2;

kondisi

statemen

#include <iostream> using namespace std;int main ( ){ int nilai;

cout <<"masukkan nilai : "; cin>>nilai;

if (nilai>50)

cout <<"lulus";

return 0;}

Page 12: Nama.docx

}

Flowchart

True false

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;

}

kondisi

Statemen1 Statemen2

Page 13: Nama.docx

1.3.3.3 Statement SwitchMengkonstruksikan 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; }

1.3.4 Penjelasan dan contoh statemen perulangan for, while, dan do while:

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

Page 14: Nama.docx

1.3.4.1 Statement ForPerulangan 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.

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 TISaya mahasiwa TI

#include <iostream>

using namespace std;

int main()

{

int i;

for (i=0; i<4; i++) {

cout <<" Saya mahasiwa TI "<<endl;

}

return 0;

}

Page 15: Nama.docx

Saya mahasiwa TISaya 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 WhilePerulangan while merupakan perulangan dengan pengecekan kondisi

dilakukan di awal perulanggan.

While (kondisi) {Statemen yang akan diulang;}

Berikut ini contoh program yang menunjukkan perulangan dengan menggunakan struktur while.

bila program diatas dijalankan maka hasilnya akan seperti ini:Universitas Udayana Universitas Udayana Universitas UdayanaUniversitas Udayana

#include <iostream>

using namespace std;

int main()

{

int i;

i=0;

while (i<4){

cout <<" Universitas Udayana "<<endl; i++;

}

return 0;

}

Page 16: Nama.docx

1.3.4.3 Statement Do whileStruktur 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.

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

#include <iostream>

using namespace std;

int main()

{

int i=0;

do {

cout <<" Universitas Udayana "<<endl; i++;

} while (i<4);

return 0;

}

Page 17: Nama.docx

berbeda. Input program berupa nilai a, b dan c. Output berupa nilai x1dan x2, real atau imajiner dan kembar atau berbeda.

Page 18: Nama.docx

Flowchart:

t

yt

y

start

inputa,b,c

D←b*b-4*a*c

D>0

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

D=0

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

print x1,x2, “akar real kembar”

print “akarimaji

ner”stop

Page 19: Nama.docx

Pseudocode:

Deklarasia,b,c:integer;D,x1,x2:real;

Prosesinputa,b,cD=b*b-4*a*cif D>0x1=(-b+sqrt(D))/2*ax2=(-b-sqrt(D))/2*aprint x1, x2, “akar real berbeda”elseif D=0x1, x2=(-b)/2*aprint x1, x2, “akar real kembar”elseprint “akarimajiner”end if

trace:Input : a = 1

b = 6 c = 8

Proses: D = (6*6) – (4*1*8) = 4 x1 = (- 6 + sqrt (4)) / 2*1 = - 1

x2 = (- 6 – sqrt(4)) / 2*1 = - 5

Output : x1 = - 1x2 = - 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

Page 20: Nama.docx

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

Page 21: Nama.docx

Flowchart:

start

nilaitugas, nilai middle,

nilaiujian

NA← (nilai tugas*0.35)+(nilai middle*0.30)+(nilai

ujian*0.35)

print NA

NA<45

NA<65

NA<55

NA<80

print “E”

print “A”

print “B”

print “C”

print “D”

stop

Page 22: Nama.docx

Pseudocode:

Deklarasinilai tugas,nilai middle,nilai ujian:integer;NA:real;

Prosesinput nilaitugasinput nilaimiddleinput nilaiujianNA=(nilaitugas x 35%) + (nilai middle x 30%) + (nilaiujian x 35%)print NAif NA<45 print “E”elseif NA<55 print “D”elseif NA<65 print “C”elseif NA<80print “B”elseprint “A”end if

trace:

Input : nilaitugas = 80nilai middle = 85nilaiujian = 87

Proses:

NA = (75*0.35)+(95*0.30)+(80*0.35)= 82.75

Output: “A”

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.

Page 23: Nama.docx

Flowchart bilangan prima

ty

y

t

t

y

Pseudocode Deret Bilangan Prima

programderet_bil_prima;

var

Start

Input N

x=2, y=i-1

For i= 2 to

i>=2

B

i=2

For x to y

M= i%xPrint i

i++

M>0

B

x++

i++

End

Page 24: Nama.docx

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.

Page 25: Nama.docx

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

Page 26: Nama.docx

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.

Page 27: Nama.docx

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 endl1.3.6.8 Perhatikan extension file source untuk C++ adalah.cpp1.3.6.9 Perhatikan langkah – langkah kompilasi program C++1.3.6.10 Latih penangan error padasaat compile.