• Tidak ada hasil yang ditemukan

ALGORITHM. 8 Algoritma dengan C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORITHM. 8 Algoritma dengan C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com"

Copied!
45
0
0

Teks penuh

(1)

ALGORITHM

8

Algoritma dengan C++

Dahlia Widhyaestoeti, S.Kom

dahlia.widhyaestoeti@gmail.com

dahlia74march.wordpress.com

(2)

2

"Jika kau tidak bisa menjelaskan secara sederhana, kau

berarti belum cukup dalam memahaminya."

Albert Einstein

Albert Einstein (lahir di Ulm, Kerajaan Württemberg,

Kerajaan Jerman, 14 Maret 1879 – meninggal di Princeton,

New Jersey, Amerika Serikat, 18 April1955 pada umur 76 tahun) adalah seorang ilmuwanfisika teoretis yang dipandang luas sebagai ilmuwan terbesar dalam abad ke-20. Dia mengemukakan

teori relativitas dan juga banyak menyumbang bagi

pengembangan mekanika kuantum, mekanika statistika, dan

kosmologi. Dia dianugerahi Penghargaan Nobel dalam Fisika

pada tahun 1921 untuk penjelasannya tentang efek fotolistrik dan "pengabdiannya bagi Fisika Teoretis".

Setelah teori relativitas umum dirumuskan, Einstein menjadi terkenal ke seluruh dunia, pencapaian yang tidak biasa bagi seorang ilmuwan. Di masa tuanya, keterkenalannya melampaui ketenaran semua ilmuwan dalam sejarah, dan dalam

budaya populer, kata Einstein dianggap bersinonim dengan

kecerdasan atau bahkan genius. Wajahnya merupakan salah satu yang paling dikenal di seluruh dunia.

(3)

3

Menghitung luas

segitiga bila diketahui

alas dan tinggi segitiga

tersebut

(4)

4

Susun algoritma yang ditulis

dalam

Bahasa C/C++, untuk menginput dan

mencetak Luas sebuah segitiga bila

alas

dan

tinggi

sudah diketahui yaitu :

Alas = 7 dan Tinggi = 5.

?

7

5

?

A

T

L

A untuk Alas

T untuk Tinggi, dan

L untuk Luas

cout

printf

(5)

5

17.5

7

5

17.5

A

T

L

A untuk Alas

T untuk Tinggi, dan

L untuk Luas

(6)

6

Rumus menghitung

Luas sebuah Segitiga

Kadang-kadang :

Lebih sulit :

Mencari ,

memahami

dan

menggunakan

Rumus, dibandingkan menulis algoritma

harus

(7)

7

dapat ditulis setelah

dan konsep atau draf

secara manual sudah

(8)

8

Yang harus

dipahami dan Dikuasai

sebelumnya

RUMUS menghitung Luas

sebuah segitiga :

LUAS = ALAS * TINGGI / 2 LUAS = (ALAS * TINGGI) / 2 LUAS = ALAS * ( TINGGI / 2) LUAS = ALAS * TINGGI * 0.5 LUAS = 0.5 * ALAS * TINGGI atau

atau atau atau

atau dan sebagainya yang valid

DALAM BEBERAPA HAL (KASUS), RUMUS TIDAK DIBERITAHUKAN PEMBUAT ALGORITMA HARUS MENGETAHUINYA SENDIRI TIDAK MENGETAHUI RUMUS TIDAK DAPAT MEMBUAT

ALGORITMA

BUKAN

PERSOALAN

MATEMATIKA

(9)

9

KONSEP penyelesaian

Draf

7

5

17.5

Alas

Tinggi

Luas

(10)

10

#include <iostream.h>

void main()

{ int A, T, L;

A = 7;

T = 5;

L = A * T / 2;

cout

<< L ;

}

START cout L = A * T / 2 END L Program Flowchart A = 7 T = 5

Tercetak :

17

C++

7

5

17

A T L

(11)

11

#include <iostream.h>

void main()

{ int A, T;

float L;

A = 7;

T = 5;

L = A * T /

2.0

;

cout

<< L ;

}

START cout L = A * T / 2 END L Program Flowchart A = 7 T = 5

C++

Tercetak :

17.5

7

5

17.5

int int int

Tipe data pembagi variabel

diisi dengan tipe data

integer dan tipe data

variabel dengan float?

(12)

12

#include <iostream.h>

void main()

{ float A, T;

float L;

A = 7;

T = 5;

L = A * T /

2

;

cout

<< L ;

}

START cout L = A * T / 2 END L Program Flowchart A = 7 T = 5

Tercetak :

17.5

7.0

5.0

17.5

A T L

float float float

2

?

(13)

13

#include <iostream.h>

void main()

{ float A, T, L;

A = 7;

T = 5;

L = A * T / 2.0;

cout

<< L ;

}

Tercetak :

17.5

C++

#include <stdio.h>

void main()

{ float A, T, L;

A = 7;

T = 5;

L = A * T / 2.0;

printf

(“%f”,

L );

}

C

Tercetak :

17.500000

(14)

14

Jika program yang diinginkan adalah

mengisikan data dari keyboard, dan

data yang diisi harus berupa float,

maka programnya?

Jika program yang diinginkan adalah

mengisikan data dari keyboard, dan

data yang diisi harus berupa float,

maka flowchartnya?

(15)

15

#include <iostream.h>

void main()

{ float A, T, L;

cin >> A;

cin >> T;

L = A * T / 2;

cout << L;

}

START cin cin cout L = A * T / 2 END A T L Program Flowchart

Dua instruksi ini dapat digabung

menjadi satu instruksi :

cin >> A >> T;

cin

A,T

(16)

16

#include <iostream.h>

void main()

{ float A,T, L;

cout << "

Alas :

" ; cin >> A;

cout << "

Tinggi :

" ; cin >> T;

L = A * T / 2;

cout << "

Luas

: " << L;

}

Alas : 7

Tinggi : 5

Luas : 17.5

#include <iostream.h>

void main()

{ float A,T, L;

cout << "

Alas

: " ;

cin >> A;

cout << "

Tinggi

: " ;

cin >> T;

L = A * T / 2;

cout << "

Luas

: " << L;

}

Atau :

(17)

17

Meng-konversi derajat

Celcius ke derajat

(18)

18

Susun algoritma yang ditulis

dalam Bahasa

C++, untuk menginput sebuah nilai integer yang

menyatakan temperatur dalam derajat Celcius,

kemudian cetak temperatur tersebut dalam

derajat Fahrenheit.

xx.x

40

40

xx.x

C

F

C untuk nilai derajat Celcius

F untuk nilai derajat Fahrenheit

(19)

19

Rumus konversi

derajat

Celcius

ke derajat

Fahrenheit

harus

(20)

20

KONSEP penyelesaian

Draf

40

104

Celcius

Fahrenheit

C

F

F = 9/5 * C + 32

9 / 5 = 1.8

1.8 * 40 = 72

72 + 32 =

104

#include <iostream.h>

void main()

{ float C,F;

cin >> C;

F = 9.0 / 5 * C + 32;

cout << F;

}

(21)

21

#include <iostream.h>

void main()

{ float C,F;

cin >> C;

F = 9 / 5 * C + 32;

cout << F;

}

C++

40

72

SALAH

Ceharusnya,

untuk C = 40,

maka

Nilai F = 104

Bila menggunakan

suatu

Bahasa

Pemrograman, harus diketahui sifat /

karakteristik Bahasa Pemrograman

tersebut.

(22)

22

#include <iostream.h>

void main()

{ float C,F;

cin >> C;

F =

9

/ 5 * C + 32;

cout << F;

}

C++

40

72

Bila diinput : 40 untuk nilai C

Maka tercetak : 72 sebagai isi F

SALAH

Seharusnya,

untuk C = 40,

maka

Nilai

F = 104

9 / 5 = 1

1 * 40 = 40

40 + 32 = 72

Karena 9 dan 5

kedua-duanya

dianggap integer

Salah satu saja tipenya float, maka hasilnya float

(23)

23

#include <iostream.h>

void main()

{ float C,F;

cin >> C;

F =

9.0

/ 5 * C + 32;

cout << F;

}

C++

40

104

Bila diinput : 40 untuk nilai C

Maka trcetak : 104 sebagai isi F

9.0

/ 5 = 1.8

1.8 * 40 = 72

72 + 32 =

104

Salah satu saja tipenya float, maka hasilnya float

atau

9 / 5.0

(24)

24

Meng-konversi waktu

dalam

Detik

menjadi :

(25)

25

Susun program yang ditulis

dalam Bahasa C++,

untuk menginput sebuah nilai integer yang

menyatakan waktu (durasi) dalam satuan

detik

,

kemudian cetaklah waktu tersebut dalam satuan

Jam

,

Menit

, dan

Detik

.

jj mm dd

xxxx

xxxx

jj

Detik

J

cin

mm

cout

dd

M

D

J

untuk

Jam

M

untuk

Menit,

dan

(26)

26

Bila diinput

15

Tercetak :

0

0

15

72

0

1

12

150

0

2

30

1000

0

16

40

3600

1

0

0

3605

1

0

5

7425

?

?

?

(27)

27

? ? ?

7425

7425

?

Detik

J

cin

?

cout

?

M

D

J

untuk

Jam

M

untuk

Menit

, dan

(28)

28

harus

1 Jam = 60 Menit

1 Menit = 60 Detik

1 Jam = 3600 Detik

Tidak tahu ini,

Tidak bisa membuat draf perhitungannya

dan

(29)

29

KONSEP

penyelesaian

Draf

3600 / 7425 \

2

7200

60 / 225 \

3

180

45

Belum Rinci

Harus dijelaskan

dari mana

mendapatkan

nilai 7200

Didapat :

7425 Detik

adalah :

2

Jam

3

Menit

45

Detik

3600 / 7425 \

2

2 * 3600 = 7200

60 / 225 \

3

3 * 60 = 180

45

(30)

30

KONSEP

penyelesaian

Draf

7425 / 3600 =

2

sisa 225

225 / 60 =

3

sisa

45

Didapat :

2

Jam

3

Menit

45

Detik

Tidak rinci, darimana

mendapatkan nilai

sisa

LENGKAP dan RINCI

7425 / 3600 =

2

2 * 3600 = 7200

7425 – 7200 = 225

225 / 60

=

3

3 * 60 = 180

225 – 180 =

45

INI

KONSEP

BERPIKIR

YANG

ORSINIL

MILIK

SEMUA

ORANG

INI

YANG

DITUANGKAN

MENJADI

ALGORITMA

Didapat :

2

Jam

3

Menit

45

Detik

(31)

31 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45

Kerangka

berpikir, bila

setiap nilai

disimpan dalam

sebuah variabel

7425 2 7200 225 7425 / 3600 2 * 3600 7425 - 7200 3 225 / 60 180 3 * 60 45 225 - 180

Ada

7

variabel, yang

diilustrasikan dengan

(32)

32 7425 2 7200 225 J = Detik / 3600 X = J * 3600 Y = Detik - X 3 M = Y / 60 180 Z = M * 60 45 D = Y - Z

Detik

J

X

Y

M

Z

D

1

2

3

4

5

6

Ada

7

variabel, yang diilustrasikan dengan gambar

kotak

Ada 6 langkah

1. J = Detik / 3600

2. X = J * 3600

3. Y = Detik – X

4. M = Y / 60

5. Z = M * 60

6. D = Y - Z

Sesuai dengan tata cara penulisan

(33)

33

Dapatkah dibuat

lebih sederhana?

7425 2 7200 225 J = Detik / 3600 X = J * 3600 Y = Detik - X 3 M = Y / 60 180 Z = M * 60 45 D = Y - Z

Detik

J

X

Y

M

Z

D

1

2

3

4

5

6

Asli : 6 langkah

7 variabel

7425 2 225 J = Detik / 3600 Y = Detik – J * 3600 3 M = Y / 60 45 D = Y – M * 60

Detik

J

Y

M

D

1

2

3

4

Dibuat menjadi : 4 langkah

5 variabel

(34)

34

Sederhanakan kembali

langkah dan

(35)

35 7425 2 225 J = Detik / 3600 Y = Detik – J * 3600 3 M = Y / 60 45 D = Y – M * 60

Detik

J

Y

M

D

1

2

3

4

Setelah menjadi : 4 langkah

5 variabel

7425 J = Detik / 3600 2 3 M = ( Detik – J * 3600 ) / 60 45 D = ( Detik – J * 3600 ) – M * 60

Detik

J

M

D

1

2

Dibuat menjadi : 3 langkah

3

(36)
(37)

37 7425 2 7200 225 J = Detik / 3600 X = J * 3600 Y = Detik - X 3 M = Y / 60 180 Z = M * 60 45 D = Y - Z

Detik

J

X

Y

M

Z

D

1

2

3

4

5

6

#include<iostream.h>

void main()

{ int Detik, J,M,D, X,Y,Z;

cout << "Detik : " ;

cin >> Detik;

J = Detik / 3600;

X = J * 3600;

Y = Detik - X;

M = Y / 60;

Z = M * 60;

D = Y - Z;

cout << J << " Jam ";

cout << M << " Menit ";

cout << D << " Detik " ;

}

7425

2 Jam 3 Menit 45 Detik

Di monitor terlihat :

1

2

3

4

5

6

6 langkah

7 variabel

(38)

38 7425 2 225 J = Detik / 3600 Y = Detik – J * 3600 3 M = Y / 60 45 D = Y – M * 60

Detik

J

Y

M

D

1

2

3

4

4 langkah

#include<iostream.h>

void main()

{ int Detik, J, M, D, Y;

cout << "Detik : " ;

cin >> Detik;

J = Detik / 3600;

Y = Detik – J*3600;

M = Y / 60;

D = Y – M*60;

cout << J << " Jam ";

cout << M << " Menit ";

cout << D << " Detik " ;

}

7425

2 Jam 3 Menit 45 Detik

Di monitor terlihat :

1

2

3

4

5 variabel

(39)

39

Buat flowchart untuk 3 langkah dan 4

variabel!

Buat Program untuk 3 langkah dan 4

variabel!

(40)

40

#include<iostream.h> void main()

{ int Detik, J,M,D, X,Y,Z; cout << "Detik : " ; cin >> Detik; J = Detik / 3600; X = J * 3600; Y = Detik - X; M = Y / 60; Z = M * 60; D = Y - Z; cout << J << " Jam "; cout << M << " Menit "; cout << D << " Detik " ; } #include<iostream.h> void main() { int Detik, J, M, D, Y; cout << "Detik : " ; cin >> Detik; J = Detik / 3600; Y = Detik – J*3600; M = Y / 60; D = Y – M*60; cout << J << " Jam "; cout << M << " Menit "; cout << D << " Detik " ; } #include<iostream.h> void main() { int Detik, J, M, D; cout << "Detik : " ; cin >> Detik; J = Detik / 3600; M = (Detik - J*3600 )/ 60; D = ( Detik - J* 3600 ) - M*60; cout << J << " Jam "; cout << M << " Menit "; cout << D << " Detik " ; } cin >> Detik;

cout << Detik / 3600 << " Jam

"

;

cout << ( Detik - (Detik / 3600) *3600 )/ 60 << " Menit

"

;

cout << ( Detik - (Detik / 3600) * 3600 ) -((Detik - (Detik /3600) * 3600) / 60 ) * 60 << " Detik ";

(41)
(42)

42

7425

2

225

J = Detik / 3600

3

M = X / 60

45

X = Detik % 3600

D = X % 60

Detik

J

M

D

X

1

2

3

4

4 langkah

#include<iostream.h>

void main()

{ int Detik, J, M, D, X;

cout << "Detik : " ;

cin >> Detik;

J = Detik / 3600;

X = Detik % 3600;

M = X / 60;

D = X % 60;

cout << J << " Jam ";

cout << M << " Menit ";

cout << D << " Detik " ;

}

(43)

43

7425

J = Detik / 3600

2

3

M = (Detik % 3600 ) / 60

45

D = Detik % 3600 ) % 60

Detik

J

M

D

1

2

3

3 langkah

#include<iostream.h>

void main()

{ int Detik, J, M, D;

cout << "Detik : " ;

cin >> Detik;

J = Detik / 3600;

M = ( Detik % 300 ) / 60;

D = ( Detik % 3600 ) % 60;

cout << J << " Jam ";

cout << M << " Menit ";

cout << D << " Detik " ;

}

(44)

44

#include<iostream.h>

void main()

{ int Detik, J, M, D;

cout << "Detik : " ;

cin >> Detik;

J = Detik / 3600;

M = ( Detik % 300 ) / 60;

D = ( Detik % 3600 ) % 60;

cout << J << " Jam ";

cout << M << " Menit ";

cout << D << " Detik " ;

}

#include<iostream.h>

void main()

{ int Detik, J, M, D, X;

cout << "Detik : " ;

cin >> Detik;

J = Detik / 3600;

X = Detik % 3600;

M = X / 60;

D = X % 60;

cout << J << " Jam ";

cout << M << " Menit ";

cout << D << " Detik " ;

}

cin >> Detik;

cout << Detik / 3600 << " Jam ";

cout << ( Detik % 3600 ) / 60 << " Menit ";

cout << ( Detik % 3600 ) % 60 << " Detik " ;

Dapat dipaksakan menjadi :

(45)

45

Sumber :

Sjukani, Algotitma & Struktur Data 1 dengan

C++, Mitra Wacana Media, 2007

Gambar

gambar kotak

Referensi

Dokumen terkait

Meskipun masyarakat Budaya Ngada menganut sistem matrilineal dalam sistem kekerabatan, seorang laki-laki dalam budaya Ngada tetapmemiliki tanggung jawab yang besar

Sejalan dengan usaha mewujudkan prinsip negara hukum, maka telah disahkan Undang-Undang Nomor 18 Tahun 2003 tentang Advokat (UU Advokat), yang memberikan

T ujuan penelitian ini adalah pertama untuk memprediksi kebutuhan air bersih kawasan pemukiman dan industri, sehingga diperoleh iI!fonnasi tentang kebutuhan air di

Studi di Ratu Agung Kota Bengkulu membuktikan bahwa nilai PGA bersesuaian dengan daerah yang parah kerusakannya akibat gempa bumi dan sebaliknya daerah yang memiliki

Propinsi Daerah fingkat I Bali yang merupakan salah satu Daerah tujuan Wisata di Indonesia, telah dianugrahi oleh Tuhan Yang Maha Esa kekayaan dalam

Gambar 4.7 Persentase kesulitan siswa dalam mempelajari Bahasa Inggris 121 Gambar 4.8 Persentase hambatan yang terjadi di dalam kelas 122 Gambar 4.9 Persentase materi

Model Sebaran Polutan Konservatif Model sebaran polutan konservatif diselesaikan dari persamaan dari model- model tersebut dilakukan dengan mencari solusi numerik

aporan Kinerja Instansi Pemerintah (LKjIP) tahun 2014 disusun berdasarkan capaian kinerja setiap sasaran yang telah ditetapkan dalam Rencana Strategi (Renstra)