Analisis & Algoritma

copas tulisan orang 🙂

Pengenalan Desain dan Analisis Algoritma

Sebagai salah satu dasar dari ilmu komputer, algoritma merupakan hal yang sangat penting untuk dikuasai oleh orang-orang yang berkecimpung di dunia ilmu komputer, dari peneliti sampai ke praktisi. Tentunya penguasaan akan algoritma tidak cukup hanya sampai pada tahap mengetahui dan menggunakan algoritma yang tepat untuk menyelesaikan masalah. Seorang yang mengerti ilmu komputer harus juga mampu merancang dan mengembangkan sebuah algoritma berdasarkan masalah-masalah yang ditemui. Tulisan ini bertujuan untuk memberikan pengertian mendasar mengenai perancangan (desain) dan pengembangan algoritma, agar pembaca dapat tidak hanya menggunakan algoritma yang sudah ada, tetapi juga merancang dan mengembangkan algoritma sesuai dengan masalah yang akan diselesaikan.

Selain memberikan dasar perancangan, tulisan ini juga membahas jenis-jenis algoritma yang ada, untuk kemudian melakukan analisa terhadap beberapa algoritma untuk setiap jenisnya. Analisis algoritma dilakukan dengan tujuan utama agar pembaca dapat mengambil keputusan yang tepat dalam memilih algoritma untuk solusi.

Apa itu Algoritma?

Sebelum membahas mengenai perancangan ataupun analisis algoritma, tentunya kita terlebih dahulu harus mendefinisikan arti dari “Algoritma”. Apa itu algoritma?

Algoritma merupakan langkah-langkah (prosedur) yang harus dilakukan untuk menyelesaikan sebuah masalah.

Program komputer umumnya dibangun dengan menggunakan beberapa algoritma untuk menyelesaikan sebuah permasalahan. Misalnya sebuah program pencarian teks seperti grep akan memerlukan algoritma khusus untuk membaca dan menelusuri file, algoritma lain untuk mencari teks yang tepat di dalam file, dan satu algoritma lagi untuk menampilkan hasil pencarian ke pengguna.

Dalam mendefinisikan algoritma, kita harus dapat mendefinisikan tiga hal utama dengan jelas, yaitu:

  1. Masalah, yaitu sebuah persoalan yang ingin diselesaikan oleh sebuah algoritma.
  2. Masukan, yaitu contoh data atau keadaan yang menjadi permasalahan.
  3. Keluaran, yaitu bentuk akhir dari data atau keadaan setelah algoritma diimplementasikan ke masukan. Keluaran merupakan hasil ideal yang diinginkan dan dianggap telah menyelesaikan masalah.

Contoh (dan Solusi) Algoritma

Contoh dari sebuah definisi algoritma yang benar adalah sebagai berikut:

Masalah
Pengurutan sekumpulan nilai yang bernilai acak.
Masukan
Serangkaian data berukuran $n$.
Keluaran
Serangkaian data berukuran $n$, dengan urutan a1a2a3...an1an, di mana ax adalah data pada posisi x dalam rangkaian.

Data masukan yang diinginkan merupakan rangkaian data, tanpa memperdulikan jenis data (angka, huruf, teks, dan lainnya). Contoh dari nilai masukan adalah [2, 5, 1, 3, 4] ataupun ["Doni", "Andi", "Budi", "Clara"]. Data keluaran yang diinginkan, tentunya adalah data masukan yang telah terurut: [1, 2, 3, 4, 5] dan["Andi", "Budi", "Clara", "Doni"].

Untuk menyelesaikan masalah yang diberikan di atas, kita dapat menggunakan algoritma insertion sort. Kode di bawah menunjukkan implementasi insertion sort pada bahasa pemrograman python:

def insertion_sort(data):
    for i in range(0, len(data)):
        insert_val = data[i]
        hole_pos = i

        while hole_pos > 0 and insert_val < data[hole_pos - 1]:
            data[hole_pos] = data[hole_pos - 1]
            hole_pos = hole_pos - 1

        data[hole_pos] = insert_val

Implementasi insertion sort yang diberikan di atas menunjukkan bahwa pada dasarnya sebuah prosedur yang harus dijalankan untuk mengubah data masukan menjadi data keluaran, sehingga masalah dapat terselesaikan.

Algoritma yang Baik

Kita telah mengetahui dengan jelas makna dari algoritma, sehingga pertanyaan selanjutnya adalah algoritma seperti apa yang dapat dikatakan sebagai algoritma yang baik? Pada umumnya kita tidak ingin menggunakan algoritma yang salah untuk menyelesaikan masalah karena hal ini dapat menyebabkan masalah tidak diselesaikan dengan optimal, atau lebih buruknya, tidak diselesaikan sama sekali.

Sebuah algoritma yang baik memiliki sifat-sifat berikut:

  1. Benar, di mana algoritma menyelesaikan masalah dengan tepat, sesuai dengan definisi masukan / keluaran algoritma yang diberikan.
  2. Efisien, berarti algoritma menyelesaikan masalah tanpa memberatkan bagian lain dari apliikasi. Sebuah algoritma yang tidak efisien akan menggunakan sumber daya (memori, CPU) yang besar dan memberatkan aplikasi yang mengimplementasikan algoritma tersebut.
  3. Mudah diimplementasikan, artinya sebuah algoritma yang baik harus dapat dimengerti dengan mudah sehingga implementasi algoritma dapat dilakukan siapapun dengan pendidikan yang tepat, dalam waktu yang masuk akal.

Pada prakteknya, tentunya ketiga hal tersebut tidak dapat selalu tercapai. Kebenaran dari sebuah algoritma umumnya selalu dapat dicapai, setidaknya untuk nilai-nilai masukan umum, tetapi efisiensi dan kemudahan implementasi tidak selalu didapatkan. Begitupun, tentunya kita harus tetap berusaha mencapai ketiga hal tersebut dalam merancang sebuah algoritma.

Pembuktian Kebenaran Algoritma

Kita telah mengetahui bahwa sebuah algoritma yang baik adalah algoritma yang benar, efisien, dan mudah diimplementasikan. Pertanyaan berikutnya tentunya adalah, bagaimana kita mengetahui bahwa sebuah algoritma telah benar? Algoritma yang efisien itu seperti apa? Bagaimana kita mengukur kemudahan implementasi sebuah algoritma?

Bagian ini akan membahas mengenai pertanyaan pertama, yaitu bagaimana kita dapat mengetahui kebenaran sebuah algoritma. Tentunya efisiensi dan kemudahan implementasi sebuah algoritma menjadi tidak penting jika algoritma tersebut tidak dapat memberikan hasil yang benar.

Definisi dari kebenaran algoritma yang digunakan pada tulisan ini adalah sebagai berikut:

Sebuah algoritma dikatakan telah benar jika algoritma tersebut dapat memberikan keluaran yang benar jika menerima masukan sesuai dengan definisi algoritma tersebut, dan algoritma tersebut terbukti akan selalu dapat diterminasi (berakhir).

Pembuktian kebenaran sebuah algoritma sendiri dapat dilakukan dengan beberapa cara, misalnya:

  1. Induksi Matematika,
  2. Pembuktian kontradiktif,
  3. Pembuktian kontrapositif, dan
  4. Metode Formal.

Masing-masing alat pembuktian yang disebutkan memiliki kelebihan dan kekurangan masing-masing, serta kasus pengunaan yang berbeda-beda. Perlu diingat juga bahwa masih terdapat sangat banyak alat-alat pembuktikan lainnya yang dapat digunakan, tetapi kita hanya membahas satu cara pembuktian (induksi matematika) saja sebagai pengenalan cara membuktikan algoritma. Jika dibutuhkan, metode dan alat pembuktian lain akan dijelaskan lagi pada bagian yang relevan.

Analisis menurut KBBI

analisis/ana·li·sis/ n

1 penyelidikan thd suatu peristiwa (karangan, perbuatan, dsb) untuk mengetahui keadaan yg sebenarnya (sebab-musabab, duduk perkaranya, dsb);

2 Man penguraian suatu pokok atas berbagai bagiannya dan penelaahan bagian itu sendiri serta hubungan antarbagian untuk memperoleh pengertian yg tepat dan pemahaman arti keseluruhan;

3 Kim penyelidikan kimia dng menguraikan sesuatu untuk mengetahui zat bagiannya dsb;

4 penjabaran sesudah dikaji sebaik-baiknya;

5 pemecahan persoalan yg dimulai dng dugaan akan kebenarannya;

Analisa Sistem

copas dari blog orang 😀

Seputar Pengertian Dan Langkah-langkah Analisa Sistem

Seputar Pengertian~ Analisa sistem dapat didefinisikan sebagai penguraian dari suatu system informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikwn dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.

ANALISA SISTEM MENURUT PARA AHLI

  1. Menurut Mc Leod :Analisa Sistem Adalah Suatu studi dari sistem yang telah ada dengan tujuan untuk merancang sistem yang baru atau memperbaiki kekurangan dari sistem yang telah ada.
  2. Menurut  Pressman : Analisa Sistem Adalah Kegiatan menemukan atau mengidentifikasikan masalah, mengevaluasi, membuat model serta membuat spesifikasi sistem.
  3. Menurut  Yourdan : Analisa Sistem Adalah Suatu kegiatan mentransformasikan dua masukan utama, yaitu kebijaksanaan pemakai dan anggaran proyek kedalam spesifikasi yang terstruktur. Kegiatan tersebut melibatkan alat dan model diagram aliran data, diagram antar entitas dan komunikasi data.
  4. Analisa Sistem Secara Umum :adalah Memandang, Pengamatan dan menyimpulkan konsep sistem berdasarkan Sistem Informasi secara fisik dan konseptual.
LANGKAH-LANGKAH ANALISA SISTEM
Langkah-langkah dalam tahap analisa sistem hampir sama dengan yang akan langkah-langkahyang dilakukan dalam mendefinisikan proyek-proyek sistem yang akan dikembangkan di tahap perencanaan sistem. Perbedaannya terletak pada ruang-lingkup tugasnya. Di analisa sistem, ruang lingkup tugasnya adalah lebih terinci. Di analisa sistem ini, penelitian yang dilakukan oleh analis sistem adalah penelitian terinci, sedang di perencanaan sistem sifatnya hanya penelitian pendahuluanDi dalam tahap analisa sistem terdapat langkah-langkah dasar yang harus dilakukan oleh analis sistem, sebagai berikut:

  1. Identify, yaitu mengidentifikasikan masalah
  2. Understand, yaitu memahami kerja dari sistem yang ada
  3. Analyze, menganalisis sistem
  4. Report, yaitu membuat laporan hasil analisis.

TUGAS ANALIS SISTEM

MENGIDENTIFIKASI MASALAH
Mengidentifikasi (mengenal) masalah merupakan langkah pertama yang dilakukan dalam tahap analisis sistem. Masalah dapat didefinisikan sebagai suatu pertanyaan yang diinginkan untuk dipecahkan. Masalah inilah yang menyebabkan sasaran dari system tidak dapat dicapai. Oleh karena itu langkah pertama yang harus dilakukan oleh analis sistem adalah mengidentifikasi terlebih dahulu masalah-masalah yang terjadi.
Tugas analis system Dalam Mengidentifikasi Masalah adalah :
1. Mengidentifikasi Penyebab Masalah
Analis sistem harus mempunyai pengetahuan yang cukup tentang aplikasi yang sedang dianalisisnya. Untuk aplikasi bisnis, analis sistem perlu mempunyai pengetahuan tentang sistem bisnis yang diterapkan di organisasi, sehingga dapat mengidentifikasi penyebab terjadinya masalah ini.
Tugas mengidentifikasi penyebab masalah dimulai dengan mengkaji ulang terlebih dahulu subyek permasalahan yang telah diutarakan oleh manajemen atau yang telah ditemukan oleh analis sistem ditahap perencanaan sistem.
2. Mengidentifikasi Titik Keputusan
Setelah penyebab terjadinya masalah dapat diidentifikasi, selanjutnya juga harus mengidentifikasikan titik keputusan penyebab masalah tersebut. Titik keputusan menunjukkan suatu kondisi yang menyebabkan sesuatu terjadi.Analis sistem bila telah dapat mengidentifikasi terlebih dahulu titik-titikkeputusan penyebab masalah, maka dapat memulai penelitiannya dititik-titik keputusan tersebut. Sebagai dasar identifikasi titik-titik keputusan ini, dapat digunakan dokumen paperwork flow atau form flowchart bila dokumentasi ini dimiliki oleh perusahaan.

3. Mengidentifikasi Personil-personil Kunci
Setelah titik-titik keputusan penyebab masalah dapat diidentifikasi beserta lokasi terjadinya, maka selanjutnya yang perlu diidentifikasi adalah personil-personil kunci baik yang langsung maupun yang tidak langsung dapat menyebabkan terjadinya masalah tersebut. Identifikasi personil-personil kunci ini dapat dilakukan dengan mengacu pada bagan alir dokumen perusahaan serta dokumen deskripsi kerja (job description).

MEMAHAMI KERJA SISTEM
Langkah ini dapat dilakukan dengan mempelajari secara terinci bagaimana sistem yang ada beroperasi. Diperlukan data yang dapat diperoleh dengan cara melakukan penelitian. Bila di tahap perencanaan sudah pernah diadakan penelitian, sifatnya masih penelitian pendahuluan (preliminary survey). Sedangkan pada tahap analisis sistem, penelitiannya bersifat penelitian terinci (detailed survey).

Analis sistem perlu mempelajari apa dan bagaimana operasi dari sistem yang ada sebelum mencoba untuk menganalisis permasalahan, kelemahan dan kebutuhan pemakai sistem untuk dapat memberikan rekomendasi pemecahannya. Sejumlah data perlu dikumpulkan, dengan menggunakan teknik pengumpulan data yang ada, yaitu wawancara, oberservasi, daftar pertanyaan dan pengambilan sampel.Tugas analis system Dalam Memahami Kerja Sistem:
1. Menentukan Jenis Penelitian
Jenis penelitian perlu ditentukan untuk masing-masing titik keputusan yang akan diteliti. Jenis penelitian tergantung dari jenis data yang diperoleh, dapat berupa data tentang operasi sistem, data tentang perlengkapan sistem, pengendalian sistem, atau I/O yang digunakan oleh sistem.

2. Merencanakan Jadual Penelitian
Supaya penelitian dapat dilakukan secara efisien dan efektif, maka jadual penelitian harus direncanakan terlebih dahulu yang meliputi :

  1. Dimana penelitian akan dilakukan
  2. Apa dan siapa yang akan diteliti
  3. Siapa yang akan meneliti
  4. Kapan penelitian dilakukan

3. Membuat Penugasan Penelitian
Setelah rencana jadual penelitian dibuat, maka tugas dilanjutkan dengan menentukan tugas dari masing-masing anggota tim analis sistem, yang ditentukan oleh koordinator analis sistem melalui surat penugasan dengan menyertakan lampiran kegiatan penelitian yang harus dilakukan.

4. Membuat Agenda Wawancara
Sebelum wawancara dilakukan, waktu dan materi wawancara perludidiskusikan. Rencana ini dapat ditulis di agenda wawancara dan dibawa selama wawancara berlangsung. Tujuannya adalah supaya wawancara dapat diselesaikan tepat pada waktunya dan tidak ada materi yang terlewatkan.

5. Mengumpulkan Hasil Penelitian
Fakta atau data yang diperoleh dari hasil penelitian harus dikumpulkan sebagai suatu dokumentasi sistem lama, yaitu :

  1. Waktu untuk melakukan suatu kegiatan
  2. Kesalahan melakukan kegiatan di sistem yang lama
  3. Pengambilan sampel
  4. Formulir dan laporan yang dihasilkan oleh sistem lama
  5. Elemen-elemen data
  6. Teknologi yang digunakan di sistem lama
  7. Kebutuhan informasi pemakai sistem / manajemen

MENGANALISIS HASIL
Langkah ini dilakukan berdasarkan data yang telah diperoleh dari hasil penelitian yang telah dilakukan.
1. Menganalisis Kelemahan Sistem
Penelitian dilakukan untuk menjawab pertanyaan :

  1. Apa yang dikerjakan ?
  2. Bagaimana mengerjakannya ?
  3. Siapa yang mengerjakan

Menganalisis kelemahan sistem sebaliknya dilakukan untuk menjawab pertanyaan :

  1. Mengapa dikerjakan ?
  2. Perlukah dikerjakan ?
  3. Apakah telah dikerjakan dengan baik ?

Sasaran yang diinginkan oleh sistem yang baru ditentukan oleh kriteria penilaian sebagai berikut :

  1. Relevance,
  2. Capacity,
  3. Efficiency,
  4. Timeliness,
  5. Accessibility,
  6. Flexibility,
  7. Accuracy,
  8. Reliability,
  9. Security,
  10. Economy,
  11. Simplicity

Berdasarkan pertanyaan dan kriteria ini, selanjutnya analis system akan dapat melakukan analis dari hasil penelitian dengan baik untuk menemukan kelemahan dan permasalahan dari sistem yang ada.

2. Menganalisis Kebutuhan Informasi Pemakai / Manajemen
Tugas lain dari analis sistem yang diperlukan sehubungan dengan sasaran utama sistem informasi, yaitu menyediakan informasi yang dibutuhkan bagi para pemakainya perlu dianalisis.

MEMBUAT LAPORAN HASIL ANALISIS
Laporan hasil analisis diserahkan ke Panitia Pengarah (Steering Committee) yang nantinya akan diteruskan ke manajemen. Pihak manajemen bersama-sama dengan panitia pengarah dan pemakai sistem akan mempelajari temuan-temuan dan analis yang telah dilakukan oleh analis sistem yang disajikan dalam laporan ini.
Tujuan utama dari penyerahan laporan ini kepada manajemen adalah :

  1. Analisis telah selesai dilakukan
  2. Meluruskan kesalah-pengertian mengenai apa yang telah ditemukan dan dianalisis oleh analis sistem tetapi tidak sesuai menurut manajemen
  3. Meminta pendapat dan saran dari pihak manajemen
  4. Meminta persetujuan kepada pihak manajemen untuk melakukan tindakan selanjutnya (dapat berupa meneruskan ke tahap disain sistem atau menghentikan proyek bila dipandang tidak layak lagi)
  5. Semua hasil yang didapat dari penelitian perlu dilampirkan pada laporan hasil analisis ini, sehingga manajemen dan user dapat memeriksa kembali kebenaran data yang telah diperoleh.

Sumber:
Analisis dan Disain Sistem Informasi, Jogiyanto HM, hal. 129.

Menganalisa Masalah

Copas dari blog orang 🙂

6 Pertanyaan Penting Untuk Menganalisa Masalah (5W+1H)

PERTANYAAN KIPLING Menjadi salah satu analisa pemecah masalah yang baik, yang melibatkan pemikiran investigasi. Pertanyaan yang ditemukan oleh Rudyard Kipling ini berupa enam pertanyaan yang juga disebut sebagai analisa (5W+1H) yang terdiri dari beberapa pertanyaan sebagai berikut:

  1. What?     ——————>     Apa?
  2. Who?      ——————>     Siapa?
  3. Where?   ——————>     Di mana?
  4. When?    ——————>     Kapan?
  5. Why?       ——————>     Kenapa?
  6. How?       ——————>     Bagaimana?

Enam pertanyaan tersebut merupakan pertanyaan yang dapat membantu memecahkan masalah dan memicu ide-ide. Namun terkadang orang menggunakan atau mengartikan pertanyaan-pertanyaan tersebut  secara salah, sehingga analisa yang dilakukan akan menjadi tidak maksimal.

Aplikasi enam pertanyaan Kipling yang benar adalah seperti dalam contoh ini:

  1. Apa masalahnya?
  2. Siapa audiensnya?
  3. Di mana masalah ini terjadi ? 
  4. Kapan masalah ini terjadi?
  5. Mengapa masalah ini terjadi?
  6. Serta Bagaimana Anda bisa mengatasi masalah ini?

Dengan aplikasi pertanyaan yang benar akan menghasilkan analisi permasalahan yang lengkap sehingga solusi yang dicapai akan tepat dan efisien.