31
Pertemuan 4 RUNTUNAN/SEKUENSIAL Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen: Condro Kartiko ALGORITMA PEMROGRAMAN (Semester 1 - IF6110202) S1 Informatika IT Telkom Purwokerto

Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

Pertemuan 4 – RUNTUNAN/SEKUENSIAL

Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks)

Dosen: Condro Kartiko

ALGORITMA PEMROGRAMAN (Semester 1 - IF6110202)

S1 InformatikaIT Telkom Purwokerto

Page 2: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

CAPAIAN PEMBELAJARAN UMUM

Setelah mengikuti mata kuliah Algoritma Pemrograman, Mahasiswa S1 Sistem Informasimampu membuat algoritmadalam bentuk pseudocode dan flowchart serta membangun

program untuk menyelesaikan permasalahan yang sederhana/mudah

S1 InformatikaIT Telkom Purwokerto

Page 3: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

CAPAIAN PEMBELAJARAN KHUSUS

Setelah menyelesaikan pertemuan ke-4 ini diharapkan mahasiswamampu menerapkan algoritma runtunan (sequence) ke dalam

pseudocode dan program

S1 InformatikaIT Telkom Purwokerto

Page 4: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

CAPAIAN PEMBELAJARAN KHUSUS

S1 InformatikaIT Telkom Purwokerto

We Are Here !!!

Page 5: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PUSTAKA WAJIB

• Munir, Rinaldi., Leony Lidya. 2016.Algoritma dan PemrogramanDalam Bahasa Pascal, C, dan C++Edisi Keenam. Bandung: PenerbitInformatika.

BAB 6 – LEBIH JAUH DENGANRUNTUNAN

S1 InformatikaIT Telkom Purwokerto

Page 6: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

SUB POKOK BAHASAN

• Pendahuluan

• Persoalan Pertukaran

• Menghitung Gaji Karyawan

• Titik Tengah Dari Dua Buah Titik

• Konversi Waktu ke Detik

• Konversi Waktu ke Jam-Menit-Detik

• Menghitung Durasi

• Translasi Beberapa Algoritma ke Kode ProgramPascal, C, dan C++

S1 InformatikaIT Telkom Purwokerto

Page 7: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PENDAHULUAN (1)

S1 InformatikaIT Telkom Purwokerto

Runtunan adalah struktur algoritma paling dasar yang berisirangkaian instruksi yang diproses secara sekuensial, satu per satu,mulai dari instruksi pertama sampai instruksi terakhir.

• Tiap instruksi dikerjakan satu per satu.

• Tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yangdiulang.

• Urutan instruksi yang dilaksanakan pemroses sama denganurutan instruksi sebagaimana yang tertulis di dalam teksalgoritmanya.

• Akhir instruksi merupakan akhir algoritma.

Page 8: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PENDAHULUAN (2)

S1 InformatikaIT Telkom Purwokerto

Langkah-langkah yang dilakukan dalam algoritma diproses secaraberurutan

Langkah 1

Langkah 2

Langkah 3

Page 9: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PENGARUH URUTAN INSTRUKSI (1)

S1 InformatikaIT Telkom Purwokerto

• Urutan instruksi dalam algoritma adalah penting. Urutaninstruksi menunjukkan urutan logik penyelesaian masalah.

• Urutan instruksi yang berbeda mungkin tidak ada pengaruhterhadap solusi persoalan, tetapi mungkin juga menghasilkankeluaran yang berbeda, tergantung pada masalahnya.

Page 10: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PENGARUH URUTAN INSTRUKSI (2)

S1 InformatikaIT Telkom Purwokerto

Contoh urutan instruksi yang berbeda tetapi tidak mempengaruhi hasil.

• Deklarasi :

A, B, C, D : integer

Deskripsi :

1. read (A, B) {1}

2. C A + B {2}

3. D A * B {3}

4. write (C, D) {4}

• Deklarasi :

A, B, C, D : integer

Deskripsi :

1. read (A, B)

2. D A * B

3. C A + B

4. write (C, D)

Dari kedua algoritma hasil C dan D adalahSAMA

Page 11: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PENGARUH URUTAN INSTRUKSI (3)

S1 InformatikaIT Telkom Purwokerto

Contoh urutan instruksi yang berbeda tetapi mempengaruhi hasil.

• Deklarasi :

A, B, C, D : integer

Deskripsi :

1. read (A, B) {1}

2. C = A + B {2}

3. D = A * B {3}

4. write (C, D) {4}

• Deklarasi :

A, B, C, D : integer

Deskripsi :

1. D = A * B

2. C = A + B

3. read (A, B)

4. write (C, D)

Dari kedua algoritma hasil C dan D adalahBERBEDA

Page 12: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PERSOALAN PERTUKARAN (1)

S1 InformatikaIT Telkom Purwokerto

Tuliskan algoritma untuk membaca dua buah nilai dengan peubah(variabel) A dan B, kemudian value-nya ditukar value A menjadi Bdan value B menjadi A.

Penyelesaian:

Runtunan instruksinya adalah sebagai berikut:

C A { tampung nilai A ke dalam nilai C }

A B { nilai B dapat dimasukkan ke dalam A }

B C { nilai B diisi dengan nilai A yang tersimpan di C }

Page 13: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PERSOALAN PERTUKARAN (2)

S1 InformatikaIT Telkom Purwokerto

PROGRAM Pertukaran{Mempertukarkan nilai A dan B}

DEKLARASIA, B, C : integer

ALGORITMA{misalkan A diisi 8 dan B diisi 5}A 8; B 5

write(A, B) { cetak nilai A dan B sebelum pertukaran }

{pertukarkan nilai A dan B}C A { tampung nilai A ke dalam C}A B { nilai B dapat dimasukkan ke dalam A }B C { nilai B diisi dengan nilai A yang tersimpan di C }

write(A, B) { cetak nilai A dan B setelah pertukaran }

Page 14: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PERSOALAN PERTUKARAN (3)

S1 InformatikaIT Telkom Purwokerto

//PROGRAM Pertukaran//Mempertukarkan nilai A dan B

#include <iostream>using namespace std;

main(){

//DEKLARASIint A, B, C;

//ALGORITMA//misalkan A diisi 8 dan B diisi 5A = 8; B = 5;

//cetak nilai A dan B sebelum pertukarancout << “Nilai A dan B sebelum pertukaran: \n”;cout << “A = ” << A << “\n”;cout << “A = ” << B << “\n”;

//pertukarkan nilai A dan BC = A; //tampung nilai A ke dalam CA = B; //nilai B dapat dimasukkan ke dalam AB = C; //nilai B diisi dengan nilai A yang tersimpan di C

//cetak nilai A dan B setelah pertukarancout << “Nilai A dan B setelah pertukaran: \n”;cout << “A = ” << A << endl;cout << “B = ” << B << endl;

}

Translasi algoritma ke kode program C++

Page 15: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

PERSOALAN PERTUKARAN (4)

S1 InformatikaIT Telkom Purwokerto

PROGRAM Pertukaran{Mempertukarkan nilai A dan B tanpa menggunakan variable tambahan}

DEKLARASIA, B : integer

ALGORITMA{misalkan A diisi 8 dan B diisi 5}A 8; B 5

write(A, B) { cetak nilai A dan B sebelum pertukaran }

A A+B { nilai A = 8 + 5 = 13, jadi nilai A adalah 13 }B A-B { nilai B = 13 - 5 = 8, jadi nilai B adalah 8 }A A-B { nilai A = 13 - 8 = 5, jadi nilai A adalah 5 }

write(A, B) { cetak nilai A dan B setelah pertukaran }

Catatan : Tidak boleh menggunakan variabel tambahan

Page 16: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

MENGHITUNG GAJI KARYAWAN (1)

S1 InformatikaIT Telkom Purwokerto

Suatu perusahaan mempunyai n orang karyawan dengan asumsipenggajian sebagai berikut:

1. Gaji setiap karyawan akan sama jumlahnya.2. Gaji karyawan dihitung dengan cara gaji pokok ditambah tunjangan

dikurangi pajak.3. Pajak yang berlaku di perusahaan tersebut adalah 15% dari gaji

pokok sebelum ditambah tunjangan.4. Tunjangan yang didapat dari perusahaan adalah 20%.5. Gaji pokok bisa berubah tergantung kebijakan perusahaan.

Hitung gaji bersih karyawan dan dicetak ke layar.

Page 17: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

MENGHITUNG GAJI KARYAWAN (2)

S1 InformatikaIT Telkom Purwokerto

PROGRAM GajiBersihKaryawan{Menghitung gaji bersih karyawan. Data masukan adalah nama karyawan dangaji pokok bulanannya. Gaji bersih = gaji pokok + tunjangan – pajak.Tunjangan adalah 20% dari gaji pokok, sedangkan pajak adalah 15% dari gajipokok. Luarannya adalah nama karyawan dan gaji bersihnya.}DEKLARASI :const PersenTunjangan = 0.2 { persentase tunjangan gaji }const PersenPajak = 0.15 { persentase potongan pajak }NamaKaryawan : stringGajiPokok, tunjangan, pajak, GajiBersih : realDESKRIPSI :read (NamaKaryawan, GajiPokok)tunjangan PersenTunjangan*GajiPokokpajak PersenPajak * (GajiPokok + tunjangan)GajiBersih GajiPokok + tunjangan - pajakwrite (GajiBersih)

Page 18: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

MENGHITUNG KOMISI SALESMAN (1)

S1 InformatikaIT Telkom Purwokerto

Tulis algoritma untuk menghitung komisi yang diterimasalesman berdasarkan nilai penjualan yang dicapainya.Salesman akan mendapat komisi sebesar 5 % dari hasilpenjualannya. Masukannya nama salesman dan hasilpenjualan kemudian tampilkan nama salesman danbesarnya komisi yang diterimanya

Page 19: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

MENGHITUNG KOMISI SALESMAN (2)

S1 InformatikaIT Telkom Purwokerto

PROGRAM Komisi_Salesmen{di baca nama dan hasil penjualan salesman,kemudian hitung besarnya komisi sebesar 5 % darihasil penjualan dan tampilkan nama dan komisinyake layar}DEKLARASI :nama : stringNilaiPenjualan : realKomisi : realDESKRIPSI :read (nama, NilaiPenjualan)Komisi 0.05 * NilaiPenjualanwrite (nama, Komisi)

Page 20: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

TITIK TENGAH DARI DUA BUAH TITIK (1)

S1 InformatikaIT Telkom Purwokerto

Page 21: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

TITIK TENGAH DARI DUA BUAH TITIK (2)

S1 InformatikaIT Telkom Purwokerto

PROGRAM TitikTengah{dibaca titik P1, P2, tentukan titik tengahnya dantampilkan titik tengahnya ke layar}DEKLARASI :type titik = record< x : real, y : real >P1, P2, P3 : titikDESKRIPSI :read (P1.x, P1.y) {baca titik P1}read (P2.x, P2.y) {baca titik P2}P3.x (P1.x + P2.x)/2P3.y (P1.y + P2.y)/2write (P3.x, P3.y)

Page 22: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

KONVERSI WAKTU KE DETIK (1)

S1 InformatikaIT Telkom Purwokerto

Tulis algoritma yang menerima data masukan berupa jam,menit, dan detik, lalu menghitung total waktu dalam satuandetik, dan menampilkan hasilnya ke layar.

Penyelesaian:Seperti masalah menghitung titik-tengah dua buah titik, kitamenggunakan tipe terstruktur Jam

type Jam : record <hh : integer,mm : integer,ss : integer

>

hh mm ss

Page 23: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

KONVERSI WAKTU KE DETIK (2)

S1 InformatikaIT Telkom Purwokerto

PROGRAM Konversi_ke_detik{di baca jam-menit-detik (jj:mm:d), konversikan ke dalam detik dantampilkan ke layar}DEKLARASI :type Jam : record <hh : integer, {jam}

mm : integer, {menit}ss : integer {detik}>

J : JamTotalDetik : integerDESKRIPSI :read (J.hh, J.mm, J.ss)TotalDetik (J.hh*3600) + (J.mm*60) + J.sswrite (TotalDetik)

Page 24: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

KONVERSI WAKTU KE DETIK (3)

S1 InformatikaIT Telkom Purwokerto

// PROGRAM Konversi_ke_detik// Membaca waktu tempuh pelari marathon dalam jam, menit, detik, lalu mengkonversi waktu tempuhtersebut ke dalam detik. Hasil konversi ditampilkan ke layar.

#include <iostream>using namespace std;

main(){

// DEKLARASI //typedef struct { long int hh; // jam

long int mm; // menitlong int ss; // detik} Jam ;

Jam J;long int TotalDetik;

// ALGORITMA: //cout << “Jam :” ;cin >> J.hh;cout << “Menit : ”;cin >> J.mm;cout << “Detik :”;cin >> J.ss;TotalDetik = (J.hh*3600) + (J.mm*60) + J.ss;cout << “Total detik =” << TotalDetik;

}

Translasi algoritma ke kode program C++

Page 25: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

KONVERSI WAKTU KE JAM-MENIT-DETIK (1)

S1 InformatikaIT Telkom Purwokerto

Tulis algoritma untuk membaca waktu dalam detik, kemudiankonversikan waktu tersebut dalam jam-menit-detik.

Penyelesaian:Diberikan total waktu dalam satuan detik, maka berapa jam,berapa menit, dan berapa detikkah waktu tersebut? Sebagaicontoh, misalkan lama percakapan seseorang dengan ponseladalah 4000 detik, maka 4000 detik = 1 jam + 6 menit + 40detik, ini diperoleh dengan perhitungan berikut:

4000 div 3600 = 1 (jam)4000 mod 3600 = 400 (sisa detik)400 div 60 = 6 (menit)400 mod 60 = 40 (detik)

Page 26: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

KONVERSI WAKTU KE JAM-MENIT-DETIK (2)

S1 InformatikaIT Telkom Purwokerto

PROGRAM Konversi_detik_ke_JamMenitDetik{dibaca total detik kemudian konversikan kedalam jam-menit-detik (jj:mm:dd),dan tampilkan ke layar}DEKLARASI :type Jam : record <hh : integer, {jam}

mm : integer, {menit}yy : integer {detik}>

J : JamTotalDetik : integersisa : integer {peubah bantu untuk mencatat sisa detik}DESKRIPSI :read (TotalDetik)J.hh TotalDetik div 3600 {mendapatkan jam}sisa TotalDetik mod 3600J.mm sisa div 60 {mendapatkan menit}J.ss sisa mod 60 {mendapatkan detik}write (J.hh, J.mm, J.ss)

Page 27: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

Selanjutnya Baca…

• Munir, Rinaldi., Leony Lidya. 2016.Algoritma dan PemrogramanDalam Bahasa Pascal, C, dan C++Edisi Keenam. Bandung: PenerbitInformatika.

BAB 7 – PEMILIHAN

S1 InformatikaIT Telkom Purwokerto

Page 28: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

Tugas (1)

S1 InformatikaIT Telkom Purwokerto

Petunjuk pengerjaan:Kerjakan beberapa latihan soal di bawah ini, diketik dalam format PDF dandikumpulkan via email ke [email protected] paling lambathari Rabu, tanggal 18 Oktober 2017 pukul 23:59 WIB. Format file dan subjekemail: [ALPRO]S1IF05A Tugas3_NIM1_Nama1,NIM2_Nama2,NIM3_Nama3

1. [poin 10]Dibaca durasi waktu dalam detik. Tulislah algoritma untukmengkonversi durasi waktu tersebut ke dalam hari, jam, menit, detik.

2. [poin 10]Sebuah proyek dikerjakan selama x hari. Tulislah algoritmauntuk mengkonversi berapa tahun, berapa bulan, dan berapa hari proyektersebut dikerjakan. Asumsikan: 1 tahun = 365 hari, 1 bulan = 30 hari.Keluaran (tahun, bulan, hari) ditampilkan ke piranti keluaran.

Page 29: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

Tugas (2)

S1 InformatikaIT Telkom Purwokerto

3. [poin 10]Dibaca dua buah tanggal (dd:mm:yy). Tulislah algoritma untukmenghitung berapa hari jarak kedua tanggal tersebut. Asumsikan: 1 tahun = 365 hari, 1 bulan = 30 hari. Luaran (tahun, bulan, hari) ditampilkan ke pirantikeluaran.

4. [poin 10]Dibaca tiga buah bilangan bulat x, y, dan z. Tulislah algoritma untukmempertukarkan tripel (x, y, z) menjadi (y, z, x).

5. [poin 10]Buatlah algoritma yang membaca nilai uang (rupiah) dalam kelipatan25, lalu menentukan berapa nilai tukaran pecahan. Pecahan yang tersediaadalah Rp1000, Rp500, Rp100, Rp50, dan Rp25. Sebagai contoh, uang senilaiRp2775 setara dengan 2 buah pecahan Rp1000 ditambah 7 buah pecahanRp100 ditambah 1 buah pecahan Rp50 ditambah 1 buah pecahan Rp25.

6. [poin 10]Seekor semut menempuh perjalanan sejauh x cm. Tulislah algoritmauntuk mengonversi jarak x ke dalam kilometre-meter-sentimeter. Ingat bahwa1 m = 100 cm dan 1 km = 1000 m = 100.000 cm. Misal x = 261341 cm, iniberarti semut menempuh jarak sejauh 2 km + 63 m + 141 cm.

Page 30: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

Tugas (3)

S1 InformatikaIT Telkom Purwokerto

7. [poin 10]Tuliskan algoritma yang membaca panjang sebuah benda dalamsatuan meter, lalu mengonversinya ke dalam satuan inchi, kaki, dan yard (1 inchi = 25.4 mm, 1 kaki = 30.48 cm, dan 1 yard = 0.9144 m).

8. [poin 10]Berat badan ideal ada hubungannya dengan tinggi badanseseorang. Untuk menentukan berat badan ideal, tinggi badan dikurangi100, lalu dikurangi lagi dengan 10% dari hasil pengurangan pertama. Tulislah algoritma yang membaca tinggi badan lalu menentukan beratbadan yang ideal untuk tinggi tersebut.

9. [poin 20]Jumlah penduduk di suatu negara adalah jumlah kelahiranditambah jumlah yang berimigrasi ke negara tersebut lalu dikurangi denganjumlah kematian dan jumlah yang bermigrasi ke negara lain. Tulislahalgoritma untuk menghitung jumlah penduduk di suatu negara pada tahuntertentu.

Page 31: Jadwal: Selasa, 17/10/2017, 10:20-12.00 (2 sks) Dosen

S1 InformatikaIT Telkom Purwokerto