Tugas2 mata kuliah PTI

Microsoft Word 12">

PENEMU ALGORITMA

Algoritma pertama kali diperkenalkan oleh Ahli Matematika yang bernama Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. Ditinjau dari asal usul kata, kata algoritma sendiri mempunyai sejarah yang unik. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab [KNU73]. Anda dikatakan algorist jika anda menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata algorism ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut. Kata algorism 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 kita juga memperoleh akar kata “aljabar” (algebra). Perubahan dari kata 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 sudah biasa/ lumrah, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya [PAR95]. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.

PENGERTIAN LOGIKA DAN ALGORITMA

Pengertian LOGIKA:

Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang memiliki suatu tujuan. Jadi pengertian logika adalah ilmu berpikir / cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.

Pengertian ALGORITMA:

Pada Merriam-Webster’s Collegiate Dictionary, istilah algoritma diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau menyelesaikan suatu tugas. Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan algoritma sebagai urutan logis pengambilan keputusan untuk pemecahan masalah.

Algoritma adalah urutan langkah – langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Logis merupakan kunci dari sebuah algoritma. Langkah – langkah dalam algoritma harus logis dan bernilai benar atau salah.

BAGAIMANA ALGORITMA DIEKSPRESIKAN

Algoritma dapat diekpresikan dalam bahasa manusia, menggunakan presentasi grafik melalui sebuah FlowChart (diagram alir) ataupun melalui PseudoCode (yang menjembatani bahasa manusia dengan bahasa pemrograman).

Contoh cara menghitung luas segitiga.

Melalui bahasa manusia:
1. Tentukan nilai Alas
2. Tentukan nilai Tinggi
3. Hitung nilai Luas dengan formula Alas kali Tinggi dibagi 2
4. Tampilkan hasil perhitungan Luas

Melalui Pseudocode:

baca A

baca T

L = A * T / 2

Tulis L

FLOWCHART

Alat bantu untuk menuliskan Logika dan Algoritma, salah satunya adalah FLOWCHART.

Pengertian FLOWCHART:

gambaran dalam bentuk diagram alir dari algoritma dalam suatu program atau prosedur sistem secara logika, yang menyatakan arah alur program dalam menyelesaikan suatu masalah.

SIMBOL Flowchart :




Simbol untuk menuliskan data/input

maupun hasil/output.

Simbol yang memproses proses/pernyatan program.

Simbol untuk menuliskan hasil proses eksekusi untuk dokumentasi.

Ssimbol bagi pembaca data/input yang menggunakan kartu berlubang.

nandakan awal dan akhir program.

Penghubung.

Arah/alir proses.




Simbol untuk melakukan tindakan

pilihan berdasarkan terpenuhi atau tidaknya suatu syarat yang di tetapkan.

Pedoman-pedoman dalam Membuat Flowchart:

  1. Bagan alir sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman.
  2. Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas.
  3. Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhirnya (diawali dari satu titik START dan diakhiri dengan END).
  4. Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata yang mewakili suatu pekerjaan, misalnya:
    - “Persiapkan” dokumen
    - “Hitung” gaji
  5. Masing-masing kegiatan di dalam bagan alir harus di dalam urutan yang semestinya.
  6. Kegiatan yang terpotong dan akan disambung di tempat lain harus ditunjukkan dengan jelas menggunakan simbol penghubung.
  7. Gunakanlah simbol-simbol bagan alir yang standar.

Input

Secara garis besar, Ada 3 bagian utama dalam flowchart :





Notasi Algoritma

Notasi algoritma bukan notasi bahasa pemrograman,sehingga siapapun dapat membuat notasi algoritma yang berbeda.Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti.Meskipun notasi algoritma bukan notasi baku namun kepatuhan terhadap notasi perlu diperhatikan untuk menghindari kekeliruan.

Beberapa notasi dalam penulisan algoritma :

1.Notasi I : menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif.

Dengan notasi bergaya kalimat deskriptif, deskripsi setiap langkah dapat dijelaskan dengan bahasa yang gamblang.Misalnya, proses diawali dengan kata kerja seperti 'baca', 'hitung' , 'ganti' dan sebagainya.Sedangkan pernyataan kondisional dinyatakan dengan 'jika....' , 'maka....'.

Notasi ini bagus untuk algoritma yang pendek ,namun untuk masalah yang besar notasi ini tidak mungkin dipakai.Selain itu,konversi dari notasi algoritma ke bahasa pemrograman cendrung relatif sukar.

2.Notasi II: menggunakan diagram alir(flow-chart).

Diagram alir populer pada awal-awal era pemrograman dengan komputer.Diagram alir lebih menggambarkan aliran instruksi didalam program secara visual ketimbang memperlihatkan struktur program.Notasi algoritma ini juga cocok untuk masalah kecil, tidak cocok untuk masalah besar karena akan memerlukan berlembar halaman kertas untuk menggambarkan aliran proses program.

3. Notasi III: menggunakan pseudo-code

Pseudocode (pseudo artinya semu atau tidak sebenarnya) adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi seperti bahasa C.Hasil pengamatan memperlihatkan bahwa bahasa pemrograman umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi, seperti notasi if-then-else, while-do,repeat-until,read, write dan sebagainya. Berdasarkan pengamatan tersebut, maka didefinisikan bahwa notasi algoritma yang dapat menjelaskan perintahnya dengan bahasa yang jelas tanpa membingungkan pembaca bisa disebut dengan notasi algoritma menggunakan pseudo-code. Tidak seperti bahasa program yang direpotkan dengan tanda titik koma dan sebagainya, kata-kata khusus,indeks,format, dan lainnya, maka dengan pseudo-code ini akan lebih memudahkan dan menguntungkan. Keuntungan penggunaan notasi pseudo-code ini adalah kemudahan mengkonversinya kebahasa pemrograman, karena terdapat korespondensi antara setiap pseudo-code dengan notasi bahasa program.Korespondensi ini dapat diwujudkan dengan tabel translasi dari notasi algoritma ke notasi bahasa program

Aturan Penulisan Algoritma

Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis alam bentuk notasi apapun , asalkan mudah dibaca dan dimengerti. Tidak ada notasi yang baku dalam penulisan teks algoritma. Tiap orang dapat membuat aturan penulisan dan algoritma sendiri.Namun, agar notasi algoritma dapat dengan mudah ditranslasi ke alam notasi bahasa pemrograman, maka sebaiknya notasi algoritma itu berkoresponden dengan notasi bahasa pemrograman secara umum.

Contoh perintah :Tulis nilai x dan y

Dalam notasi algoritma menjadi : write (x,y)

Dalam Bahasa Turbo C ditulis : printf("%d %d",x,y);

Tipe, Nama, dan Nilai

Tipe

Pada umumnya program komputer bekerja dengan memanipulasi objek (data) di dalam memori. Objek yang akan diprogram bermacam-macam tipenya, misalnya tipe numerik,karakter,string, dan record(rekaman).

Tipe data dapat dikelompokan menjadi 2, yaitu: tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang langsung dapat dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan.

Suatu tipe diacu dari namanya.Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan didalam ranah (domain)nilai. Operasi-operasi (beserta operator) yang dapat dilakukan terhadap tipe tersebut juga didefinisikan. Dengan kata lain suatu tipe dinyatakan dengan namanya,ranah nilai yang dikandungnya,cara menuliskan konstantanya, dan operasi yang dapat dilakukan padanya.

Tipe Dasar

Dalam bahasa pemrograman yang termasuk tipe dasar adalah :

1. bilangan logika

2. bilangan bulat

3. karakter atau string

4. bilangan riil

Tipe Bentukan

Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram (user define). Tipe bentukan disusun oleh satu atau lebih tipe dasar. Ada dua macam tipe bentukan yaitu:

1.Tipe dasar yang diberi nama dengan nama tipe baru contoh : tipe BilanganBulat : integer

Variabel BilanganBulat adalah tipe bilangan bulat yang sama saja dengan tipe integer. Misalkan kita mempunyai sebuah variabel yang bernama X dan bertipe BilanganBulat, maka artinya variabel X tersebut juga bertipe integer.

2.Rekaman (rekord).

Rekaman disusun oleh satu atau lebih field.Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah dideinisikan sebellumnya.Nama record itentukan oleh pemrogram. Karena stukturnya yang diusun atas field-field, maka rekaman inamakan juga tipe terstruktur(stuctured type).

Nama

Setiap objek dialam mempunyai nama.Nama diberikan agar objek tersebut mudah diidentifikasi, diacu, dan dibedakan dari objek lainya.Di dalam algoritma nama dipakai sebagai pengidentifikasi "sesuatu" dan pemrogram mengacu "sesuatu" itu melalui namanya. Karena itu tiap nama haruslah unik, tidak boleh ada dua buah nama yang sama.

Di dalam algoritma "sesuatu" yang diberi nama dapat berupa :

1.Variabel

2.Konstanta

3.Tipe Bentukan

4.Nama Fungsi

5.Nama Prosedur

Suatu hal yang penting untuk diperhatikan adalah, nama sebaiknya interpretatif, yaitu mencerminkan nilai intrinsik atau fungsi yang dikandungnya.Pemrogram sangat dianjurkan untuk memberikan penjelasan terhadap nama yang didefinisikan.

Semua nama yang digunakan dalam algoritma harus didefinisikan atau dideklarasikan dibagian deklarasi .Bagian deklarasi dipakai sebagai tempat mengacu suatu kata untuk diketahui makna atau terjemahannya.Tempat untuk menjelaskan nama dan tipe dari nama tersebut.

Nilai

Nilai adalah besaran dari tipe data yang sudah didefinisikan.Nilai dapat berupa isi yang disimpan oleh nama variabel atau nama konstanta,nilai dari hasil perhitungan, atau nilai yang dikirim oleh fungsi.Algoritma pada hakikatnya adalah memanipulasi nilai yang disimpan didalam elemen memori. Nilai yang dikandung oleh variabel dimanipulasi antara lain dengan cara : mengisikannya ke variabel lain yang bertipe sama, dipakai untuk perhitungan, atau dituliskan ke piranti keluaran.

Contoh algorima : mencetak stirng "Halo, apa kabar?" ke piranti keluaran.

Versi 1. String "Halo, apa kabar?" langsung dicetak tanpa menggunakan variabel.

Algoritma :

Deklarasi

(tidak ada)

Deskripsi

write ("Halo,apa kabar?")

Versi 2.String "Halo,apa kabar?" disimpan di dalam sebuah variabel bertipe string.

Algoritma :

Deklarasi

ucapan : string

Deskripsi

ucapan <------ 'Halo,apa kabar?'

write (ucapan)

Versi 3.String "Halo,apa kabar?" disimpan sebagai konstanta

Algoritma:

Deklarasi

const ucapan = 'Halo,apa kabar?'

Deskripsi

write (ucapan)

Keluaran yang dihasilkan oleh algoritma versi 1, 2, dan 3 adalah :

Halo, apa kabar?

URUTAN / RUNTUNAN

Algoritma merupakan runtunan(sequence) satu atau lebih instruksi,yang berarti bahwa :

1. Tiap instruksi dikerjakan satu persatu.

2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.

3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi yang tertulis di algoritma.

4. Akhir instruksi merupakan akhir dari algoritma.

Urutan instruksi didalam algoritma sangat penting.Urutan instruksi menunjukan urutan logika penyelesaian masalah.

PENGULANGAN

Salah satu kelebihan komputer dibandingkan manusia adalah kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal lelah dan bosan.Pengulangan prose atau kalang(repetition atau loop) dapat dilakukan ejumlah kali atau sampai suatu kondisi tercapai.

Struktur Pengulangan

Secara umum terdiri atas 2 bagian:

1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan.Kondisi ini ada yang secara eksplisit oleh pemrogram atau dikelola seniri oleh komputer (implisit).

2. Badan pengulangan, yaitu bagian algoritma yang diulang.

Struktur pengulangan biasanya disertai dengan bagian:

1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.

2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan.

Inisialisasi dan terminasi tidak selalu harus ada(optional), namun pada berbagai kasus inisialisasi umumnya diperlukan.

Struktur pengulangan secara umum :

awal pengulangan

badan pengulangan

akhir pengulangan

Di dalam algoritma terdapat beberapa macam struktur pengulangan yang berbeda.Beberapa struktur dapat dipakai untuk masalah yang sama,namun ada notasi pengulangan yang hanya cocok untuk masalah tertentu saja.Pemilihan struktur pengulangan yang tepat bergantung pada masalah yang akan diprogram.Banyak sekali notasi struktur pengulangan, seperti :

1.Struktur For

Struktur For dipakai untuk menghasilkan pengulangan sebanyak n kali yang sudah dispesifikasikan.Jumlah pengulangan diketahui atau dapat dipastikan sebelum eksekusi program.Bentuk umumnya ada 2 macam

a.Menaik (ascending)

for pencacah <------------- nilai_awal to nilai_akhir do

aksi

endfor

b.Menurun(descending)

for pencacah <-------------nilai_akhir downto nilai_awal do

aksi

endfor

2. Struktur While

Bentuk umum struktur While adalah :

while kondisi do

aksi

endwhile

Aksi (runtunan aksi) akan dilaksanakan berulangkali selama konii bernilai true.Jika kondisi bernilai false maka pengulangan akan selesai.Agar kondisi yang mula-mula bernilai true menjadi bernilai false maka harus ada suatu nilai pengubah kondisi.

3. Struktur Repeat

Bentuk umum struktur Repeat adalah :

repeat

aksi

until kondisi

Pengulangan ini mendasarkan pada kondisi boolean.Aksi didalam badan kalang diulang sampai konisi boolean bernilai true.Jika masih false maka pengulangan akan terus berlangsung untuk itu diperlukan atau aksi yang mengubah nilai pengubah kondisi. Struktur repeat memiliki makna yang sama dengan while, dan dalam beberapa masalah kedua struktur tersebut komplemen satu sama lain.

Yang harus diperhatikan adalah bahwa pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menunjukan algoritma yang salah.

CONTOH-CONTOH KASUS LOGIKA DAN ALGORITMA

Contoh kasus 1

Buat algoritma dan Flowchart untuk Menghitung Luas Persegi Panjang:

Pekerjaan:
Rumus:
LuasPersegiPanjang = Panjang x Lebar
Algoritma:
1.Tentukan nama variabel yang akan menampung data Panjang, lebar dan luas persegi panjang.
2.Masukkan (inputkan) data Panjang dan Lebar pada variabel yang sudah ditentukan.
3.Hitung Luas persegi panjang.
4.Tampilkan (outputkan) Luas persegi panjang.

Contoh kasus 2

Algoritma Cara Menentukan Bilangan Ganjil & Genap :
1. Masukkan bilangan sembarang (a,b) dimana a & b adalah bilangan real
2. Bagi kedua bilangan tersebut dengan bilangan 2
3. Hitung sisa hasil bagi pada langkah 2
4. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil
5. Cetak hasil

Contoh kasus 3

menghitung konversi suhu dari Celcius menjadi Reamur dan Farenheit.

  • Input: suhu dalam Celcius
  • Proses: R = 4/5 * C dan F = 9/5 * C + 32
  • Output: suhu dalam Reamur dan Farenheit

Contoh kasus 4

Algoritma Cara mengurutkan 3 angka :
1. Masukkan tiga angka bilangan sembarang
2. Tentukan bagaimana cara mengurutkan bilangan tersebut
3. Jika dimulai dari yang terkecil maka langkah2nya adalah
a. Tentukan bilangan terkecil
b. Urutkan bilangan terkecil sampai bilangan terbesar
4. Jika dimulai dari yang terbesar maka langkah2nya adalah
a. Tentukan bilangan terbesar
b. Urutkan bilangan terbesar sampai bilangan terkecil
5. Cetak hasil

Catatan:
1. Jika diurutkan mulai dari yang terkecil maka bilangan tersebut menggunakan proses ascending
2. Jika diurutkan mulai dari yang terbesar maka bilangan tersebut menggunakan proses descending

Komentar

Postingan populer dari blog ini

strategi pengujian perangkat lunak