Tugas2 mata kuliah PTI
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.
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.
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
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:
- Bagan alir sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman.
- Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas.
- Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhirnya (diawali dari satu titik START dan diakhiri dengan END).
- Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata yang mewakili suatu pekerjaan, misalnya:
- “Persiapkan” dokumen
- “Hitung” gaji - Masing-masing kegiatan di dalam bagan alir harus di dalam urutan yang semestinya.
- Kegiatan yang terpotong dan akan disambung di tempat lain harus ditunjukkan dengan jelas menggunakan simbol penghubung.
- Gunakanlah simbol-simbol bagan alir yang standar.
Input
Secara garis besar,
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
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
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.
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
Posting Komentar