Melayani Dengan Nurani

IA

Algoritma

3.1 Memahami penggunaan data dalam algoritma dan konsep algoritma pemrograman
3.2 Memahami struktur algoritma serta menganalisis data dalam suatu algoritma percabangan
3.3 Memahami struktur algoritma serta menganalisa data dalam suatu algoritma perulangan serta
3.4 Menerapkan bahasa pemrograman
3.5 Menerapkan penggunaan tipe data, variabel, konstanta, operator, dan ekspresi
3.6 Menerapkan struktur kontrol percabangan dalam bahasa pemrograman
3.7 Menerapkan struktur kontrol perulangan dalam bahasa pemrograman
3.8 Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah kompleks
4.1 Menggunakan algoritma pemrogramanuntuk memecahkan permasalahan
4.2 Menggunakan algoritma percabangan untuk memecahkan permasalahan
4.3 Memecahkan permasalahan dengan algoritma perulangan
4.4 Mengolah algoritma ke dalam bentuk kode program komputer
4.5 Mengolah data menggunakan konsep tipe data, variabel, konstanta, operator dan ekspresi
4.6 Memecahkan masalah menggunakan struktur kontrol percabangan
4.7 Memecahkan masalah menggunakan struktur kontrol perulangan
4.8 Menganalisa kesalahan dalam program komputer

Dasar dari pemrograman adalah algoritma.

- Pengertian Algoritma

Algoritma adalah “urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. .Masalah dapat berupa apa saja, dengan catatan untuk setiap masalah, ada syarat kondisi awal yang harus dipenuhi sebelum menjalankan algoritma.

Definisi masalah atau problem adalah perbedaan antara kondisi yang terjadi dan kondisi yang diharapkan atau boleh juga diartikan sebagai perbedaan antara kondisi sekarang dengan tujuan yang diinginkan. Gejala berbeda dengan masalah.

Gejala adalah indikator terjadinya masalah, misalnya seorang dokter dalam usaha mengobati penyakit pasien selalu bertanya dulu tentang gejala-gejala yang dirasakan pasien kemudian menyimpulkan bahwa pasien menderita penyakit tertentu dan menentukan obat yang tepat. Pusing, demam, batuk, dan

pilek merupakan gejala atau tanda dari penyakit flu. Apabila dokter hanya memberi obat sakit kepala, maka penyakit flu tidak akan sembuh. Satu masalah mungkin memiliki satu gejala tetapi mungkin juga lebih.

Hubungan pengertian "masalah dan gejala" dengan RPL disebabkan "perangkat lunak" merupakan hasil dari RPL sebagai alat bantu yang digunakan untuk menyelesaikan tugas / masalah tertentu. Apabila kita tidak mengetahui dengan benar masalahnya mustahil kita dapat menentukan bagaimana menyelesaikannya.

Untuk mengetahui dengan baik masalah, maka pengetahuan tentang gejala dari masalah menjadi sangat penting. Seorang programmer bila ingin membuat program Rugi Laba harus belajar dan memahami apa yang dinamakan akuntansi.

Tipe-tipe masalah.

1. Masalah pemenuhan standar

Tipe masalah dalam kelompok ini adalah masalah-masalah yang berhubungan dengan pencapaian standar/patokan yang telah ditentukan atau ditetapkan dalam sebuah organisasi.

Standar atau patokan minimal yang ditetapkan oleh suatu masyarakat atau organisasi. Standar yang tinggi menuntut kompetensi dan kapasitas yang tinggi untuk memenuhinya, sebaliknya standar yang rendah menghasilkan kualitas yang rendah pula.

2. Masalah pemilihan alternative

Masalah dalam kelompok ini berhubungan dengan bagaimana memilih solusi terbaik dari berbagai alternative/pilihan berdasarkan kriteria-kriteria tertentu.

Permasalahan ini seringkali kita jumpai dalam kehidupan sehari-hari, seperti bagaimana memilih sekolah yang tepat, memilih lokasi tempat tinggal, memilih bidang pekerjaan. Masing-masing alternatif dan kriteria memiliki bobot yang telah disepakati.

3. Masalah pemenuhan kepuasan/selera konsumen

Pada organisasi-organisasi yang bersifat profit (mencari keuntungan), masalah-masalah pada kelompok ini merupakan tipe yang seringkali muncul. Konsumen memiliki berbagai macam keinginan yang satu sama lain berbeda.

Memenuhi seluruh keinginan konsumen sangat tidak mungkin dan sangat memberatkan sebuah organisasi. Oleh karena itu perlu dicari pemecahan yang sama-sama menguntungkan, baik bagi konsumen maupun organisasi tersebut.

4. Masalah pencapaian tujuan

Tipe ini mirip dengan tipe pertama (masalah pemenuhan standar). Yang berbeda adalah, pada tipe ini tujuan yang ingin dicapai dapat berubahubah dan bersifat jangka pendek.

Cara Penulisan Algoritma

Ada tiga cara penulisan algoritma, yaitu :

1. Structured English (SE) / Structured Indonesian (SI)

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). Algoritma yang pada dasarnya adalah menggunakan bahasa sehari-hari, maka SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak.

2. Pseudocode

Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program.Sehingga 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. Kadang-kadang orang menyebut pseudocode sebagai PASCAL-LIKE algoritma.

3 Flowchart

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 bentu notasi-notasi tertentu. Secara lebih detil bagian ini akan dibahas pada bagian berikutnya.


2. Dasar-Dasar Algoritma

- Struktur Dasar algoritma

Format Baku Algoritma dibagi menjadi tiga bagian:

1. Bagian Nama : bagian yang menuliskan nama algoritma serta keterangan lain perihal algoritma tersebut

2. Bagian deklarasi : bagian yang mendefinisikan konstanta dan variabel objek yang terlibat dalam algoritma tersebut

3. Bagian dekripsi (badan algoritma) : adalah bagian yang merupakan langkah-langkah penyelesaian masalah.

Algoritma Jumlah                      //  {Bagian Nama}

Deklarasi a,b,c:integer              // {Bagian deklarasi}


Read(a,b)                                    //{Bagian deskripsi}

c <- a + b
write (c)

Bagian Deskripsi atau bagian proses didalamnya selalu ada even atau manipulasi data yang terdiri dari

- Runtunan (Struktur Urut)
- Pemilihan Kondisi (Struktur Seleksi) / percabangan
- Perulangan


3. Simbol-Simbol Program Flowchart

Bagan Perintah Dasar-dasar Algoritma

Perintah Umum Atau pernyataan biasa   Perintah Algoritma     Flowchart

Masukan nilai A                                       Read (A)              

Masukan nilai D,E,F                                  Read (D,E,F)        

Tampilkan tulisan “WELCOME”        Write(“WELCOME”) 



Jumlahkan(hitung)                                  C <- A + B                      C = A + B
variabel A dan varibel B dan
simpan hasilna di variabel C


4. Tipe Data, Nama (Variabel), dan Nilai

- Tipe Data

Program komputer bekerja dengan memanipulasi/memproses data didalam memori. Data yang dimanipulasi/diproses mempunyai beberapa tipe data seperti :

nilai numerik
karakter
string
rekaman (record)

Tipe data dapat dikelompokkan dalam dua kelompok utama yaitu :




Tipe Dasar (nilainya bisa langsung dipakai). Yang termasuk tipe dasar adalah :
karakter
bilangan
logika

- Tipe bilangan ada beberapa macam

Bilangan bulat

- Shortint -128 s/d +127

- Byte 0 s/d 255

- Integer -32768 s/d +32767

- Longint -2147483648 s/d +2147483648

- Word 0 s/d 65535

Bilangan pecahan

- Real 2.9 X 10 –39 s/d 1,7 X 10 38

- Single 1.5 X 10 –45 s/d 3,4 X 10 38

- Double 5.0 X 10 –324 s/d 1,7 X 10 308

- Extend 3.4 X 10 –4932 s/d 1,1 X 10 4932


Tipe data Karakter

Yang termasuk kedalam tipe data karakter adalah : huruf-huruf alfabet, tanda baca, angka ‘0’,’1’,….’9’ dan karakter khusus ‘&amp;’,’^’,……..

Tipe Logika

Tipe data ini mempunyai nilai Benar dan Salah

-Tipe Bentukan (tipe data yang didefinisikan dari tipe dasar)

Tipe bentukan adalah tipe data yang didefenisikan sendiri oleh pemrogram.

Ada 3 tipe data bentukan

String

Tipe data dasar yang diberi nama dengan nama tipe baru.
Rekaman (record)

1 String

Adalah deretan karakter dengan panjang tertentu

Contoh : a:string[15]

2. Tipe data dasar yang diberi nama baru

Contoh : Type Bilagan Bulat : Integer

3. Rekaman

Contoh : Type mahasiswa=record

Nbp :string[13];

Nm :string[25];

End;

Variabel

Variabel adalah suatu pengenal/identitas untuk menampung data, yang disimpan didalam memori. Setiap variabel diberi nama, yang sering disebut sebagai identifier.

- Operator pada pemrograman adalah suatu simbol untuk melakukan suatu operasi aritmatika, logika maupun relasi antara satu atau antara beberapa variabel

Operator Aritmatika

Yaitu simbol yang digunakan untuk proses perhitungan yaitu +, - , * , / , div , mod
operator ‘/’ digunakan untuk pembagian dengan hasil adalah bilangan pecahan
operator div digunakan untuk pembagian dengan hasil adalah bilagan bulat
mod adalah operator yang digunakan untuk mencari sisa hasil bagi

Pada proses aritmatik adakalanya ada beberapa operator ditemui pada satu ekspresi.

Contoh : Z=A+B*C;

Pada contoh diatas ada 2 operator yang ditemui yaitu + dan *. Jika hal ini terjadi maka yang akan diproses terlebih dahulu adalah operator dengan prioritas tertinggi.

Berikut prioritas pengerjaan dari masing-masing operator dari yang tertinggi.
* , /, mod , div + d an –

2.Operator Relasional

Adalah <, >, <= , >= , not , and , or . Hasil dari operator ini adalah benar atau salah.

Pengertian Operasi/Prhitungan/Proses

Merupakan suatu perintah untuk menyimpan suatu nilai (angka, karakter, string)  dalam variabel disebut operasi (penugasan) atau assignment.

 Contoh :

C <- A +B perintah ini dibaca “jumlahkan A dengan B dan simpan pada C”

Simbol A,B,C disebut operand/identifier/varibel

Tanda * disebut operator perkalian

Tanda <- disebut operator penugasan (assignment)

3. Operator Logika,  Or, Not, And

4. Operator Penugasan
Tanda <- disebut operator penugasan (assignment) atau dalam Pascal :=

5.Algortima Runtunan

Algoritma runtunan adalah algoritma yang instruksinya dikerjakan berdasarkan urutan perintahnya. Perintah dikerjakan dari baris paling atas, kemudian baris kedua, baris ketiga, dan seterusnya. Jadi, jika terdapat algoritma dengan urutan perintahnya ditulis seperti berikut :

Perintah 1

Perintah 2

Perintah 3


maka perintah yang dieksekusi atau dikerjakan mula-mula adalah Perintah1, diikuti kemudian Perintah2 dan terakhir Perintah3.

Algortma menghitung luas segitiga

1. Mulai

2. Masukkan nilai jari

3. Hitung Luas = 3.14 * jari*jari

4. Tampilkan Luas

5. Selesai





Contoh Algoritma LuasLingkaran

Deskripsi

read(jari)

luas <- 3.14*jari*jari

write(luas)


Program Pascalnya :

Program LuasLing;

uses wincrt;

               
var
  jari: integer;
  luas : real;

begin
write('masukan jari-jari'); readln(jari);
luas := 3.14 * jari*jari ;
writeln('Luas Lingkaran :', luas);
end.

Studi Kasus Algoritma Runtutan

Soni mempunyai kelereng sebanyak 15 buah. Jumlah itu 10 buah lebih banyak dari kelereng Adi. Sedangkan Anis memiliki kelereng sebanyak 2 x jumlah kelereng Soni dan Adi. Luki memiliki kelereng sebanyak 5 buah lebih sedikit dari jumlah kelereng Soni, Adi dan Anis. Carilah banyak kelereng Adi, Anis dan Luki, jika diketahui jumlah kelereng Soni.

Identifikasi masalah
Input : banyak kelereng Soni
Output : banyak kelereng Adi, Anis, Luki

Algoritma hitung kelereng

Algoritma HitungKelereng
{Algoritma menghitung kelereng Adi, Anis, dan Luki}

Deskripsi

Read (Ksoni)
Kadi <- Ksoni-10
Kanis <- 2 * (Ksoni + Kadi)
Kluki <- (Ksoni +Kadi + Kanis) -5
Write(Kadi, Kanis, Kluki)
Tabel Penyimpanan Data Algoritma

Perintah                    KSoni       KAdi      KAnis        KLuki                  Output

Readln(Ksoni)           15

KAdi <- Ksoni -10                       5

KAnis <- 2 * (Ksoni + Kadi)                     40

KLuki <-(Ksoni +Kadi+ Kanis) -5                             55

Write(Ksoni, KAdi, KAnis, Kluki)                                                    15,   5,  40,  55

Dari tabel tersebut di atas dapat kita lihat ketika perintah “Readln(KSoni)” dikerjakan (dengan menginput nilai 15) maka nilai variabel KSoni kemudian menjadi 15.

Ketika perintah KAdi  < -  KSoni-10, maka variabel KAdi  langsung terisi dengan
 nilai 5 yaitu (15-10).

Demikian seterusnya. Dengan demikian, jika masukan algoritma Ksoni=15, maka keluaran dari algoritma di atas adalah :   5 40 55 6.

Struktur Percabangan(Kondisi)

- If........then



- If........then ........else.......






- If........then.........else if.......then......else............



- Struktur Case
Struktur case adalah cara lain yang bisa digunakan untuk memilih suatu kondisi tertentu.
Syntax:
Case (var)
Var = …..: hasil =…..
Var = …...: hasil =…..
….
….
Endcase

7. Struktur Algorima Perulangan

- Struktur While........Do :

Perulangan dengan while ..do digunakan selama kondisi (syarat) yang ada pada perulangan benar (terpenuhi)




Keterangan :

Perintah write ‘halo’ akan dilaksanakan selama nilai k < 1, dimana di dalam setiap perulangan nilai k akan bertambah nialainya 1 (satu) sehingga perintah write akan dilakukan sebanyak 10 kali


- Struktur Repeat .......Until:

Perulangan dengan repeat until digunakan selama kondisi belum terpenuhi




Keterangan :

Write (‘halo’) akan dilakukan selama nilai K tidak besar dari 10.

Pada struktur repeat until instruksi yang ada anatara repeat dan until minimal satu kali
proses akan dilakukann karena nilai / syarat dari perulangan terletak di akhir struktur


- Struktur For......to..... Do :
Perulangan dengan struktur for akan dilakukan sesuai dengan jumlah perulangan yang ditetapkan pada struktur for




Pascalnya :

program ulang;

Uses wincrt;

var
  k : integer;

begin
  k := 1;
  for k:=1 to 10 do
     begin
     write ("hello");
     end;
end.

Keterangan :

Write(‘halo’) akan dilaksanakan sebanyak 10 kali sesuai dengan jumlah perulangan yang udah ditetapkan pada struktur For yaitu 1 s/d 10. pada struktur perulangan ini nilai K akan bertambah 1 secara otomatis begitu perintah sampai pada khir perulangan.

Perulangan dengan struktur for dapat dibagi menjadi 2 bagian


1. For menaik
2. For menurun


1. For menaik

- peubah haruslah bertipe sederhana kecuali tipe real
- nilai awal harus lebih kecil atau sama dengan nilai akhir
- pada awalnya peubah diinisialisasi dengan nilai awal. Nilai peubah otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah sama dengan nilai akhir
- jumlah pengulangan yang terjadi adalah nilai akhir – nilai awal +1


2. For menurun

- peubah haruslah bertipe sederhana kecuali tipe real
- nilai awal harus lebih besar atau sama dengan nilai akhir
- pada awalnya peubah diinisialisasi dengan nilai awal. Nilai peubah otomatis
berkurang satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah sama dengan nilai akhir
- jumlah pengulangan yang terjadi adalah nilai awal–nilai akhir +1

Soal Jawab Algortima

1.Apa definisi dari “Algoritma” ?

Ditinjau dari asal-usul katanya, kata Algoritma berasal dari kata algorism yang berarti proses menghitung dengan angka arab.

Seseorang dikatakan algorist jika ia 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 juga diperoleh 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.

Jadi, definisi dari algoritma adalah “urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.” 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.


2. Apa saja pertimbangan dalam menyusun sebuah algoritma ?

Pertimbangan dalam pemilihan algoritma adalah,

1 Algoritma haruslah benar yaitu memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan.

2. Algoritma harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya (hasil terbaik).

3. Algoritma  harus efisiensi  artinya dapat ditinjau dari dua hal yaitu efisiensi waktu dan penggunaan memori.  Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika harus menunggu berjam-jam untuk mendapatkan keluarannya berarti algoritma tidak  baik

3. Apa beda algoritma dengan program ?

Program adalah kumpulan pernyataan (perintah untuk) komputer, sedangkan metode, langkah-langkah dan tahapan sistematis dalam program adalah algoritma.

Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya:

1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.

2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

4. Apa yang disebut dengan “pseuducode” ?

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. Tulisan (notasi) algoritma yang mendekati perintah bahasa pemrograman disebut dengan pseudocode.

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.

5. Algoritma sebenarnya digunakan untuk membantu mengkonversikan suatu permasalahan ke bahasa pemrograman.

6. 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, programmer terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.

e. Tampilan hasil
Pada saat membuat algoritma tidak dipikirkan 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.

5. Apa beda compiler dan interpreter ?
Seluruh bahasa pemrograman yang ditulis programmer (khususnya yang menggunakan bahasa pemrograman tingkat tinggi) akan diterjemahkan terlebih dulu ke dalam bahasa mesin. Ada penerjemahan yang akan memeriksa kebenaran dalam penulisan perintah, dan ada juga yang juga memeriksa kebenaran logika program.

Compiler adalah penerjemah yang bekerja memeriksa program sekaligus seluruhnya (contoh dalam bahasa pemrograman COBOL), dan interpreter adalah penerjemah yang bekerja memeriksa program baris demi baris (contoh dalam bahasa pemrograman BASIC). Jadi, komputer akan bekerja (mengeksekusi program) secara langsung jika seluruh perintah sudah dinyatakan benar (pada compiler), sedangkan pada interpreter, komputer akan menjalankan program baris demi baris. Bisa jadi komputer telah mengeluarkan output dari perintah baris pertama hingga baris keseratus, namun menyatakan error ketika komputer menjalankan baris keseratus-satu.

6. Apa yang disebut dengan “bahasa pemrograman tingkat tinggi” dan “bahasa pemrograman tingkat rendah” ?
Komputer adalah mesin, yang tentu hanya dapat “mengerti” bahasa mesin. Sedang manusia (programmer) bisa mengerti bahasa mesin maupun bahasa manusia. Namun demikian, untuk mempelajari hingga mengerti untuk selanjutnya menuliskan perintah dengan bahasa mesin, diperlukan waktu yang lama dan keahlian yang lebih. Sedangkan persaingan dalam kehidupan, memerlukan action yang cepat, tepat, dan akurat.

Karenanya, dari bahasa mesin atau selanjutnya dibuat bahasa asembli/ asembler (yang dikategorikan sebagai bahasa tingkat rendah/ low level programming language) dibuatlah functions hingga seorang programmer bisa menuliskan perintah dalam bahasa manusia (umumnya bahasa Inggris). Tulisan program yang sudah menggunakan bahasa manusia dikategorikan sebagai bahasa pemrograman tingkat tinggi/ high level programming language). Untuk menerjemahkan bahasa manusia ke bahasa mesin (menerjemahkan functions), dibuat compiler atau interpreter.

Jadi, berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam:

1. 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 (asembler) 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.

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

7. Bagaimana cara menyajikan algoritma ?
Penyajian algoritma secara garis besar bisa dalam dua 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.

8. Apa beda flowchart sistem dan flowchart program ?
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. Di samping 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:

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

2. Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.


9. Apa saja langkah-langkah pemecahan masalah dalam pembuatan program ?
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah:
1. Mendefinisikan Masalah. Berikut adalah hal-hal yang harus diketahui dalam analisis masalah agar diketahui bagaimana permasalahan tersebut:
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia (yang perlu dijadikan pertimbangan).
d. Operator yang tersedia dalam bahasa pemrograman (adakah operator div, mod, abs, dan lain-lain).
e. Syarat atau kendala yang harus dipenuhi (aturan dalam penyelesaian masalah).

2. Membuat Algoritma dan Struktur Cara Penyelesaian

Jika masalahnya kompleks, maka dibagi ke dalam modul-modul. Tahap penyusunan algoritma seringkali dimulai dari langkah yang global terlebih dahulu. Langkah global ini diperhalus sampai menjadi langkah yang lebih rinci atau detail. Cara pendekatan ini sangat bermanfaat dalam pembuatan algoritma untuk masalah yang kompleks. Penghalusan langkah dengan cara memecah langkah menjadi beberapa langkah. Setiap langkah diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan langkah ini akan terus berlanjut sampai setiap langkah sudah cukup rinci dan tepat untuk dilaksanakan oleh pemroses.

3. Menulis Program
Algoritma yang telah dibuat, diterjemahkan dalam bahasa komputer menjadi sebuah program. Perlu diperhatikan bahwa pemilihan algoritma yang salah akan menyebabkan program memiliki untuk kerja yang kurang baik. Program yang baik memiliki standar penilaian:

a. Standar teknik pemecahan masalah

- Teknik Top-Down
Teknik pemecahan masalah yang paling umum digunakan. Prinsipnya adalah suatu masalah yang kompleks dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Dari masalah yang kecil tersebut dilakukan analisis. Jika dimungkinkan maka masalah tersebut akan dipilah lagi menjadi subbagian-subbagian dan setelah itu mulai disusun langkah-langkah penyelesaian yang lebih detail.

- Teknik Bottom-Up
Prinsip teknik bottom up adalah pemecahan masalah yang kompleks dilakukan dengan menggabungkan prosedur-prosedur yang ada menjadi satu kesatuan program sebagai penyelesaian masalah tersebut.

b. Standar penyusunan program

- Kebenaran logika dan penulisan.
- Waktu minimum untuk penulisan program.
- Kecepatan maksimum eksekusi program.
- Ekspresi penggunaan memori.
- Kemudahan merawat dan mengembangkan program.
- User Friendly.
- Portability.
- Pemrograman modular.

4. Mencari Kesalahan
a. Kesalahan sintaks (penulisan program).
b. Kesalahan pelaksanaan: semantik, logika, dan ketelitian.

5. Menguji dan Memverifikasi Program
Pertama kali harus diuji apakah program dapat dijalankan. Apabila program tidak dapat dijalankan maka perlu diperbaiki penulisan sintaksisnya tetapi bila program dapat dijalankan, maka harus diuji dengan menggunakan data yang biasa yaitu data yang diharapkan oleh sistem. Contoh data ekstrem, misalnya, program menghendaki masukan jumlah data tetapi user mengisikan bilangan negatif. Program sebaiknya diuji menggunakan data yang relatif banyak.

6. Mendokumentasi Program
Dokumentasi program ada dua macam yaitu dokumentasi internal dan dokumentasi eksternal. dokumentasi internal adalah dokumentasi yang dibuat di dalam program yaitu setiap kita menuliskan baris program sebaiknya diberi komentar atau keterangan supaya mempermudah kita untuk mengingat logika yang terdapat di dalam instruksi tersebut, hal ini sangat bermanfaat ketika suatu saat program tersebut akan dikembangkan. Dokumentasi eksternal adalah dokumentasi yang dilakukan dari luar program yaitu membuat user guide atau buku petunjuk aturan atau cara menjalankan program tersebut.

7. Pemeliharaan Program
a. Memperbaiki kekurangan yang ditemukan kemudian.
b. Memodifikasi, karena perubahan spesifikasi.

Pemrograman Prosedural

Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti algoritma adalah proses yang prosedural. Pada program prosedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri dari atas runtunan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh sebuah pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instruksi secara beruntun. Kita katakan bahwa tahapan pelaksanaan program mengikuti pola beruntun atau prosedural.

Paradigma pemrograman seperti ini dinamakan pemrograman prosedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran, dan C/C++ mendukung kegiatan pemrograman prosedural, karena itu mereka dinamakan juga bahasa prosedural. Selain paradigma pemrograman prosedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented Programming atau OOP). Paradigma pemrograman ini merupakan trend baru dan sangat popular akhir-akhir ini. Pada paradigma OOP, data dan instruksi dibungkus (encapsulation) menjadi satu.

Kesatuan ini disebut kelas (class) dan instansiasi kelas pada saat run-time disebut objek (object). Data di dalam objek hanya dapat diakses oleh instruksi yang ada di dalam objek itu saja.
Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrograman deklaratif, dan pemrograman konkuren.

Contoh Kasus dan Penyelesaian

1. Menghitung luas dan keliling lingkaran .Proses kerjanya sebagai berikut:
a. Baca jari-jari lingkaran
b. Tentukan konstanta phi = 3.14
c. Hitung luas dan keliling
     L = phi*r*r
     K = 2*phi*r
d. Cetak luas dan keliling

Algoritmanya :

begin
read(r)

phi<- 3.14
L <- phi*r*r
K<- 2*phi*r
write(K,L)
end

2. Menghitung rata-rata tiga buah data
a. Algoritma dengan struktur bahasa Indonesia

- Baca bilangan a, b, dan c
- Jumlahkan ketiga bilangan tersebut
- Bagi jumlah tersebut dengan 3
- Tulis hasilnya

b. Algoritma dengan pseudocode

input (a, b, c)
Jml = a+b+c
Rerata = Jml/3
Output (Rerata)

10. Apa yang dilakukan dalam menguji program ?

Program yang baik, utamanya adalah menghasilkan keluaran yang benar dan sesuai dengan apa yang diharapkan. Sebagai contoh, program untuk memproses dan mencetak saldo untuk tabungan nasabah, maka nilai yang tercantum di print-out harus sama persis bila dilakukan perhitungan secara manual dengan segala ketentuannya.

Dengan demikian, pengujian terhadap sebuah program antara lain adalah: berhasil melewati proses kompilasi (penerjemahan atau tidak ada error lagi), melakukan pengujian dengan perhitungan atau proses manual (hasilnya harus sama), dan mencobanya dengan banyak kasus (data) agar dipastikan program benar-benar valid.

11. Apa keperluan dilakukannya dokumentasi program ?

Seorang pemrogram tentu tidak hanya membuat sebuah program selama karirnya. Karenanya, setiap program yang pernah ditulisnya hendaknya didokumentasikan. Tujuan dokumentasi adalah untuk mengingat kembali (khususnya alur kerja atau logika) dari program tersebut. (Lihat jawaban dari soal nomor 9 pada poin nomor 6). Dokumentasi penting dilakukan karena umumnya program akan mengalami perkembangan atau perubahan sesuai dengan kebutuhan. Misalkan, yang semula bunga bank sebesar 9% per tahun, kini menjadi 6% per tahun. Atau yang semula tidak ada perhitungan pajak, kini karena peraturan pajak yang berlaku, hal itu harus diperhitungkan, dan sebagainya.

12. Jelaskan pengelompokkan struktur proses dalam algoritma !

• Proses urutan (sequence)
– Prosedur proses dalam algoritma yang dilakukan secara urut langkah demi langkah.
– Sebuah urutan terdiri dari satu atau lebih instruksi. Tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan pelaksanaan, artinya suatu instruksi akan dilaksanakan setelah instruksi sebelumnya telah selesai dilaksanakan.

• Proses penyeleksian/percabangan (selection)
– Suatu instruksi dikerjakan jika suatu kondisi tertentu dipenuhi. Dengan adanya proses ini maka ada kemungkinan beberapa jalur aksi yang berbeda berdasarkan kondisi yang ada.

• Proses pengulangan (looping) atau iterasi
– Suatu proses melakukan eksekusi suatu program secara berulang-ulang pada suatu blok instruksi tertentu yang terkendali

13. Apa kekurangan menuliskan algoritma dengan bahasa natural (bahasa manusia) ?

Algoritma bisa disajikan dengan (1) penulisan dengan bahasa natural (bahasa manusia, seperti bahasa Inggris, bahasa Indonesia, dan sebagainya), (2) dengan bahasa yang mendekati penulisan bahasa pemrograman (pseudocode), dan (3) dengan flowchart.

Kelemahan penulisan yang menggunakan bahasa natural antara lain (1) hanya dimengerti oleh orang yang memiliki pengetahuan bahasa tersebut, (2) bisa menghasilkan arti yang berbeda (ambiguous), (3) kadang sulit merangkainya secara terstruktur (harus menjelaskan dengan panjang lebar), apalagi jika harus dilakukan algoritma yang memiliki pengulangan proses (loop), atau yang bersifat rekursif.

14. Apa kriteria algoritma yang baik menurut Donald E. Knuth ?

Banyak teori yang membahas tentang algoritma, salah satunya adalah Donald E. Knuth. Menurutnya, algoritma yang baik adalah algoritma yang (1) bisa menerima input dari luar, bukan hanya ada di dalam program, (2) memiliki sedikitnya sebuah hasil atau output, (3) memiliki kepastian (definiteness) pada setiap instruksinya atau tidak memiliki arti yang bias (tidak bersifat ambigu), (4) memiliki batas (finiteness) atau memiliki titik henti (stopping role), dan (5) bersifat efektif (effectiveness).

Contoh algortima yang tidak memiliki titik henti:

j ← 1
for j = 1 to 10
j ← i + 2
write j
next j

Contoh algoritma yang tidak efektif:

a ← a + 0
b ← b * 1

15. Contoh soal algoritma: tentukan sebuah bilangan ganjil atau genap
Tidak sulit kita menentukan sebuah bilangan adalah bilangan ganjil atau genap. Namun, bagaimana kita memerintah komputer agar komputer bisa menghasilkan output “ganjil” atau “genap” dari sebuah angka yang diberikan kepadanya, tidaklah mudah. Inipun masih tergantung pada operator apa saja yang dimiliki bahasa pemrogramannya.
Secara bahasa natural, kita bisa menulis algoritmanya:

a. Masukkan sebuah angka
b. Bagi angka tersebut dengan dua
c. Bila hasilnya adalah bilangan bulat, maka cetak “genap” selain itu cetak “ganjil”

Namun, untuk memberi tahu komputer mana bilangan “bulat” dan mana bilangan “pecahan” masih diperlukan algoritma lain lagi. Untuk beberapa bahasa pemrograman (yang memiliki operator INT atau integer untuk menyatakan bilangan bulat), maka pseudocode-nya bisa ditulis:

input a
if a/2 = int(a/2)
   write “genap”
else
  write “ganjil”
endif

Untuk bahasa pemrograman yang memiliki operator MOD (modulo atau sisa hasil bagi), maka pseudocode-nya bisa ditulis:

input a
if mod(a/2) = 0
  write “genap”
else
  write “ganjil”
endif







Snapshot Monitor



Pengertian Operasi

Perintah untuk menyimpan suatu nilai dalam variabel disebut operasi (penugasan) atau assignment


Komponen yang harus ada dalam merancang algoritma:

1. Komponen masukan : terdiri dari pemilihan variable, jenis variable,

tipe variable, konstanta dan parameter (dalam fungsi).

2. Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program.
Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah

3. Komponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode(rekursi, perbandingan, penggabungan, pengurangan dll).


Variabel

Variabel adalah suatu pengenal/identitas yang menampung data, yang disimpan didalam memori. Setiap variabel diberi nama, yang sering disebut sebagai identifier.

Pengertian Operasi
Perintah untuk menyimpan suatu nilai dalam variabel disebut operasi (penugasan) atau assignment. Contoh :

C <- A + B,
perintah di atas dibaca “jumlahkan A dengan B dan simpan pada C”

Simbol A,B,C disebut operand/Identifier

Tanda * disebut operator perkalian

Tanda <- disebut operator penugasan (assignment)

Soal Latihan Harian

1. Apa yang dimaksud dengan algoritma?

2. Jelaskan perbedaan algoritma teks dan flowchart! Sebutkan kelebihan dan kekurangan kedua metode ini masing-masing.

3. Apa yang dimaksud dengan operasi

4. Tuliskan perintah berikut ini dalam bentuk algoritma standar dan flowchart:
Tampilkan nilai yang terkandung pada variabel a
Masukkan nilai variabel “nama”
Jumlahkan nilai x dan y, simpan pada z
Tampilkan tulisan “Selamat Datang”
Kurangi A dengan B, lalu kalikan dengan 2, simpan pada C
Tampilkan nilai yang disimpan pada variabel P dan Q
Tampilkan hasil perkalian M dengan N


5. Nyatakan perintah berikut ini dalam pernyataan biasa

a. P + Q – R

b. Write (i+j)

c. Read (a,b,c)

d. x*(y1+y2)*y3

e. write(nama)f. read(x,y)
Soal-soal UTS

I. ESSAY TERSTRUKTUR


1. Apa yang di maksud dengan algoritma (5)
2. Gambarkan lambang flowchart untuk terminator, input , proses dan output (5)
3. Gambarkan flowchart untuk menghitung luas persegi panjang (5)
4. Apa yang di maksud dengan nilai (5)
5. Apa perbedaan variable dan konstanta(5)
6. Tuliskan aturan penulisan variable atau konstanta (5)
7. Di bawah ini terdapat contoh penulisan variable/konstanta, tuliskan mana saja yang salah(5)
8. Tuliskan lima tipe data yang paling sering digunakan(5)
9. Tuliskan tipe jenis tipe data pada tabel di bawah ini(5)

a. #
b. @
c. 600
d. 46
e. Jenis
f. memancing


10. Tuliskan urutan derajat operator aritmatik(5)

II. ESSAY TERURAI

11. Tuliskan langkah-langkah untuk memasak nasi goreng dan tentukan mana yang bagian input, proses dan output (10)

12. Pilihlah salah satu cara menghitung luas segitiga menggunakan pilihan di bawah ini (10)
a. Pseudocode, atau
b. Perintah dasar algoritma


13. Soni mempunyai kelereng sebanyak 15 buah. Jumlah itu 10 buah lebih banyak dari kelereng Adi. Sedangkan Anis memiliki kelereng sebanyak 2 x jumlah kelereng Soni dan Adi. Luki memiliki kelereng sebanyak 5 buah lebih sedikit dari jumlah kelereng Soni, Adi dan Anis. Carilah banyak kelereng Adi, Anis dan Luki, jika diketahui jumlah kelereng Soni.

Untuk soal diatas Pilihlah salah satu cara penyeleseian menggunakan pilihan di bawah ini (10)

a. Tabel penyimpanan data
b. Perintah dasar algoritma


14. Gambarkan flowchart untuk nomor 13 (10)
15. Selesaikan operasi di bawah ini (10)
a. x = 4 + 5 * 2
b. x = 50 – 2 ^ 2 + 2
c. x = 5 * 4 / 2 – 5
d. x = 6 – 4 + 8 + (8/2)
e. x = 10 / 2 * 2 + 2

3 komentar:

  1. nama: dedah nurhasanah
    jelaskan lagi tentang perintah Do, Repeat dan Flowchart.
    bagaimana cara belajar algoritma yang efektif

    BalasHapus
  2. Ini mah bukan nanya, tapi nyuruh. Tapi nggak apa-apa. Btw. terimakasih masukannya.

    BalasHapus
  3. Dalam praktek secara sederhana, dalam pemrograman, seorang programmer membagi permasalahan secara umum kedalam tiga hal pokok.
    1. Apa saja yang jadi masukan(input)
    2. Apa saja yang jadi proses
    3. Apa saja yang jadi input.

    Perintah Do, Repeat merupakan bagian proses yang dalam algoritma disebut perulangan. Maksud perulangan adalah suatu kondisi yang terus-menerus dilakukan sampai ada suatu kondisi atau syarat berhentinya perulangan. Selama tidak ada jalan keluar (exit) dalam perulangan menyebabkan prosesor akan terus-menerus melakukan perintah yang diberikan kepadanya.
    Dalam pascal pasangan DO adalah WHILE, kalau diterjemahkan dalam bahasa sehari-hari, Kerjakan ....(perintah tertentu) selama persyaratan masih terpenuhi.
    Sama juga seperti Repeat... Until.

    BalasHapus

Nuhun sudah komentar