Minggu, 08 Oktober 2017

Belajar Bahasa Pemrograman Secara Otodidak


Apa kabar sobat ? di postingan sebelumnya kita telah membahas pemrograman web serta sejarahnya. Ok, di pembahasan kali ini kita akan membahas pemrograman dasar, biasanya kalau di jurusan RPL. pelajaran ini hanya bagi kelas 10 dan kelas 11 saja. kita bahas terlebih dahulu. Apa itu belajar memprogram ?

Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah tersebut kemudian menuangkannya dalam suatu notasi yang disepakati bersama.
lebih bersifat pemahaman persoalan, analisis, sintesis
Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks (tatabahasa), setiap instruksi yang ada dan tata cara pengoperasian kompilator atau interpreter bahasa yang bersangkutan pada mesin tertentu.  Jadi :
BELAJAR MEMPROGRAM””  TIDAK SAMA DENGAN  “BELAJAR BAHASA PEMROGRAMAN 
Algortima dan pemrograman Dasar 
Perangko dari Rusia pada Gambar di samping ini bergambar seorang pria dengan nama Muhammad bin Musa al-Khwarizmi. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini.

Dia adalah seorang ilmuwan Islam yang karya karyanya dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi dasar perkembangan ilmu modern. Dan dari namanya istilah yang akan kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi kemudian  berubah menjadi algorithm dalam Bahasa Inggris dan diterjemahkan menjadi algoritma dalam bahasa Indonesia.

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.

Struktur Algortima 
Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:
  1. Menyiapkan Peralatan Tulis 
  2. Menulis surat 
  3. Surat dimasukkan ke dalam amplop tertutup 
  4. Amplop ditempeli perangko secukupnya. 
  5. Pergi ke Kantor Pos terdekat untuk mengirimkannya 
Algoritma menghitung luas persegi panjang:
  1. Masukkan panjang (P) 
  2. Masukkan lebar (L) 
  3. Luas P * L 4. Tulis Luas
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: 
  1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. 
  2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik. 
  3. 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. 
  4. 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. Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. 
  5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. 
  6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman 
Perhatikan algoritma sederhana berikut :  
Algoritma menghitung luas segitiga  
  1. Start 
  2. Baca data alas dan tinggi. 
  3. Luas adalah alas kali tinggi kali 0.5 
  4. Tampilkan Luas  
  5. Stop
Penjelasan : 
Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali. Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi. 
Contoh : Algoritma Berangkat Sekolah
Mulai
          Bangun dari tempat tidur
          Mandi Pagi
          Sarapan Pagi
          Pergi Ke Sekolah
         Cari Ruang Kelas
         Masuk kelas untuk Belajar
Selesai  

Apa Bedanya Algoritma dan Program ?
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakanbahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.

Program = Algoritma + Bahasa (Struktur Data)

Penerjemah Bahasa Pemrograman 
Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan interpreter.

Compiler adalah suatu program yang menterjemahkan bahasa program (Source code) ke dalam bahasa obyek (object code) secara keseluruhan program.

Interpreter berbeda dengan Compiler, interpreter menganalisis dan mengeksekusi setiap baris dari program secara keseluruhan. Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan pada saat pembuatan program berskala besar.

Perbedaan Compiler dan interpreter. 

Compiler Interpreter
Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per instruksi
Bila terjadi kesalahan kompilasi maka source
program harus diperbaiki dan dikompilasi ulang
Bila terjadi kesalahan interprestasi dapat
Diperbaiki
Dihasilkan Object program Tidak dihasilkan
obyek program
Tidak dihasilkan obyek program
Dihasilkan Executable program Tidak dihasilkan Executable program
Proses pekerjaan program lebih cepat Proses pekerjaan program lebih lambat
Source program tidak dipergunakan hanya bila
untuk perbaikan saja
Source program terus digunakan
Keamanan dari program lebih terjamin Keamanan dari program Kurang terjamin

Jenis-Jenis Bahasa Pemrograman 
  • Bahasa Pemrograman Tingkat rendah (Bahasa mesin, Biner) 
  • Bahasa Pemrograman Tingkat tinggi   
Contoh-contoh Bahasa Pemrograman yang ada : 
1. Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C 
2. Fungsional : LOGO, APL, LISP 
3. Deklaratif : Prolog Object oriented murni: Smalltalk, Eifel, Java, PHP 

Cara penulisan algortima 
Ada tiga cara penulisan algoritma, yaitu : 
1. Structured English (SE) 
SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). 
SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak  
2. Pseudocode  
Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC,  FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan.
Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program
Contoh Pseudocode : 
  1. Start 
  2. READ alas, tinggi  
  3. Luas = 0.5 * alas * tinggi 
  4. PRINT Luas  
  5. Stop  
Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah.

Flowchart (Diagram Alir) 
Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika. 
Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk notasi-notasi tertentu.

Notasi Membuat algoritma sederhana untuk menyelesaikan permasalahan menggunakan bahasa natural, flowchart dan pseudocode



       Notasi ini disebut Data yang digunakan untuk  mewakili data input atau          output atau menyatakan operasi pemasukan data dan pencetakan hasil




 Notasi ini disebut Process yang digunakan untuk mewakili suatu proses.



Notasi ini disebut Decision yang digunakan untuk suatu pemilihan, penyeleksian kondisi di dalam suatu program




Notasi ini disebut Preparation yang digunakan untuk memberi nilai awal, nilai akhir, penambahan/pengurangan bagi suatu variabel counter.



Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, subprosedur,  fungsi)



Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, subprosedur,  fungsi)


Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, subprosedur,  fungsi)  



Contoh program Flowchart

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 / Beruntun : Digunakan untuk program yang pernyataannya sequential atau urutan. 
  2. Struktur Pemilihan / Percabangan : Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. 
  3. Struktur Perulangan : Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang. 
1. Struktur Algoritma Runtunan / Berurutan : 
Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan (sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan (looping). Sebuah algoritma biasanya akan menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah. 

Contoh bagan alir logika program berurutan (sequencing) 


1. Struktur Algoritma Percabangan  
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini seperti halnya ketika mobil/motor berada dalam persimpangan  

Contoh Struktur percabangan untuk masalah batasan umur. 


2. Struktur Algoritma Perulangan / Pengulangan 
Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang berkali.Salah satu contoh yang gampang kita jumpai adalah balapan mobil 

Struktur pengulangan terdiri dari dua bagian : 
  • Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false) 
  • Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang  
Bagan alir logika (flowchart) untuk mencetak pernyataan sebanyak 100 kali 

Bagan alir logika (Flowchart) untuk mencetak anggota suatu himpunan.   

Struktur pengulangan dengan For 
Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan. 

Struktur pengulangan dengan While 
Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban dari permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan struktur yang didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang berbeda.


EmoticonEmoticon