Jumat, 20 September 2013

PRAKTIKUM DASAR PEMROGRAMAN

Dasar Teori
a.      Dasar teori tentang algoritma dan pemograman
Dalam Mempelajari Teori Algoritma dan Pemrograman dalam matakuliah Algoritma dan Pemrograman, maka perlulah mahasiswa terlebih dahulu mengenal akan definisi-definisi masing-masing dari kata  ‘Algoritma’ serta ‘Pemrograman’.
Beberapa definisi Algoritma adalah  seperti berikut ini :
§  Pola pikir yang terstruktur yang berisi tahap-tahap penyelesaian masalah.
§  Urutan logis pengambilan keputusan untuk pemecahan masalah.
§  Urutan langkah berhingga untuk memecahkan masalah logika dan matematika
Sedangkan definisi dari Pemrograman yaitu Proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
Adapun ilustrasi proses pemrograman, terlihat dalam gambar 1.1. berikut ini :
Description: diagrAlirPemrograman
Gambar 1.1. Diagram alir Proses Pemrograman

Algoritma

Dalam matematika dan komputasi, algoritma atau algoritme [1] merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Description: http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/LampFlowchart_id.svg/220px-LampFlowchart_id.svg.png













b.      Karateristik algoritma

Karakteristik Algoritma

1.       Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
2.       Setiap langkah harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan bulat positif”
3.       Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan n.
4.       Algoritma mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
5.       Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.
























c.       Flowchart

Pengertian Flowchart dan Contoh Simbolnya


Description: Pengertian Flowchart dan Contoh Simbolnya

Pengertian dan Definisi Flowchart

Flowchart atau Bagan alir adalah bagan  (chart) yang menunjukkan alir  (flow) di dalam program atau prosedur sistem secara logika. Bagan alir (flowchart) digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi. 

Jenis jenis Flowchart

Ada beberapa jenis flowchart diantaranya:
  1. Bagan alir sistem (systems flowchart).
  2. Bagan alir dokumen (document flowchart).
  3. Bagan alir skematik (schematic flowchart).
  4. Bagan alir program (program flowchart).
  5. Bagan alir proses (process flowchart).

System Flowchart

System flowchart dapat didefinisikan sebagai bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urut-urutan dari prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem menunjukkan apa yang dikerjakan di sistem.

Document Flowchart

Bagan alir dokumen  (document flowchart)  atau disebut juga bagan alir formulir  (form  flowchart)  atau  paperwork flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.

Schematic Flowchart

Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam sistem. Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-simbol bagan alir sistem, juga menggunakan gambar-gambar komputer dan peralatan lainnya yang digunakan. Maksud penggunaan gambar-gambar ini adalah untuk memudahkan komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan alir. Penggunaan gambar-gambar  ini  memudahkan untuk dipahami, tetapi sulit dan lama menggambarnya.

Program Flowchart

Bagan alir program  (program flowchart)  merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program. Bagan alir program dibuat dari derivikasi bagan alir sistem.
Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika program  (program logic flowchart)  dan bagan alir program komputer terinci  (detailed computer program flowchart).  Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika. Bagan alat- logika program ini dipersiapkan oleh analis sistem. Gambar berikut menunjukkan bagan alir logika program. Bagan alir program komputer terinci  (detailed computer program flow-chart) digunakan untuk menggambarkan instruksi-instruksi program komputer secara terinci. Bagan alir ini dipersiapkan oleh pemrogram. 

Process Flowchart

Bagan alir proses  (process flowchart)  merupakan bagan alir yang banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk menggambarkan proses dalam suatu prosedur. 

Simbol dan Notasi Flowchart

Dipakai sebagai alat Bantu menggambarkan proses di dalam program. Dan dibagi menjadi tiga kelompok :

 Flow Direction Symbols 

dipakai untuk menggabungkan antara symbol yang satu dengan symbol lainnya

Description: Pengertian Flowchart dan Contoh Simbolnya Symbol Off-line Connector ( Simbol untuk keluar/masuk prosedure atau proses dalam lembar/halaman yang lain)
Description: Pengertian Flowchart dan Contoh SimbolnyaSymbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam   lembar/halaman yang sama)

♦ Processing symbols ♦

Menunjukkan jenis operasi pengolahan dalam suatu prosedur

Description: Pengertian Flowchart dan Contoh Simbolnya   Symbol Process (Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer)
Description: Pengertian Flowchart dan Contoh Simbolnya   Symbol Manual Operation (Simbol yang menunjukkan pengolahan yang tidak      dilakukan oleh komputer)

Description: Pengertian Flowchart dan Contoh Simbolnya   Symbol Decision (Simbol untuk kondisi yang akan menghasilkan beberapa   kemungkinan jawaban/aksi)
Description: Pengertian Flowchart dan Contoh SimbolnyaSymbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage)
Description: Pengertian Flowchart dan Contoh Simbolnya Symbol Terminal (Simbol untuk permulaan atau akhir dari suatu program)-
Description: Pengertian Flowchart dan Contoh SimbolnyaSymbol Off-line Storage (Simbol yang menunjukkan bahwa data di dalam symbol ini akan disimpan)
Description: Pengertian Flowchart dan Contoh Simbolnya  Symbol Manual Input (Simbol untuk pemasukan data secara manual on-line keyboard)
Description: Pengertian Flowchart dan Contoh Simbolnya Symbol Keying Operation (Simbol operasi dengan menggunakan mesin yang mempunyai keyboard)

 Input-output symbols ♦

menyatakan jenis peralatan yang digunakan sebagai media input atau output.
Description: Pengertian Flowchart dan Contoh SimbolnyaSymbol input-output (Symbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya)
Description: Pengertian Flowchart dan Contoh Simbolnya     Symbol magnetic-tape unit (Symbol yang menyatakan input berasal pita magnetic atau output disimpan ke pita magnetic)
Description: Pengertian Flowchart dan Contoh Simbolnya  Symbol punched card (Symbol yang menyatakan input berasal dari kartu atau output ditulis ke kartu)
Description: Pengertian Flowchart dan Contoh SimbolnyaSymbol disk and on-line storage (Symbol untuk menyatakan input berasal dari disk atau output disimpan ke disk)
Description: Pengertian Flowchart dan Contoh Simbolnya Symbol display (Symbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer, dan sebagainya)
Description: Pengertian Flowchart dan Contoh Simbolnya  Symbol dokumen (symbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas) 

Pedoman Membuat Flowchart

Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti: 
1.        Flowchart digambarkan dari halaman atas ke bawah dan dari kiri kekanan.
2.        Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
3.        Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4.        Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja
5.        Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6.        Lingkup dan range dari aktifitas yang sedang digambarkan harusditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
7.        Gunakan simbol-simbol flowchart yang standar.























d.    Pseudecode

Kode-palsu atau dalam bahasa inggris lebih dikenal sebagai pseudo-code merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Kode palsu biasanya tidak menggunakan elemen detail yang tidak diperlukan untuk kebutuhan pemahaman manusia atas suatu algoritma, seperti deklarasi variabel, kode ataupun subrutin untuk sistem yang bersifat spesifik. Bahasa pemrograman yang digunakan lebih diperbanyak dengan deskripsi dalam bahasa natural atas sesuatu hal yang bersifat detail, atau dengan menggunakan notasi matematis. Tujuan dari penggunaan kode-palsu adalah untuk mempermudah manusia dalam pemahaman dibandingkan menggunakan bahasa pemrograman yang umum digunakan, terlebih aspeknya yang ringkas serta tidak bergantung pada suatu sistem tertentu merupakan prinsip utama dalam suatu algoritma. Kode-palsu umumnya digunakan dalam buku-buku ataupun publikasi karya ilmiah yang mendokumentasikan suatu algortima, dan juga dalam perencanaan pengembangan program komputer, untuk membuat sketsa atas struktur sebuah program sebelum program yang sesungguhnya ditulis.
Tidak ada satu pun standar yang berlaku atas kode-palsu, sebuah program yang masih berupa kode-palsu tidak dapat dijalankan. Kode-palsu menyerupai pula kerangka program (skeleton programs), termasuk dummy code, yang bisa dikompilasi tanpa kesalahan. Diagram alur dapat pula dimasukkan sebagai alternatif berbasis grafis sebuah kode-palsu.

Contoh

<variable> = <expression>
 
if <condition>
    do stuff
else
    do other stuff
 
while <condition>
    do stuff
 
for <variable> from <first value> to <last value> by <step>
    do stuff with variable
 
function <function name>(<arguments>)
    do stuff with arguments
    return something
 
<function name>(<arguments>)    // Function call





e.    Bahasa Pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
1.      Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
2.      Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kodemnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
3.      Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
4.      Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.

 

Bahasa Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputer dan manusia. Proses komputasi umumnya Bahasa pemrograman == Komputer adalah mesin yang dapat melaksanakan seperangkat perintah dasar (instruction set). Komputer hanya dapat diberi perintah yang terdiri dari perintah-perintah dasar tersebut.
Perintah-perintah yang lebih rumit (misalnya mengurutkan suatu daftar sesuai abjad) harus diterjemahkan menjadi serangkaian perintah-perintah dasar yang dapat dimengerti komputer (perintah-perintah yang termasuk dalam instruction set komputer tersebut) yang pada akhirnya dapat mennyelesaikan tugas yang diinginkan, meskipun dijalankan dengan beberapa operasi dasar, bukan satu operasi rumit.
Jadi, jika kamu bisa menguasai sebuah bahasa pemrograman, kamu dapat dikatakan seorang programmer.
Langkah-langkah pemecahan masalah

1.       Misalkan terdapat dua gelas, yakni gelas “A” dan “B”. Gelas A berisi air berwarna merah, dan gelas B berisi air berwarna biru. Volume air di dalam kedua gelas sama. Bagaimana mempertukarkan isi kedua gelas sehingga gelas A berisi air berwarna biru, dan gelas B berisi air berwarna merah.

Kondisi awal:
                                    Gelas A                                                Gelas B

Kondisi akhir:
                                    Gelas A                                                Gelas B


Penjelasanya :

1.       Ambil satu gelas kembali dan kita namai itu Gelas C.
2.       Tuangkan air yang ada didalam gelas A kedalam gelas C.
3.       Otomatis gelas A kosong.
4.       Kemudian tuangkan air yang ada didalam gelas B ke gelas A.
5.       Lalu air yang ada didalam gelas C tuangkan ke gelas B.
6.       Selesai.












2.       Misalkan anda mempunyai dua ember, masing-masing ber-volume 5liter dan 7 liter. Anda diminta untuk mendapatkan air (dari sebuah danau) sebanyak 6 liter dengan menggunakan bantuan hanya kedua ember tersebut. Terserah bagaimana caranya, anda boleh memindahkan air dari satu ember ke ember yang lain, membuang seluruh isi ember, dan sebagainya. Catatan: ember tidak memiliki ukuran.

Pertanyaan: Tuliskan langkah-langkah untuk mendapatkan air 6 liter tersebut.


Penjelasanya :

Pertama isi gelas 5 liter, kemudian tuangkan isinya ke gelas 7 liter. Lau isi lagi gelas 5 liter.


Lalu tuangkann isi gelas 5 liter ke gelas 7 liter.
Kemudian buang isi dari gelas 7 liter, lalu tuang kembali isi gelas 5 liter ke gelas 7 liter.

Kemudian isi gelas 5 liter dan tuangkan kembali isinya ke gelas 7 liter.

Lalu buang kembali sisi gelas 7 liter, dan tuangkan isi gelas 5 liter ke gelas 7 liter.

Langkah terakhir isi gelas 5 liter, kemudian tuangkan ke gelas 7 liter, dan selamat anda telah berhasil.











3.       (plastelina game) Ada sebuah keluarga terdiri dari 5 orang, akan menyeberang melewati jembatan pada malam hari dengan bantuan lampu yang hanya bisa bertahan 30 detik, dengan catatan:
a.       Setiap orang mempunyai kecepatan yang berbeda-beda (1, 3, 6, 8, dan 12 detik).
b.      Apabila yang melewati jembatan ada 2 orang, maka kecepatannya akan dihitung berdasarkan yang paling lambat.

Game bisa di akses di: http://www.plastelina.net/game3.html
Pertanyaan: tuliskan langkah-langkah secara detail untuk menyelesaikan game tersebut.

Penjelasanya :


Pertama-tama , seberangkan si 1 detik dan 3 detik.


1 detik balik tuk jemput yang 6 detik.




1 detik dan 6 detik menyeberang, lalu si 1 detik balik lagi.


Kemudian seberangkan secara bersama-sama si 12 detik dengan si 8 detik.









Dan si 3 detik balik jemput si 1 detik.

Terakhir, si 1 detik dan 3 detik menuju sisi lainya bersama-sama.








4.       (Canibal Game) Bagaimana caranya untuk menyeberangkan tiga rahib dan 3 kanibal ke pulai di seberang, dengan catatan:
a.       Perahu maksimal dapat ditumpangi dua orang.
b.      Perahu tidak dapat berjalan sendiri (tanpa penumpang)
c.       Jika jumlah rahib lebih sedikit dari kanibal, maka rahib akan dimakan oleh kanibal.

Pertanyaan: tuliskan langkah-langkah secara detail untuk menyeberangkan rahib dan kanibal ke pulai seberang.

Penjelasanya :

Pertama-tama, seberangkan 2 setan ke sisi lainya ( 1 canibal tidak berani lawan 3 orang rahib)

taruh 1 canibal di sisi lainya , jemput canibal yang lain untuk ditaruh di sisi satunya

2 canibal di sisi lainya, 1 canibal balik ke sisi satunya. sekarang 2 orang rahib menuju sisi lainya

taruh 1 orang rahib di sisi lainya, lalu balikin 1 canibal ke sisi satunya .1 canibal, 1 orang rahib di sisi lainya. 1 canibal, 1 orang rahib dalam perahu.  1 canibal dan 1 orang rahib disisi satunya


orang rahib di sisi satunya, angkut ke sisi lainya bersama orang rahib yang masih di perahu tadi.



sekarang posisinya 3 orang rahib di sisi lainya, 1 canibal di perahu, dan 2 canibal di sisi satunya.






Kita tinggal memindahkan kanibal sampai kesisi lainya dan “Selamat”.







5.       (wolf game) seorang petani akan bepergian ke kota dengan membawa se-ekor kambing , anjing, dan rumput yang ketiganya memiliki berat yang tidak jauh berbeda. Ditengah jalan, petani harus menyeberangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan membawa sekaligus bawaanya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu per-satu bawaannya, dengan catatan:
a.       Kambing makan rumput
b.      Anjing makan kambing

Pertanyaan: tuliskan langkah-langkah secara detail untuk menyeberangkan semua barang bawaan petani tersebut, dan berapa kali petani harus membawa satu-persatu bawaanya.

 
angkut kambingnya dulu menuju sisi lainya, karena serigala tidak mungkin makan sayuran


angkut sayurannya menuju sisi lainya, dan bawa kembali kambingnya ke sisi awal, satunya

sekarang angkut anjingya menuju ke sisi lainya

balik lagi seorang diri, ambil kambingnya menuju sisi lainya

SelesaI



Referensi




Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Walgreens Printable Coupons