Showing posts with label Program. Show all posts
Showing posts with label Program. Show all posts

Sunday, 14 August 2016

Algoritma sebagai sebuah teknologi


Jika berandai-andai memiliki sebuah computer dengan kecepatan dan memori yang tidak terbatas,masihkan kita memerlukan sebuah algoritma? Jawabannya pasti “ya” karena dengan algoritma yang baik, ita bisa mendokumentasikan dan merancang sebuah program agar dapat di pahami oleh orang lain (sebuah program sebaiknya tidak hanya di pahami oleh pemrogramnya, namun juga oleh pengguna program). 


Permasalahannya sekarang adalah bahwa computer tidak mempunyai kecepatan dan memori yang tidak terbatas, terlepas dari harganya yang sudah semakin murah.penggunaan algoritma dalam hal ini sekali lagi sangat di perlukan. Dengan algoritma yang baik kita dapat menghasilkan program yang efisien dari segi waktu dan hasil yang ingin di capai. Sebagai contoh sederhana, di umpamakan ada dua computer dengan sepesifikasi yang berbeda. Computer A dapat mengeksekusi 1 milyar perdetik. Sementara computer B dapat mengeksekusi 10juta instruksi  per detik. Kedua computer tersebut digunakan untuk mengurutkan 10juta angka dengan algoritma yang berbeda. Computer A menggunakan algoritma insertion sort  dengan kemamuan 2N kuadrat untuk mengurutkan data N ,sedangjan computer B menggunakan algoritma merge sort yang kemampuan untuk mengurutkan datanya 50N . maka untuk mengurutkan 10 juta angka computer A akan memerlukan waktu :

2(107)2 instruksi / 109 instruksi per detik = 200.000 detik
Sementara computer B memerlukan waktu :
50.107.log7 instruksi/107 instruksi = 350 detik.

Dari perhitungan di atas dapat di ketahui bahwa computer B dapat mengurutkan angka lebih cepat dari computer A. meskipun memilliki komputasi yang lebih tinggi , namun jika menggunakan algoritma yang kurang efisien, (dalam hal ini di bandingkan dengan merge sort) computer A akan membbutuhkan waktu lebih lama. Jadi kata kunci di sini adalah bahwa untuk memecahkan sebuah masalahdi perlkan sebuah algoritma yang efektif dan efisien sehingga persoalan komputasi serta terbatasnya alokasi memori dapat diatasi.

berikut adalah beberapa hal yang perlu di perhatikan untuk merancang sebuah algoritma:

  1. Teks algoritma berisi langkah-langkah  penyelesaian masalah. Deskripsi tersebut seharusnya di tullis dalam sebuah algoritma yang mudah di pahami.

  1. Notasi yang di buat yang di buat dalam  penulisan algoritma berbeda dengan notasi pada bahasa pemrograman. Setiap algoritma biasanya di tulis dalam bentuk pseudocode.

  1. Walaupun notasinya berbeda dengan bentuk pemrograman asli, pseudocode yang di buat haruslah mempunyai kemiripan dengan bahasa pemrograman umum (seperti penggunaan while dan for pada bahasa pemrograman).

  1. Notasi algoritmik bukan notasi bahasa pemrograman. Oleh karena itu notasi pada pseudocode tidak dapat di jalankan oleh computer. Agar dapat di jalankan oleh computer, pseudocode dalam bahasa algoritmik harus di terjemahkan ke dalam notasi bahasa pemrograman yang di pilih.

  1. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh computer, algoritma harus di translasikan ke dalam bahsa pemrograman. Ada beberapa hal yang harus di perhaitan dalam translasi tersebut, yaitu pendeklarasian variable dan pemilihan tipe data, pemakaina instrksi-instruksi, aturan sintaksis, tampilan hasil, cara pengoperasian interpreter atau compiler.

  1. Pendeklarasian variable dan tipe data
Pemillihan variable dan tipe data merupakan hal penting ketika mengaplikasian sebuah algoritma ke dalam bahasa pemrograman karena akan berkaitan dengan ke akuratan sebuah hasil perhitungan dalam sebuah algoritma.

  1. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama, tatapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.

  1. Aturan siintaksis
Pada saat menuliskan program, ketika terikat dengan urutan sintaksis dalam bahasa pemrograman yang akan di gunakan.

  1. Tampilan hasil
Pada saat membuat algoritma, kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini di perhatikan ketika ia mengonversikannya menjadi program.

  1. Cara pengoperasian compiler dan interpreter
Bahasa pemrograman yang di gunakan termasuk kelompok compiler atau interpreter.

Pentingnya Algoritma Dalam Pemrograman


 Dalam pembuatan sebuah program ada beberapa factor yang harus di pertimbangkan,dan kebenaran logika. Sintaksis dapat di artikan sebagai tata bahasa yang di gunakan dalam program. Semantic adalah maksut yang di kandung pada setiap pernyataan di dalam program. Sementara kebenaran logika berhubungan dengan benar tidaknya urutan pernyataan serta prosedur yang ada di dalam program, atau yang biasa di sebut dengan algoritma.


Dalam matematika dan komputasi, algoritma merupakan kumoulan perintah, yang saling berkaitan untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat di terjemahkan secara bertahap pada setiap tahap dari awal hingga akhir. Dalam penyusunannya d perlukan suatu logika agar algoritma yang di hasilkan sesuai dengan yang di harapkan. Algoritma merupakan bagian yang terpenting dan tidak dapat di pisahkan dari pemrograman. Meskipun semantic dan sintaksis yang di buat benar adanya,dengan algoritma yang keliru,permasalahan yang ingin di pecahkan dengan teknik pemrograman tidak akan behasil. Oleh karena itu untuk membuat program aplikasi hal pertama yang harus kita pahami adalah adalah algiritma atau pemecahannya. Hal ini bertujuan agar program yang talah di buat dapat sesuai dengan yang di harapkan.

Berikut adalh beberapa hal ynag harus di pertimbangkan untuk membuat sebuah algoritma.

1.    Algoritma yang di buat haruslah benar, artinya algoritma harus memberikan ouput yang bagus. Dengan algoritma yang benat algoritma yang di hasilkan dapat di capai.

2.    Selain benar algoritma juga harus efektif. Maksutnya seberapa baik algoritma yang di di gunakan mendekati hasil yang di harapkan. Hal ini sangatlah penting terutama jika permasalahan yang di hadapi cukup runit dan memerlukan perkiraan hasil sedekat mungkin.

3.    Algoritma yang di gunakan juga harus efektif. Efisiensi sebuah algoritma dapat di tinjau dari efisiensi waktu dan memori yang di gunakan. Meskipun algoritma yang di gunakan mendekati yang di harapkan , namun jika memmbutuhkan waktu yang sangat lama, bahkan berjam jam, biasanya algoritma itu akan jarang di pakai.

1.1.        Sejarah Algoritma

Kata algoritma berasal dari kata penulis buku arab yang terkenal, yaitu abu ja’far Muhammad ibnu musa al-khuwarizmi. Karena pengucapan yang berbeda, masayarakt eropa ( barat) menyebutnya dengan kata algorism. Al-khuwarizmi mennulis buu yang berjudukl kitab al- jabar wa-muqabala (buku pemugaran dan pengurangan). Kata algorism berarti proses menghitung dengan anga arab. Perubahan kata algorism menjadi algoritma muncul karena kata algorism sering di kelirukan dengan aritmethic sehingga akhiran –sm  berubah menjadi –thm . karena perhitungan dengan angka arab suda biasa, lambat laun kata algorithm di pakai sebagai metode perhitungan (komputasi) secara umum sehingga kehilangan makna kata aslinya. Di Indonesia kata algorithm di serap sebagai algoritma.

1.2.         Pentingnya Algoritma

Mengapa algortima sangat penting kaitannya dengan pemrograman ? larena selain untuk menyelesaikan masalah komputasi pengurutan data, a;goritma juga di pakai untuk memecahkan masalah yang lebih kompleks seperti berikut :

1.    Pengidentifikasian DNA manusia dapat di buat dengan algorima. Sebuah kompeks riset the human genome project telah mengidentifikasi 100.000 gen pada DNA manusia. Menyimpan informasi dalam basis data agar dapat di analisis di kemudian hari. Dengan menggunakan algoritma yang sangat rumit, para peneliti dapat memecahkan permasalahan dalam bidang biologi (kaitannya dengan kesehatan) seperti penyakit kanker.

2.    Manfaat lain dari penggunaan algoritma tampak dalam teknologi internet. Perkembangan teknologi internet yang sangat pesat sekarang ini membuat masyarakat dengan mudah mendapatkan informasi secara cepat dan akurat. Penyampaian informasi tersebut tentunya memerlukan rute (jakur) agar informasi yang di inginkan dapat di terima dengan baik. Dengan algoritma perutea(routing protocol)  seperti algoritma dijkstra , permasalahan tentang pengiriman data dapat di pecahkan.

3.    Algoritma juga dapat di aplikasikan dalam dunia bisnis. Dengan semakin berkembangnya teknologi e-comerce , transaksi pembayaran dengan kartu pintar atau dengan kartu kredit membutuhkan tingkat keamanan yang sangat tinggi. Dengan menggunakan teknik kriptografi dan digital signatur , kemanan transaksi keuangan  menjadi hal yang tidak perlu di takutkan lagi.

Masih banyak permasalahan dalam kehidupan sehari-hari yang dapat di pecahkan dengann algoritma. Oleh karena itu dibutuhkan sebuah pemahaman dasar tentang logika dan struktur data untuk memudahkan kita menyelesaikan suatu program.



Sumber : buku dasar pemrograman algoritma dan struktur data karya cipta ramadhani,S.T.,M.Eng


Thursday, 21 July 2016

Switch Menggunakan Bahasa Java

Switch Case- pada java merupakan salah satu bentuk pengendali alur program yang biasanya digunakan dalam membuat program menu. Switch Case menggunakan perintah break untuk memberhentikan proses terhadap case yang dieksekusi.



Dalam switch case terdapat kondisi default , kondisi ini akan di lakukan jika semua kondisi tidak ada yang terpenuhi . Default sama seperti kondisi else yang paling akhir jika di dalam if-else 

Berikut adalah salah satu contoh source code sederhana Switch pada Java :

import java.util.Scanner;
public class studykasusswitch{
public static void main ( String args[])
{
System.out.println("====================");
System.out.println("LATIHAN SWITCH");
System.out.println("NAMA : ANDRI SAPUTRO");
System.out.println("====================");
System.out.println("");
System.out.println("");

Scanner simpan= new Scanner (System.in);
int pilihan=0;
String username="";
String fisika="";
int password=0;
float v=0;
float s=0;
float t=0;
System.out.print("masukan username : ");
username=simpan.nextLine();
switch(username)
{
case "admin" :
System.out.print("input password :");
password=simpan.nextInt();
if(password==2)
{
System.out.println("====================");
System.out.println("LATIHAN SWITCH");
System.out.println("NAMA : ANDRI SAPUTRO");
System.out.println("====================");
System.out.println("");
System.out.println("");

Scanner simpan= new Scanner(System.in);
String Loop="";
for(Loop="Y";Loop.equals("y")||Loop.equals("Y");)
{System.out.print("masukan pilihan (Y/t):");
Loop=simpan.nextLine();}
}
{System.out.println("==============================");
System.out.println("PILIHAN MENU");
System.out.println("==============================");
System.out.println("pilihan 1 = menghitung kecepatan");
System.out.println("pilihan 2 = menghitung jarak");
System.out.println("pilihan 3 = menghitung waktu");
System.out.println("==============================");
System.out.print("Masukan pilahan anda :");
fisika=simpan.next();
switch (fisika)
{case "1" :
System.out.println("perhitungan kecepatan dalam fisika");
System.out.println("==============================");
System.out.println("masukan jarak (s) :");s=simpan.nextFloat();
System.out.println("masukan waktu (t) :");t=simpan.nextFloat();
v=s/t;
System.out.println("jadi kecepatan = "+v);System.out.println("m/s");
break;

case "2" :
System.out.println("perhitungan jarak dalam fisika");
System.out.println("==============================");
System.out.println("masukan kecepatan (v) :");v=simpan.nextFloat();
System.out.println("masukan waktu (t) :");t=simpan.nextFloat();
s=v*t;
System.out.println("jadi jarak = "+s);
break;

case "3" :
System.out.println("perhitungan waktu dalam fisika");
System.out.println("==============================");
System.out.println("masukan jarak (s) :");s=simpan.nextFloat();
System.out.println("masukan kecepatan (v) :");v=simpan.nextFloat();
t=s/v;
System.out.println("jadi kecepatan = "+v);
break;}}
else 
{System.out.print("pilihan yang anda masukan salah");}
break;

default: System.out.print("pilihan yang anda masukan salah");
}}}

catatan :

agar program yang di jalankan tidak langsung keluar, bisa di gunakan looping seperti berikut :
for(Loop="Y";Loop.equals("y")||Loop.equals("Y");)
{System.out.print("masukan pilihan (Y/t):");
Loop=simpan.nextLine();}



terimakasih, semoga bermanfaat :)