Minggu, 30 November 2014

Algoritma dan Pemrograman

1.  Apakah Itu Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.

2.  Definisi Algoritma


“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.

3.  Beda Algoritma dan Program


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

Program = Algoritma + Bahasa (Struktur Data)
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, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya :
  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer,pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  • Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :
a.  Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila    tidak semua bahasa pemrograman membutuhkannya.
b.  Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c.  Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d.  Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.
e.  Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f.  Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.

4.  Algoritma Merupakan Jantung Ilmu Informatika


Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.
Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:
  • Mengerti
  •  setiap langkah dalam algoritma.
  • Mengerjakan operasi yang bersesuaian dengan langkah tersebut.


5.  Mekanisme Pelaksanaan Algoritma oleh Pemroses


Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.
Kata “algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya. Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan algoritma selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program menggambarkan grafik tersebut?”. Jika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan program. Algoritma adalah langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut pemrograman (programming). Orang yang menulis program disebutpemrogram (programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.
Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingatingat.
Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.

Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).

6.  Belajar Memprogram dan Belajar Bahasa Pemrograman

Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya, dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasiseperti CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :
  • Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
  • Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.
Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam :
  • Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.
  • Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator ataucompiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.
Bahasa pemrograman bisa juga dikelompokkan berdasarkan pada tujuan dan fungsinya. Di antaranya adalah :

7.  Menilai Sebuah Algoritma

Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Yang menjadi pertanyaan adalah 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 (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
  • Sifatnya 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. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
  • Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
  • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh :   Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
  • Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
  • Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.
Contoh :   Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal : Hitung akar 2 sampai lima digit di belakang koma.
  • Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
  • Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :
  1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
  2. Output: algoritma harus memiliki minimal satu buah output keluaran.
  3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
  4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
  5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh Sistem Operasi.
8.  Penyajian Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocodePseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum,pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.

Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di
samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
  • Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:



  • Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.

    • Kaidah-Kaidah Umum Pembuatan Flowchart Program
      Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :
      1. Input,
      2. Proses pengolahan dan
      3. Output


      Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:

      1. START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.
      2. READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
      3. PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
      4. WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
      5. END, mengakhiri kegiatan pengolahan.
      Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran :
      1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
      2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
      3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
      Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman :

      Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana.

      Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang.


      Solusi : Perumusan untuk mencari luas persegi panjang adalah :
      p . l
      di mana, adalah Luas persegi panjang, adalah panjang persegi, dan l adalah lebar persegi.

      1. Simbol pertama menunjukkan dimulainya sebuah program.
      2. Simbol kedua menunjukkan bahwa input data dari p dan l.
      3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L p. l.
      4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
      5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
      9.  Struktur Dasar Algoritma
      Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
      1. Struktur Runtunan
      2. Digunakan untuk program yang pernyataannya sequential atau urutan.
      3. Struktur Pemilihan
      4. Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
      5. Struktur Perulangan
      6. Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.

      Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.
      Definisi Pseudo-code
      Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
      Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
      Solusi Pseudo-code :
      1. Masukkan bilangan pertama
      2. Masukkan bilangan kedua
      3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
      4. Tampilkan bilangan pertama
      5. Tampilkan bilangan kedua
      Solusi Algoritma :
      1. Masukkan bilangan pertama (a)
      2. Masukkan bilangan kedua (b)
      3. if a > b then kerjakan langkah 4
      4. print a
      5. print b
      Contoh Lain Algortima dan Pseudo-code :

      10.  Tahapan dalam Pemrograman

      Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :
      • Definisikan Masalah
      • Buat Algoritma dan Struktur Cara Penyelesaian
      • Menulis Program
      • Mencari Kesalahan
      • Uji dan Verifikasi Program
      • Dokumentasi Program
      • Pemeliharaan Program.










      Rabu, 30 April 2014

      T.R.I.D ROM SAMSUNG GALAXY YOUNG GT S6310

      Screenshot:


      Syarat :

      Root
      CWM (clockworkmod recovery)

      sebaiknya sebelum melakukan Flash Rom ini ada baiknya anda, melakukan Backup aplikasi dulu, sebab semua aplikasi akan terhapus, nah bagaimana cara Backup aplikasi yg sudah kita instal??caranya masuk pake Root  exporler atau sejenisnya, buka folder root/data/app/disini.....nah disitu terdapat file2 APK yg agan udah instal, tinggal di copy ke tempat yg aman (MMC) dan setelah Flash ulang ROM bisa di instal kembali File Aplikasinya , Jadi tidak Merugikan..

      File T.R.I.D ROM Tinggal install lewat CWM, reboot,dan tunggu proses bootingnya agak lama...

      LINK DOWNLOAD : T.R.I.D ROM

      UPDATENYA NYUSUL YAHHH!!! :D 

      Senin, 21 April 2014

      Samsung Manfaatkan Kematian Steve Jobs


      Oktober 2011, pendiri Apple Steve Jobs meninggal dunia akibat kanker pankreas yang dideritanya sejak lama. Kematian salah satu tokoh terkenal di industri teknologi ini rupanya dipandang sebagai peluang oleh Samsung, rival berat Apple di ranah gadget yang ketika itu sedang berusaha menyaingi iPhone.

      Hal tersebut diungkapkan oleh salinan percakapan e-mail antara eksekutif Samsung yang dihadirkan sebagai alat bukti dalam pengadilan sengketa paten Apple-Samsung di California, Amerika Serikat.

      Beberapa hari sebelum Steve Jobs meninggal, kepala pemasaran Samsung di Amerika Serikat, Michael Pennington, sedang dirundung rasa khawatir soal rencana menyerang iPhone secara langsung. Dia tak mau menyinggung Apple yang merupakan pelanggan besar komponen gadget buatan Samsung.

      "Kalau Samsung terus bertahan tidak menyerang Apple karena status mereka sebagai pelanggan, kita bisa minta Google meluncurkan kampanye melawan Apple, dengan memakai perangkat-perangkat Android berkualitas yang tersedia di pasaran (pada kuartal 4 2011)," tulis Pennington dalam sebuah surel yang dialamatkan ke berbagai eksekutif lain di perusahaannya, sebagaimana dikutip oleh Mashable.

      Kemudian Steve Jobs wafat. Pennington kembali berkirim surat, kali ini dengan nada berbeda karena kabar mengenai kematian pendiri Apple telah memberikan "keuntungan" secara tidak langsung pada iPhone.

      "Sayangnya, kematian Steve Jobs telah menimbulkan gelombang pemberitaan mengenai Apple dan 'superioritas' iPhone yang dibuat oleh seorang 'perfeksionis, penuh hasrat, tak kenal lelah… Konsumen mana yang tak ingin membeli perangkat macam demikian?" tulis Pennington. Dia khawatir andalan Samsung  ketika itu, Galaxy SII, akan kehilangan perhatian.

      Tak mau produknya tenggelam di bawah pemberitaan mengenai pesaing, Pennington kemudian menyatakan niatnya melontarkan serangan. "Saya tahu ini adalah peluang terbaik kita untuk menyerang iPhone," katanya dalam surat.

      Gayung bersambut, Presiden dan Chief Executive Samsung AS ketika itu, Dale Sohn, rupanya sependapat. "Kita harus memanfaatkan kesempatan ini," tanggap Sohn atas surat Pennington.

      Rencana pun dieksekusi. Todd Pendleton, kepala pemasaran Samsung AS, menyatakan Galaxy SII siap bertarung langsung dengan iPhone 4S di musim liburan 2011. Samsung benar-benar melontarkan serangan terhadap iPhone.

      Serangan terus berlanjut pada tahun-tahun setelahnya. Kampanye anti-iPhone yang paling efektif dari Samsung, berjudul "Next Big Thing", datang pada 2012 dan segera menyebar luas di internet.

      Kampanye Samsung tersebut ternyata sangat efektif sehingga mempengaruhi Apple. Dalam sebuah dokumen pengadilan lain, terungkap bahwa perusahaan berlambang buah ini bahkan sampai mempertimbangkan mengganti agensi iklan untuk menyegarkan pemasaran iPhone.

      Salah satu contoh iklan sukses dari Samsung bisa dilihat dalam video di bawah, berisi sindiran terhadap para fans iPhone yang rela antri lama demi membeli perangkat tersebut.

      Sabtu, 01 Maret 2014

      Project Ara, Ponsel Rakitan Google Mungkin Dijual Mulai US$50


      Proyek smartphone modular teranyar Google, Project Ara, mungkin akan muncul di pasaran tahun depan dengan harga sekitar US$50. Perusahaan yang berada di balik pengembangannya, Advanced Technology and Projects Group melaporkan bahwa pembuatansmartphone yang bagian dalamnya dapat dibongkar dan di-upgrade ini akan rampung dalam waktu beberapa minggu.

      Setelah menyelesaikan rancangan awalnya, mereka akan memulai persiapan untuk mengubahnya menjadi versi yang sesuai untuk dijual. Sementara beberapa smartphone lainnya menawarkan spesifikasi dan desain yang tidak dapat diubah, ATAP menawarkan smartphone dengan harga semurah mungkin.

      ATAP tidak menyatakan di wilayah mana smartphone modular ini akan dijual, tetapi saat ini mereka tengah fokus dalam membuat Project Ara sangat fleksibel dalam urusan ekspansi setiap peranti keras yang terpasang. Project Ara akan menggunakan tiga jenis ukuran: mini, medium, dan jumbo. Pembagian tersebut bisa dibayangkan seperti saat memilih smartphone berukuran di bawah 4 inci hingga phablet.

      Konsumen mungkin tidak perlu memikirkan ukurannya karena ATAP tidak akan merancangnya dengan ketebalan lebih dari 10mm. Untuk masalah ketahanan, Ara mempunyai mekanisme pengunci khusus yang dapat dibuka melalui aplikasi khusus. Tentunya kita berharap bahwa pengunci itu cukup kuat saat smartphone modular ini terjatuh..

      Project Ara, Anda Bisa Merakit Ponsel Layaknya Merakit PC


      Banyak sekali pembaca BLOG yang antusias mengikuti perkembangan Project Ara. Untuk Anda yang belum tahu, Project Ara adalah sebutan untuk proyek pembuatan telepon seluler pintar modular atau ponsel rakitan yang pertama kali dicetuskan Motorola beberapa waktu lalu. Ketika Google menjual Motorola ke Lenovo, banyak yang bertanya, bagaimana nasib Project Ara?






      Jawabannya kita tahu, Project Ara tetap dilanjutkan karena divisi yang bertanggung jawab atas proyek itu, Advanced Technology and Projects (ATAP) tetap dipertahankan Google. Proyek ini terbilang ambisius karena belum ada sejarahnya produsen membuat ponsel rakitan layaknya PC.
      Dipimpin oleh Regina Dugan, mantan Direktur Defense Advanced Projects Agency (DARPA) Departemen Pertahanan AS, ATAP kini berada langsung di bawah kendali Google. Purwarupa ponsel pertama dari Ara diharapkan sudah akan tersedia beberapa minggu lagi dan peluncurannya secara komersial pada awal tahun depan.


      Ide utama Project Ara adalah membantu konsumen yang gemar "ngoprek" untuk mengutak-atik ponsel mereka tak sekadar dengan mengganti ringtone, wallpaper, warna bodi atau custom ROM, tetapi juga bentuk dan fungsinya. Di sisi lain, sama seperti OS Android saat ini, yang terlibat dalam pengembangan peranti keras ponsel tak cuma perusahaan raksasa, tetapi ratusan bahkan ribuan perusahaan kecil lainnya. Karenanya, proyek ini akan bersifat terbuka, yang artinya setiap produsen boleh memproduksi peranti keras khusus buat produk Ara. Hal itu mirip dengan Android, kan? semua pengembang mulai dari studio raksasa sampai anak SMA bisa bikin aplikasi untuk Android.


      “Pertanyaannya pada dasarnya, bisakah kita membuat apa yang telah kita lakukan di Android danplatform lain di sisi peranti lunak diterapkan di peranti keras?” kata Paul Eremenko, pemimpin Project Ara kepada Majalah Time beberapa waktu lalu. Time seca khusus mengulas proyek ini lebih dalam.

      Dengan Ara, Google berharap bisa mengajak ratusan bahkan ribuan produsen peranti keras terlibat membuat ponsel, seperti ribuan pengembang yang ikut mengembangkan aplikasi untuk Android.
      Nah, banyak CHIPers yang bertanya, apakah harga US$50 yang ditawarkan Google untuk ponsel pintar Project Ara sudah termasuk paket lengkap atau kerangkanya saja?

      Agar lebih jelas, harga itu hanya berlaku untuk kerangka saja. Kerangka tersebut hanya dilengkapi Wi-Fi dan tak ada koneksi seluler. Pengguna kemudian bisa membangun ponsel seperti yang mereka sukai dengan bermacam-macam modul, misalnya menambahkan kamera, prosesor kelas rendah sampai kelas tertinggi, speaker, koneksi 3G, LTE, dan banyak lagi.

      “Kami tak ingin sekadar membuat sesuatu yang bisa dipersonalisasi, dan bukan hanya sesuatu yang unik, tetapi sebenarnya sesuatu yang ekspresif, sehingga orang bisa menggunakannya sebagai kanvas untuk menuliskan cerita,” kata Eremenko. “Sehingga Anda bisa meletakkan ponsel Anda di meja makan malam, dan ia menjadi bahwan pembicaraan selama lima belas menit pertama acara makan malam itu.”

      Bagaimana dengan ukuran kerangka itu?

      Akan ada tiga ukuran kerangka yang berbeda: mini, medium dan jumbo. Ia terbuat dari aluminium, dan memiliki sirkuit jaringan, dan baterai cadangan. Tiap kerangka akan memiliki modul konektor, misalnya, ukuran medium punya 10 konektor.
      Modul yang bisa dibuka-tutup ini bisa dilepas tanpa harus mematikan telepon. Ukurannya juga tergolong tipis, hanya 4mm, sehingga ponsel yang sudah terakit utuh hanya berukuran sekitar 9,7mm. Sebagai gambaran, iPhone 5S memiliki ketebalan 7,6mm dan Samsung Galaxy S5 8,1mm. Cukup tipis bukan?

      “Tantangan terbesar dari proyek ini adalah bahwa telepon seluler adalah salah satu benda yang dibuat paling terintegrasi saat ini, dan kami ingin memisahkannya menjadi potongan-potongan modular,” kata Ara Knaian, Lead Mechanical Engineering Project Ara.

      Untuk menyukseskan Project Ara, Google telah menggandeng NK Labs untuk merancang listrik, mekanik, dan rekayasa peranti lunak dan sistem 3D untuk membuat printer 3D berkecepatan tinggi bisa memproduksi kerangka Ara. Jadi, kerangka produk ini akan dicetak langsung dari printer 3D.
      Untuk menahan masing-masing modul, misalnya, ketika ponsel terjatuh, kerangka Ara akan dilengkapi perekat dan magnet agar tak ada komponen yang longgar.

      Bagaimana perkembangan Ara sejauh ini?

      Google, Rabu (26/2) mengumumkan, mereka akan menggelar pertemuan dengan developer Ara pada 15 dan 16 April mendatang dalam acara “Ara Developer’s Conference.” Konferensi tersebut akan tersedia juga secara online disiarkan langsung dari Computer History Museum, California.
      Apakah Project Ara akan diluncurkan secara global?

      Masih terlalu dini untuk menanyakan hal tersebut. Pasalnya, di Amerika Serikat saja, regulator perangkat telekomunikasi (FCC) belum mengeluarkan sikap karena memang produk ini belum jadi. Tetapi, menurut Eremenko, FCC sejauh ini sangat mendukung proyek tersbeut karena mereka menganggapnya baik untuk industri Amerika. Jika ada ribuan produsen peranti keras yang terlibat memproduksi modular Ara, mungkinkah, menurut Anda, ponsel ini hanya akan tersedia di Amerika Serikat dan atau Eropa saja??

      Selasa, 04 Februari 2014

      Keajaiban Unik Dalam Angka


      Tahukah kamu bahwa kalau kita perhatikan, terdapat banyak keajaiban dalam angka-angka yang terlalu aneh jika dikatakan sebagai kebetulan, tetapi keajaiban dalam angka-angka tersebut benar-benar ada. Berikut akan saya tunjukkan beberapa keajaiban dalam angka-angka.

      Keajaiban Dalam Angka-Angka 142857


      142857 x 2 = 285714

      142857 x 3 = 428571

      142857 x 4 = 571428

      142857 x 5 = 714285

      142857 x 6 = 857142


      Apakah kamu sudah menemukan keunikan dalam angka-angka di atas? Kalau kamu perhatikan, hasil perkalian 142857 dengan 1, 2, 3, 4, 5, 6 menghasilkan sebuah bilangan yang urutannya sama dengan letak-letak angka dalam 142857. Untuk lebih jelasnya, kalau saya menggabungkan “1428573 dengan “1428573 akan didapat:

      1 4 2 8 5 7 1 4 2 8 5 7

      Perhatikan bahwa semua hasil perkalian tadi adalah bagian dalam angka-angka di atas. (Contoh: 285714 berarti dimulai dari angka ketiga di atas hingga angka kedelapan).

      Yang membuat keajaiban dalam angka-angka 142857 ini lebih aneh lagi, adalah ketika kita mengalikannya dengan 7, kita akan mendapatkan 142857 x 7 = 999999.

      Aneh tapi nyata. Inilah yang disebut keajaiban angka.

      Ohya, Saya baru menyadari satu hal nih, ternyata angka ajaib tersebut adalah angka koma dibelakang pada angka PHI atau 22/7 coba agan itung pake kalkulator

      22/7 = 3,142857142857142857........ dan seterusnya. 

      Senin, 03 Februari 2014

      Fakta Besar Tentang Ka'bah Yang Coba Disembunyikan Dunia

      Ternyata Bukan GMT Bukan Di Greenwich, Tapi Di Ka’bah (Fakta Ilmiah)

      Ka’bah, rumah Allah sejuta ummat muslim merindukan berkunjung dan menjadi tamu - tamu Allah sang maha pencipta. Kiblatnya (arah) ummat muslim dalam melaksanakan sholat, dari negara manapun semua ibadah sholat menghadap ke kiblat ini.

      Istilah Ka’bah adalah bahasa al quran dari kata “ka’bu” yg berarti “mata kaki” atau tempat kaki berputar bergerak untuk melangkah. Ayat 5/6dalam Al-quran menjelaskan istilah itu dg “Ka’bain” yg berarti ‘dua mata kaki’ dan ayat 5/95-96 mengandung istilah ‘ka’bah’ yg artinya nyata “mata bumi” atau “sumbu bumi” atau kutub putaran utara bumi.

      Neil Amstrong telah membuktikan bahwa kota Mekah adalah pusat dari planet Bumi. Fakta ini telah di diteliti melalui sebuah penelitian Ilmiah.
      Ketika Neil Amstrong untuk pertama kalinya melakukan perjalanan ke luar angkasa dan mengambil gambar planet Bumi, dia berkata, “Planet Bumi ternyata menggantung di area yang sangat gelap, siapa yang menggantungnya ?.”

      Para astronot telah menemukan bahwa planet Bumi itu mengeluarkan semacam radiasi, secara resmi mereka mengumumkannya di Internet, tetapi sayang nya 21 hari kemudian website tersebut raib yang sepertinya ada alasan tersembunyi dibalik penghapusan website tersebut.

      Setelah melakukan penelitian lebih lanjut, ternyata radiasi tersebut berpusat di kota Mekah, tepatnya berasal dari Ka’Bah. Yang mengejutkan adalah radiasi tersebut bersifat infinite ( tidak berujung ), hal ini terbuktikan ketika mereka mengambil foto planet Mars, radiasi tersebut masih berlanjut terus.

      Para peneliti Muslim mempercayai bahwa radiasi ini memiliki karakteristik dan menghubungkan antara Ka’Bah di planet Bumi dengan Ka’bah di alam akhirat.

      Makkah Pusat Bumi
      Prof. Hussain Kamel menemukan suatu fakta mengejutkan bahwa Makkah adalah pusat bumi. Pada mulanya ia meneliti suatu cara untuk menentukan arah kiblat di kota-kota besar di dunia.
      Untuk tujuan ini, ia menarik garis-garis pada peta, dan sesudah itu ia mengamati dengan seksama posisi ketujuh benua terhadap Makkah dan jarak masing-masing. Ia memulai untuk menggambar garis-garis sejajar hanya untuk memudahkan proyeksi garis bujur dan garis lintang.

      Setelah dua tahun dari pekerjaan yang sulit dan berat itu, ia terbantu oleh program-program komputer untuk menentukan jarak-jarak yang benar dan variasi-variasi yang berbeda, serta banyak hal lainnya. Ia kagum dengan apa yang ditemukan, bahwa Makkah merupakan pusat bumi.
      Ia menyadari kemungkinan menggambar suatu lingkaran dengan Makkah sebagai titik pusatnya, dan garis luar lingkaran itu adalah benua-benuanya. Dan pada waktu yang sama, ia bergerak bersamaan dengan keliling luar benua-benua tersebut. (Majalah al-Arabiyyah, edisi 237, Agustus 1978).

      Gambar-gambar Satelit, yang muncul kemudian pada tahun 90-an, menekankan hasil yang sama ketika studi-studi lebih lanjut mengarah kepada topografi lapisan-lapisan bumi dan geografi waktu daratan itu diciptakan.

      Telah menjadi teori yang mapan secara ilmiah bahwa lempengan-lempengan bumi terbentuk selama usia geologi yang panjang, bergerak secara teratur di sekitar lempengan Arab. Lempengan-lempengan ini terus menerus memusat ke arah itu seolah-olah menunjuk ke Makkah.

      Studi ilmiah ini dilaksanakan untuk tujuan yang berbeda, bukan dimaksud untuk membuktikan bahwa Makkah adalah pusat dari bumi. Bagaimanapun, studi ini diterbitkan di dalam banyak majalah sain di Barat.
      Allah berfirman di dalam al-Qur’an al-Karim sebagai berikut:

      ‘Demikianlah Kami wahyukan kepadamu Al Qur’an dalam bahasa Arab supaya kamu memberi peringatan kepada Ummul Qura (penduduk Makkah) dan penduduk (negeri-negeri) sekelilingnya..’ (asy-Syura: 7)

      Kata ‘Ummul Qura’ berarti induk bagi kota-kota lain, dan kota-kota di sekelilingnya menunjukkan Makkah adalah pusat bagi kota-kota lain, dan yang lain hanyalah berada di sekelilingnya. Lebih dari itu, kata ummu (ibu) mempunyai arti yang penting di dalam kultur Islam.

      Sebagaimana seorang ibu adalah sumber dari keturunan, maka Makkah juga merupakan sumber dari semua negeri lain, sebagaimana dijelaskan pada awal kajian ini. Selain itu, kata ‘ibu’ memberi Makkah keunggulan di atas semua kota lain.

      Makkah atau Greenwich

      Berdasarkan pertimbangan yang seksama bahwa Makkah berada tengah-tengah bumi sebagaimana yang dikuatkan oleh studi-studi dan gambar-gambar geologi yang dihasilkan satelit, maka benar-benar diyakini bahwa Kota Suci Makkah, bukan Greenwich, yang seharusnya dijadikan rujukan waktu dunia. Hal ini akan mengakhiri kontroversi lama yang dimulai empat dekade yang lalu.

      Ada banyak argumentasi ilmiah untuk membuktikan bahwa Makkah merupakan wilayah nol bujur sangkar yang melalui kota suci tersebut, dan ia tidak melewati Greenwich di Inggris. GMT dipaksakan pada dunia ketika mayoritas negeri di dunia berada di bawah jajahan Inggris. Jika waktu Makkah yang diterapkan, maka mudah bagi setiap orang untuk mengetahui waktu shalat.
      Makkah adalah Pusat dari lapisan-lapisan langit

      Ada beberapa ayat dan hadits nabawi yang menyiratkan fakta ini. Allah berfirman, ‘Hai golongan jin dan manusia, jika kamu sanggup menembus (melintasi) penjuru langit dan bumi, maka lintasilah, kamu tidak dapat menembusnya melainkan dengan kekuatan.’ (ar-Rahman:33)

      Kata aqthar adalah bentuk jamak dari kata ‘qutr’ yang berarti diameter, dan ia mengacu pada langit dan bumi yang mempunyai banyak diameter.

      Dari ayat ini dan dari beberapa hadits dapat dipahami bahwa diameter lapisan-lapisan langit itu di atas diameter bumi (tujuh lempengan bumi). Jika Makkah berada di tengah-tengah bumi, maka itu berarti bahwa Makkah juga berada di tengah-tengah lapisan-lapisan langit.

      Selain itu ada hadits yang mengatakan bahwa Masjidil Haram di Makkah, tempat Ka‘bah berada itu ada di tengah-tengah tujuh lapisan langit dan tujuh bumi (maksudnya tujuh lapisan pembentuk bumi)

      my facebook

      add my facebook