fork download
  1. #include <iostream>
  2. #include <cmath> // Diperlukan untuk fungsi sin() dan pow()
  3. #include <iomanip> // Diperlukan untuk mengatur presisi output desimal
  4.  
  5. // Mendefinisikan konstanta yang akan digunakan
  6. const double GRAVITASI = 9.8; // Percepatan gravitasi dalam m/s^2
  7. const double PI = 3.14159265358979323846;
  8.  
  9. /**
  10.  * @brief Mengonversi sudut dari derajat ke radian.
  11.  * @param derajat Sudut dalam satuan derajat.
  12.  * @return Sudut dalam satuan radian.
  13.  */
  14. double derajatKeRadian(double derajat) {
  15. return derajat * PI / 180.0;
  16. }
  17.  
  18. int main() {
  19. // Deklarasi variabel untuk menampung input dari pengguna
  20. double kecepatanAwal, sudutDalamDerajat;
  21.  
  22. // Mengatur output ke bahasa Indonesia
  23. // std::locale::global(std::locale("id_ID.utf8")); // Baris ini mungkin tidak berfungsi di semua sistem
  24.  
  25. // Meminta input kecepatan awal dari pengguna
  26. std::cout << "Masukkan kecepatan awal (v0) dalam m/s: ";
  27. std::cin >> kecepatanAwal;
  28.  
  29. // Meminta input sudut elevasi dari pengguna
  30. std::cout << "Masukkan sudut elevasi (theta) dalam derajat: ";
  31. std::cin >> sudutDalamDerajat;
  32.  
  33. // Mengonversi sudut yang diinput dari derajat ke radian karena fungsi sin() C++ menggunakan radian
  34. double sudutDalamRadian = derajatKeRadian(sudutDalamDerajat);
  35.  
  36. // Menghitung ketinggian maksimum (h_max) menggunakan rumus gerak parabola
  37. // Rumus: h_max = (v0^2 * sin^2(theta)) / (2 * g)
  38. double sin_theta = sin(sudutDalamRadian);
  39. double h_max = (pow(kecepatanAwal, 2) * pow(sin_theta, 2)) / (2 * GRAVITASI);
  40.  
  41. // Menampilkan hasil perhitungan kepada pengguna
  42. std::cout << "\nKetinggian maksimum yang dicapai adalah: "
  43. << std::fixed << std::setprecision(3) << h_max << " meter." << std::endl;
  44.  
  45. // Memberikan catatan terkait contoh input dan output yang Anda berikan
  46. std::cout << "\n--- Catatan Penting ---\n"
  47. << "Untuk input kecepatan 100 m/s dan sudut 37 derajat, hasil perhitungan\n"
  48. << "berdasarkan rumus fisika yang benar adalah sekitar 184.773 meter.\n"
  49. << "Output 12.036 yang Anda sebutkan kemungkinan berasal dari rumus atau\n"
  50. << "nilai input yang berbeda. Program ini dibuat berdasarkan rumus fisika standar.\n";
  51.  
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0s 5316KB
stdin
37
100
stdout
Masukkan kecepatan awal (v0) dalam m/s: Masukkan sudut elevasi (theta) dalam derajat: 
Ketinggian maksimum yang dicapai adalah: 67.741 meter.

--- Catatan Penting ---
Untuk input kecepatan 100 m/s dan sudut 37 derajat, hasil perhitungan
berdasarkan rumus fisika yang benar adalah sekitar 184.773 meter.
Output 12.036 yang Anda sebutkan kemungkinan berasal dari rumus atau
nilai input yang berbeda. Program ini dibuat berdasarkan rumus fisika standar.