Вы находитесь на странице: 1из 31

KU1072/PengenalanTeknologiInformasiB 9/12/2014

Struktur Dasar ProgramProsedural


(dalam Bahasa C++)
TimPenyusun Materi PTIB

KU1072/PengenalanTeknologiInformasiB
Tahap Tahun Pertama Bersama
InstitutTeknologiBandung

Tujuan
Subtopik
Input Proses Outputdalam program
Deklarasi dan penggunaan variabel,type(dasar dan bentukan),
konstanta,ekspresi (aritmatika,relasional,dan logika)
Input/output
Sekuens
Flowchartterkait
Contoh kasus
Outcome
Memahami makna dan penggunaan variable,type,konstanta,
variable type konstanta
input/output,dan sekuens.
Memahami persoalan yangdapat dikonversi menjadi program
sederhana dengan memanfaatkan variable,type,konstanta,ekspresi
dasar,input/output,dan sekuens

12/09/2014 KU1072/PengenalanTeknologiInformasiB 2

1
KU1072/PengenalanTeknologiInformasiB 9/12/2014

C++
C++ merupakan bahasa pemrograman generalpurpose
dan multiparadigma (prosedural,objectoriented)
Bahasa pemrograman yangsangat populer dan banyak
digunakan
Dikembangkan oleh Bjarne Stroustrup mulai tahun 1979
di BellLabs
Merupakan pengembangan dari Bahasa C(prosedural
murni)dengan penambahan konsep,objectorientation
Dalam
D l kuliah
k li h ini,hanya
i i h akan
k menggunakan
k paradigma
di
prosedural
Merupakan bahasa yangcasesensitive perbedaan
huruf besar dan kecil berpengaruh

12/09/2014 KU1072/PengenalanTeknologiInformasiB 3

Masukan Proses Luaran

Input Proses Output

Input(A) Output(A)
A A+B
Input(B) Output(B)

C++
cin >>A; cout <<A;
A=A+B;
cin >>B; cout <<B;
12/09/2014 KU1072/PengenalanTeknologiInformasiB 4

2
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Apa hasil eksekusinya?


#include<iostream>
usingnamespacestd;

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

//ALGORITMA
cin >>A;
cin >>B;

A=A+B;

cout <<A<<endl;
cout <<B<<endl;
return0;
}
12/09/2014 KU1072/PengenalanTeknologiInformasiB 5

Apa hasil eksekusinya?


#include<iostream>
usingnamespacestd;

int main(){
//KAMUS
stringnama;

//ALGORITMA
cout <<"Tuliskan namamu:"<<endl;

cin >>nama ;

cout <<"Namamu adalah :"<<nama <<endl;

return0;
}

3
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Apa hasil eksekusinya?


#include<iostream>
usingnamespacestd;

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

//ALGORITMA
A=10;
B=5;

A=A+B;
;
B=B A;

cout <<A<<endl;
cout <<B<<endl;
return0;
}
12/09/2014 KU1072/PengenalanTeknologiInformasiB 7

Struktur Dasar Program


//ProgramTest
//Contoh struktur programprosedural dalam C++

#include<iostream> Judul Program+spesifikasi,dituliskan


usingnamespacestd; dalam komentar

int main(){
//KAMUS Bagian ini perlu ditambahkan
int A; sebagai standardpemrograman
int B; C++dilayar Console

//ALGORITMA
A=10; KAMUS
B=5;

A=A+B;
ALGORITMA
B=B A;

cout <<A<<endl;
cout <<B<<endl;
12/09/2014
return0; KU1072/PengenalanTeknologiInformasiB 8
}

4
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Kamus:
Tipe Data,Variabel,Konstanta,
Ekspresi

12/09/2014 KU1072/PengenalanTeknologiInformasiB 9

Kamus
Kamus dipakai untuk mendeklarasi namanama yang
digunakan dalam program
Deklarasi nama yangdidefinisikan pemrogram
type
variabel
konstanta
Deklarasi BUKANinstruksi
Contoh deklarasi [variabel]:

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

5
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Jenis Tipe Data


Setiap datamemiliki jenis yangberbedabeda
Dataumur
D t m r seseorang berbeda
b b d dengan
d d t nama
datanama
DataUmur dibentuk dari kumpulan angka
Datanama dibentuk dari serangkaian huruf
Untuk setiap jenis datajuga memiliki rentang (range)yang
berbeda
Dataumur rentangnya antara 1sampai 100(bila diasumsikan
bahwa umur seseorang tidak lebih dari 100).
100)
Datanama rentangnya mulai dari 1sampai 50(bila dianggap
nama tidak ada yangmelebihi 50huruf

12/09/2014 KU1072/PengenalanTeknologiInformasiB 11

Jenisjenis Tipe Data


Tipe dataprimitif atau tipe Tipe dataturunan atau
dasar (dalam C++) bentukan
Boolean(bool ) Dibentuk dari gabungan tipe
Integer(int)
dasar
Contoh
Real(float)
Tipe DataMahasiswa
Character(char) Dibentuk dari
String(string) NIM:string
Nama:string
Umur:integer
g
Kota:string
Tipe Array
Dibentuk dari kumpulan
integer,misalnya 10data
tentang umur

KU1071/PengantarTeknologiInformasi
A/Sem120112012

6
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Contoh Tipe Data


Umur Integercontoh:25,44,35
K t
Kota String,contoh:Jakarta,Bandung
St i t h J k t B d
Nama String,contoh:Budi,Ali
Suhu Integeratau float,contoh:37.5,100
Luas Integeratau float,contoh:400,43.5
BeratBadan Integeratau
g float,contoh:60.5,75
, ,
NIM Integeratau string?,contoh:15812001

KU1071/PengantarTeknologiInformasi
A/Sem120112012

Contoh deklarasi tipe


bentukan/komposit/struct
//Kamus
typedef struct {
int x;
int y;
}Point;
typedef struct {
g ;
stringNIM;
stringNama;
int Umur;
stringKota;
}DataMahasiswa;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 14

7
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Variabel
Variabel menyimpan nilai bertipe datasesuai dengan deklarasi
Variabel :
d
deklarasi
kl i (supaya
( nama dikenal),
dik l)
inisialisasi nilai (siap dimanipulasi)
Contoh
Deklarasi variabel
int i;
floatA;
Inisialisasi variabel
i =100;
Artinya variabel i diisi dengan nilai 100
A=8.25;
Artinya variabel Adiisi dengan nilai real8.25
Operasi terhadap variabel sangat tergantung dari tipe datanya.

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

Operasi pada nilai suatu tipe data


Operasi perhitungan akan memerlukan operator
seperti +,,*dan
+ * dan /
/ (tambah,kurang,kali
(tambah k rang kali
dan bagi)untuk melakukan kalkulasi
Operasi +pada tipe databukan numerik memiliki
arti yangberbeda
Contoh:Halo+Apa kabar HaloApa kabar
Tid
Tidakk semua operatordapat
d di
digunakan
k untukk tipe
i
datanumerik.
Contoh:Halo*Apa kabar

12/09/2014 KU1072/PengenalanTeknologiInformasiB 16

8
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Operasi tipe dasar


int :*/+ %<><=>===!=
b l :&&||!!=
bool && || ! !
float:*/+ <><=>=!=
char:==!=

12/09/2014 KU1072/PengenalanTeknologiInformasiB 17

Membuat Nama Variabel yangbenar dan baik


Nama variabel harus dimulai dengan huruf dan dapat
diikuti dengan huruf lagi dan angka
Tidak boleh ada tanda baca
Dalam nama variabel tidak boleh dipisahkan oleh
spasi
Cari nama variabel yangbisa dimengerti
Agartidak membingungkan
C++adalah bahasa yangcasesensitive
Kesalahan penulisan huruf besar dan kecil menyebabkan
error

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

9
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Contoh yangbenar Contoh yangsalah


Total 3Roda
Jumlah Jumlah,total
A 8
Benar atau salah?
Kar2string
Total45
angka
zzzz
SuperDayaGuna
Lum4588abc

Konstanta
Berbeda dengan Variable,suatu konstanta tidak
boleh diubah nilainya
Contoh
constfloatPI=3.1415
constint nilai =1000

Pemakaian yangsalah
y g
Keduanya salah karena PIdan
PIdan nilai
PI=44.5 sudah ditandai sebagai konstanta
nilai =5000 dengan nilai 3.14159
3.14159dan
dan 1000
1000jadi
jadi
nilainya tidak boleh diubah

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

10
KU1072/PengenalanTeknologiInformasiB 9/12/2014

ALGORITMA

12/09/2014 KU1072/PengenalanTeknologiInformasiB 21

Algoritma
Adalah bagian programdalam bentuk teks algoritmik
yang berisi instruksi atau pemanggilan aksi
yangberisi
Teks algoritmik tsb.dapat berupa:
Perintah dasar:Input/Output,assignment
Perintah perintah yangberurutan
Analisis kasus (jikamaka)
Pengulangan

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

11
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Perintahperintah dasar
Pemberian nilai (assignment)sesuai dengan typeke
suatu variabel
Pembandingan (kesamaan,ketidaksamaan)
Operasi relasional lain(lebih besar,lebih kecil,.)
Operasi aritmetika (khusus untuk nilai numerik)

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

Nilai,Input+Output
Nilai atau harga:suatu besaran bertype yangtelah
dikenal
Pengisian nilai:
Pemberian nilai langsung atau disebut sebagai assignment
Contoh:A=10;
Dibaca dari piranti masukan
Contoh:cin >>A;;

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

12
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Assignment(=)
Ruas kiri = Ruas Kanan ;
R
Ruas ki i harus
kiri h variable
i bl
Ruas kanan harus <ekspresi>
Ekspresi :
rumus perhitungan
Contoh:
Ekspresi
Luas = panjang *lebar ;

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

Ekspresi
Ekspresi Aritmatika
A+B
A +B
x+2*y
P 2*Q+R/S
Ekspresi Relasional (pembandingan)
A<B
X==Y
T t l
Total>=nilai
il i
Ekspresi Logika
A&&B
C||B

12/09/2014 KU1072/PengenalanTeknologiInformasiB 26

13
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Komentar
Dalam bahasa pemrograman komentar adalah
bagian programyangtidak
program yang tidak dieksekusi
Bagian ini hanya digunakan untuk memberikan penjelasan
suatu langkah,rumus ataupun bisa hanya berupa
keterangan
Dalam C++,komentar dituliskan sebagai:
Antara //*dan *//
/*ini komentar */
Diawali dengan //
//ini komentar
KU1071/PengantarTeknologiInformasi
A/Sem120112012

Mulai

Flowchart
Menghitung Input(JariJari)

Luas Lingkaran
Luas =3.14*JariJari *JariJari

Cetak(Luas)

Selesai
12/09/2014 KU1072/PengenalanTeknologiInformasiB 28

14
KU1072/PengenalanTeknologiInformasiB 9/12/2014

ProgramHitung Luas Lingkaran


//ProgramHitungLuasLingkaran
//Menghitung luas lingkaran berdasarkan jarijari
#include<iostream>
usingnamespacestd;
g p ;
Pendefinisian variabel
int main()
{//KAMUS Algoritma
floatJariJari;
floatLuas;

//ALGORITMA
//
cin >>JariJari;
Luas =3.1415*JariJari *JariJari;
cout <<Luas <<endl;
return0;
}
KU1071/Pengantar Teknologi Informasi
A/Sem 1 2011-2012

ProgramHitung Luas Lingkaran


//ProgramHitungLuasLingkaran
//Menghitung luas lingkaran berdasarkan jarijari
#include<iostream>
usingnamespacestd; Pendefinisian konstanta
int main()
{//KAMUS
constfloatPI=3.1415;
Pendefinisian variabel
floatJariJari;
floatLuas;
Algoritma
//ALGORITMA
cin >>JariJari;
Luas =3.1415*JariJari *JariJari;
cout <<Luas <<endl;
return0;
} KU1071/Pengantar Teknologi Informasi
A/Sem 1 2011-2012

15
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Latihan (dikertas masingmasing dan gunakan pensil)


Buat programHitung Luas Segitiga
Buat
B t programmenghitung
hit rataratadari
t t d i tinggi
ti i badan
b d
5anak
Programakan menerima masukan datatinggi badan untuk
5oranganak
Kemudian programakan menghitung tinggi rataratadari
ke limaanak tersebut

KU1071/Pengantar Teknologi Informasi


A/Sem 1 2011-2012

ProgramMenghitung Luas Segitiga


//ProgramHitungLuasSegitiga
//Menghitung luas segitiga berdasarkan alasdan tingginya
#include<iostream>
usingnamespacestd;

int main()
{//KAMUS
int alas;
int tinggi;
int Luas;

//ALGORITMA
;
cin >>alas;
cin >>tinggi;

Luas =(alas*tinggi)/2;

cout <<Luas <<endl;


return0;
} KU1071/PengantarTeknologiInformasi
A/Sem120112012

16
KU1072/PengenalanTeknologiInformasiB 9/12/2014

ProgramMenghitung Tinggi RataRata


//ProgramTinggiRataRata
//Hitung tinggi ratarata5anak
#include<iostream>
usingnamespacestd;
int main()
{//KAMUS
int tinggi1,tinggi2,tinggi3,tinggi4,tinggi5;
floatratarata;
//ALGORITMA
cin >>tinggi1;
cin >>tinggi2;
cin >>tinggi3;
cin >>tinggi4;
gg ;
cin >>tinggi5;

ratarata =(tinggi1+tinggi2+tinggi3+tinggi4+tinggi5)/5;
cout <<ratarata <<endl;
return0;
}
KU1071/PengantarTeknologiInformasi
A/Sem120112012

Definisi Aksi Sekuensial


Aksisekuensial
sederetaninstruksiprimitifdan/atauaksiyang
d t i t k i i itif d / t ki
akandilaksanakan(dieksekusi)olehkomputer
berdasarkanurutanpenulisannya
Setiap aksi akan mengubah statusdari program
Jadi setiap aksi sekuensial harus ada awal dan akhir.
atau
t d dengan katalainsuatu
k t l i t programharus
h di l i dan
dimulai d
suatu ketika harus berakhir
Programyangtidak pernah berhenti adalah programyang
salah atau error

17
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Penulisan untukInstruksiSekuensial
Instruksi
Instruksiditulisterurutsesuaipenulisanperbaris
ditulis terurut sesuai penulisan per baris
Setiap instruksi selalu diakhiri dengan tanda titik
koma
Jadi dalam satu baru dapat terdiri dari lebih dari instruksi.

Contoh aksi sekuensial


/*contoh aksi sekuensial per /*contoh aksi sekuensial dgtitik koma */
baris */

int main() int main()


{/ Kamus */
{/*Kamus / {/*Kamus */
int i; int i;
floatx; floatx;

/*Algoritma */ /*Algoritma */
cin >>i; cin >>i ;x=100.75;
x=100.75;

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


cout <<i *2<<endl;

return0; return0;
} }
12/09/2014 KU1072/PengenalanTeknologiInformasiB 36

18
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Contoh aksi sekuensial


/*contoh aksi sekuensial per /*contoh aksi sekuensial dgtitik koma */
baris */

int main() int main()


{/ Kamus */
{/*Kamus / {/*Kamus */
int i; int i;
floatx; floatx;

/*Algoritma */ /*Algoritma */
cin >>i; cin >>i ;x=100.75;
x=100.75;

cout <<x<<endl; Perhatikan bahwa


coutkeduanya memliki
<<x<<endl;cout <<i *2<<endl;
urutan eksekusi yangsama dan juga hasil
cout <<i *2<<endl;
eksekusi yangidentik.
return0; Perbedaannya hanyalah dicara
return0;
} penulisannya.Mana yanglebih baik
}
penulisannya?
12/09/2014 KU1072/PengenalanTeknologiInformasiB 37

Perhatikanbahwa:
adaprogramyangakanberubahjikaurutan
barisinstruksinyaberubah
danadajugaprogramyangtidakberubah
jikaurutanbarisinstruksinyaberubah

19
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Pengubahan urutan eksekusi yang


tidak merubah hasil eksekusi
/*contoh aksi sekuensial per /*contoh aksi sekuensial per
baris */ baris */

int main() int main()


{ {
/*Kamus */ /*Kamus */
int i; floatx;
floatx; int i;

/*Algoritma */ /*Algoritma */

;
cin >>i; x=100.75;
;
x=100.75; cin >>i;

cout <<x<<endl; cout <<x<<endl;


cout <<i *2<<endl; cout <<i *2<<endl;
return0; return0;
} }
12/09/2014 KU1072/PengenalanTeknologiInformasiB 39

Pengubahan urutan eksekusi yang


merubah hasil eksekusi
/*contoh aksi sekuensial per /*contoh aksi sekuensial per
baris */ baris */

int main() int main()


{ {
/*Kamus */ /*Kamus */
int i; floatx;
floatx; int i;

/*Algoritma */ /*Algoritma */

;
cin >>i; x=100.75;
;
x=100.75; cin >>i;

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


cout <<i *2<<endl; cout <<x<<endl;
return0; return0;
} }
12/09/2014 KU1072/PengenalanTeknologiInformasiB 40

20
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Buatlah programuntuk menghitung


jumlah dari dua buah pecahan
Spesifikasi program
Programmenerima masukan pecahan pertama berupa
pembilang dan penyebut
Kemudian programmenerima pecahan kedua
Lalu programakan melakukan penjumlahan
Kemudian menampilkan hasilnya berupa pembilang dan
penyebut hasil penjumlahan

12/09/2014 KU1072/PengenalanTeknologiInformasiB 41

Langkah solusi

Programmenerima masukan pecahan pertama


berupa pembilang dan penyebut
cin >>pembilang1;
cin >>penyebut1;
Kemudian programmenerima pecahan kedua
cin >>pembilang2;
cin >>penyebut2;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 42

21
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Langkah Solusi 2
Lalu programakan melakukan penjumlahan

pembilang3=
pembilang1*penyebut2+pembilang2*penyebut1;
penyebut3=penyebut1*penyebut2;
Kemudian menampilkan
p hasilnya
y berupa
p ppembilangg dan
penyebut hasil penjumlahan
cout <<pembilang3;
cout <<penyebut3;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 43

//ProgramJumlahPecahan
//Menghitung pembilang dan penyebut pecahan dari penjumlahan
//dua buah pecahan yangdiketahui pembilang dan penyebutnya
#include<iostream>
usingnamespacestd;
int main()
{//KAMUS
int
t pe
pembilang1,pembilang2,pembilang3;
b a g , pe b a g , pe b a g3;
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;
return0;
12/09/2014 KU1072/PengenalanTeknologiInformasiB 44
}

22
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Buatlah programuntuk menghitung


perkalian dari dua buah pecahan
Spesifikasi program
Programmenerima masukan pecahan pertama berupa
pembilang dan penyebut
Kemudian programmenerima pecahan kedua
Lalu programakan melakukan perkalian
Kemudian menampilkan hasilnya berupa pembilang dan
penyebut hasil penjumlahan

12/09/2014 KU1072/PengenalanTeknologiInformasiB 45

//ProgramKaliPecahan
//Menghitung pembilang dan penyebut pecahan dari perkalian
//dua buah pecahan yangdiketahui pembilang dan penyebutnya
#include<iostream>
usingnamespacestd;
int main()
{//KAMUS
int pembilang1,pembilang2,pembilang3;
i t penyebut1,penyebut2,penyebut3;
int b t1 b t2 b t3

//ALGORITMA

cin >>pembilang1;
cin >>penyebut1;

cin >>pembilang2;
cin >>penyebut2;

pembilang3=pembilang1*pembilang2;
penyebut3=penyebut1*penyebut2;

cout <<pembilang3;
cout <<penyebut3;
return0;
}

23
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Buatlah programuntuk Jarak dari


kecepatan dan waktu suatu
kendaraan
Spesifikasi program
Programmenerima masukan kecepatan
Kemudian programmenerima masukan waktu
Lalu p
programakan
g melakukan p
perhitungan
g
Kemudian menampilkan hasilnya berupa perhitungan jarak

Analisa Masalah (dekomposisi Masalah)


Programmenerima masukan kecepatan
K
Kemudian
di programmenerima
i masukan
k waktukt
Lalu programakan melakukan perhitungan
Kemudian menampilkan hasilnya berupa perhitungan
jarak

12/09/2014 KU1072/PengenalanTeknologiInformasiB 48

24
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Solusi
Programmenerima
Program menerima masukan kecepatan
cin >>v;
Kemudian programmenerima masukan waktu
cin >>t;
Lalu programakan melakukan perhitungan
Jarak =v*t;
Kemudian menampilkan hasilnya berupa perhitungan
jarak
cout <<Jarak <<endl;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 49

Solusi 1 //ProgramHitungJarak
//Menghitung jarak berdasarkan masukan
//kecepatan (v)dan waktu (t)
#include<iostream>
usingnamespacestd;

int main()
{//KAMUS
int jarak,v,t;

//ALGORITMA

cin >>v;
cin >>t;
;

jarak =v*t;

cout <<jarak <<endl;


return0;
}

25
KU1072/PengenalanTeknologiInformasiB 9/12/2014

//ProgramHitungJarak

Solusi 2 //Menghitung jarak berdasarkan masukan


//kecepatan (v)dan waktu (t)
#include<iostream>
usingnamespacestd;

int main()
{//KAMUS
int jarak,v,t;

//ALGORITMA
cout <<kecepatan =;
cin >>v;
cout <<waktu =;
cin >>t;

jarak =v*t;

cout <<Jarak =<<jarak <<endl;


return0;
}

Buatlah programyangmemeriksa
perbedaan dua buah jam
Spesifikasi program
Programmenerima masukan jam,menit,dan detik yang
pertama
Kemudian menerima masukan jam,menit,dan detik yang
kedua
Kemudian
K di programmenghitung
hit selisih
li ih waktu
kt
Selanjutnya menampilkan hasilnya berupa perhitungan
selisihnya

12/09/2014 KU1072/PengenalanTeknologiInformasiB 52

26
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Programyangmemeriksa perbedaan
dua buah jam
Program
Programmenerima
menerima masukan jam,menit
jam menit dan detik
yangpertama
cin >>jam1;
cin >>menit1;
cin >>detik1;
Kemudian menerima masukan jammenit dan detik
yangkemudian
cin >>jam2;
cin >>menit2;
cin >>detik2;
12/09/2014 KU1072/PengenalanTeknologiInformasiB 53

Kemudian programmenghitung selisih waktu


Konversi dulu ke detik
totaldetik1=jam1*3600+menit1*60+detik1;
totaldetik2=jam2*3600+menit2*60+detik2;
Hitung selisihnya
detikSelisih =totaldetik2 totaldetik1;
Hitung untuk jam,menit dan detik
jamHasil =detikSelisih /3600;
menitHasil =(detikSelisih %3600)/60;
detikHasil =detikSelisih %60;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 54

27
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Kemudian Cetak hasil


Contoh
C t h hasil:
h il
Selisih =5jam3menit 4detik
Jadi:
cout <<Selisih =<<jamHasil <<jam<<
menitHasil <<menit<<detikHasil <<detik<<
endl;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 55

//ProgramHitungJam
//Menghitung selisih jam
#include<iostream> //Perhitungan selisih jam
usingnamespacestd; totaldetik1=jam1*3600+menit1*60+detik1;
totaldetik2=jam2*3600+menit2*60+detik2;
int main()
{{//KAMUS
// detikSelisih =totaldetik2 totaldetik1;;
int jam1,menit1,detik1;
int jam2,menit2,detik2; jamHasil =detikSelisih /3600;
int totaldetik1,totaldetik2; menitHasil =(detikSelisih %60)/60;
int detikSelisih; detikHasil =detikSelisih %60;
int jamHasil,menitHasil,detikHasil;
//Penulisan selisih jam
//ALGORITMA cout <<"Selisih ="<<jamHasil <<"jam"
//Masukan jampertam <<menitHasil <<"menit "<<detikHasil
cin >>jam1; <<detik<<endl;
cin >>menit1;
cin >>detik1; return0;
//Masukan jamkedua }
cin >>jam2;
cin >>menit2;
cin >>detik2;

28
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Solusi Menggunakan TypeBentukan


Deklarasi typeJam:
typedef struct {
int JJ;//Bagian jam
int MM;//Bagian menit
int DD;//Bagian detik
}Jam;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 57

Programyangmemeriksa perbedaan
dua buah jam
Program
Programmenerima
menerima masukan jamyangpertama
jam yang pertama
(jam1):
cin >>jam1.JJ;
cin >>jam1.MM;
cin >>jam1.DD;
Kemudian menerima masukan jamyangkedua
(jam2):
cin >>jam2.JJ;
cin >>jam2.MM;
cin >>jam2.DD;
12/09/2014 KU1072/PengenalanTeknologiInformasiB 58

29
KU1072/PengenalanTeknologiInformasiB 9/12/2014

Kemudian programmenghitung selisih waktu


Konversi dulu ke detik
totaldetik1=jam1.JJ*3600+jam1.MM*60+jam1.DD;
totaldetik2=jam2.JJ*3600+jam2.MM*60+jam2.DD;
Hitung selisihnya
detikSelisih =totaldetik2 totaldetik1;
Hitung selisih dalam bentuk jam(jamHasil):
jamHasil.JJ =detikSelisih /3600;
jamHasil.MM=(detikSelisih %3600)/60;
jamHasil.DD=detikSelisih %60;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 59

Kemudian Cetak hasil


Contoh
C t h hasil:
h il
Selisih =5jam3menit 4detik
Jadi:
cout <<Selisih =<<jamHasil.JJ <<jam<<
jamHasil.MM<<menit<<jamHasil.DD<<detik
<<endl;

12/09/2014 KU1072/PengenalanTeknologiInformasiB 60

30
KU1072/PengenalanTeknologiInformasiB 9/12/2014

//ProgramHitungJam //Masukan jamkedua


//Menghitung selisih jam cin >>jam2.JJ;
#include<iostream> cin >>jam2.MM;
usingnamespacestd; cin >>jam2.DD;

typedef struct { //Perhitungan selisih jam


int JJ,MM,DD; totaldetik1=jam1.JJ*3600+jam1.MM*60+jam1.DD;
} Jam
}Jam; totaldetik2 jam2 JJ * 3600 + jam2 MM * 60 + jam2 DD
totaldetik2=jam2.JJ*3600+jam2.MM*60+jam2.DD;

int main() detikSelisih =totaldetik2 totaldetik1;


{//KAMUS
Jamjam1,jam2; jamHasil.JJ =detikSelisih /3600;
int totaldetik1,totaldetik2; jamHasil.MM=(detikSelisih %60)/60;
int detikSelisih; jamHasil.DD=detikSelisih %60;
JamjamHasil;
//Penulisan
// Penulisan selisih jam
//ALGORITMA cout <<"Selisih ="<<jamHasil.JJ <<"jam"
//Masukan jampertama <<jamHasil.MM<<"menit "<<jamHasil.DD
cin >>jam1.JJ; <<detik<<endl;
cin >>jam1.MM;
cin >>jam1.DD; return0;
}

Terima Kasih

12/09/2014 KU1072/PengenalanTeknologiInformasiB 62

31

Вам также может понравиться