Minggu, 22 September 2013

LAPORAN PRAKTIKUM
DASAR PEMROGRAMAN KOMPUTER

                                                               










                                                                       Oleh :
Gilang Samodra
NIM. 135623044




UNIVERSITAS NEGERI SURABAYA
TEKNIK ELEKTRO
SURABAYA
2013


I DASAR TEORI
-         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 :
Gambar 1.1. Diagram alir Proses Pemrograman


-         Karakteristik 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.

-Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahsa pemrograman.
Pengenalan Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahsa pemrograman.
Simbol-simbol flowchart
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain :





Flow Direction symbol
Yaitu simbol yang digunakan untuk menghubungkan antara simbol yang satu dengan simbol yang lain. Simbol ini disebut juga connecting line.
Terminator Symbol
Yaitu simbol untuk permulaan (start) atau akhir (stop) dari suatu kegiatan



Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses dalam lembar / halaman yang sama.
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses pada lembar / halaman yang berbeda.
Processing Symbol
Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer
Simbol Manual Operation
Simbol yang menunjukkan pengolahan yang tidak dilakukan oleh komputer
Simbol Decision
Simbol pemilihan proses berdasarkan kondisi yang ada.
Simbol Input-Output
Simbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya
Simbol Manual Input
Simbol untuk pemasukan data secara manual on-line keyboard
Simbol Preparation
Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage.
Simbol Predefine Proses
Simbol untuk pelaksanaan suatu bagian (sub-program)/prosedure
Simbol Display
Simbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer dan sebagainya.
Simbol disk and On-line Storage
Simbol yang menyatakan input yang berasal dari disk atau disimpan ke disk.
Kaidah-kaidah pembuatan Flowchart
Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
Namun secara garis besar, setiap pengolahan selalu terdiri dari tiga bagian utama, yaitu;
1.        Input berupa bahan mentah
2.        Proses pengolahan
3.        Output berupa bahan jadi.
Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk pemecahan suatu masalah, yaitu;
·         START: berisi instruksi untuk persiapan perlatan yang diperlukan sebelum menangani  pemecahan masalah.
·         READ: berisi instruksi untuk membaca data dari suatu peralatan input.
·         PROCESS: berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
·         WRITE: berisi instruksi untuk merekam hasil kegiatan ke perlatan output.
·         END: mengakhiri kegiatan pengolahan

Gambar berikut memperlihatkan flowchart dari kegiatan dasar diatas.
Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus terdapat proses persiapan dan proses akhir. Dan yang menjadi topik dalam pembahasan ini adalah tahap proses. Karena kegiatan ini banyak mengandung variasi sesuai dengan kompleksitas masalah yang akan dipecahkan. Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran yaitu:
·         Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
·         Penggambaran flowchart yang simetris dengan arah yang jelas.
·         Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.





-Pseudecode



Pseudocode


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






-         Bahasa Pemograman

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.





                                               



II LANGKAH-LANGKAH PEMECAHAN MASALAH

1.       Siapkan tambahan 1 gelas jadi keseluruhan terdapat 3 gelas
Yakni gelas A, B , dan C
Tuangkan isi gelas A ke gelas C (gelas A kosong)
Lalu gelas B ke gelas A (gelas B kosong)
Terakhir gelas C ke gelas B
           
2.       Masing-masing ember yang bervolume 5 liter dan 3 liter air di isi penuh.
Lalu ember yang bervolume 3 liter di buang keseluruhan
Selanjutnya ember yang bervolume 5 liter di masukan ke ember 3 liter yang sebelumnya sudah kosong, hingga volume mencapai 4 liter
Dan bersisa 1 liter
Jadi sekarang ada 1 ember yang berisi 4 liter air


                                                                                   
3.       Pertama-tama kita sebrangkan Si 1 detik dan 3 detik. (waktu tersisa 30 detik- 3 detik yang pegang lampu jadi sisa = 27 detik)

 Si 1 detik balik menjemput yang 6 detik. (waktu tersisa 27 -1 detik yang pegang lampu jadi sisa = 26 detik)

 Si 1 detik dan 6 detik menyebrang, lalu si 1 detik balik lagi.(waktu tersisa 26 detik-6 detik yang pegang lampu- 1 detik yang balik ke sisi A = 19 detik )

Seberangkan secara bersama-sama si 12 detik (kakek”) dengan Si 8 detik. Di sini hanya berkurang 12 detik , karena si 12 detik yang pegang lampu.(waktu tersisa 19 detik-12 detik yang pegang lampu = 7 detik)

Si 3 detik balik jemput Si 1 detik. (waktu tersisaa 7 detik- 3 detik yang balik ke sisi A = 4 detik)
Terakhir Si 1 detik dan 3 detik menuju sisi B bersama-sama (waktu teesisa 4 detik – 3 detik yang pegang lampu = 1 detik )

4.       Pertama-tama kita sebrangkan 2 canibal ke sisi B ( yang 1 canibal tidak akan berani melawan 3 orang rahib)

Taruh 1 canibal di sisi B, Jemput canibal yang lain untuk ditaaruh di sisi B

2 Canibal di sisi B , 1 canibal balik ke sisi A. Sekarang 2 orang rahib menuju sisi B

Taruh 1 orang rahib di sisi B, lalu balikin 1 canibal ke sisi A (tadinya di sisi B ada 2 canibal)
Balikin 1 canibal ke sisi A , 1 canibal , 1 rahib di sisi B, 1 canibal, 1 rahib dalam perahu. 1 canibal, 1 rahib di sisi A (pokonya harus rata/sama)

Sekarang posisinya 3 orang alim di sisi B, 1 canibal di perahu dan setan di sisi A

Jemput canibal-canibal tadi dengan setan yang diperahu satu-persatu

Hingga setan yang terakhir. Intinya adalah keseimbangan jumlah, dan mengutamakan rahib ke sisi B dulu.

Selesai deh... level 2 clear

5.       Angkut kambingnya dulu menuju sisi B, soalnya serigala tidak mungkin makan sayuran.
Angkut sayurannya menuju sisi B, dadn bawa kembali kambingnya ke sisi awal (sisi A)
Sekarang angkut serigalanya menuju ke sisi B
Balik lagi seorang diri, ambil kambingnya menuju sisi B
Selesai






III REFERENSI