Postingan Baru

Algoritma 5: Menggunakan BFS (Breadth First Search) Untuk menyelesaikan Traveling Sales Problem (TSP)

ALGORITMA 1 : Apa itu Algoritma?

Informatika 2024 Universitas Sulawesi Barat

Daftar Isi

Algoritma


gambar

Pengertian Algoritma

Algoritma adalah urutan langkah-langkah yang jelas dan logis untuk menyelesaikan suatu masalah atau mencapai tujuan tertentu. Sederhananya, algoritma itu seperti resep masakan: ada bahan (input), cara mengolah (proses), dan hasil jadi (output).

Karateristik Algoritma

1.Jelas dan terbatas (finite)
2.Memiliki input dan output
3.Efektif dan efisien
4.Terurut langkah-langkahnya

Jenis-Jenis Algoritma

Algoritma dibagi menjadi 3 yaitu:

    ♣ Berdasarkan cara penyelesaian masalah
    1.Algoritma Brute Force (Exhaustive Search)
    2.Algoritma Greedy
    3.Algoritma Divide and Conquer (Bagi dan Taklukkan)
    4.Algoritma Dynamic Programming (DP)
    5.Algoritma Backtracking
    6.Algoritma Randomized

    ♣ Berdasarkan fungsi atau tujuan
    1.Algoritma Sorting (Pengurutan)
    2.Algoritma Searching (Pencarian)
    3.Algoritma Graph
    4.Algoritma Rekursif
    5.Algoritma Kriptografi

    ♣ Berdasarkan cara penulisan
    1.Deskriptif (Bahasa sehari-hari) → seperti resep masakan
    2.Pseudocode → penulisan mirip bahasa pemrograman tapi masih sederhana
    3.Flowchart → pakai simbol gambar/alur

Contoh Algoritma Sederhana

Membuat Teh:

  • Panaskan air
  • Masukkan teh ke dalam gelas
  • Tuangkan air panas
  • Tambahkan gula
  • Aduk hingga rata
  • Teh siap diminum

  • Mari Berlatih!

    Tugas 1 Algoritma

    1. Carilah masalah dalam suatu bidang tertentu,dan jabarkan proses tersebut dalam prosedur langkah demi langkah bagaimana kira-kira anda akan melakukannya dalam menyelesaikan masalah identifikasi input,proses dan outputnya!

    Penyelesaian :

    Bidang : Ekonomi
    Sektor : Perdagangan

    Ibu yanti dan bapak Budi mengelola sebuah toko sembako di pinggiran kota,target pemasaran dari tokonya adalah orang-orang yang tinggal di sekitar.Sayangnya terkadang pelanggan atau pembeli tidak langsung membayar belanjaan mereka (utang) atau hanya membayar Sebagian belanjaan.Sistem pencatatan manual dengan buku sangat tidak efisien,terkadang catatan sulit ditemukan atau tercampur dengan catatan orang lain.Selain itu pelanggan yang mengutang Sebagian besar adalah kerabat atau keluarga sehingga memunculkan rasa enggan untuk menagih yang berakhir dengan utang yang terlupakan atau tidak diketahui sisanya

    Diperlukan program sederhana yang bisa menyimpan catatan utang yang mudah ditambah, di ubah dan di hapus,serta bisa memberi pesan secara otomatis kepada pihak yang berutang agar tidak lupa untuk melunasi utangnya.

    Algoritma

      input
      1.Masukkan nama pelanggan
      2.Masukkan nama barang
      3.Masukkan harga masing masing barang
      4.Masukkan nomor WhatsApp pelanggan
      5.Masukkan tenggat waktu yang telah disetujui
      6.Masukkan jumlah barang(untuk menghitung total nantinya)

      Proses
      1. yang paling awal yang harus dilakukan sistem adalah mengecek apakah data pelanggan sudah terdaftar atau tidak
      • a.Jika iya : pengguna tinggal mengimput nama barang,jumlah,harga,dan tenggat
      • b.Jika tidak : pengguna perlu mengimput data pelanggan dulu dan nantinya akan disimpan di database
      2. ketika pelanggan menambah, membayar Sebagian maupun full utangnya sistem akan diperbarui.ditambah, dikurangi atau ditandai lunas
      3. Sistem akan menotal harga barang ; jumlah X Harga
      4. program akan mencari utang yang tenggat waktunya mencapai 3 hari lagi
      5. ketika program telah menemukan catatan yang memenuhi syarat tersebut maka secara otomatis program akan mengirimkan pesan penagihan kepada nomor whatsApp yang tertera
      6. Sistem akan mencari catatan berdasarkan input nama/WhatsApp pelanggan lalu akan menampilkan detail
      7. setiap ada perubahan sistem akan menyimpan tanggal,jumlah,dan status (Riwayat transaksi)Agar bisa dilihat Kembali

      Output
        1. Daftar pelanggan yang memiliki utang
        2. Detail utang (nama,jumlah,total DLL)
        3. Total utang pelanggan
        4. daftar pelanggan yang akan mencapai tenggat waktu.jadi saat sistem mengirim pesan penagihan ke pelanggan,akan ada output untuk pengguna juga untuk melihat siapa saja yang utangnya akan mencapai tenggat waktu
        5.Pesan otomatis berisi penagihan

      2. Renungkan apa saja alasan kenapa algoritma Anda dapat efektif? Dan sekiranya terjadi kebutuhan yang mengharuskan Anda untuk mengubah Inputnya, apakah prosedur - demi - prosedur yang Anda buat akan berubah secara keseluruhan? Jelaskan bagian mana saja dari prosedur yang perlu diubah?

      Penyelesaian

      Kenapa algoritma saya efektif?

      Alasan pendukung :

      1.Dari pengimputan data,pengecekan,perhitungan,sampai outputnya sudah sangat jelas jadi pengguna mudah mengikuti
      2.Sistemnya dipisahkan berdasarkan fungsi,contohnya cek pelanggan ,kirim pesan,simpan riwayat yang dimana sistem ini saling mendukung
      3.membuat pencarian catatan lebih efisien,karena jadi jauh lebih mudah tinggal memasukkan nama atau nomor whatsApp
      4.Bisa menangani berbagai kondisi, contohnya pelanggan baru,belum lunas,dan pelunasan
      5.program sudah otomatis,yaitu sudah otomatis mendeteksi tenggat yang akan datang dan mengirimkan pesan

      # kalau input berubah,kita tidak perlu merubah semua prosedur,karna hanya bagian tertentu yang berubah,bukan keseluruhan.Misalnya kita menambahkan inputan DP atau bayar sebagian di awal

      3.Bagaimana Anda bisa memastikan bahwa algoritma yang Anda buat atau kembangkan tidak hanya efisien dan efektif tetapi juga adil dan transparan?

      Penyelesaian :

      ADIL

      1. : Aturan yang digunakan algoritma sama untuk semua input,tidak membedakan pengguna
      2. Maksudnya dalam kasus pencatatan utang itu setiap pelanggan diperlakukan sama,data dimasukkan,diproses dan dihitung semua sesuai dengan prosedur
      3. keputusan yang dihasilkan tidak bias karena berdasarkan logika bukan dari unsur kedekatan

      TRANSPARAN

      1. langkah langkahnya sudah jelas tanpa ada yang ditutup tutupi
      2. Terurut dan bisa ditelusuri
      3. Setiap output bisa dijelaskan prosesnya sehingga pengguna paham kenapa hasil itu muncul
      4. ketika program mengirim pesan,pengguna bisa melihat riwayat transaksi yang menunjukkan alasan kenapa pesan itu dikirim (utang belum lunas, tenggat hampir habis)
      PSEUDOCODE

    Komentar

    Posting Komentar