Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
Dokumen tersebut membahas tentang metode Quine-McCluskey untuk menyederhanakan fungsi Boolean. Metode ini lebih tepat digunakan untuk fungsi Boolean dengan jumlah variabel lebih dari empat karena metode aljabar dan peta Karnaugh sulit menyederhanakannya. Metode Quine-McCluskey melibatkan dua langkah yaitu menentukan prime implicant dan memilih prime implicant inti untuk mendapatkan hasil penyederhanaan.
Dokumen tersebut membahas tentang pengertian program komputer, algoritma, dan flowchart serta simbol-simbol yang digunakan dalam flowchart. Juga memberikan contoh flowchart untuk menghitung luas segitiga dan menjumlahkan dua bilangan.
Proposisi adalah kalimat deklaratif yang bernilai benar atau salah. Proposisi dapat dikombinasikan menggunakan operator logika seperti dan, atau, dan tidak. Proposisi dapat dibedakan berdasarkan bentuk, sifat, kualitas, dan kuantitasnya.
Penyelesaian persamaan linier simultan melibatkan penentuan nilai variabel bebas yang memenuhi semua persamaan yang diberikan. Metode yang dapat digunakan antara lain metode eliminasi Gauss, metode eliminasi Gauss-Jordan, dan metode iterasi Gauss-Seidel. Metode eliminasi Gauss mengubah matrik koefisien menjadi bentuk segitiga atas atau bawah dengan operasi baris elementer.
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
Dokumen tersebut membahas tentang metode Quine-McCluskey untuk menyederhanakan fungsi Boolean. Metode ini lebih tepat digunakan untuk fungsi Boolean dengan jumlah variabel lebih dari empat karena metode aljabar dan peta Karnaugh sulit menyederhanakannya. Metode Quine-McCluskey melibatkan dua langkah yaitu menentukan prime implicant dan memilih prime implicant inti untuk mendapatkan hasil penyederhanaan.
Dokumen tersebut membahas tentang pengertian program komputer, algoritma, dan flowchart serta simbol-simbol yang digunakan dalam flowchart. Juga memberikan contoh flowchart untuk menghitung luas segitiga dan menjumlahkan dua bilangan.
Proposisi adalah kalimat deklaratif yang bernilai benar atau salah. Proposisi dapat dikombinasikan menggunakan operator logika seperti dan, atau, dan tidak. Proposisi dapat dibedakan berdasarkan bentuk, sifat, kualitas, dan kuantitasnya.
Penyelesaian persamaan linier simultan melibatkan penentuan nilai variabel bebas yang memenuhi semua persamaan yang diberikan. Metode yang dapat digunakan antara lain metode eliminasi Gauss, metode eliminasi Gauss-Jordan, dan metode iterasi Gauss-Seidel. Metode eliminasi Gauss mengubah matrik koefisien menjadi bentuk segitiga atas atau bawah dengan operasi baris elementer.
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAri Septiawan
Program menghitung tarif taksi berdasarkan jarak tempuh dengan menentukan tarif km pertama sebesar Rp. 2500 dan tarif km selanjutnya sebesar Rp. 1800. Jika jarak kurang dari 1 km, tarif tetap Rp. 2500.
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
Modul pratikum ini membahas algoritma dan pemrograman dalam bahasa Visual C++. Modul ini disusun oleh Edi Ismanto untuk mahasiswa Program Studi Pendidikan Informatika Universitas Muhammadiyah Riau. Modul ini memberikan pengertian dasar tentang Visual C++, tipe data, dan struktur program untuk membantu mahasiswa memahami dan mengimplementasikan algoritma serta program komputer menggunakan Visual C++.
Dokumen tersebut membahas tentang gerbang logika sebagai dasar pembentuk sistem elektronika digital yang berfungsi untuk mengubah input menjadi output logis berdasarkan sistem bilangan biner. Terdapat 7 jenis gerbang logika dasar yaitu AND, OR, NOT, NAND, NOR, Ex-OR, Ex-NOR yang diimplementasikan dalam bentuk IC. Gerbang logika dapat disederhanakan men
Metode pencarian heuristik merupakan teknik untuk meningkatkan efisiensi proses pencarian dalam state space dengan memilih cabang-cabang yang paling mungkin menyebabkan penyelesaian masalah. Metode-metode pencarian heuristik yang dijelaskan meliputi generate and test, hill climbing, best first search, dan simulated annealing.
Dokumen tersebut membahas tentang SQL (Structured Query Language) yang merupakan bahasa query untuk memanipulasi dan mengekstraksi data dari basis data relasional. Dokumen ini menjelaskan konsep dasar SQL meliputi DDL, DML, DCL, serta contoh-contoh query SQL seperti pembuatan tabel, insert, update, delete, select dan join data.
1. Tabel kebenaran dapat disederhanakan menggunakan peta Karnaugh untuk mendapatkan bentuk kanonik SOP dan POS
2. Peta Karnaugh memungkinkan penggabungan minterm/maxterm yang bertetangga untuk meminimalisir jumlah suku dalam bentuk kanonik
3. Metode ini berguna untuk menyederhanakan fungsi Boolean yang direpresentasikan dalam tabel kebenaran
Dokumen tersebut membahas tentang definisi dan jenis-jenis graf serta konsep dasar graf seperti simpul, sisi, derajat simpul, dan tetanggaan. Dijelaskan pula contoh-contoh penerapan graf dalam berbagai bidang seperti matematika, kimia, biologi, dan teknik informatika.
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
Dokumen tersebut membahas kompleksitas algoritma dan notasi O-besar untuk menentukan orde pertumbuhan fungsi waktu algoritma. Notasi O-besar digunakan untuk membandingkan beberapa algoritma penyelesaian masalah dan menentukan algoritma terbaik berdasarkan orde pertumbuhannya.
Makalah ini membahas tentang sistem bus dalam arsitektur komputer. Sistem bus merupakan penghubung antara CPU, memori, dan perangkat I/O untuk mentransfer data. Makalah ini menjelaskan pengertian sistem bus, struktur dan prinsip kerjanya, serta contoh sistem bus dan perkembangannya dari masa ke masa.
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
Kelly Garcia would be taken as a necessity in work areas as there are many international companies investing in Latin countries that just need trained staff who speak the language.
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAri Septiawan
Program menghitung tarif taksi berdasarkan jarak tempuh dengan menentukan tarif km pertama sebesar Rp. 2500 dan tarif km selanjutnya sebesar Rp. 1800. Jika jarak kurang dari 1 km, tarif tetap Rp. 2500.
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
Modul pratikum ini membahas algoritma dan pemrograman dalam bahasa Visual C++. Modul ini disusun oleh Edi Ismanto untuk mahasiswa Program Studi Pendidikan Informatika Universitas Muhammadiyah Riau. Modul ini memberikan pengertian dasar tentang Visual C++, tipe data, dan struktur program untuk membantu mahasiswa memahami dan mengimplementasikan algoritma serta program komputer menggunakan Visual C++.
Dokumen tersebut membahas tentang gerbang logika sebagai dasar pembentuk sistem elektronika digital yang berfungsi untuk mengubah input menjadi output logis berdasarkan sistem bilangan biner. Terdapat 7 jenis gerbang logika dasar yaitu AND, OR, NOT, NAND, NOR, Ex-OR, Ex-NOR yang diimplementasikan dalam bentuk IC. Gerbang logika dapat disederhanakan men
Metode pencarian heuristik merupakan teknik untuk meningkatkan efisiensi proses pencarian dalam state space dengan memilih cabang-cabang yang paling mungkin menyebabkan penyelesaian masalah. Metode-metode pencarian heuristik yang dijelaskan meliputi generate and test, hill climbing, best first search, dan simulated annealing.
Dokumen tersebut membahas tentang SQL (Structured Query Language) yang merupakan bahasa query untuk memanipulasi dan mengekstraksi data dari basis data relasional. Dokumen ini menjelaskan konsep dasar SQL meliputi DDL, DML, DCL, serta contoh-contoh query SQL seperti pembuatan tabel, insert, update, delete, select dan join data.
1. Tabel kebenaran dapat disederhanakan menggunakan peta Karnaugh untuk mendapatkan bentuk kanonik SOP dan POS
2. Peta Karnaugh memungkinkan penggabungan minterm/maxterm yang bertetangga untuk meminimalisir jumlah suku dalam bentuk kanonik
3. Metode ini berguna untuk menyederhanakan fungsi Boolean yang direpresentasikan dalam tabel kebenaran
Dokumen tersebut membahas tentang definisi dan jenis-jenis graf serta konsep dasar graf seperti simpul, sisi, derajat simpul, dan tetanggaan. Dijelaskan pula contoh-contoh penerapan graf dalam berbagai bidang seperti matematika, kimia, biologi, dan teknik informatika.
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
Dokumen tersebut membahas kompleksitas algoritma dan notasi O-besar untuk menentukan orde pertumbuhan fungsi waktu algoritma. Notasi O-besar digunakan untuk membandingkan beberapa algoritma penyelesaian masalah dan menentukan algoritma terbaik berdasarkan orde pertumbuhannya.
Makalah ini membahas tentang sistem bus dalam arsitektur komputer. Sistem bus merupakan penghubung antara CPU, memori, dan perangkat I/O untuk mentransfer data. Makalah ini menjelaskan pengertian sistem bus, struktur dan prinsip kerjanya, serta contoh sistem bus dan perkembangannya dari masa ke masa.
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
Kelly Garcia would be taken as a necessity in work areas as there are many international companies investing in Latin countries that just need trained staff who speak the language.
Get up to speed getting the most out of online marketing ivybridgeGet up to Speed
This document provides tips for optimizing online marketing strategies. It recommends focusing on search engine optimization, creating engaging content across multiple channels, prioritizing mobile usability, growing an email newsletter list, listening on social media, and using hashtags to reach audiences. The key messages are to make one's website the central hub for the customer experience, integrate online and offline marketing, and focus on creating high-quality content for multiple platforms.
The Major Trauma Centre and Youth Violence at St Mary's HospitalNicola Jackson
The Youth Violence Intervention Project launched this month at St Mary's Major Trauma Centre in Paddington. This is a snapshot of the research into gang violence in the area and how the youth violence intervention project can help lower these upsetting numbers.
Check out our feature in the Evening Standard for more information on the project- http://www.standard.co.uk/news/london/children-as-young-as-11-victims-of-gang-stabbings-in-london-9805482.html?origin=internalSearch
This document provides information about real estate agent Yvonne Motley and her services for selling a house. It summarizes her experience, marketing strategies, and process for helping clients accurately price their home and secure a qualified buyer. Testimonials from past clients praise Yvonne for her professionalism, communication, and expertise in making the home selling process smooth.
Making The most of online marketing Burnham on seaGet up to Speed
The document provides tips and strategies for digital marketing. It discusses optimizing reach through search engine optimization, the power of email newsletters, and being social. Key recommendations include making websites mobile responsive and ensuring good quality content and links. It also stresses listening on social media, creating visual and engaging content, using video, and content planning. Regularly checking progress and identifying actions, timescales and barriers is advised.
Communication Theories and Models Final Paperponcemarie
This document provides summaries of six films shown at the Cinema One Originals Film Festival in 2013. It discusses the plots and characters of the films "Woman of the Ruins", "Blue Bustamante", "Shift", and "Ganito Kami Noon, Paano Kayo Ngayon?". Communication theories like uncertainty reduction theory, attribution theory, cognitive dissonance, and interpersonal deception theory are identified as being present in some of the movie scenes. The document is a paper submitted by a student analyzing these films.
Benefits of superfast and day in life buy with confidence - plymouth 29.10Get up to Speed
Superfast broadband provides several benefits for businesses including cost savings through more effective marketing using social media, increased flexibility for remote and mobile work, improved geographic reach by accessing customers anywhere, and opportunities for innovation through easier collaboration and file sharing. It also improves reliability and security with cloud backup of data and systems. A support service called "Get Up to Speed" helps businesses and communities improve digital skills and adopt faster broadband.
Dokumen tersebut membahas tentang tipe data record dalam bahasa pemrograman Pascal. Record digunakan untuk menyimpan beberapa item data yang dapat berbeda tipe datanya. Setiap item data disebut field. Record dapat digunakan untuk merekam informasi tentang suatu subjek seperti data pegawai.
Water is a vital resource for all life on Earth. It covers about 70% of the planet's surface and is essential for drinking, agriculture, industry and transportation. Ensuring access to clean water is important for public health and economic development worldwide.
Get Up to Speed - Wellington Benefits of Superfast BroadbandGet up to Speed
Superfast broadband provides several benefits for businesses including cost savings, increased flexibility, improved geographic reach, better disaster recovery, and opportunities for innovation. Adopting cloud-based systems allows costs to shift from capital to operating expenditures, provides flexibility to work from anywhere, and improves collaboration both within companies and with external partners. Case studies show how businesses have reduced costs through more effective marketing, supported flexible workstyles, and gained the ability to introduce new digital services.
Una red local o LAN conecta computadoras dentro de un espacio físico limitado usando cable UTP. Está compuesta por un router que envía la señal Wi-Fi, un switch que conecta las computadoras para compartir datos, y un servidor que almacena datos de respaldo de todas las computadoras.
An EMP or CME could disable power grids worldwide by damaging electronics and infrastructure. An EMP is an electromagnetic pulse that can be caused by a nuclear bomb or solar storm, sending electrical currents that destroy anything in its path. If an EMP occurred, it would knock out power systems and critical infrastructure like water delivery. Preparing an emergency kit with supplies like food, water, and radios is recommended. Legislation is being considered to protect critical infrastructure from EMP events.
Dokumen tersebut membahas mengenai reksa dana sebagai instrumen investasi yang tepat untuk investor kecil karena mampu mencapai skala ekonomi dan manajemen profesional, meskipun tetap memiliki risiko seperti penurunan nilai unit dan likuiditas.
Array adalah tipe data terstruktur yang terdiri dari elemen-elemen dengan tipe data yang sama. Array memiliki indeks untuk mengakses elemen-elemennya dan jumlah elemennya tetap. Array dapat berdimensi satu atau dua dimensi, dan dapat diisi nilai secara eksplisit maupun implisit.
This document outlines the job objectives and responsibilities of a sales role. The objectives are to achieve company targets and maintain a good reputation. Responsibilities include identifying and satisfying customer needs, promoting products with strong product knowledge, gathering market intelligence while maintaining confidential company information, and optimizing costs and time. Regular reporting to management on tasks like sales, expenses, and feedback is also required.
Get up to speed cloud computing and apps yeovil 9.06.15Get up to Speed
This document discusses cloud computing and various cloud applications. It begins with introductions and an agenda. It then defines cloud computing and discusses its advantages like reducing costs and improving scalability. It outlines different types of cloud services like Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). It discusses how individuals and businesses are using the cloud for storage, backup, productivity apps, customer relationship management (CRM), accounting software, communication tools, and more. Specific applications and services mentioned include Dropbox, Google Drive, OneDrive, Box, CrashPlan, Backblaze, Carbonite, Amazon Glacier, Evernote, and Google Apps. It also covers voice
Ringkasan dokumen tersebut adalah:
Rekursi dalam Python merupakan kondisi dimana sebuah fungsi dijalankan berulang kali dengan memanggil fungsi itu sendiri sampai pada kondisi base case. Contoh penerapannya adalah fungsi faktorial dan deret Fibonacci yang menyelesaikan masalah dengan memecahnya menjadi bagian yang lebih kecil hingga mencapai kondisi dasar.
1. Dokumen membahas beberapa metode numerik untuk menemukan akar persamaan, seperti metode biseksi, regula falsi, iterasi, dan Newton Raphson.
2. Metode regula falsi lebih cepat dibandingkan metode biseksi dalam mencapai toleransi yang ditentukan.
3. Semua metode mampu menemukan akar yang sama, namun metode Newton Raphson paling cepat karena memerlukan sedikit iterasi.
Dokumen tersebut membahas tentang fungsi rekursif (berulang) dalam pemrograman dasar. Fungsi rekursif didefinisikan sebagai fungsi yang memanggil dirinya sendiri. Contoh kasus yang dapat diselesaikan secara rekursif adalah perhitungan faktorial dan bilangan Fibonacci. Dokumen juga membandingkan pendekatan rekursif dan iteratif beserta kelebihan dan kekurangannya.
Teks tersebut membahas tentang algoritma dan pemograman pseudo pascal untuk deret aritmatika. Teks tersebut menjelaskan pengertian algoritma, struktur perulangan dalam pascal seperti while-do, repeat-until, dan for-do. Teks tersebut juga memberikan contoh soal dan pembahasan mengenai penerapan struktur perulangan untuk menyelesaikan masalah deret aritmatika dan geometri.
Rekursi adalah suatu kemampuan subrutin untuk memanggil dirinya sendiri. Adapun suatu subrutin yang memanggil dirinya seperti itu dinamakan subrutin rekursif. Pada beberapa persoalan, kemampuan seperti itu sangat berguna karena mempermudah solusi.
Dokumen tersebut membahas tentang fungsi rekursif dan beberapa contoh penerapannya seperti faktorial, deret Fibonacci, FPB, dan Menara Hanoi. Fungsi rekursif adalah fungsi yang mendefinisikan dirinya sendiri dengan memanggil dirinya sendiri secara berulang sampai tercapai kondisi berhenti. Fungsi rekursif lebih singkat tetapi memakan memori lebih besar dibandingkan iteratif.
Dokumen tersebut membahas tentang algoritma rekursif dan fungsi rekursif. Secara singkat, dokumen menjelaskan bahwa (1) rekursi melibatkan pemanggilan fungsi oleh dirinya sendiri, (2) fungsi rekursif memiliki base case dan pemanggilan rekursif, dan (3) contoh fungsi rekursif seperti faktorial dan bilangan Fibonacci.
Perintah perulangan atau looping memudahkan pemrograman dengan perintah yang berulang. Dalam MATLAB terdapat perintah for...end, while...end, break dan continue untuk mengontrol jalannya eksekusi skrip. Perintah for...end berguna untuk menentukan jumlah perulangan secara eksplisit, sedangkan perintah lainnya memberikan fleksibilitas dalam mengontrol alur perulangan.
Dokumen tersebut membahas tentang fungsi (function) dalam algoritma dan pemrograman, termasuk bentuk umum fungsi, contoh fungsi faktorial, latihan soal menghitung fungsi, rekursif, contoh fungsi rekursif faktorial dan cara kerjanya, serta latihan soal menentukan suku Fibonacci dan operasi pangkat menggunakan rekursif. Terdapat pula tugas membuat program yang menampilkan daftar nilai mahasiswa beserta jumlah per indeks.
Dokumen tersebut membahas tentang turunan fungsi dan berbagai aturan untuk menentukan turunan fungsi aljabar, trigonometri, transenden, parameter, dan lainnya. Secara khusus, dibahas definisi turunan, sifat-sifat dan aturan dasar turunan, turunan fungsi aljabar, trigonometri, eksponensial, logaritma, parameter, hiperbolik, serta contoh penerapannya.
Dokumen tersebut membahas perbedaan antara perulangan rekursif dan iteratif serta contoh-contoh penerapannya seperti fungsi pangkat, faktorial, deret Fibonacci, dan masalah menara Hanoi. Rekursif melibatkan fungsi yang memanggil dirinya sendiri secara berulang, sedangkan iteratif menggunakan instruksi perulangan seperti for atau while.
Makalah analisa numerik dan komputasi tugas kelompokRahmank Sana-sini
Makalah ini membahas metode numerik untuk menyelesaikan persamaan linear dan non-linear dengan metode biseksi, regulasi falsi, dan iterasi. Metode-metode ini digunakan untuk menemukan nilai akar suatu persamaan dengan mempersempit interval pencarian secara berulang hingga mencapai nilai yang diinginkan.
Dokumen tersebut membahas tentang fungsi periodik dan deret Fourier. Fungsi dikatakan periodik jika nilainya berulang setiap periode tertentu. Deret Fourier digunakan untuk mengekspresikan fungsi berperiode menjadi jumlahan fungsi trigonometri. Deret Fourier akan konvergen jika fungsi dan turunannya kontinu pada interval yang ditentukan.
Dokumen tersebut merupakan abstrak dari penelitian yang bertujuan mengembangkan program komputer untuk mengetahui perbedaan kecepatan metode Biseksi dan Regula Falsi dalam menyelesaikan persamaan non-linear berdasarkan jumlah iterasi menggunakan bahasa Turbo Pascal. Penelitian ini menggunakan studi literatur dan diimplementasikan ke dalam program komputer.
Modul ini membahas tentang percabangan dalam pemrograman. Terdapat beberapa jenis pernyataan percabangan seperti IF, IF-ELSE, dan CASE. IF digunakan untuk mengeksekusi kode jika kondisi terpenuhi, sedangkan IF-ELSE mengeksekusi kode untuk kondisi benar atau salah. CASE digunakan untuk menyederhanakan percabangan multi-cabang. Modul ini juga memberikan contoh kode dalam bahasa C++ dan Pascal untuk seti
Fungsi adalah modul program yang mengembalikan nilai. Fungsi dapat menerima parameter dan mengembalikan hasil berupa nilai tertentu. Fungsi mirip prosedur namun harus menentukan tipe data hasil yang dikembalikan. Contoh fungsi adalah menghitung faktorial, pangkat, atau mengembalikan nilai terbesar dari dua nilai.
Modul ini membahas konsep sub program dalam bahasa Pascal yang terdiri dari prosedur dan fungsi. Prosedur adalah sub program yang berfungsi untuk memecahkan masalah menjadi modul-modul yang lebih kecil. Prosedur dapat menerima parameter baik secara nilai maupun acuan, yang memengaruhi perubahan nilai variabel antara prosedur dan program utama.
Dokumen membahas tentang fungsi standar dan input output dalam bahasa pemrograman Pascal. Terdapat beberapa fungsi matematika standar seperti sin, cos, ln, dan lainnya. Dokumen juga menjelaskan cara membaca input dari keyboard menggunakan read dan readln serta menampilkan output ke layar menggunakan write dan writeln. Selain itu dibahas pula tentang pengaturan letak kursor di layar menggunakan prosedur clrscr, gotoxy, dan clreol.
Modul ini membahas tentang pengulangan dalam pemrograman. Terdapat beberapa jenis pengulangan seperti for dan while. Pernyataan for biasanya digunakan untuk pengulangan dengan jumlah iterasi yang tetap, sedangkan while digunakan untuk pengulangan dengan kondisi boolean yang belum diketahui. Modul ini juga membahas tentang pengulangan bersarang dan perbedaan antara while dan repeat until.
Modul ini membahas tentang runtunan (urutan) instruksi dalam algoritma. Urutan instruksi penting karena menunjukkan urutan logika penyelesaian masalah. Urutan instruksi yang berbeda dapat menghasilkan keluaran yang sama atau berbeda tergantung masalahnya. Contohnya, program konversi detik ke jam-menit-detik dan program pertukaran nilai variabel.
1. Modul 11
FUNGSI REKURSIF
11.1 Pengertian Rekursi
Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri. Fungsi
yang seperti ini disebut fungsi rekursif (recursive function). Dalam sebuah fungsi rekursif
pemanggilan dapat terjadi berulang kali. Karena ada proses yang berulang-ulang maka harus
ada suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah
berhenti sampai memori yang digunakan tidak dapat menampung lagi.
Pemecahan masalah dengan pendekatan rekursif dapat dilakukan jika masalah
tersebut dapat didefinisikan secara rekursif, yaitu masalah dapat diuraikan menjadi masalah
sejenis yang lebih sederhana.
Listing Program 11.1 Contoh Fungsi Rekursi
procedure rekursi(n: integer);
begin
if n > 0 then
begin
writeln('rekursi ',n);
rekursi(n-1);
end;
end;
var p: integer;
begin
p:=3;
rekursi(p);
end.
2. Hasil Running:
Dalam membuat fungsi rekursi harus ditentukan kondisi perhentian. Pada contoh
listing program 11.1 di atas kondisi perhentiannya adalah jika nilai n sudah lebih kecil atau
sama dengan 0. Setiap kali fungsi memanggil dirinya sendiri, nilai dari n dikurangi dengan
nilai 1, sehingga nilai n akhirnya akan menjadi nol dan proses rekursi akan diakhiri, sehingga
fungsi ini akan memanggil dirinya sendiri sebanyak n kali.
Contoh untuk menggambarkan fungsi rekursif yang sering digunakan adalah fungsi
untuk mendapatkan nilai faktorial dari suatu bilangan bulat.
Listing Program 11.2 Program Faktorial
Hasil Running:
Rekursi 3
Rekursi 2
Rekursi 1
Function faktorial(x: integer): longint;
Begin
If x<= 1 then
Faktorial := 1
Else
Faktorial := x * faktorial(x-1);
End;
Var n:integer;
Begin
Writeln(‘Menghitung N Faktorial (N!)’);
Write(‘Masukkan N : ’); readln(n);
Writeln(n,’ ! = ‘, faktorial(n));
End.
Menghitung N Faktorial (N!)
Masukkan N : 5
5 ! = 120
3. Program 11.2 di atas dapat dijelaskan sebagai berikut:
1. Fungsi utama memanggil fungsi faktorial() dengan mengirimkan nilai n = 5 untuk
parameter formal x, yang maksudnya akan dilakukan perhitungan sebanyak 5 faktorial.
2. Jika nilai dari x pertama kali yang diberikan oleh fungsi utama bernilai kurang dari atau
sama dengan satu, maka hasil faktorial yang akan diberikan adalah bernilai 1.
3. Jika nilai x pertama kali yang diberikan oleh fungsi utama lebih besar dari 1, maka proses
rekursi akan dilakukan misalnya nilai x = 5 , maka proses rekursi yang pertama adalah:
Faktorial= 5 * faktorial(4);
Proses ini akan memanggil kembali fungsi dirinya sendiri dengan mengirimkan nilai 4
sebagai nilai x yang baru. Karena nilai x masih lebih besar dari 1 maka proses rekursi
kedua akan dilakukan dengan hasilnya adalah 4 * faktorial(3). Untuk x adalah 3, hasil
yang diperoleh oleh rekursi adalah 3 * faktorial(2) dan seterusnya sampai nilai x adalah 1.
Untuk nilai x sama dengan 1 ini, perintah faktorial:=1 akan mengembalikan proses ke
bagian yang memanggilnya.
Hasil akhir dari nilai yang akan dikembalikan oleh fungsi faktorial dari penjelasan di atas
untuk 5 faktorial dapat dituliskan sebagai berikut:
faktorial:= 5 * faktorial(4);
faktorial:= 4 * faktorial(3);
faktorial:= 3 * faktorial(2);
faktorial:= 2 * faktorial(1);
faktorial:= ( 5 * 4 * 3 * 2 * 1);
11.2 Perbandingan Rekursif dengan Iteratif
Kekurangan fungsi rekursif:
4. 1. Memerlukan memory yang lebih banyak untuk menyimpan activation record dan variabel
lokal. Activation record diperlukan waktu proses kembali kepada pemanggil.
2. Memerlukan waktu yang lebih banyak untuk menangani activation record.
Secara umum gunakan penyelesaian rekursif hanya jika:
1. Penyelesaian sulit dilaksanakan secara iteratif.
2. Efisiensi dengan cara rekursif sudah memadai.
3. Efisiensi bukan masalah dibandingkan dengan kejelasan logika program.
Jika sebuah masalah dapat diselesaikan dengan cara iteratif maka gunakan iteratif.
Jika penyelesaian dengan menggunakan iteratif memerlukan algoritma yang relatif rumit
maka dapat dicoba dengan pendekatan rekursif karena rekursif memerlukan sumber daya
yang lebih banyak.
Contoh program untuk membandingkan penggunaan itertif dan rekursif dapat dilihat
dalam program menampilkan deret fibonacci pada listing program 11.3 dan listing program
11.4 bawah ini.
Listing Program 11.3 Program Fibonacci dengan Rekursif
Function Fibo(N:word): word;
Begin
If n< 2 then
Fibo := N;
Else
Fibo := Fibo(N-2) + Fibo(N-1);
End;
Var
N,i : Word;
Begin
Writeln(‘Menampilkan deret Fibonacci’);
Write(‘Batas suku bilangan ke : ‘); readln(N);
Writeln(‘Deret ke ‘,N,‘ = ‘, Fibo(N));
Write(‘Deret fibonacci : ‘);
For i:= 1 to N do
write(fibo(i),’ ‘);
end.
5. Hasil Running:
Penjelasan program:
Deret fibonacci mempunyai nilai suku-suku bilangan berikut:
0, 1, 1, 2, 3, 5, 8, 13, 21, ............
Ciri khusus deret ini adalah tiap-tiap suku adalah hasil penjumlahan dari nilai dua suku
sebelumnya. Misalnya adalah nilai suku ke dua adalah penjumlahan nilai suku ke 0 (bernilai
0) dengan suku ke 1 (bernilai 1) jadi nilai suku ke 2 adalah sama dengan 1 (0 + 1). Nilai suku
ke tiga adalah nilai suku ke dua ditambah nilai suku ke satu. Misalnya untuk mencari bilangan
fibonacci ke- 5, maka urutan pengerjaannya adalah sebagai berikut:
Dari diagram terlihat bahwa untuk mendapatkan deret ke 5 dari deret fibonacci maka fungsi
fibo(4) dihitung satu kali, fungsi fibo(3) dihitung dua kali, fungsi fibo(2) dihitung tiga kali dan
fungsi fibo(1) dihitung dua kali. Hal ini menyebabkan proses lebih lama dan juga sumber daya
yang dibutuhkan untuk menangani proses ini lebih banyak.
Menampilkan deret Fibonacci
Batas suku bilangan ke : 5
Deret ke 5 = 5
Deret Fibinacci : 1 1 2 3 5
fibo(5)
fibo(3) fibo(4)
fibo(1) fibo(2) fibo(2) fibo(3)
fibo(1) fibo(2)
6. Listing Program 11.4 Program Fibonacci dengan Iteratif
Hasil Running:
uses wincrt;
Function fibo(n : word): word;
Var
fb1, fb2, fn, i : word;
begin
if n< 2 then fibo:=n
else
begin
fb1:= 0;
fb2:= 1;
for i:= 2 to n do begin
fn: = fb1;
fb1:= fb2;
fb2:= fn + fb2;
end;
fibo:= fb2;
end;
end;
var
x, i: word;
begin
writeln('Menampilkan deret Fibonacci'); writeln;
write('Batas suku bilangan ke : '); readln(x);
write('Deret ke ', x, ' = ',fibo(x)); writeln;
write('Deret fibonacci : ');
for i:= 1 to x do
write(fibo(i),' ');
end.
Menampilkan deret Fibonacci
Batas suku bilangan ke : 5
Deret ke 5 = 5
Deret fibonacci : 1 1 2 3 5
7. Penjelasan Program:
Dari listing program 11.4, terlihat bahwa setiap kali akan menghitung suku ke-n, maka nilai-
nilai suku sebelumnya akan digunakan kembali, yaitu nilai dari n-1(variabel fb1) dan nilai dari
n-2(variabel fb2). Pertama dihitung nilai dari deret ke-n, kemudian nilai dari deret n-1 diberikan
kepada deret n-2, dan nilai dari deret n diberikan kepada deret n-1.
Dengan cara iterasi ini, untuk menghitung nilai fibonacci(5) dapat dilakukan dengan cara:
Fb1(nilai variabel n-1) = 0
Fb2(nilai variabel n-2)=1
Untuk i = 2 (suku ke-2):
Fn = 0
Fb1 = 1
Fb2 = 0+1= 1
Untuk i = 3 (suku ke-3):
Fn = 1
Fb1 = 1
Fb2 = 1+1= 2
Untuk i = 4 (suku ke-4):
Fn = 1
Fb1 = 2
Fb2 = 1+2= 3
Untuk i = 5 (suku ke-5):
Fn = 2
Fb1 = 3
Fb2 = 2+3= 5
Hasil akhirnya adalah Fibo(5) adalah 5
===========
Latihan:
1. Apakah yang dimaksud dengan fungsi yang rekursif?
2. Apa persyaratan masalah untuk bisa diselesaikan dengan cara rekursif
8. 3. Apa kekurangan fungsi rekursif?
4. Jelaskan mengenai activation recors.
5. Apakah lebih baik menulis program dengan menggunakan pendekatan iteratif ataukah
rekursif?
Tugas Mandiri:
1. Buatlah program untuk menghitung kombinasi dan permutasi.
2. Buatlah program untuk menghitung jumlah nilai deret fibonacci dari masukan berupa batas
deret.
==============
Referensi:
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Teori dan Aplikasi Program Komputer Bahasa Turbo Pascal, Andi Offset,
Yogyakarta, 1997
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika,
Jakarta, 2004