KU1072 StrukturDasarProsedural CPP Flowchart 290815

64
KU1072/Pengenalan Teknologi Informasi B Tahap Tahun Pertama Bersama Institut Teknologi Bandung Struktur Dasar Program Prosedural (dalam Bahasa C++ + Flowchart) Tim Penyusun Materi PTI-B

description

GRATIS

Transcript of KU1072 StrukturDasarProsedural CPP Flowchart 290815

KU1072/Pengenalan Teknologi Informasi B

Tahap Tahun Pertama Bersama

Institut Teknologi Bandung

Struktur Dasar Program Prosedural(dalam Bahasa C++ + Flowchart)

Tim Penyusun Materi PTI-B

Tujuan• Subtopik

– Input – Proses – Output dalam program– Deklarasi dan penggunaan variabel, type (dasar dan bentukan),

konstanta, ekspresi (aritmatika, relasional, dan logika)– Input/output– Sekuens– Flowchart terkait– Contoh kasus

• Outcome– Memahami makna dan penggunaan variable, type, konstanta,

input/output, dan sekuens.– Memahami persoalan yang dapat dikonversi menjadi program

sederhana dengan memanfaatkan variable, type, konstanta, ekspresidasar, input/output, dan sekuens

KU1072/Pengantar Teknologi Informasi B03/09/2015 2

C++

• C++ merupakan bahasa pemrograman general purpose dan multi paradigma (prosedural, object oriented)

• Bahasa pemrograman yang sangat populer dan banyakdigunakan

• Dikembangkan oleh Bjarne Stroustrup mulai tahun 1979 di Bell Labs

• Merupakan pengembangan dari Bahasa C (proseduralmurni) dengan penambahan konsep, object-orientation

• Dalam kuliah ini, hanya akan menggunakan paradigmaprosedural

• Merupakan bahasa yang case sensitive perbedaanhuruf besar dan kecil berpengaruh

KU1072/Pengantar Teknologi Informasi B03/09/2015 3

Masukan – Proses – Luaran

KU1072/Pengantar Teknologi Informasi B

Input Proses Output

input (A)input (B)

A ← A + Boutput (A)output (B)

cin >> A;cin >> B;

A = A + B;cout << A;cout << B;

C++

03/09/2015 4

Flowchart Umum

03/09/2015 KU1072/Pengantar Teknologi Informasi B 5

Input(A)

Output(A)

Proses

Mulai

Selesai

Struktur Dasar Program Prosedural Secara Umum

KU1072/Pengantar Teknologi Informasi B

Program <JudulProgram>// Spesifikasi Program

KAMUS// Deklarasi type, variabel, konstanta, fungsi, prosedur

ALGORITMA// Deretan langkah algoritmik untuk penyelesaian// persoalan// DAPAT DISUSUN DALAM FLOWCHART

03/09/2015 6

Struktur Dasar Program Prosedural (C++)

03/09/2015 KU1072/Pengantar Teknologi Informasi B 7

// Program <JudulProgram>// Spesifikasi Program

#include <iostream>using namespace std;

int main () {// KAMUS// Deklarasi type, variabel, konstanta, fungsi, prosedur

// ALGORITMA// Deretan langkah algoritmik untuk penyelesaian persoalan

return 0;}

Contoh Program dan Flowchart

03/09/2015 KU1072/Pengantar Teknologi Informasi B 8

Mulai

input(A)input(B)

A = A + BB = B - A

output(A)output(B)

Selesai

Program Test// Menghitung A + B

KAMUSint A; int B;

ALGORITMA// Lihat flowchart

KU1072/Pengantar Teknologi Informasi B

Struktur Dasar Program Prosedural

03/09/2015 9

// Program Test// Spesifikasi : Menghitung nilai A dan B

#include <iostream>using namespace std;

int main () {//KAMUSint A;int B;

//ALGORITMAcin >> A; // inputcin >> B;A = A + B; // prosesB = B – A;cout << A << endl; // outputcout << B << endl;

return 0;}

Judul Program + spesifikasi, dituliskan

dalam komentar

KAMUS: deklarasi variabel A dan B

ALGORITMA:Input,

Proses,Output

Bagian ini perlu di tambahkansebagai standard pemrogramanC++ di layar Console

Komentar

• Dalam bahasa pemrograman komentar adalahbagian program yang tidak dieksekusi

– Bagian ini hanya digunakan untuk memberikan penjelasansuatu langkah, rumus ataupun bisa hanya berupaketerangan

• Dalam C++, komentar dituliskan sebagai:

– Antara /* dan */

/* ini komentar */

– Diawali dengan //

// ini komentar

KU1072/Pengantar Teknologi Informasi B03/09/2015 10

Kamus:Tipe Data, Variabel, Konstanta

KU1072/Pengantar Teknologi Informasi B03/09/2015 11

Kamus

• Kamus dipakai untuk mendeklarasi nama-nama yang digunakan dalam program

• Deklarasi nama yang didefinisikan pemrogram– type– variabel– konstanta

• Deklarasi BUKAN instruksi• Contoh deklarasi [variabel]:

KU1072/Pengantar Teknologi Informasi B03/09/2015 12

Variabel (1)

• Variabel adigunakan menyimpan suatu nilai yang ber-”tipe

data” tertentu sesuai dengan deklarasi

• Merepresentasikan suatu makna di dunia nyata yang ingin

diolah dalam program, misalnya:– Sum : jumlah beberapa angka

– Max : nilai maksimum

• Variabel : – deklarasi (supaya nama dikenal dan diketahui tipe datanya),

– inisialisasi nilai (siap dimanipulasi)

KU1072/Pengantar Teknologi Informasi B03/09/2015 13

Variabel (2)

• Contoh deklarasi

dan inisialisasi

variabel:

KU1072/Pengantar Teknologi Informasi B

C++

int main () {// KAMUS int i;float A;

// ALGORITMA....i = 100;A = i * 50;....return 0;

}

03/09/2015 14

Membuat Nama Variabel yang Benar dan “baik”

• Nama variabel harus dimulai dengan huruf dan dapatdiikuti dengan huruf lagi dan angka– Tidak boleh ada tanda baca

• Dalam nama variabel tidak boleh dipisahkan olehspasi

• Cari nama variabel yang bisa dimengerti– Agar tidak membingungkan

• C++ adalah bahasa yang case sensitive Kesalahan penulisan huruf besar dan kecil menyebabkanerror

KU1072/Pengantar Teknologi Informasi B03/09/2015 15

Contoh yang benarTotalJumlahA

Contoh yang salah3RodaJumlah,total8

Benar atau salah?Kar2stringTotal45-angkazzzzSuperDayaGunaLum4588abc

KU1072/Pengantar Teknologi Informasi B03/09/2015 16

Tipe Data (1)

• Setiap data memiliki jenis yang berbeda-beda

– Data umur seseorang berbeda dengan data nama• Data Umur dibentuk dari kumpulan angka

• Data nama dibentuk dari serangkaian huruf

– Untuk setiap jenis data juga memiliki rentang (range) yang berbeda

• Data umur rentangnya antara 1 sampai 100 (bila diasumsikanbahwa umur seseorang tidak lebih dari 100).

• Data nama rentangnya mulai dari 1 sampai 50 (bila di anggapnama tidak ada yang melebihi 50 huruf

KU1072/Pengantar Teknologi Informasi B03/09/2015 17

Tipe Data (2)

• Nilai yang diperbolehkan untuk variabel tergantungpada tipe data-nya

• Tipe data mendefinisikan himpunan nilai-nilaitertentu, misalnya:

– Tipe data integer : himpunan nilai yang terdiri atasbilangan bulat (negatif, 0, positif)

– Tipe data boolean: himpunan nilai yang terdiri atas nilaitrue dan false

03/09/2015 KU1072/Pengenalan Teknologi Informasi B 18

Jenis Tipe Data (1)

• Tipe data primitif atau tipe dasar

– Disediakan oleh bahasa pemrograman

KU1072/Pengantar Teknologi Informasi B

C++ Domain Nilai

bool Boolean: true = 1; false = 0

int Integer/bilangan bulat: bilangan bulat negatif, 0, bilanganbulat positifContoh: 1; -144; 999; 0

float Bilangan riil, contoh: 3.14; 4.01E+1

char Character: karakter/huruf, ditandai dengan kutip tunggal;Contoh: ‘A’; ‘#’; ‘b’

string Kumpulan karakter/huruf, ditandai dengan kutip tunggal(dalam C++)Contoh: “xcxcx”

03/09/2015 19

Contoh Penentuan Tipe Data Variabel

Umur

Kota

Nama

Suhu

Luas

BeratBadan

NIM

KU1072/Pengantar Teknologi Informasi B

Integer contoh: 25; 44; 35

String, contoh: “Jakarta”; “Bandung”

String, contoh: “Budi”; “Ali”

Integer atau float, contoh: 37.5; 100

Integer atau float, contoh: 400; 43.5

Integer atau float, contoh: 60.5; 75

Integer atau string?, contoh: 15812001

03/09/2015 20

Jenis Tipe Data (2)• Tipe data bentukan / komposit / record

– Tidak tersedia secara otomatis, harus dibuat oleh programmer– Dibentuk dari gabungan tipe dasar– Contoh:

KU1072/Pengantar Teknologi Informasi B

C++

Deklarasi type (KAMUS) typedef struct {int x;int y;

} Point;typedef struct {

string NIM;string Nama;

} Mahasiswa;

Deklarasi variabel (KAMUS) Point P;Mahasiswa M;

03/09/2015 21

Jenis Tipe Data (3)

KU1072/Pengantar Teknologi Informasi B03/09/2015 22

// KAMUStypedef struct {

int x;int y;

} Point;

int main () {// KAMUSPoint P;int a, b;...// ALGORITMAP.x = 0; P.y = 1;a = P.x; b = P.y + 1;...return 0;

}

Tipe data bentukan / komposit / record

Konstanta

• Berbeda dengan Variable, suatu konstanta tidakboleh diubah nilainya

• Contohconst float PI = 3.1415const int nilai = 1000

• Pemakaian yang salahPI = 44.5nilai = 5000

KU1072/Pengantar Teknologi Informasi B

Keduanya salah karena PI dan nilaisudah ditandai sebagai konstanta

dengan nilai 3.14159 dan 1000 jadinilainya tidak boleh diubah

03/09/2015 23

ALGORITMA:Assignment, Ekspresi,

Input/Output, Aksi Sekuensial

KU1072/Pengantar Teknologi Informasi B03/09/2015 24

Algoritma

• Adalah bagian program dalam bentuk teks algoritmikyang berisi instruksi atau pemanggilan aksi

• Teks algoritmik tsb. dapat berupa:– Perintah dasar: Input/Output, assignment

– Perintah perintah yang berurutan

– Analisis kasus (jika-maka)

– Pengulangan… dll.

• Dalam Bahasa C++, setiap instruksi ditandai dengan ;(semicolon/titik koma) di akhir instruksi– Contoh: cin >> A;

KU1072/Pengantar Teknologi Informasi B03/09/2015 25

Pemberian Nilai

• Suatu besaran (dengan tipe tertentu), misalnya variabel, yang telah dikenal dapatdiberi nilai/harga

• Pemberian nilai:

– Pemberian nilai langsung atau disebut sebagaiassignment

• Contoh: A = 10;

– Dibaca dari piranti masukan (perintah input)

• Contoh: cin >> A;

KU1071/Pengantar Teknologi Informasi A/Sem 1 2011-2012

Assignment

• Assignment: Pemberian nilai suatu variabel

• Ruas kiri harus variable

• Ruas kanan harus ekspresi/nilai/variabel yang sudah jelas nilainya

KU1072/Pengantar Teknologi Informasi B

C++

<RuasKiri> = <RuasKanan>;

Contoh:i = 10;Nama = “Maya”;X = i + 10;

Nilai X di-assign dengan ekspresi

03/09/2015 27

Ekspresi

• Operasi yang bisa diberlakukan tergantung pada tipedata

• Struktur umum (operasi biner):

• Tipe data hasil operasi tergantung pada tipe data operan

• Operan tidak hanya berupa nilai/variable, bisa berupaekspresi

• Jenis:

– Ekspresi biner : 2 operan, contoh operator: * - / and or

– Ekspresi uner : 1 operan, contoh operator: not

03/09/2015 KU1072/Pengenalan Teknologi Informasi B 28

<operan1> <operator> <operan2>

Jenis Ekspresi

C++

Ekspresi Aritmatika: operan numerik(integer/real), hasil: numerik (integer/real)

A + Bx + 2 * y P – 2 * Q + R/S

Ekspresi Relasional: operan numerik(integer/real), hasil: boolean

A < BX == YTotal >= nilai

Ekspresi Logika: operan: boolean, hasil : boolean

A && BC || B

KU1072/Pengantar Teknologi Informasi B03/09/2015 29

Operasi pada nilai suatu tipe data

• Operasi perhitungan akan memerlukan operator

seperti “+”, “-”, “*” dan “/” (tambah, kurang, kali dan bagi) untuk melakukan kalkulasi

• Operasi “+” pada tipe data bukan numerik memilikiarti yang berbeda

– Contoh: “Halo “ + “Apa kabar “ “Halo Apa kabar”

• Tidak semua operator dapat digunakan untuk tipedata numerik.

– Contoh: “Halo “ * “Apa kabar “

KU1072/Pengantar Teknologi Informasi B03/09/2015 30

Operasi tipe dasar

• int : * / + - % < > <= >= == !=

• bool : && || ! !=

• float : * / + - < > <= >= !=

• char : == !=

• string : == != +

+ adalah konkatenasi 2 string

KU1072/Pengantar Teknologi Informasi B03/09/2015 31

Input/Output (1)

• Perintah Input: pemberian nilai variabel dari pirantimasukan, misal: keyboard dibaca atas masukandari pengguna

Perintah di C++: cin

Contoh:

cin >> A; // mengisi nilai A dengan masukan dari

// keyboard/pengguna

03/09/2015 KU1072/Pengenalan Teknologi Informasi B 32

Input/Output (2)

• Perintah output: penulisan nilai(variabel/konstanta/hasil ekspresi) ke piranti keluaran, misal: monitor

Perintah di C++: cout

Contoh: cout << A; // menulis isi variabel A ke layar,

// diakhiri enter

cout << “Hello”; // menulis Hello ke layar

cout << A * 4; // menulis hasil perkalian A*4

cout << PI; // menulis nilai konstanta PI

03/09/2015 KU1072/Pengenalan Teknologi Informasi B 33

Latihan-1

• Buatlah program yang menampilkan hasil perhitungan luas lingkaran berdasarkan masukan nilai jari-jari

KU1072/Pengantar Teknologi Informasi B03/09/2015 34

Menghitung Luas Lingkaran (Flowchart)

03/09/2015 KU1072/Pengantar Teknologi Informasi B 35

Mulai

input(jarijari)

luas = 3.14 * jarijari * jarijari

output(luas)

Selesai

Program HitungLuasLingkaran// Menghitung luas lingkaran // berdasarkan masukan jari-jari

KAMUSfloat jarijari;float luas;

ALGORITMA// Lihat flowchart

Algoritma

Pendefinisian variabel

// Program HitungLuasLingkaran

// Menghitung luas lingkaran berdasarkan jari-jari

#include <iostream>

using namespace std;

int main()

{ // KAMUS

float jarijari;

float luas;

// ALGORITMA

cin >> jarijari;

luas = 3.1415 * jarijari * jarijari;

cout << luas << endl;

return 0;

}

Menghitung Luas Lingkaran (C++)

KU1072/Pengantar Teknologi Informasi B03/09/2015 36

Alternatif: Menghitung Luas Lingkaran (Flowchart)

03/09/2015 KU1072/Pengantar Teknologi Informasi B 37

Mulai

input(jarijari)

luas = PI * jarijari * jarijari

output(luas)

Selesai

Program HitungLuasLingkaran// Menghitung luas lingkaran // berdasarkan masukan jari-jari

KAMUSconst float PI = 3.1415;float jarijari;float luas : real;

ALGORITMA// Lihat flowchart

Algoritma

Pendefinisian variabel

Pendefinisian konstanta

Menghitung Luas Lingkaran (C++) - Alternatif

KU1072/Pengantar Teknologi Informasi B

// Program HitungLuasLingkaran

// Menghitung luas lingkaran berdasarkan jari-jari

#include <iostream>

using namespace std;

int main()

{ // KAMUS

const float PI = 3.1415;

float jarijari;

float luas;

// ALGORITMA

cin >> jarijari;

luas = PI * jarijari * jarijari;

cout << luas << endl;

return 0;

}03/09/2015 38

Latihan-2

• Buatlah program untuk menghitung luas lingkaran berdasarkan masukan alas dan tinggi

KU1072/Pengantar Teknologi Informasi B03/09/2015 39

Program HitungLuasSegitiga// Menghitung luas segitiga// berdasarkan masukan alas dan// tinggi segitiga

KAMUSfloat alas, tinggi;float luas;

ALGORITMA// lihat flowchart

Mulai

input(alas)Input(tinggi)

luas = 0.5 * alas * tinggi

output(luas)

Selesai

Menghitung Luas Segitiga (C++)

KU1072/Pengantar Teknologi Informasi B03/09/2015 40

// Program HitungLuasSegitiga// Menghitung luas segitiga berdasarkan alas dan tingginya#include <iostream>using namespace std;

int main(){ // KAMUS

float alas;float tinggi;float luas;

// ALGORITMAcin >> alas;cin >> tinggi;

luas = 0.5 * alas * tinggi;

cout << Luas << endl;

return 0;}

Latihan-3

• Buat program menghitung rata-rata dari tinggi badan5 anak

– Program akan menerima masukan data tinggi badan untuk5 orang anak

– Kemudian program akan menghitung tinggi rata-rata darike lima anak tersebut

KU1072/Pengantar Teknologi Informasi B03/09/2015 41

Menghitung Tinggi Rata-Rata (Flowchart)

Program TinggiRataRata// Menghitung tinggi rata-// rata 5 anak

KAMUSint t1, t2, t3, t4, t5;float ratarata;

ALGORITMA// lihat flowchart

03/09/2015 KU1072/Pengantar Teknologi Informasi B 42

Mulai

input(t1, t2, t3, t4, t5)

ratarata = (t1+t2+t3+t4+t5)/5

output(ratarata)

Selesai

Menghitung Tinggi Rata-Rata (C++)

KU1072/Pengantar Teknologi Informasi B

// Program TinggiRataRata// Hitung tinggi rata-rata 5 anak#include <iostream>using namespace std;int main(){ // KAMUS

int tinggi1, tinggi2, tinggi3, tinggi4, tinggi5;float ratarata;// ALGORITMAcin >> tinggi1;cin >> tinggi2;cin >> tinggi3;cin >> tinggi4;cin >> tinggi5;

ratarata = (tinggi1 + tinggi2 + tinggi3 +tinggi4 + tinggi5)/5;cout << ratarata << endl;return 0;

}

03/09/2015 43

Definisi Aksi Sekuensial

• Aksi sekuensial

– sederetan instruksi primitif dan/atau aksi yang akan dilaksanakan (dieksekusi) oleh komputer berdasarkan urutan penulisannya

– Setiap aksi akan mengubah status dari program

• Jadi setiap aksi sekuensial harus ada awal dan akhir.

• atau dengan kata lain suatu program harus dimulai dansuatu ketika harus berakhir

– Program yang tidak pernah berhenti adalah program yang salah atau error

KU1072/Pengantar Teknologi Informasi B03/09/2015 44

Penulisan untuk Instruksi Sekuensial

• Instruksi ditulis terurut sesuai penulisan per baris

• Setiap instruksi selalu diakhiri dengan tanda titikkoma

– Jadi dalam satu baru dapat terdiri dari lebih dari instruksi.

KU1072/Pengantar Teknologi Informasi B03/09/2015 45

Contoh aksi sekuensial

KU1072/Pengantar Teknologi Informasi B

/* contoh aksi sekuensial per baris */

int main()

{ /* Kamus */

int i;

float x;

/* Algoritma */

cin >> i;

x = 100.75;

cout << x << endl;

cout << i * 2 << endl;

return 0;

}

/* contoh aksi sekuensial dg titik koma */

int main()

{ /* Kamus */

int i;

float x;

/* Algoritma */

cin >> i ; x = 100.75;

cout << x << endl; cout << i * 2 << endl;

return 0;

}

03/09/2015 46

KU1072/Pengantar Teknologi Informasi B

Contoh aksi sekuensial/* contoh aksi sekuensial per baris */

int main()

{ /* Kamus */

int i;

float x;

/* Algoritma */

cin >> i;

x = 100.75;

cout << x << endl;

cout << i * 2 << endl;

return 0;

}

/* contoh aksi sekuensial dg titik koma */

int main()

{ /* Kamus */

int i;

float x;

/* Algoritma */

cin >> i ; x = 100.75;

cout << x << endl; cout << i * 2 << endl;

return 0;

}

Perhatikan bahwa keduanya memlikiurutan eksekusi yang sama dan juga hasileksekusi yang identik.Perbedaannya hanyalah di carapenulisannya. Mana yang lebih baikpenulisannya?

03/09/2015 47

• Perhatikan bahwa:

– ada program yang akan berubah jika urutan baris instruksinya berubah

– dan ada juga program yang tidak berubah jika urutan baris instruksinya berubah

KU1072/Pengantar Teknologi Informasi B03/09/2015 48

Pengubahan urutan eksekusi yang tidak mengubah hasil eksekusi

KU1072/Pengantar Teknologi Informasi B

// contoh aksi sekuensial per

// baris

int main() {

// KAMUS

int i;

float x;

// ALGORITMA

cin >> i;

x = 100.75;

cout << x << endl;

cout << i * 2 << endl;

return 0;

}

// contoh aksi sekuensial per

// baris

int main() {

// KAMUS

float x;

int i;

// ALGORITMA

x = 100.75;

cin >> i;

cout << x << endl;

cout << i * 2 << endl;

return 0;

}03/09/2015 49

Pengubahan urutan eksekusi yang mengubah hasil eksekusi

KU1072/Pengantar Teknologi Informasi B

/* contoh aksi sekuensial per baris */

int main(){

/* Kamus */int i;float x;

/* Algoritma */

cin >> i;x = 100.75;

cout << x << endl;cout << i * 2 << endl;return 0;

}

/* contoh aksi sekuensial per baris */

int main(){

/* Kamus */float x;int i;

/* Algoritma */

x = 100.75;cin >> i;

cout << i * 2 << endl;cout << x << endl;return 0;

}

03/09/2015 50

Latihan-4:Menghitung Jarak

• Buatlah program untuk menghitung jarak berdasarkan masukan kecepatan dan waktu

• Dekomposisi masalah:

– Program menerima masukan kecepatan

– Kemudian program menerima masukan waktu

– Lalu program akan melakukan perhitungan jarak

– Kemudian menampilkan hasil perhitungan

KU1072/Pengantar Teknologi Informasi B03/09/2015 51

Menghitung Jarak(Flowchart)

Program HitungJarak// Menghitung jarak berdasarkan// masukan kecepatan (v) dan// waktu (t)

KAMUSfloat v, t, s;

ALGORITMA// lihat flowchart

03/09/2015 KU1072/Pengantar Teknologi Informasi B 52

Mulai

input(v, t)

s := v * t

output(s)

Selesai

// Program HitungJarak// Menghitung jarak berdasarkan masukan// kecepatan (v) dan waktu (t)#include <iostream>using namespace std;

int main(){ // KAMUS

int jarak, v, t;

// ALGORITMA

cin >> v;cin >> t;

jarak = v * t;

cout << jarak << endl;return 0;

}

Menghitung Jarak (C++) (1)

KU1072/Pengantar Teknologi Informasi B03/09/2015 53

Menghitung Jarak (C++) (2)

KU1072/Pengantar Teknologi Informasi B03/09/2015 54

// Program HitungJarak// Menghitung jarak berdasarkan masukan// kecepatan (v) dan waktu (t)#include <iostream>using namespace std;

int main(){ // KAMUS

int jarak, v, t;

// ALGORITMAcout << “kecepatan = “;cin >> v;cout << “waktu = “;cin >> t;

jarak = v * t;

cout << “Jarak = “ << jarak << endl;return 0;

}

Latihan-5:Jumlah 2 Pecahan

• Buat program yang menerima masukan 2 pecahan dan menghitung penjumlahannya

• Spesifikasi program– Program menerima masukan pecahan pertama berupa

pembilang dan penyebut

– Kemudian program menerima pecahan kedua

– Lalu program akan melakukan penjumlahan

– Kemudian menampilkan hasilnya berupa pembilang danpenyebut hasil penjumlahan

KU1072/Pengantar Teknologi Informasi B03/09/2015 55

Langkah Solusi (1)

• Program menerima masukan pecahan pertamaberupa pembilang dan penyebut

input(pembilang1);

input(penyebut1)

• Kemudian program menerima pecahan kedua

input(pembilang2);

input(penyebut2);

KU1072/Pengantar Teknologi Informasi B03/09/2015 56

Langkah Solusi (2)

• Lalu program akan melakukan penjumlahan

pembilang3 =

pembilang1 * penyebut2 + pembilang2 * penyebut1;

penyebut3 = penyebut1 * penyebut2;

• Kemudian menampilkan hasilnya berupa pembilang danpenyebut hasil penjumlahan

output(pembilang3);

output(penyebut3);

KU1072/Pengantar Teknologi Informasi B

�+�

�=�� + ��

� ∗ �

03/09/2015 57

Jumlah 2 Pecahan(Flowchart)

Program JumlahPecahan;// Menghitung pembilang dan// penyebut pecahan dari// penjumlahan dua buah pecahan// yang diketahui pembilang dan// penyebutnya

KAMUSint pembilang1, pembilang2,

pembilang3;int penyebut1, penyebut2,

penyebut3;

ALGORITMA{ lihat flowchart }

03/09/2015 KU1072/Pengantar Teknologi Informasi B 58

Mulai

input(pembilang1)input(penyebut1)input(pembilang2)input(penyebut2)

pembilang3 = pembilang1 * penyebut2 + pembilang2 * penyebut1penyebut3 = penyebut1 * penyebut2

output(pembilang3)output(penyebut3)

Selesai

KU1072/Pengantar Teknologi Informasi B03/09/2015 59

// Program JumlahPecahan

// Menghitung pembilang dan penyebut pecahan dari penjumlahan

// dua buah pecahan yang diketahui pembilang dan penyebutnya

#include <iostream>

using namespace std;

int main()

{ // KAMUS

int pembilang1, pembilang2, pembilang3;

int penyebut1, penyebut2, penyebut3;

// ALGORITMA

cin >> pembilang1;

cin >> penyebut1;

cin >> pembilang2;

cin >> penyebut2;

pembilang3 = pembilang1 * penyebut2 + pembilang2 * penyebut1;

penyebut3 = penyebut2 * penyebut1;

cout << pembilang3 << endl;

cout << penyebut3 << endl;

return 0;

}

Jumlah 2 Pecahan(C++)

Alternatif:Jumlah 2 Pecahan(Flowchart)

Program JumlahPecahan{ ... }

KAMUStypedef struct {

int pembilang; int penyebut;

} Pecahan;// variabelPecahan P1, P2, P3;

ALGORITMA// lihat flowchart

03/09/2015 KU1072/Pengantar Teknologi Informasi B 60

Mulai

input(P1)input(P2)

P3.pembilang := P1.pembilang * P2.penyebut + P2.pembilang * P1.penyebutP3.penyebut := P1.penyebut * P2.penyebut

output(P3)

Selesai

KU1072/Pengantar Teknologi Informasi B03/09/2015 61

// Program KaliPecahan// Menghitung pembilang dan penyebut pecahan dari perkalian// dua buah pecahan yang diketahui pembilang dan penyebutnya#include <iostream>using namespace std;// KAMUStypedef struct {

int pembilang; int penyebut;

} Pecahan;int main() {

// KAMUSPecahan P1, P2, P3;

// ALGORITMAcin >> P1.pembilang; cin >> P1.penyebut;cin >> P2.pembilang; cin >> P2.penyebut;

P3.pembilang = P1.pembilang*P2. penyebut + P2.pembilang*P1.penyebut;P3.penyebut = P1.penyebut * P2.penyebut;

cout << P3.pembilang;cout << P3.penyebut;

return 0;}

Jumlah 2 Pecahan(C++)

Alternatif

KU1072/Pengantar Teknologi Informasi B

Soal-1

• Buatlah sebuah program yang membaca darikeyboard – Panjang dari suatu persegi empat, misalnya p, – Lebar dari suatu persegi empat, misalnya l

• Asumsikan masukan panjang dan lebar selalu > 0• Panjang dan lebar adalah bilangan real• Selanjutnya program menuliskan ke layar luas persegi

empat, misalnya LPS, yang dihitung dengan rumus : LPS = p * l

03/09/2015 62

Soal-2

• Sebuah program yang mengelola type bentukan pointsebagai berikut:

type point : < X : integer; { absis }Y : integer { ordinat } >

• Buatlah program yang membaca dua buah point, misalnya P1 dan P2 dan tuliskan jarak antara kedua point tersebut

• Rumus perhitungan jarak 2 point:

• Gunakan instruksi sqrt (X) untuk perhitungan akarkuadrat dan X * X untuk perhitungan kuadrat

KU1072/Pengantar Teknologi Informasi B

221

221 )()( yyxx

03/09/2015 63

Soal-3

• Buatlah sebuah program yang menerima masukan 2 buah Jam (dalam jam, menit, dan detik), misalnya J1dan J2 dan menghitung selisih di antara keduanya (dalam jam, menit, detik)

• Asumsikan J1 lebih awal atau sama dengan J2

• Misalnya: J1 = 12:0:0 dan J2 = 13:0:1 maka selisihnya adalah 1:0:1 (1 jam 0 menit 1 detik)

• Petunjuk: Untuk mengubah jam menjadi jumlah detik gunakan rumus: jam * 3600 + menit * 60 + detik

03/09/2015 KU1072/Pengantar Teknologi Informasi B 64