Monday, May 9, 2016

Mari mengenal Android studio, IDE untuk aplikasi android

Mari mengenal Android studio, IDE untuk aplikasi android

Pengenalan tampilan dan fitur Android Studio, jika diibaratkan Tak kenal maka tak sayang, Jika Tak Sayang maka anda akan meninggalkan nya. Hal ini sebagai kebutuhan bagi pengguna baru Android Studio, apalagi yang baru Migrasi dari IDE Eclipse ke Android Studio. Akan tampak beda antara IDE Eclipse dan Android Studio, bahkan ada yang Mahir di Eclipse akan susah di Android Studio. Sedikit akan kita bahas tentang pengenalan penggunaan IDE Android Studio. Pembahasan masih saya gunakan Android Studio versi Linux.
Berikut Video nya :
Didalam penggunaan Android Studio ini, Untuk melakukan Update secara berkala bisa dilakukan tanpa harus memperbarui proyek Android Anda. Untuk memeriksa secara manual mengenai update ini, pilih Help > Check for update (pada Mac, pilih Android Studio > Check for update).
Berikut adalah tampilan utama ketika kita membuat project di Android Studio. Contoh ini ketika saya telah membuat sebuah project. Mengenai cara buat Project di Android Studio materi selenjutnya akan kita bahas.

Design Layout

Layout Android Studio
Layout Android Studio
  • Bagian sebelah kanan merupakan struktur Project yang telah kita buatkan
  • Bagian tengah, merupakan source code XML dengan mengaktifkan mode TEXT. mengetikkan code dimudahkan dengan fasilitas Auto Complet dengan cara mengetikkan code awal dan akan muncul pilihan nya.
  • Bagian sebelah kiri merupakan preview langsung berdasarkan kode XML yang kita tuliskan
  • Bagian bawah, untuk melihat source error, trouble (logCat) ketika Project di Jalankan (run)
ketika mode Design diaktifkan, tampilan akan menjadi seperti berikut :
Struktur Android STudio
Tampilan Mode Design
  • Mode Design akan menampilkan tools yang bisa kita gunakan secara Drag and Drop secara langsung ke layout aplikasi (ex. TextView, Button, dan semua widget)
  • Tampilan disamping merupakan bagian Properties untuk setting setiap widget.
Mode Design ini akan memudahkan para pengembang yang belum memahami desain layout aplikasi menggunakan kode XML. mode ini hanya dengan Drag and Drop saja.

Struktur Folder Project

Struktur folder project akan muncul ketika kita telah membuat sebuah project. Agak berbeda dengan struktur menggunakan IDE Eclipse. Berikut tampilan nya :
Struktur Project
Struktur Project

Penjelasan Struktur Project

Terdapat folder app, gradle dan file – file yang ada di root folder. Folder app/ adalah folder utama pada aplikasi android, didalamnya terdapat Folder manifest, Java dan res.
  • Folder manifest terdapat file Android Manifest.xml yang penjelasan nya akan kita bahas di materi berikutnya.
  • Folder Java terdapat file-file bahasa java yang terkelompokkan dalam beberapa Package.
  • Folder res terdapat drawable, layout, menu yang kesemua ini tujuan untuk menyimpan Gambar (drawable) desain tampilan file XML (layout) dan hal-hal lain yang berhubungan dengan tampilan aplikasi.

Gradle

Perbedaan Android Studio dan IDE eclipse salah satu nya adalah gradle, sebuah featured build automation. Eclipse tidak ada fitur ini. Selengkapnya dapat lihat di situs berikut ini http://www.gradle.org/. File Gradle berisi library yang digunakan, versi aplikasi, signed key properties, lokasi repository dll. File yang akan sering kita ubah adalah file build.gradle(module: app). Jika di Eclipse kita mengenal nya pada saat penambahan sebuah Library yang tipe .jar. namun penambahan library di Android Studio hanya dengan memanggil nya di Gradle bagian dependecies, contoh penambahan Script ini untuk menampilkan peta Google Maps pada aplikasi :
1
2
3
4
5
6
7
<pre>dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //compile files('libs/org.apache.http.legacy.jar')
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.google.android.gms:play-services:7.8.0' 
    compile 'com.google.android.gms:play-services-maps:7.8.0'}</pre>
Struktur Android Studio
Tampilan Gradle
File ini berisi pengaturan untuk versi sdk yang di compile, package name app, build version yang digunakan, SDK Minimum yang digunakan, versioncode, versionname dan dependencies yang digunakan dalam aplikasi yang digunakan. Jika ada perubahan pada file ini, Android Studio akan mem Build secara langsung walaupun agak lama.

File Java

Pembuatan project Android jenis nya Native karena menggunakan bahasa pemrograman Java. berikut tampilan ketika mau mengubah atau menambahkan script Java.
Struktur Android Studio
Bahasa Java Android Studio
Bahasa Java terletak di Folder java, double Click file yang mau dibuka, kemudian halaman tengah akan muncul script Java yang bisa kita ubah dan sesuaikan dengan aplikasi yang kita buat.

Kesimpulan Pengenalan Tampilan dan Fitur Android Studio

  • Untuk bisa membuat project aplikasi menggunakan Android Studio, terlebih dahulu kita harus memahami tampilan dan fitur-fitur yang disediakan untuk kemudahan pengembangan
  • Tampilan IDE Android Studio berbeda dengan IDE Eclipse, makanya ada yang baru migrasi awal terkadang akan sedikit kesulitan.
Mengenal github, software VCS

Mengenal github, software VCS

Github Social Coding 

      Saya yakin, beberapa dari anda (atau mungkin kebanyakan) lebih mengenal github daripada Git. Ingat ya, Github dan Git adalah 2 hal yang berbeda. Jangan disamakan. Mereka hanya memiliki “hubungan khusus”.
Github, adalah penyedia Git Server untuk umum, dimana repositori project orang-orang tersimpan. Membuat repositori di Github gratis, namun terbatas hanya 1 repositori. Jika ingin lebih, maka harus beli paket berbayarnya.
     Github membantu para programmer untuk berkolaborasi pada berbagai project, terutama project opensource. Nah, Kolaborasi ini menggunakan software Git, lalu di upload (push) ke Github. Jadi, Github itu semacam tempat di mana para pengguna Git menyimpan repositori dan berkolaborasi dengan repositori orang lain.
     Github juga sangat berperan dalam mempopulerkan Git. Karena itulah mereka memiliki “hubungan khusus”.
     Karena Git merupakan repositori umum dan bisa gratis, maka tidak heran jika ada banyak sekali project opensource yang tersedia. Keterbukaan inilah yang menjadikan Github tidak hanya sekedar repositori, tetapi juga resource yang berharga untuk para programmer karena banyaknya produk opensource.
Kurang lebih itulah yang saya pahami mengenai kedua hal tersebut. Maklum saya juga belum lama ini baru belajar, heheh. Jika ingin lebih dalam, tentunya harus dipraktekkan.

Pengenal responsive design di pemrograman web

Sekarang banyak orang melakukan aktivitas online melalui device SmartPhone, seperti update status, upload gambar, dan tidak terkecuali mengakses sebuah website. Dengan keadaan yang seperti ini, mau tidak mau kita sebagai pemilik website harus memiliki website yang bisa diakses melalui device SmartPhone tersebut. Bagi yang menggunakan CMS seperti WordPress mungkin sudah tersedia pluginnya, tapi bagaimana dengan yang membuatnya dari awal atau nol atau menggunakan CMS yang belum tersedia plugin mobile tersebut? Tentunya harus membuat ulang websitenya dalam bentuk mobile bukan. Lalu bagaimana solusinya? Nah dengan hadirnya teknologi Responsive ini, kita hanya perlu menggunakan satu design saja untuk berbagai device yang ada. Ini adalah cara terbaik jika kita malas untuk mendevelop ulang website kita agar sesuai dengan mobile device.

APAKAH ITU RESPONSIVE DESIGN? 
Responsive Web Design adalah sebuah teknik yang digunakan untuk membuat layout website menyesuaikan diri dengan tampilan device pengunjung, baik ukuran maupun orientasinya. Jadi tampilan yang berada di desktop komputer dengan tampilan yang diakses melalu SmartPhone misalnya, itu akan berbeda tampilannya. Responsive Web Design Untuk mengetes tampilan yang menggunakan teknik Responsive tersebut tidak harus mengaksesnya melalui mobile device ataupun device lainnya, namun cukup dengan meminimize browser saja ke dalam ukuran mobile device yang diinginkan, kita sudah dapat melihat tampilan website kita pada layar mobile device.


KELEBIHAN DAN KEKURANGAN
Teknik ini sudah mulai banyak digunakan dikalangan web desainer luar maupun lokal dan memiliki beberapa keuntungan, salah satunya adalah penghematan penggunaan sub domain, yang tadinya kalau mengakses harus menggunakan kata “mobile” atau “m” didepan domainnya, sekarang cukup dengan mengetik nama domainnya saja dan tampilan akan menyesuaikan dengan device yang digunakan. Keuntungan yang paling utama tentu saja dapat mengurangi jumlah development menjadi satu saja untuk dipakai semua devices. Lalu kelemahan dari teknik ini adalah jika digunakan pada website yang bertujuan untuk menampilkan gambar saja, seperti website fotografi misalnya. Resource gambar yang diload oleh device kita akan sama dengan yang diload dikomputer kita. Untuk itu kita perlu memperhatikan apakah website yang kita buat cocok untuk dipakaikan teknik Responsive ini.


BAGAIMANA CARA MENGGUNAKANNYA?
 
 Teknik ini sama saja dengan kita membuat design dengan HTML dan CSS. Namun setelah selesai membuat tampilan untuk desktop, kita harus buat satu file CSS untuk device lainnya. Untuk file CSS yang kedua, pembuatannya akan sedikit berbeda dengan CSS yang pertama, karena adanya trik khusus yaitu Media Queries Boilerplate, yang digunakan untuk mendeteksi layar device. Berikut kode yang digunakan untuk mendeteksi layar device yang digunakan:

*Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-width : 320px)
and (max-width : 480px)
{ /* Styles */ }
/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px)
{ /* Styles */ }
/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px)
{ /* Styles */ }
/* iPads (portrait and landscape) ----------- */
@media only screen
and (min-width : 768px)
and (max-width : 1024px)
{ /* Styles */ }
/* iPads (landscape) ----------- */
@media only screen
and (min-width : 768px)
and (max-width : 1024px)
and (orientation : landscape)
{ /* Styles */ }
/* iPads (portrait) ----------- */
@media only screen
and (min-width : 768px)
and (max-width : 1024px)
and (orientation : portrait)
{ /* Styles */ }
/* Desktops and laptops ----------- */
@media only screen
and (min-width : 1224px)
{ /* Styles */ }
/* Large screens ----------- */
@media only screen
and (min-width : 1824px)
{ /* Styles */ }
/* iPhone 4 ----------- */
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5)
{ /* Styles */ }

Nah, tinggal disesuaikan saja dengan kebutuhan kita bukan, ingin membuat di layar dengan ukuran yang mana. Lalu bagaimana implementasinya kedalam design kita?


KESIMPULAN

Teknik Responsive memang bagus digunakan untuk optimasi layout sebuah website. Namun penggunaanya pun harus disesuaikan dengan tipe websitenya sendiri, apakah akan “cocok” bila digunakan teknik ini pada website tersebut. Untuk website yang bertujuan hanya untuk menampilkan gambar seperti website fotografi, lebih baik membuat versi mobile-nya saja, agar tidak memakan resource yang terlalu banyak. Demikian tutorial singkat mengenai Responsive Web Design, semoga bermanfaat.

Saturday, May 7, 2016

Pengenalan struktur bootstrap



Bootstrap adalah framework ataupun tools untuk membuat aplikasi web ataupun website yang bersifat responsive secara cepat, mudah dan gratis.
Responsive disini berarti bahwa tampilan web (lebar dan susunan isinya) dapat berubah secara otomatis sesuai dengan lebar layar yang menampilkannya.
Bootstrap dapat didownload dengan gratis dari website resminya dengan alamat getbootstrap.com atau juga bisa lewat github.
Pada saat di download, bootstrap masih dalam 1 paket zip. Untuk bisa menggunakannya, harus di ekstrak/di unzip terlebih dahulu. Setelah di ekstrak, maka akan didapatkan 3 buah folder antara lain css, fonts, dan js.
Pada folder css terdapat enam file, yaitu :
  • bootstrap.css, file css yang biasanya digunakan untuk development, karena disusun sedemikian rupa agar mudah dibaca dan terdapat banyak comment.
  • bootstrap.css.map, file css yang dihasilkan oleh CSS Preprocessor, seperti Sass, Less, atau Stylus.
  • bootsrap.min.css, file css yang biasanya digunakan dalam production, karena sudah di kompresi agar ukuran filenya lebih kecil.
  • bootstrap-theme.css, file css tambahan terhadap file bootstrap.css, fungsi file ini memperkaya dan memperindah tampilan beberapa komponen bootstrap seperti button, thumbnail, dropdown, navbar, dan sebagainya. Karena sifatnya tambahan, file ini boleh saja tidak kita gunakan.
  • bootstrap-theme.css.map, file ini sama seperti bootstrap.css.map adalah file css yang dihasilkan oleh CSS Preprocessor. Fungsinya agar dapat di edit menggunakan development tool yang ada pada browser Firefox dan Chrome.
  • bootstrap-theme.min.css, versi mini (compressed) dari file boostrap-theme.css digunakan pada saat production.
Pada folder fonts terdiri dari lima file, biasa disebut dengan glyphicons yang berisi 263 icon.
Pada folder js (javascript) terdiri dari tiga file, yaitu bootstrap.js dan versi mininya yaitu bootstrap.min.js dan file npm.js
File bootstrap.js berisi fungsi-fungsi javascript yang langsung dapat digunakan (plug-in) untuk membuat tampilan komponen bootstrap lebih interaktif.
Adapun file npm.js hanya digunakan apabila kita menggunakan bootstrap bersama dengan node.js
Pengenalan java

Pengenalan java

     Dalam Java ada 2 jenis program berbeda, yaitu aplikasi dan applet. Keduanya merupakan bagian dari execute, dimana execute merupakan salah satu fase kelima dalam siklus program Java. Aplikasi adalah program yang biasanya disimpan dan di eksekusi dari komputer lokal. Applet adalah program yang biasanya disimpan pada komputer yang jauh,yang dikoneksikan pemakai lewat web browser. Komputer jauh menjalakan web server yang memberi layanan terhadap permintaan web browser.
    Kebanyakan bahasa pemrograman modern berdiri di atas pustaka-pustaka kelas yang telah ada untuk mendukung fungsionalitas bahasanya. Pada bahasa Java, kelompok-kelompok kelas yang berkaitan erat dimasukkan dalam satu paket, bervariasi sesuai edisi Java.
     Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkungan: Internet, intranets, consumer electronic products, dan computer applications. Untuk beragam aplikasi yang dibuat dengan bahasa Java, Java dipaketkan dalam edisi-edisi berikut:
  • Java 2 Standar Edition (J2SE), J2SE menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman, dan cross-platform. Edisi ini mendukung konektivitas basis data, rancangan user interface, masukkan/ keluaran (input/ output), dan pemrograman jaringan (network programming), dan termasuk sebagai paket-paket dasar bahasa Java.
  • Java 2 Enterpise Edition (J2EE), J2EE menyediakan tempat untuk membangun dan menjalankan multitier enterprise editions. J2EE berisi paket-paket di J2SE ditambah paket-paket untuk mendukung pengembangan Enterprise JavaBeans, Java Servlets, JavaServer Pages, XML, dan kendali transaksi yang fleksibel.
  • Java 2 Micro Edition (J2ME), J2ME selain menyedikan bahasa Java yang sama, unggul dalam portabilitas (kemampuan dapat dijalankan dimanapun), safe network delivery, seperti J2SE dan J2EE. Aplikasi-aplikasi dapat diskalakan (dimampukan) agar dapat bekerja dengan J2SE dan J2EE. J2ME adalah untuk beragam consumer electronic product, seperti pager, smart card, cell phone, handheld PDA, dan set-top box.
     Ada 3 kombinasi kunci yang membuat Java menjadi teknologi yang secara fundamental berbeda dari yang lain, yang ada saat ini. Pertama, semua orang dapat menggunakan applet yang kecil, aman, dinamik, lintas-platform, aktif, dan siap dijalankan di jaringan sejak awal. Kedua, Java adalah bahasa pemrograman yang ampuh, memiliki kekuatan desain berorientasi objek dengan sintaks yang sederhana dan mudah dikenal. Ketiga, Java adalah kumpulan class object yang ampuh, yang melayani programmer dengan uraian yang jelas untuk banyak fungsi sistem umum, seperti pembuatan window, penggunaan jaringan, dan input/ output.

Beberapa Fitur Penting Dalam Bahasa Java

  • Bahasa Sederhana
    • Explicit pointer manipulation
    • Implicit type casting
    • Structures atau union
    • Operator overloading
    • Templates
    • Header files
    • Multiple inheritance
  • Java dirancang untuk mudah dipelajari dan digunakan dengan secara efektif. Java tidak mendukung fitur-fitur rumit seperti:
    Rancangan bahasa Java telah berdasar teknologi yang telah terbukti dan dikembangkan di bahasa-bahasa pemrograman lainnya.
  • Bahasa berororientasi objek
  •     Java bukan turunan langsung dari bahasa pemrograman manapun, juga sama sekali tidak kompatibel dengan semuanya. Model objek Java adalah sederhana dan mudah dikembangkan, namun sejalan dengan itu, nilangan dan tipe data sederhana lain dianggap sebagai non-objek berkinerja tinggi.
       OOP (object oriented programming) adalah cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program komputer sebagai sekelompok objek yang saling berinteraksi. Objek-objek ini ada secara secara independent yang mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerinthakan objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu.
  • Bahasa statically typed
  •      Semua objek dideklarasikan terlebih dahulu sebelum digunakan. Melalui fitur ini kode program lebih dapat dioptmasi untuk menghasilkan program berkinerja tinggi.
  • Bahasa dikompilasi
  •      Sebelum menjalankan program di bahasa Java, program dikompilasi menggunakan Java Compiler. Kompilais akan menghasilkan file “bytecode” yang serupa fungsinya dengan file kode mesin. Program “bytecode” yang dihasilkan dapat di eksekusi di sembarang Java Interpreter. Java Interpreter membaca file “bytecode” dan menterjemahkan perintah “bytecode” menjadi perintah-perintah bahasa mesin yang dapat di eksekusi mesin.
  • Bahasa yang aman
    1. Bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java
    2. Class loader menangani pemuatan kelas Java ke runtime interpreter.
    3. Manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing.
    1. Bahasa dirancang untuk mempersulit eksekusi kode perusak
    2. Program Java dikompilasi menajdi serangkaian bytecode.
    3. Java mempunyai pengamanan terhadap applet.
  • Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari Untrusted Java Code.
    Selain itu Java menyediakan beragam teknik pengaman, yaitu:
  • Bahasa indpenden terhadap platform
  •      Platform independence merupakan kemampuan program bekerja di sistem operasi atau sistem komputer berbeda. Bahasa Java adalah bahasa yang secara sempurna tidak bergantung platform.
  • Bahasa multithreading
  •      Thread adalah menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kakas untuk menulis program multithread, program mempunyai lebih dari 1 thread eksekusi pada saat yang sama sehingga memungkinkan program menagani beberapa tugas secara konkuren.
  • Bahasa yang didukung garbage collector
  •       Artinya, program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkanalokasi dinamis.
  • Bahasa yang tegar
  •    Java interpreter memeriksa semua akses sistem yang dilakukan. Program java tidak dapat menyebabkan crash terhadap sistem. Java mempunyai mekanisme exception handling yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar.

Alasan mengapa kita harus belajar pemrograman

Alasan Mengapa Kita Harus Belajar Pemrograman

    
    Di masa yang lalu secara luas banyak yang percaya bahwa untuk memasuki zaman komputer hampir semua orang harus belajar bagaimana cara memprogram. Tetapi anggapan tersebut tidak dapat dibenarkan, karena dimasa sekarang komputer sudah memiliki perangkat lunak yang mudah digunakan dan tidak memerlukan keahlian dalam pemrograman.
     Alasan lain untuk belajar pemrograman mungkin untuk berkarir sebagai ilmuwan komputer. Bagaimanapun juga, walaupun pemrograman adalah satu perlengkapan utamanya (primary tools), ilmu komputer adalah disiplin ilmu yang luas dan bermacam-macam, dimana meliputi dari persoalan engineering, seperti desain processor, persoalan yang berhubungan dengan matematik, dan performance analysis. Banyak ilmuwan komputer yang mengerjakan sedikit atau tidak sama sekali sebagai bagian dari hari kerja mereka. Jika Anda merencanakan untuk mengambil ilmu komputer sebagai yang utama ataupun tambahan, tentu saja Anda akan belajar pemrograman, tetapi untuk berkarir dibidang komputasi tersedia bagi programmer maupun nonprogrammer.
     Dan terakhir alasan terbaik kenapa untuk belajar pemrograman adalah kreativitasnya dan kegiatan pemecahan masalah yang menyenangkan. Salah satu pikiran terbaik tentang pemrograman adalah Anda melihat dengan sebenarnya dan merasakan pengalaman dalam menjalankan program dari solusi yang Anda buat. Mendesain dan membangun program yang dibuat dengan baik akan menyediakan pengertian yang kuat dalam penyelesaian dan kepuasan.
    Jadi bagi Anda yang tertarik dengan dunia pemrograman, mulailah dari sekarang untuk belajar pemrograman, dan cobalah untuk menyelesaikan suatu permasalahan lalu diimplementasikan ke dalam program.

Friday, May 6, 2016

Langkah membuat program yang baik

Langkah membuat program yang baik

     Dalam membuat program, pemrograman adalah pokok dari proses pembuatan program itu sendiri namun pemrograman bergantung dari pemahaman persoalan, analisis sistem, perencanaan-perencanaan  dalam mendesain program itu sendiri.
     Selain pemrograman hal yang utama harus dilakukan adalah merencanakan langkah-langkah yang harus diambil dalam menyelesaikan masalah. Karena dengan mengetahui masalah dan langkah-langkah penyelesaikan berarti kita sudah menyelesaikan program tersebut sebanyak 50% dari total pekerjaan, selanjutnya adalah teknis pembuatan itu sendiri yang di kenal dengan pemrograman/koding.Sebaliknya jika kita tidak bisa mengetahui masalah dan belum bisa membuat perencanaan berarti kita sudah merencanakan kegalan itu sendiri.
       Dalam membuat sebuah program setidaknya ada beberapa hal yang perlu anda lakukan:
  1. Mendefinisikan Masalah/Defining the problem
          Masalah/Probem disini adalah kompenan apa saja yang diperlukan agar program ini jalan dikenal dengan masukan/inputnya apa saja, mendefinisikan apa yang nanti akan dilakukan oleh program dan bagaimana keluaran dari program yang kita harapkan nantinya. Pada tahap ini juga dikenal requirement analisis atau analisa kebutuhan.
  2. Perencanaan/Planning/Desain sistem
          Pada tahap ini adalah medefinisikan langkah-langkah apa saja yang dilakukan oleh program dalam menyelesaikan permasalahan yang ada. Bentuk dari perencanaan itu bisa berupa flowchart ataupun algoritma dari program, sehingga kita akan tahu proses apa saja yang ada dalam program tersebut. semakin detail flowchart  atau algoritma yang dibuat semakin mudah juga pada tahap implementasi/coding nantinya.
        Flowchart adalah suatu diagram menggunakan simbol-simbol khusus yang sudah menjadi standard internasional yang berisi langkah-langkah untuk menyelesaikan suatu masalah. sedangkan algoritma kbukan merupakan simbol tapi keterangan-keterangan yang sesuai dengan  keinginan kita, tidak ada standarnya. Oleh karena itu flowchart biasa juga disebut sebagai algoritma dalam bentuk simbol-simbol khusus yang dihubungkan dengan anak panah.
         Membuat flowchart terlebih dahulu akan lebih menghemat waktu daripada langsung melakukan coding sambil mencoba-coba. Kegiatan mencoba-coba akan menghabiskan waktu ketika implementasi/koding karena harus merubah koding yang lumayan banyak. Karena itu, biasakan membuat flowchart terlebih dahulu sebelum memecahkan suatu masalah.
  3. Implementasi/Koding/Programming
          Kini saatnya anda menulis program, tahap ini juga mencakup tahap perbaikan error dan testing. Menulis program dengan terstruktur dan sesuai dengan flowchart yang telah kita buat.
  4. Dokumentasi/Documentation
         
    Setelah tahap coding selesai, sangat disarankan bagi anda untuk membuat semacam dokumentasi. Tambahkan komentar-komentar pada program anda dan “bukukan” program yang akan anda buat. Hal ini akan bermanfaat jika anda sudah membuat program yang begitu banyak, dan suatu ketika nanti (mungkin bertahun-tahun kemudian) anda ingin mengambil sebagian dari code program anda yang lama untuk disisipkan pada program anda yang baru. Bayangkan jika anda tidak membuat dokumentasi, waktu anda akan sangat terbuang dengan menelusuri program-program lama anda satu-persatu.
  5. Testing
    • Unit Testing
      Menguji setiap unit dan modul yang terdapat dalam program tersebut
    • Integration Testing
      Menguji integrasi yang dilakukan kepada program seperti halnya ketika program tersebut sudah diinstall di client kita yang membutuhkan integrasi dengan sisitem yang lain seperti halnya integrasi dengan database.
    • Validation Testing
      menguji masukan yang diberikan kepada program. apapun masukannya program harus bisa menyelesaikan dengan baik.
    • Sistem Testing
      Pada tahap ini menguji permorfa dari program, apabila program dijalankan dengan kondisi-kondisi tertentu bagaimana?
  6. Operasional dan Maintenance
          Pada tahap ini sebenarnya bagaimana program yang telah kita buat dan testing ini bekerja sebagaimana mestinya, update program, menyeselaikan bug yang tidak ditemukan pada saat testing, serta pengembangan yang dapat dilakukan dengan program tersebut.

Sumber : wa2n.staff.uns.ac.id
Mengenal algroitma dalam pemrograman

Mengenal algroitma dalam 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 disebut pemrogram (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 simulasi seperti 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 atau compiler) 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 pseudocode. Pseudocode 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. Disamping 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 :
L = p . l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.
Keterangan :
  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

Sumber : andikafisma blog