Penyelesaian Masalah dengan Struktur Sekuensial
Penyelesaian Masalah dengan Struktur Sekuensial
Struktur sekuensial menyatakan beberapa pernyataan yang dikerjakan secara berurutan. Diagram di bawah ini menunjukkan contoh struktur sekuensial yang mengandung tiga pernyataan. Perintah 1 dikerjakan terlebih dahulu. Setelah selesai, Pernyataan 2 dieksekusi. Terakhir, Pernyataan 3 diproses.
Berikut adalah contoh program yang menggunakan struktur sekuensial saja.
#include <iostream>
using namespace std;
int main()
{
unsigned short int usia;
cout << "Masukkan usia Anda: ";
cin >> usia;
cout << "Terima kasih. Usia Anda tahun depan: " << usia + 1;
return(0);
}
Berikut menyatakan urutan eksekusi pernyataan-pernyataan dalam
main() :
1. unsigned short int usia;
2. cout << "Masukkan usia Anda: ";
3. cin >> usia;
4. cout << "Terima kasih. Usia Anda tahun depan: " << usia + 1;
5. return (0);
Pertama-tama, pernyataan untuk mendeklarasikan usia dieksekusi. Setelah pernyataan ini dieksekusi, pernyataan kedua dijalankan. Pernyataan kedua bertindak sebagai prompt, yaitu untuk memberi keterangan pada pemakai mengenai data yang perlu dimasukkan. Setelah itu, pernyataan ketiga dijalankan. Pernyataan ketiga ini digunakan untuk membaca data dari papan-ketik dan data yang dimasukkan oleh pemakai akan disimpan pada variabel usia. Setelah pemakai memasukkan data dari papan-ketik dan menekan tombol Enter, pernyataan keempat dijalankan. Pernyataan ini digunakan untuk menampilkan ucapan terima kasih dan diikuti dengan menyajikan hasil ekspresi usia + 1. Pernyataan terakhir yang dijalankan adalah
return(0);
Pernyataan ini digunakan untuk mengakhiri program dan memberikan nilai balik berupa nol kepada sistem operasi. Urutan pernyataan pada struktur sekuensial di depan tidak boleh dipertukarkan. Penukaran urutan akan membuat kegunaan program menjadi tidak seperti semestinya. Sebagai contoh, jika pernyataan
cout << "Masukkan usia Anda: ";
diletakkan setelah
cin >> usia;
maka pesan "Masukkan usia Anda: " sebagai prompt menjadi tidak berguna. Akan tetapi, pada kasus tertentu, urutan pernyataan dalam struktur sekuensial boleh dipertukarkan. Sebagai contoh, perhatikan deretan pernyataan berikut:
a = 5;
b = 6;
c = 7;
d = -b + sqrt((b * b - 4 * a * c) / (2 * a));
Pada contoh ini, urutan ketiga pernyataan pertama bersifat bebas. Penulisan seperti berikut boleh saja karena tidak akan mengubah hasil pada d:
b = 6;
a = 5;
c = 7;
Contoh Penyelesaian Masalah dengan Hanya Struktur Sekuensial
Beberapa persoalan yang cukup diselesaikan menggunakan struktur sekuensial dibahas berikut ini.
Contoh 1 - Konversi sudut dalam derajat ke radian
Kita terbiasa menggunakan satuan sudut dalam derajat, tetapi fungsi seperti sin() memerlukan sudut dalam satuan radian. Buatlah program yang dapat digunakan untuk memasukkan sudut dalam derajat dan menghasilkan sudut dalam radian.
Solusi:
Pertama-tama, perlu dicari hubungan antara radian dan derajat. Dalam hal ini,
radian = derajat * π / 180 = derajat * 3.14 / 180 = derajat * 0.017453277
Setelah rumus ini diketahui, program dapat ditulis seperti berikut:
// Konversi derajat ke radian
#include <iostream>
using namespace std;
int main()
{
double derajat;
cout << "Konversi derajat ke radian" << endl;
cout << "--------------------------" << endl;
cout << "Derajat = ";
cin >> derajat;
// Derajat ke radian
double radian- derajat 0.017453277;
// Tampilkan hasilnya
cout << "Radian = " << radian << endl;
return(0);
}
Contoh pengujian program dapat dilihat berikut ini:
Konversi derajat ke radian
--------------------------
Derajat = 90
Radian = 1.57079
Contoh 2 - Perhitungan jarak antara dua titik
Fahmi seringkali dihadapkan pada persoalan untuk menghitung jarak antara dua titik. Maka, ia bermaksud meminta tolong untuk dibuatkan program yang memungkinkan ia memasukkan posisi kedua titik dan program dapat memberikan panjang kedua titik.
Solusi:
Gambar berikut menunjukkan sketsa persoalan ini
Nah, jarak antara titik (x1, y1) dan titik (x2, y2) dapat dihitung menggunakan rumus Euclidean yang berupa:- x1)2 + (y2- y1)2
// Perhitungan jarak antara dua titik
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x1, y1, x2, y2;
cout << "Jarak antara dua titik" << endl;
cout << "----------------------" << endl;
cout << "X1 = ";
cin >> x1;
cout << "Y1 = ";
cin >> yl;
cout << "X2 = ";
cin >> x2;
cout << "Y2 = ";
cin >> y2;
// Perhitungan jarak double jarak = sqrt((x2-x1)* (x2 - x1) + (y2 - y1) * (y2-yl));
// Tampilkan hasilnya
cout << "Jarak = " << jarak << endl;
return (0);
}
Contoh pengujian program ini diperlihatkan berikut ini:
Jarak antara dua titik
----------------------
X1 = 6
Y1 = 20
X2 = 30
Y2 = 16
Jarak = 5
Contoh 3 - Luas segitiga
Dian dihadapkan pada persoalan menghitung luas segitiga yang didasarkan pada tiga sisi yang diketahui, la menginginkan program yang dapat digunakan untuk memasukkan sembarang tiga sisi segitiga dan menghasilkan luas segitiga tersebut.
Solusi:
Luas segitiga yang ketiga sisinya diketahui dapat dihitung menggunakan rumus Heron. Rumusnya seperti berikut:
Luas = √s(s-a)(s-b)(s-c)
Dalam hal ini, , dan a, b, serta c menyatakan sisi-sisi segitiga.
Perwujudannya seperti berikut:
// Perhitungan luas segitiga
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c; // Sisi a, b, dan c
cout << "Perhitungan luas segitiga" << endl;
cout << "-------------------------" << endl;
cout << "Sisi pertama = ";
cin >> a:
cout << "Sisi kedua
cin >> b;
cout << "Sisi ketiga = ";
cin >> c;
// Perhitungan luas segitiga
double s = (a + b + c) / 2;
double luas = sqrt(s *(s - a) * (s - b) * (s - c));
// Tampilkan hasilnya
cout << "Luas = " << luas << endl;
return (0);
}
Contoh hasil pengujian program dapat dilihat berikut ini:
Perhitungan luas segitiga
-------------------------
Sisi pertama = 5
Sisi kedua = 6
Sisi ketiga = 7
Luas = 14.6969
Komentar
Posting Komentar