Académique Documents
Professionnel Documents
Culture Documents
NIM : 1504505068
Kelas : Algoritma (A)
TUGAS AKHIR
SOAL :
Carilah pengertian dan contoh dari :
-
A.
Berikut adalah hal-hal yang harus diketahui dalam analisis masalah supaya kita
mengetahui bagaimana permasalahan tersebut:
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia.
d. Operator yang tersedia.
e. Syarat atau kendala yang harus dipenuhi.
2) BUAT 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
subbagiansubbagian 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.
Metode Diagonal
Algoritma diagonal sangat berguna bila area pencarian memiliki ukuran yang luas.
Hal ini dikarenakan metode ini memanfaatkan pencarian secara diagonal dengan
memasukkan semua elemen yang berada di garis diagonal dari node akar sampai node akhir
ke dalam antrian, kemudian menghubungkannya secara diagonal. Jika dijelaskan dalam
gambar, akan terlihat sebagai berikut :
Contoh
penggunaan metode diagonal adalah pada prosedur Breadth First Search (BFS). Prosedur
Breadth First Search merupakan pencarian yang dilakukan dengan mengunjungi tiap-tiap
node secara sistematis pada setiap level hingga keadaan tujuan (goal state) ditemukan.
Pada implementasinya, algoritma BFS mempunyai beberapa variasi pencarian. Yang
akan dibahas di sini adalah metode pencarian secara diagonal dan bi-directional. Algoritma
diagonal BFS sangat berguna bila area pencarian memiliki ukuran yang luas. Hal ini
dikarenakan, memanfaatkan pencarian secara diagonal dengan memasukkan semua elemen
yang berada di garis diagonal dari node akar sampai node akhir ke dalam antrian, kemudian
menghubungkannya secara diagonal.
C.
Parallelism
Algoritma parallel merupakan algoritma yang dapat dieksekusi dalam satu waktu pada
banyak perangkat processing yang berbeda, dan pada akhirnya akan digabungkan kembali
untuk mendapatkan hasil yang benar.
Teknik algoritma parallel, sekalipun didukung oleh teknologi prosesor yang
berkembang sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal
kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism)
untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang
sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitungan
aerodinamika dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel,
perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis
algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma
untuk menyelesaikan masalah numerik, karena masalah numerik merupakan salah satu
masalah yang memerlukan kecepatan komputasi yang sangat tinggi.
Control Parallelism :
Penerapan operasi-operasi berbeda terhadap elemen-elemen data yang berbeda secara
bersamaan. Pada control parallelism dapat terjadi aliran data antar proses-proses dan
kemungkinan terjadi aliran data yang kompleks/rumit.
Pipeline merupakan satu kasus khusus dari control parallelism dimana aliran data
membentuk jalur yang sederhana.
w2
w1
SEKUENSIAL
w5 w4 w3 w2 w1
PIPELINED
w4
w1
w5
w2
w6
w3
DATA PARALLELISM
[Quinn 1994]
Contoh :
Perhatikan ke-empat taman yang harus dirawat berikut ini :
a. Tanaman Pagar
b. Lapangan rumput
Nama Pekerjaan
Pekerja
Ali ,
a
b
c. Kebun bunga
Budi ,
Cipto,
Dadang,
Edi
2. Memangkas rumput
Frans,
Gugun
Heru,
Indra,
Joko
4. Menyiram taman
Ali
Pekerjaan 4 dapat dilakukan jika ketiga pekerjaan 1, 2 dan 3 telah selesai. Pekerjaan 1, 2
dan 3 dapat dilakukan secara bersamaan, sebagai contoh control parallelism. Masing-masing
pekerjaan adalah contoh data parallelism. Sementara pekerjaan 4 dikerjakan pada sebuah
taman, pekerjaan 1, 2 dan 3 dapat dikerjakan pada satu taman yang lain.
D.
Dalam pararelism juga terdapat teknik pengurutan (sorting) dengan cara menyortir
daftar panjang N (misalnya, menempatkan buku telepon campur aduk ke dalam urutan).
Pertama-tama algoritma membagi daftar masukan menjadi dua bagian, menyortir mereka
berdua secara rekursif, dan kemudian menggabungkan bagian yang telah diurutkan.
Penggabungan dicapai dengan berulang kali membandingkan daftar terkecil (diletakkan
pertama) elemen dalam setiap bagian.
Contoh pengurutan dalam parallelism :
1. jika L terdiri dari satu elemen maka diurutkan;
2. bila tidak maka dinyatakan melakukan hal berikut:
a. dibagi menjadi dua bagian L, L1 dan L2;
b. urutkan elemen pada-L1;
c. urutkan elemen pada-L2;
d. gabungan hasil pengurutan ke daftar tunggal-L.