Apa yang di maksud dengan bahasa pemrograman komputer dan apa hubungannya dengan algoritma

(1)

Hubungan Algoritma dan Struktur Data

Program adalah kumpulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi bahasa pemrograman. Beberapa pakar memberi formula bahwa:

Show

program = struktur data + algoritma..Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah

program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, semikian juga sebaliknya.

Menilai Sebuah Algoritma

Ketika manusia berusaha memecahkan masalah, metode atau teknik yang

digunakan untuk memecahkan masalah kemungkinan bisa lebih dari satu. Dan kita memilih mana yang terbaik diantara teknik-teknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Lalu bagaimana mengukur mana algoritma yang terbaik ? Beberapa persyaratan untuk menjadi algoritma yang baik adalah:

• Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.

• Pemrosesan yang efisien (low cost). Proses harus diselesaikan secepat mungkin dan jumlah kalkulasi yang sependek mungkin.

• Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.

• Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.

• Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Sulit dimengertinya suatu program akan membuat sulit pengelolaan. • Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Contoh Algoritma dan Implementasinya

Sebagai contoh sederhana, mari kita berlatih melihat permasalahan, mencoba menyusun algoritma, dan menerapkan dalam bahasa C.

Permasalahan

Ada seorang guru SD yang ingin membuat rangking nilai ujian 9 orang murid. Nilai ujian murid adalah sebagai berikut:

56 78 43 96 67 83 51 74 32

Bagaimana algoritma dalam pembuatan rangking nilai tersebut?

Untuk memecahkan masalah di atas, kita bisa menyusun algoritma sebagai berikut: 1. Buat satu variable (misalnya rangking)

2. Set variable rangking = 1

3. Ambil satu nilai sebagai data yang ke a, misalnya 56.4. Cek nilai dari paling depan (56) sampai paling belakang (32) (b=0-8). Apabila

nilai tersebut lebih tinggi daripada nilai ke a (56), maka set variable rangking = ranking + 1.

(2)

mari kita implementasikan algoritma di atas dalam program bahasa C. Program: Rangking Nilai Ujian

#include

#define banyaknya_nilai 9 main(){

printf(“Nilai Ujian \t Rangking\n”); for (a=0;a<banyaknya_nilai;a++){

printf("%d \t\t %d\n",nilai[a], rangking[a]); }

} Hasil

Nilai Ujian Rangking 56 4

Hubungan Struktur Data dan Algoritma

February 24th, 2010 • Related • Filed Under

 Dengan pemilihan struktur data yang baik, maka problem yang kompleks

dapat diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.

 Tidak semua struktur data baik dan sesuai. Contoh untuk problem data bank:

pengupdate-an harus cepat, sedangkan penambahan/penghapusan data boleh lebih lambat.

(3)

Definisi

Algoritma:

prosedur terbatas yang terdiri beberapa operasi

menyelesaikan suatu masalah (Ibaraki)

Struktur data

cara pengaturan data agar bisa disimpan memory

komputer secara efisien

program

algoritma yang diimplementasikan dalam

bahasa pemrograman tertentu

HUBUNGAN ALGORITMA dan STRUKTUR DATA

Di dunia nyata, kemampuan komputer maupun

memory sangat terbatas

Hubungan antara Algoritma & Struktur Data

Hubungan antara Algoritma & Struktur Data•

Performa algoritma yang ideal

– Memory yang diperlukan kecil

running time

singkat

• Tradeoff antara waktu dan ruang (memory)

(4)

Algoritma yang baik + Struktur data yang tepat =

program yang baik

– Pemilihan algoritma dan struktur data yang tepat

harus

mempertimbangkan skala data, CPU, memori, dsb.

– Perlu pengetahuan algoritma dan struktur apa

saja yang ada dan mungkin dipakai.

CONTOH ALGORITMA

1. BUBBLE SORT

banyaknya data:

n

Data diurutkan/disorting dari yang bernilai besar

Proses

step 1 : Periksalah nilai dua elemen mulai dari

urutan ke-n

sampai urutan ke-1. Jika nilai kiri<kanan, tukarkan

kedua data itu.

step 2 : Periksalah nilai dua elemen mulai dari

urutan ke-n

sampai urutan ke-2. Jika nilai kiri<kanan, tukarkan

kedua data itu.

step n-1 : Periksalah nilai dua elemen mulai dari

urutan ke-n

(5)

kedua data itu.

Contoh : Tahap demi Tahap Penyelesaian

Awal 7 4 5 8 10

Awal 7 4 5 8 10

Step-1 7 4 5 8 10

Step-2 10 7 4 5 8

Step-3 10 8 7 5 4

Akhir :

Awal 7 4 5 8 10

Step-1 10 7 4 5 8

Step-2 10 8 7 4 5

Step-3 10 8 7 5 4

Step-4 10 8 7 5 4

Untuk Informasi lebih lanjut mengenai sorting

silahkan email ke

Sekarang Saya akan membahas mengenai Stack

Stack

Apakah Stack ituu?

• Penambahan dan penghapusan elemen

dilakukan pada

(6)

• Yang dihapus adalah elemen yang paling terakhir

ditambahkan

• Nama lain

LIFO (Last In First Out)

• Operasi PUSH : Menambahkan elemen pada

sebuah stack

• Penambahan dan penghapusan elemen

dilakukan pada

elemen list yang terletak di paling depan

• Yang dihapus adalah elemen yang paling terakhir

ditambahkan

• Nama lain

LIFO (Last In First Out)

• Operasi POP : Menghapus sebuah elemen dari

sebuah stack.

Stack overflow dan Stack underflow

• Stack Overflow

Menambahkan data pada sebuah stack yang telah penuh • Stack Underflow

You're Reading a Free Preview
Pages 6 to 13 are not shown in this preview.

Sebuah kemustahilan jika Anda tidak memahami algoritma pemrograman namun bermimpi ingin menjadi programer handal.

Pengetahuan dasar mengenai apa itu algoritma dan pemrograman perlu Anda pahami.

Selain itu, Anda juga bisa mempelajari list algoritma pemrograman komputer populer untuk lebih menambah pengetahuan atau referensi Anda mengenai ilmu pemrograman.

Apa Itu Algoritma Pemrograman

Dikutip dari Oolish Blog UNS, algoritma pemrograman adalah urutan langkah-langkah logis penyelesaian sebuah masalah yang disusun secara logis dan sistematis.

Algoritma dan pemrograman merupakan sesuatu yang berbeda, kendati demikian keduanya kerap dianggap sama.

Mengenai asal- usul dari kata algoritma itu sendiri bukan merupakan sesuatu yang penting dalam pembahasan di dunia pemrograman.

Algoritma pemrograman dalam membuat urutan program algoritma haruslah logis dan jelas.

Yang dimaksud jelas adalah memiliki nilai benar atau salah dan tidak memiliki nilai di tengah-tengah. Algoritma juga erat kaitannya dengan step by step dalam melakukan pekerjaan.

Anda akan melihat proses dari sebuah hasil kerja karena algoritma dan pemrograman tidak selalu identik dengan angka.

Terdapat 3 pertimbangan dalam pemilihan algoritma yaitu benar, baik, dan efisien.

Benar berarti output dari algoritma tersebut tidak salah. Sebaik apapun algoritmanya, jika salah, maka menjadi percuma.

Baik maksudnya seberapa baik hasil dari algoritma tersebut dengan indikator kedekatan antara hasil dengan nilai yang real.

Sebuah algoritma program haruslah efisien dari segi waktu dan memori. Jangan sampai algoritma tersebut menghabiskan waktu dan menghabiskan tempat.

Sekarang, apa bedanya algoritma dengan program? Program itu adalah kumpulan pernyataan komputer.

Sementara metode tahapan yang sistematis di dalam program disebut algoritma.

Dengan kata lain, sebuah program adalah implementasi dari bahasa pemrograman.

Program itu dapat dimaknai sebagai algoritma ditambah bahasa atau struktur data. Sebuah program yang baik, memiliki struktur data yang baik pula.

Sebaliknya, struktur data yang buruk dengan algoritma yang baik tetap tidak akan membuat sebuah program menjadi baik.

Algoritma Pemrograman yang Baik

Lantas, adakah standar atau indikator yang dapat menyatakan baik dan buruknya sebuah algoritma?

Jawabannya ada, berikut adalah syarat-syarat sebuah algoritma pemrograman komputer dikatakan baik.

  • Algoritma komputer harus efisien dimana prosesnya dapat diselesaikan secepat mungkin dengan frekuensi perhitungan yang sependek mungkin. Dengan kata lain, tidak boros sumber daya.
  • Algoritma yang baik harus dengan mudah diimplementasikan ke perangkat komputer.
  • Program algoritma yang baik harus mudah dipahami. Hal ini berlaku tidak diskriminatif dimana siapapun dapat dengan mudah memahami algoritma tersebut. Dampak buruk dari susahnya dimengerti sebuah algoritma adalah kesulitan pengelolaan algoritma.
  • Akurasi tinggi adalah syarat lain dari program algoritma yang baik. Mana bisa menjadi algoritma yang digunakan secara profesional jika hasilnya tidak akurat.
  • Semakin umum maka semakin baik. Algoritma yang baik adalah algoritma yang berlaku umum dan tidak terbatas pada 1 bidang spesifik. Jika bisa sampai berlaku umum, maka algoritma tersebut mampu menyelesaikan masalah dan bermanfaat di berbagai bidang.
  • Algoritma dan pemrograman yang baik memiliki langkah-langkah yang jelas dan detail. Setiap proses tepat dan lengkap dimana tidak tanggung, penuh kejelasan, dan penuh kepastian.
  • Algoritma yang baik juga harus bisa dikembangkan. Bukan tidak mungkin sebuah algoritma yang tampak sederhana bisa terus dikembangkan untuk menghasilkan hasil yang lebih tinggi dan lebih baik hasilnya.

Contoh Algoritma Pemrograman

Apa yang di maksud dengan bahasa pemrograman komputer dan apa hubungannya dengan algoritma
Bahasa pemrograman terpopuler

Ternyata ada banyak algoritma yang telah dibuat, menentukan mana saja algoritma yang penting tentu bukan pekerjaan yang mudah.

Namun, terdapat 32 algoritma yang paling umum di gunakan di dunia komputer oleh para ilmuwan IT.

Tentu tidak semua contoh algoritma pemrograman tersebut perlu untuk ditampilkan.

Berikut adalah 10 dari 32 algoritma pemrograman yang paling umum digunakan di dunia komputer.

1. Pencarian Beam

Pencarian Beam adalah algoritma yang mengoptimalkan pencarian terbaik pertama.

Sebagaimana pencarian terbaik pertama, pencarian ini menggunakan fungsi heuristic untuk mengevaluasi node-node yang diperiksa.

2. Pencarian Binary

Teknik untuk menemukan nilai tertentu di linear array dengan mengesampingkan setengah data setiap langkah.

3. Kompresi Data

Kompresi data atau source coding adalah proses encoding sebuah informasi menggunakan bit yang lebih sedikit ketimbang representasi tanpa kode yang harus menggunakan skema encoding yang spesifik.

Baca juga : Bahasa Pemrograman Terpopuler

4. Branch and Bound

Apa yang di maksud dengan bahasa pemrograman komputer dan apa hubungannya dengan algoritma
Branch and Bound

Sebuah metode algoritma umum untuk menemukan solusi optimal dari beragam masalah pada pengoptimalan. Hal tersebut terutama pada masalah optimasi diskrit dan kombinasi.

5. Hashing

Sebuah fungsi untuk merangkum atau mengidentifikasi data secara probabilistik.

Biasanya hal ini bermakna satu orang menerapkan rumus matematika ke data, menghasilkan string yang mungkin unik untuk data tersebut.

String tersebut jauh lebih pendek dari data original. Namun, data tersebut dapat digunakan untuk pengidentifikasian.

6. Dynamic Programming

Apa yang di maksud dengan bahasa pemrograman komputer dan apa hubungannya dengan algoritma
Dynamic Programming

Metode mengurangi runtime algoritma yang menampilkan sub-masalah tumpang tindih dan substruktur optimal.

7. Maximum Flow

Permasalahan maximum flow adalah menemukan hukum melalui alur aliran yang maksimal. Kadang-kadang hal ini didefinisikan sebagai menemukan nilai aliran seperti itu.

Lebih lanjut, masalah ini dapat dilihat sebagai kasus khusus dari masalah alur aliran yang lebih kompleks.

Maximum flow juga terkait dengan pemotongan di dalam jaringan oleh teori Max-flow min-cut. Algoritma Ford-Fulkerson menghitung aliran maksimal dalam jaringan aliran.

8. Metode Newton

Metode Newton adalah algoritma yang efisien untuk menemukan perkiraan ke nol dari fungsi bernilai nyata.

Metode Newton juga merupakan algoritma yang dikenal untuk menemukan akar persamaan dalam satu atau lebih dimensi.

Ini juga dapat digunakan untuk menemukan maksimal lokal dan fungsi minimal lokal.

9. Karatsuba Multiplication

Untuk sistem yang perlu mengalikan angka dalam kisaran beberapa ribu digit layaknya sistem aljabar komputer dan perpustakaan bignum, perkalian panjang dinilai terlalu lambat.

Sistem ini menggunakan perkalian Karatsuba.

Baca juga : Pentingnya Website Untuk Bisnis

10. Q-Learning

Apa yang di maksud dengan bahasa pemrograman komputer dan apa hubungannya dengan algoritma
Q-Learning

Q-Learning adalah teknik pembelajaran penguatan yang bekerja dengan mempelajari fungsi dari nilai tindakan yang memberikan utility yang diharapkan untuk mengambil tidaknakan pada situasi tertentu.

Selain itu hal tersebut juga ditujukan untuk mengikuti kebijakan sesudahnya.

Kekuarangan Q-Learning terletak pada kemampuannya membandingkan utilitas yang diharapkan dari tidak yang ada tanpa memerlukan model lingkungan.

Mempelajari algoritma pemrograman bukan hal mudah. Anda bisa mempelajarinya secara otodidak atau mengambil kelas ilmu pemrograman untuk mendapatkan pengetahuan yang lebih banyak lagi.

Selain itu, Anda juga wajib memiliki buku algoritma dan pemrograman untuk lebih memahami dunia pemrograman, terutama pemrograman komputer.

Jika Anda membutuhkan layanan Cloud Hosting dan Domain, Anda bisa memilih Qwords.com.

Qwords adalah perusahaan IT yang menyediakan beragam produk IT, baik barang maupun jasa.

Selain Cloud dan Domain, Qwords.com juga menyediakan layanan lain, diantaranya software-software yang ada kaitannya dengan dunia website, email suite, dan server.

Qwords menyediakan web hosting dengan harga yang rasional. Bukan berarti mahal, namun web hosting yang disediakan sebanding dengan performa yang cepat dan dapat diandalkan.

Terima kasih