1.1 Kuliah Alg dan Struktur Data - Pendahuluan.pptx

Full Transcript

Algoritma dan Struktur Data Andri Hidayat, S.T., M.Kom. Politeknik Negeri Sambas Agustus 2024 Pendahuluan Pengertian Algoritma Algoritma adalah urutan langkah- langkah logis penyelesaian masalah yang disusun secara sistematis dan logis Dalam beberapa konteks, alg...

Algoritma dan Struktur Data Andri Hidayat, S.T., M.Kom. Politeknik Negeri Sambas Agustus 2024 Pendahuluan Pengertian Algoritma Algoritma adalah urutan langkah- langkah logis penyelesaian masalah yang disusun secara sistematis dan logis Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu Asal kata Algoritma Kata algoritma diambil dari nama ilmuan muslim yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi (780-846 M). Al-Khuwarizmi dibaca orang barat menjadi Algorism. Pertimbangan dalam pemilihan algoritma: 1. Algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah pastilah algoritma tersebut bukanlah algoritma yang baik. 2. Seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya. 3. Efisiensi algoritma Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat Notasi penulisan algoritma Dengan menyatakan langkah- langkah algoritma dalam untaian kalimat deskriftif Pseudocode adalah bentuk informal untuk mendeskripsikan algoritma yang mengikuti struktur bahasa pemrograman tertentu Dengan mengunakan diagram alir (flowchart) Beda Algoritma dan Program  Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma.  Program ditulis dengan menggunakan bahasa pemrograman.  Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.  Beberapa pakar memberi formula bahwa: Program = Algoritma + Bahasa (Struktur Data) Keuntungan pembuatan algoritma: 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, Hal-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 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 kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. 6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Hal yang harus diperhatikan pada saat translasi: 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 kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan. e. Tampilan hasil Pada saat membuat algoritma kita tidak memikirkan 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. Algoritma adalah “Jantung” ilmu komputer atau informatika.  Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari juga banyak terdapat proses yang dinyatakan dalam suatu algoritma. Contoh: Membuat masakan, Membuat Kue (Resep) Merakit TV, dll Pemroses Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Jadi suatu pemroses harus: 1. Mengerti setiap langkah dalam algoritma. 2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut. Contoh Algoritma dalam Kehidupan Sehari-hari Secara garis besar komputer tersusun atas Empat Komponen Utama Mekanisme kerja keempat komponen di atas:  Pertama, program dimasukkan ke dalam memori komputer.  Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasi operasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran  (misalnya dengan menampilkannya di layar monitor). Menilai Sebuah Algoritma Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola). Menilai Sebuah Algoritma (Cont.) Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh: Tambahkan 1 atau 2 pada x. Instruksi tersebut terdapat keraguan. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh: Hitung akar 2 dengan presisi sempurna. Instruksi tersebut tidak efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma. Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate? Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan. Flowchart Flowchart Penggambaran secara grafik dari langkah langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Tujuan Flowchart biasanya digunakan untuk mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. PENGERTIAN DASAR FLOWCHART Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma 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. Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman: Secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu:  Input,  Proses pengolahan dan  Output Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:  START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.  READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.  PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.  WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.  END, mengakhiri kegiatan pengolahan. Beberapa anjuran dalam penyusunan flowchart:  Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.  Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.  Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. Kasus: Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang. Solusi: Perumusan untuk mencari luas persegi panjang adalah: L = p. l di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi. Keterangan 1: 1. Simbol pertama menunjukkan dimulainya sebuah program. 2. Simbol kedua menunjukkan bahwa input data dari p dan l. 3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l 4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga. 5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End. 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 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) Latihan 1. Buatlah sebuah rancangan program dengan menggunakan flowchart untuk menghitung luas lingkaran! 2. Belajar memprogram dan belajar bahasa pemrograman adalah dua hal yang berbeda. Jelaskan!

Use Quizgecko on...
Browser
Browser