Kamis, 09 Maret 2023

Analisis Masalah dan Perancangan Algoritma

 Assalamualaikum sobat mirza, kali ini kita akan belajar bersama menganalisis sebuah masalah dan memahami masalah tersebut lalu membuat penyelesaian masalah. Lalu mengimplementasikan algoritma yang dirancang ke dalam program dengan bahasa pemrograman C++. Sebelum kita mulai pembelajaran kita, pastikan kalian sudah punya aplikasi Dev C++ ya ! Kalau sobat belum punya, silahkan download Dev C++ disini ya.

Di bawah ini contoh membuat program untuk menghitung gaji karyawan perharinya berdasarkan golongan dan waktu kerja serta lemburnya. 

PERMASALAHAN - 1 

▪ Sebuah perusahaan memiliki karyawan dengan 3 golongan yaitu Golongan A, Golongan B, dan Golongan C. 

▪ Perjamnya Golongan A digaji Rp. 19.500, Golongan B digaji Rp. 21.000 dan Golongan C digaji Rp. 25.000. ▪ Lembur dibayar Rp. 30.000 Per jam. 

▪ 1 hari memiliki jam kerja 8 jam. Dan seminggu terdapat 6 hari jam kerja. 

▪ Perusahaan ingin membuat program yang dapat menghitung gaji karyawanya 

▪ Maka: Rancanglah algoritma untuk menghitung gaji karyawan tersebut agar dapat diimplementasikan dalam program. 

ANALISIS MASALAH 

▪ Hanya ada tiga buah golongan A, B, dan C yang memiliki gaji yang berbeda-beda, sehingga setiap karyawan akan digaji sesuai golongan. 

▪ Upah lembur untuk setiap golongan dibayar dengan besaran yang sama per jam nya baik untuk golongan A, B, dan C. 

▪ Untuk mencari besar gaji maka jam kerja dikali dengan jumlah jam kerja 

▪ Untuk menjadi upah lembur maka jam lembur dikali dengan 30000. 

▪ Untuk mencari total gaji maka besar gaji ditambah total lembur

PERANCANGAN ALGORITMA 

  1. Input golongan karyawan (A/B/C) 
  2. Input lama jam kerja (dalam jam) 
  3. Input lama jam lembur (jam)
  4. Jika golongan = A, maka hitung total gaji = (lama jam kerja * 19500) + (lama jam lembur * 30000)
  5. Jika golongan = B, maka hitung total gaji = (lama jam kerja * 21000) + (lama jam lembur * 30000)
  6. Jika golongan = C, maka hitung total gaji = (lama jam kerja * 25000) + (lama jam lembur * 30000)
  7. Tampilkan total gaji 

IMPLEMENTASI ALGORITMA KE DALAM PROGRAM 

Ketikkan koding di bawah ini menggunakan aplikasi Dev C++ dan simpan dengan format file cpp. Run dan compile.


Isi semua data sesuai pertanyaan, maka hasilnya akan seperti di bawah ini :

Download file cpp nya di sini : Download


PERMASALAHAN - 2 

▪ Terdapat 3 buah tabung yang penuh berisi air dengan ukuran volume yang berbeda-beda 

▪ Tabung A = 10 Liter. Tabung B = 14 Liter. Tabung C = 7 Liter 

▪ PERMASALAHAN : Ada sebuah tabung D yang akan diisi dengan air sebanyak 11 Liter. 

▪ Tanpa menggunakan alat ukur dan hanya mengandalkan ketiga tabung A, B, C tersebut. Bagaimana caranya dapat mengisi air dengan ukuran tepat 11 Liter? 

▪ Rancanglah algoritma untuk menyelesaikan masalah tersebut. 

ANALISIS MASALAH 

▪ Tidak ada aturan untuk tidak boleh membuang air, sehingga air di dalam tabung boleh dibuang. 

▪ Tanpa alat ukur maka tidak mungkin dapat menuang 11 liter air dengan tepat ke tabung D 

▪ Karena tabung A, B, dan C diketahui volumenya dan berisi air penuh, maka tabung A, B, dan C dapat dimanfaatkan untuk mengukur volume air yang untuk tabung D. 

▪ Jika tabung C di tuangkan ke dalam tabung D, maka volume air di tabung D menjadi 7 liter, sehingga masih kurang 4 liter. 

▪ Jika air ditabung A dibuang, dan air di tabung B dituangkan ke tabung A hingga tabung menjadi penuh, maka dapat dipastikan sisa air di tabung B menjadi 4 liter. (14 liter – 10 liter = 4 liter) 

▪ Jika sisa air ditabung A dituangkan ke dalam tabung D, maka sekarang total volume tabung D menjadi 11 liter. 

PERANCANGAN ALGORITMA 

  1. Definisikan volume tabung A = 10, B = 14, dan C = 7.
  2. Tuang tabung C ke tabung D. //sekarang D = 7 dan C = 0
  3. Buang isi tabung A.
  4. Tuang isi tabung B ke tabung A hingga tabung A penuh.
  5. Tuang sisa isi B ke dalam isi D. 

IMPLEMENTASI ALGORITMA KE DALAM PROGRAM


Setelah di compile dan run maka hasilnya akan seperti ini :


Download file cpp nya di sini : Download

Share:

Tugas Algoritma dan Pengenalan Struktur Data 1



Pada pembelajaran awal algoritma dan struktur data biasanya akan ada istilah-istilah baru yang tidak kita ketahui, setelah dijelaskan oleh dosen maka biasanya dosen akan menguji apakah kita sudah faham atau belum dengan cara memberikan tugas seperti di bawah ini

Contoh Soal :

Untuk lebih meningkatkan pemahaman anda terhadap konsep pemrograman, maka jelaskan lah istilah-istilah dibawah ini: 

Nah sobat mirza, di bawah ini saya bantu untuk memahami dan mengingat istilah-istilah tersebut.

  • Program
    Kumpulan instruksi dalam bentuk bahasa, kode skema, maupun bentuk lain, yang disusun sesuai alur Algoritma, dimana apabila dijadikan satu dengan media yang bisa dibaca oleh computer akan mampu membuat komputer bekerja untuk melakukan fungsi khusus termasuk persiapan dalam merancang instruksi tersebut.
    Tanpa program Komputer hanyalah benda elektronik yang tidak berguna, orang yang membuat program disebut Pemrogram (Programmer). Adapun pemrograman adalah aktivitas yang berhubungan dengan pembuatan program, baik dalam merancang maupun membangun program.

  • Algoritma Kondisional
    Algoritma Kondisional adalah algoritma yang mengambil langkah berikutnya atau mengeksekusi suatu pernyataan ketika ada syarat yang dapat dipenuhi atau tidak terpenuhi. Kebanyakan orang memahaminya dengan istilah "Jika...Maka..."

  • Algoritma Perulangan
    Algoritma perulangan adalah suatu algoritma yang mengulang-ulang beberapa perintah sekaligus seperti mengulang proses penampilan hasil pengolahan, proses input data, serta mengulang proses perhitungan.

  • Bahasa Tingkat Tinggi
    Bahasa pemrograman yang sudah sangat mirip seperti bahasa manusia dan lebih mudah untuk dipelajari. Biasanya menggunakan perintah, kaidah dan tag berbahasa inggris. Contoh bahasa tingkat tinggi yaitu C++, C#, Phyton, Java, PHP, Pascal, dan lain-lain.

  • Bahasa Tingkat Rendah
    Bahasa pemrograman yang mendekati bahasa mesin, tetapi masih sedikit yang dapat dipahami oleh manusia. Contoh Bahasa Assembly (Bahasa Rakitan).

  • Bahasa Mesin
    Bahasa mesin adalah bahasa yang hanya merupakan kombinasi dari binary 1 dan 0. Pada dasarnya komputer hanya mengenal bahasa mesin, dan bahasa ini bergantung pada mesin dan  sulit dipelajari.

  • Interpreter
    Interpreter adalah penerjemah yang bekerja dengan cara mengkonversi source code menjadi machine code secara langsung ketika program dijalankan. Kelebihan Interpreter adalah kemudahan mencari kesalahan seandainya program menghasilkan kesalahan karena source code tersedia. Kelemahan Interpreter adalah source code harus benar-benar tersedia, sehingga jika program didistribusikan maka source code juga harus disertakan, eksekusinya juga lambat, karena setiap instruksi yang dijalankan harus terlebih dahulu diterjemahkan.

  • Interpretasi
    Interpretasi adalah proses berpikir teratur dalam menemukan makna, proses pemberian pendapat atau gagasan dan kesan tentang sesuatu yang dinilai, bisa juga berarti proses menerjemahkan sesuatu.

  • Compiler
    Compiler adalah penerjemah yang bekerja dengan cara mengkonversi source code menjadi machine code sebelum program tersebut dijalankan. Sehingga tidak boleh terdapat instruksi yang salah atau gagal (Error). Compiler hanya akan melakukan Compile (Penerjemahan) satu kali saja. Oleh karena itu, proses penerjemahan membutuhkan waktu yang lebih lama. Kelebihan Compiler adalah Kode Objek dapat didistribusikan komputer lain tanpa harus menyertakan source code sehingga kerahasiaan lebih terjamin. Hal ini terjadi karena seluruh kode sumber (instruksi) telah diterjemahkan ke dalam bahasa mesin (objek).

  • Compile (Kompilasi)
    Arti utamanya adalah menyusun. Compile adalah proses pengubahan kode program (Source code) menjadi kode objek atau sebuah file, menggunakan aplikasi yang disebut Compiler

  • Kode Biner
    Kode biner adalah bahasa yang digunakan oleh komputer (bahasa mesin). Kode ini didasarkan pada sistem bilangan biner yang hanya menggunakan 0 dan 1 sebagai simbol untuk mewakili teks. Semua komputer dan platform digital menggunakan kode biner untuk memproses instruksi dan untuk bekerja secara efektif.

  • Kesalahan syntax
    Disebabkan adanya kesalahan penulisan syntax seperti pernyataan yang tidak diakhiri dengan titik koma (;) atau kesalahan dalam penulisan fungsi seperti prinf() yang seharusnya printf() dan lain-lain. Kesalahan ini mudah dikenali karena compiler secara otomatis akan memberitahukan kesalahan syntax yang terjadi dan menunjukkan dimana letak kesalahannya.

  • Kesalahan logika
    Kesalahan yang terjadi karena adanya logika atau cara berfikir yang salah. Misalnya phi seharusnya 3,14 tapi anda mendefinisikannya dengan 31,4 atau untuk mencari luas lingkaran seharusnya:
    luas = 3.14 * jari* jari; //seharusnya seperti ini tetapi anda tuliskan
    luas = 3.14 * jari + jari; //seharusnya dikali bukan dijumlah
    Jenis kesalahan ini sangat sulit untuk ditemukan, programmer harus benar-benar memahami algoritma yang digunakan dan memeriksa perbaris instruksi untuk menemukan kesalahan ini. Karena komputer tidak mengenali kesalahan logika.

  • Kesalahan runtime (fatal)
    Merupakan kesalahan fatal yang terjadi karena suatu instruksi tidak dapat dilakukan oleh komputer saat dijalankan.

  • Pseudocode
    berasal dari dua kata, yaitu pseudo (semu,palsu, imitasi, mirip, atau menyerupai yang asli) dan code yang berarti kode. Pseudocode atau kode semu merupakan deskripsi dari algoritma pemrograman yang dituliskan secara sederhana agar mudah dimengerti manusia.

  • Flowchart
    Merupakan gambaran langkah-langkah dan keputusan yang diterjemahkan dalam bentuk diagram alur dimana satu sama lain dihubungkan dengan garis atau arah panah.

  • Debugging
    Debugging adalah proses dan metode yang dilakukan oleh para pemrogram dan pengembang perangkat lunak untuk menganalisis alur kerja program, mencari kesalahan, atau kerusakan di kode dalam sebuah program komputer agar berjalan dengan baik.

  • Debugger
    Debugger adalah tools atau aplikasi yang digunakan untuk melakukan Debugging.

Itulah beberapa istilah-istilah yang akan sering sobat mirza temui saat mempelajari Algoritma dan pengenalan struktur data. Silahkan dibaca dan dipahami ya sobat. Kalau ada yang masih belum paham boleh komentar dan tanya di bawah ya. :)

Share:
Diberdayakan oleh Blogger.

Kategori

Pages