Saturday, March 4, 2017

Prinsip dan Tujuan Pemrograman Terstruktur

Ide Pemrograman Terstruktur pertama kali diungkapkan oleh Prof. Edsger Wybe Djikstra dari Universitas Eindhoven sekitar tahun 1965. Beliau mengusulkan bahwa pernyataan GOTO seharusnya tidak digunakan dalam pemrograman terstruktur.

Ide tersebut ditanggapi oleh HD. Millis bahwa pemrograman terstruktur tidak hanya dihubungkan dengan tidak digunakannya pernyataan GOTO, tetapi oleh strukturnya. Struktur programlah yang menentukan program yang terstruktur menggunakan pernyataan GOTO atau tidak.

Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.

Prinsip : jika suatu proses telah sampai pada suatu titik tertentu, maka proses selanjutnya tidak boleh melompat ke baris sebelumnya kecuali untuk proses berulang.

Tujuan :
1.    Meningkatkan kehandalah program
2.    Program mudah dibaca dan ditelusuri
3.    Menyederhanakan kerumitan program
4.    Pemeliharaan program
5.    Meningkatkan prduktivitas pemrograman

Ciri-ciri :
1.    Mengandung teknik pemecahan yang tepat dan benar
2.    Mengandung algoritma pemecahan masalah yang sederhana, standar dan efektif
3.    Penulisan program memiliki struktur logika yang benar dan mudah dipahami
4.    Program hanya terdiri dari tiga struktur dasar yaitu struktur berurutan, struktur seleksi dan struktur perulangan
5.    Menghindar penggunaan pernyataan GOTO
6.    Biaya pengujian yang dibutuhkan rendah
7.    Memiliki dokumentasi yang baik
8.    Biaya perawatan dan dokumentasi yang dibutuhkan rendah

STANDAR PROGRAM
Suatu program yang baik dibutuhkan suatu standar  sehingga akan memudahkan pemrogram dalam merancang dan merawat program, yaitu ;
1.    Pemecahan Masalah, terdiri dari :
a.    Teknik TOP-DOWN
Suatu masalah yang besar atau komplek akan dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil dan dianalisa sehingga apabila masih memungkinkan untuk dibagi lagi akan dijadikan subbagian lalu disusun langkah-langkah untuk menyelesaikan masalah secara detail
b.     Teknik BOTTOM-UP
Pemecahan masalah dilakukan dengan menggabungkan prosedur-prosedur yang menjadi suatu kesatuan program guna menyelesaikan masalah tersebut

2.    Penyusunan Program, kriteria yang harus diperhatikan yaitu :
a.     Kebenaran Logika dan Penyusunan
Program yang disusun harus memiliki kebenaran logika dalam pemecahan masalah dan penulisan. Program harus memiliki ketepatan, ketelitian dan kebenaran sehingga hasilnya dapat dipercaya.
b.     Waktu Penulisan dan Eksekusi Program
Program harus menentukan batas waktu minimum dalam penulisan program, dari awal hingga siap dioperasikan. Yag harus diperhatikan adalah bahasa pemrograman yang dipilih, algoritma yang disusun dan perangkat keras yang digunakan.
c.     Perawatan dan Pengembangan Program
Penyusunan program harus mempunyai sifat dasar yaitu kesederhanaan dan kejelasan dari program yang nantinya akan dikembangkan.
d.     Portabilitas
Bahasa pemrograman yang baik haruslah bisa dipakai pada berbagai tipe komputer yang berbeda-beda dan berbagai jenis sistem operasi

3.    Algoritma Pemrograman yang baik, dengan ciri-ciri :
a.     Memiliki logika perhitungan atau metode yang tepat dalam memecahkan masalah
b.     Menghasilkan output yang tepat dan benar dalam waktu yang singkat
c.     Ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga tidak memiliki arti ganda
d.     Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman
e.     Semua operasi yang dibutuhkan terdefinisi dengan jelas
f.      Semua proses harus selalu berakhir setelah sejumlah langkah dilakukan

Untuk membuat suatu program yang besar dan kompleks, pemrogram membutuhkan beberapa tahapan-tahapan yang sistematis dan terpadu, yaitu :
1.    Definisi Masalah
2.    Analisis Kebutuhan
3.    Desain Algoritma
4.    Pengkodean
5.    Bahasa Pemrograman
6.    Testing dan Debugging
7.    Dokumentasi
8.    Pemeliharaan

Keterangan :
1.     Definisi Masalah
Pendefinisian masalah untuk mendapatkan pemahaman tentang permasalahan yang ada, sehingga akan diperoleh asumsi yang benar untuk memecahkan masalah dan menentukan batasan agar masalah menjadi tak terbatas.

2.     Analisis Kebutuhan
Digunakan untuk menentukan spesifikasi fungsi, kemampuan dan fasilitas program dari program yang akan dibuat, yang bermanfaat sebagai dasar dari evaluasi setelah pembuatan program selesai.

3.     Desain Algoritma
Desain algoritma dibuat dengan tujuan untuk menyelesaikan permasalahan. Algoritma yang dibuat tidak langsung jadi dan harus dikaji terus menerus sehingga diperoleh algoritma yang paling lengkap, tepat, benar dan relevan. Algoritma harus memiliki kebenaran secara logika sebelum siap untuk diimplementasikan dalam bentuk program

4.     Pengkodean
Pengkodean menekan pada kesederhanaan dan kejelasan, meliputi :
a.    Dokumentasi Kode
b.    Deklarasi Data
c.    Penyusunan Perintah
d.    Input atau Output
e.    Efisiensi

5.     Bahasa pemrograman
      Dalam menterjemahkan desain ke dalam bahasa pemrograman aktual, sebagian besar kesulitan telah harus sudah terpecahkan pada tahap sebelumnya sehingga pemrogram bebas untuk mencurahkan perhatian penuh pada pembuatan program.

Karakteristik dari bahasa pemrograman mempunyai pengaruh yang penting terhadap berhasil tidaknya suatu program yang akan di buat. Tahap selanjutnya adalah pemilihan bahasa pemrograman yang berfungsi sebagai media untuk membuat program dan memahami serta sebagai alat komunikasi antara pemrogram dan komputer.

Kriteria yang digunakan untuk mengevaluasi pemilihannya adalah :
a.    Bidang aplikasi yang sedang dikerjakan
b.    Kekomplekskan algoritma dan perhitungan
c.    Lingkungan dimana perangkat lunak akan diterapkan
d.    Pengetahuan staf akan bahasa pemrograman
e.    Ketersediaan kompiler yang baik

6.     Testing dan Debugging
Testing adalah menguji program sampai dipenuhi  bebas error lewat bermacam-macam kondisi atau dengan input yang hasilnya dapat diprediksi. Testing tidak dapat secara absolut bisa yakin bahwa program adalah benar karena untuk program besar bisa jadi setelah dipakai sekian lama baru ditemukan error.

Debugging adalah mengoreksi error yang terdeteksi meliputi menetapkan lokasi kode yang error dan mengoreksinya.

7.     Dokumentasi
Merupakan informasi dan gambaran tambahan yang sangat membantu untuk memahami sebuah kode yang diberikan dengan tujuan untuk menjadi pedoman dan penjelasan bagi pemakai.

Dokumentasi terbagi menjadi :
a.    Dokumentasi internal, merupakan bagian kode dan merupakan sebuah eksplanasi dari berbagai aspek lewat komentar
b.    Dokumentasi eksternal, dalam bentuk manual dan catatan-catatan penting tentang program

Sebuah perangkat lunak yang akan digunakan diharapkan mempunyai jangka hidup yang panjang dan benar-benar memerlukan dokumentasi yang intensif jika perangkat lunak berubah maka dokumentasi juga harus direvisi agar dapat merefleksikan modifikasi yang dibuat.

8.     Pemeliharaan
Digunakan untuk menjabarkan aktivitas dan analisis sistem pada saat perangkat lunak telah dipergunakan oleh pemakai.

Aktivitas yang terjadi pada fase pemeliharaan antara lain :
a.    Penambahan atau peningkatan atau juga perbaikan untuk perangkat lunak
b.    Adaptasi perangkat lunak dengan lingkungan mesin yang baru
c.    Perbaikan permasalahan yang timbul, meliputi aktivitas pembenaran kesalahan yang timbul setelah perangkat lunak digunakan oleh pemakai.

Aktivitas pemeliharaan biasanya akan menghabiskan biaya yang besar dari seluruh anggaran pengembangan atau pembuatan perangkat lunak sehingga perangkat lunak yang dihasilkan dapat diandalkan dan mudah dalam pemeliharaannya.

Pemeliharaan perangkat lunak dapat dibedakan menjadi :
a.     Corrective Maintenance
Terjadi pada saat perangkat lunak dipakai dan hasil yang didapat oleh pemakai tidak sesuai, biasanya timbul pada saat keluaran yang tidak sesuai
b.     Adaptive Maintenance
Terjadi karena adanya perkembangan dari perangkat lunak atau perangkat keras sehingga memerlukan modifikasi dari perangkat lunak yang telah dibuat
c.     Prefective Maintenance
Terjadi pada saat perangkat lunak yang telah dibuat, dilakukan pengujian dan kemudian digunakan oleh pemakai lalu timbul permintaan tambahan fungsi sesuai dengan keinginan pemakai
d.     Preventive Maintenance
      Terjadi seiring dengan perkembangan dari perangkat lunak atau perangkat keras di masa mendatang, misalnya saja penambahan fungsi-fungsi atau melengkapi fungsi yang ada

Sistem Komputer

Sebuah sistem komputer terdiri dari :
- Hardware (Perangkat Keras)
- Software (Perangkat Lunak)
- Brainware

Sedangkan software dapat dikelompokkan menjadi :
- Operating System Software
- Programming Language Software
- Application Program Software

Bagian sistem komputer :


Definisi Program adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer. Sedangkan menurut P. Insap Santosa Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa  sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan

Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan 
bahasa  pemrograman yang digunakanMempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan. 

Bahasa Pemrograman adalah alat untuk membuat program. Contoh : C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll. Perbedaannya yaitu  pada cara memberikan instruksi, sedangkan persamaannya bertujuan menghasilkan output yang sama.

Paradigma Pemrograman : 
1.  Pemrograman Prosedural
     -  Berdasarkan urutan-urutan atau sekuensial.
     -  Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur 
         merupakan kumpulan instruksi yang dikerjakan secara berurutan.
     -  Harus mengingat prosedur mana yang sudah dipanggil dan apa saja yang sudah diubah

2.  Pemrograman Fungsional
     -  Berdasarkan teori fungsi matematika
     -  Fungsi merupakan dasar utama program.

3.  Pemrograman Terstruktur
      -  Secara berurutan dan terstrukrtur.
      -  Program dapat dibagai-bagi menjadi prosedur dan fungsi.
      -  Contoh: PASCAL dan C

4.  Pemrograman Modular
      -  Pemrograman ini membentuk banyak modul.
      -  Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
      -  Sebuah program dapat merupakan kumpulan modul-modul.
      -  Contoh: MODULA-2 atau ADA 

5.  Pemrograman Berorientasi Obyek
      -  Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki  data atau variabel
          atau property  dan method/event/prosedur yang dapat dimanipulasi
      -  Contoh: C++, Object Pascal, dan Java.

6.  Pemrograman Berorientasi Fungsi
      -  Pemrograman ini berfokus pada suatu fungsi tertentu saja.  Sangat tergantung 
          pada tujuan pembuatan bahasa pemrograman ini.
      -  Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.

7.  Pemrograman Deklaratif
      -  Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada
         memecahkan masalah dengan implementasi algoritma.
      -  Contoh: PROLOG 


Siklus Hidup Perangkat Lunak (Software)


Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman menempati posisi dibagian implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program). 

Tuesday, January 31, 2017

Algoritma

Algoritma adalah urutan-urutan logis penyelesaian masalah yang disusun secara sistematis. Ada lima ciri penting algoritma :
1. Selesai dalam jumlah langkah terbatas
2. Tidak memiliki arti ganda
3. Memiliki nol atau lebih input
4. Memiliki nol atau lebih output
5. Efektif

Proses, Instruksi dan Aksi
 - Algoritma merupakan deskripsi urutan pelaksanaan suatu proses.
 - Algoritma tersusun oleh sederatan langkah instruksi yang logis
 - Tiap langkah instruksi akan mengerjakan suatu Tindakan (aksi )
 - Bila aksi dilaksanakan, maka sejumlah operasi yang bersesuaian akan dikerjakan oleh 
   CPU.  

Struktur Dasar Algoritma
- Sequence ( Runtunan )
   Aksi - aksi dalam algoritma yang dikerjakan secara berurutan.
   Contoh :
   A1. Aksi 1
   A2. Aksi 2
   A3. Aksi 3
   
   Keterangan : - Mula-mula aksi 1 dilakukan
                          - Aksi 2 dilakukan setelah aksi 1 selesai dilaksanakan
                          - dst

 - Selection ( Pemilihan )
   Aksi dikerjakan jika kondisi tertentu terpenuhi.
   Contoh :
   IF kondisi1 THEN
        Aksi1
   ELSE
   IF kondisi2 THEN
        Aksi2 
   ELSE
        Aksi3

   keterangan : Aksi 3 dilakukan jika kondisi1 dan kondisi2 tidak terpenuhi.

 - Repetation ( Pengulangan )
   Aksi yang dikerjakan berulang kali.
   Contoh :
   1. FOR pencacah pengulangan dari a sampai b DO
           Aksi

       Keterangan : aksi dilakukan sebanyak hitungan pencacah pengulangan yaitu dari a 
       sampai b yakni sebanyak b-a+1 kali.

   2. REPEAT
           Aksi
       Until kondisi

       Keterangan : pengulangan aksi dilakukan sehingga kondisi atau persyaratan berhenti 
       terpenuhi

   3. WHILE kondisi DO
           Aksi

        Keterangan : selama kondisi atau persyaratan pengulangan masih benar maka aksi 
        dikerjakan.

Aturan Penulisan Teks Algoritma
- Teks algoritma berisi langkah-langkah penyelesaian masalah.
- Tidak ada notasi baku tapi sebaiknya berkorespondensi dengan bahasa pemrograman 
   umum, supaya mudah ditranslasikan ke dalam bahasa pemrograman
- Notasi yang digunakan untuk menulis algoritma disebut notasi algoritmik

Struktur Teks Algoritma
- Kepala Algoritma 
  Terdiri dari nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut
- Deklarasi
  Mendefinisikan semua nama (konstanta, peubah, tipe, prosedur, fungsi) yang dipakai dalam  
  algoritma.

- Deskripsi  
  Berisi uraian langkah-langkah penyelesaian.

Demikian beberapa penjelasan mengenai Algoritma. Semoga bermanfaat amin