Mode Malam
| Mode Tampilan
Penulis : admin

Home » Programming » Menampilkan Data Bertingkat Atau Multi Level Dengan Algoritma Rekursif
Menampilkan Data Bertingkat Atau Multi Level Dengan Algoritma Rekursif

Menampilkan Data Bertingkat Atau Multi Level Dengan Algoritma Rekursif


Rekursif adalah salah satu algoritma fungsi perulangan dimana fungsi tersebut memanggil dirinya sendiri secara terus menurus. Dalam dunia nyata contoh rekursif terjadi pada dua buah cermin yang saling berhadapan, sehingga akan saling memantulkan bayanganya atau sebuah mikrophone dihadapkan ke speaker outpunya.

Rekursif

 Dalam dunia pemrograman rekursif bisa dilakukan dengan membuat sebuah methode memanggil dirinya sendiri.

Rekursif Algoritma

Dengan metode rekursif kita dapat membuat sebuah menu multi level tak terbatas, kategori artikel, membuat struktur organisasi, membuat multi level group, membuat sistem multi approval dan lain sebagainya. 

Rekursif Konsep

Hal menarik dari metode rekursif adalah proses yang terjadi di level atas tidak terhapus atau tertimpa oleh proses di level turunanya tetapi tertahan sampai proses yang terjadi di level turunan selesai. Akibat dari mekanisme ini, semakin banyak turunannya semakin besar memori yang digunakan. Kerennya lagi kalian bisa membuat Artificial Intelligence dengan membuat Neural Network dengan metode rekursif, tentunya tidak sesederhana penjelasan di artikel kali ini.

advertisement

Berbeda dengan perulangan yang menggunakan For, While, Do While dan lainnya, yang akan menimpa proses di level sebelumnya yang akan mengakibatkan tidak adanyanya percabangan data.
Rekursif konsep

Sekarang kita lanjut ke cara implementasinya, tapi karena saya tidak tahu bahasa pemrograman yang kalian kuasai, jadi saya berikan pseudokodnya agar bisa kalian impementasi di bahasa pemrograman masing masing.

Algoritma Rekursif 

Berikut adalah preudokod menampilkan data bertingkat menggunakan metode rekursif.

Begin
Call Recursive(0)
Function Recursive(param_id,param_sparator)
    val datas = getDataByParentId(param_id)
    ForEach data in datas 
        param_sparator = param_sparator & "--"
        println(param_sparator & "|" & data)
        Recursive(getIdFrom(data),param_sparator)
    End ForEach
End Function
End

Pada bagian getDataByParentId dan getIdFrom ganti dengan fungsi pengambilan database kalian (Kueri: select * from  [nama_table] where [nama_kolom]= [value])

Contoh Implementasi Algoritma Rekursif

Sebagai contohnya disini saya akan membuat sebuah program sederhana menggunakan vb.net dan c# dengan database sql server.

  1. Silahkan buat database kemudian eksekusi kueri berikut
    create table kategori(id int primary key, kategori varchar(30),parent_id int);
    insert into kategori (id,kategori,parent_id) values(1,'IT',0);
    insert into kategori (id,kategori,parent_id) values(2,'Programmer',1);
    insert into kategori (id,kategori,parent_id) values(3,'Tester',1);
    insert into kategori (id,kategori,parent_id) values(4,'Sistem Analis',1);
    insert into kategori (id,kategori,parent_id) values(5,'Database Designer',1);
    insert into kategori (id,kategori,parent_id) values(6,'Back End',2);
    insert into kategori (id,kategori,parent_id) values(7,'Front End',2);
  2. Buat sebuah program console app dan copy paste code berikut
    Systex versi vb.net:
    Imports System.Data.SqlClient
    
    Module Module1
    
        Sub Main()
            Recursive("0", "")
            Console.ReadLine()
        End Sub
    
        Sub Recursive(ByVal id As String, ByVal sparator As String)
            Dim datas As DataTable = getDataByParentId(id)
            For Each data As DataRow In datas.Rows
                sparator = sparator & "--"
                Console.WriteLine(sparator & "|" & data.Item("kategori"))
                Recursive(data.Item("id"), sparator)
            Next
        End Sub
    
        Function getDataByParentId(ByVal id As String) As DataTable
            Dim ds As New DataSet
            'Ganti dengan koneksi database kalian
            Dim sqlcon = New SqlConnection("DATA SOURCE=ANNAJIYAH\SQLEXPRESS;INITIAL CATALOG=Rekursif; USER ID=sa; PASSWORD=123")
            Dim query = "select * from kategori where parent_id = '" & id & "'"
            sqlcon.Open()
            Dim adapter As SqlDataAdapter = New SqlDataAdapter(query, sqlcon)
            adapter.Fill(ds)
            sqlcon.Close()
            Return ds.Tables(0)
        End Function

    Systex versi c# :

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Rekursif_csharp
    {
        class Program
        {
            static void Main(string[] args){
                Program.Recursive("0","");
                Console.ReadLine();
            }
            static void Recursive(String id,String sparator){
                DataTable datas = getDataByParentId(id);
                foreach (DataRow data in datas.Rows){
                    sparator += "--";
                    Console.WriteLine(sparator + "|" + data.ItemArray[1]);
                    Recursive(data.ItemArray[0].ToString(), sparator);
                }
            }
    
            static DataTable getDataByParentId(String id){
                DataSet ds = new DataSet();
                SqlConnection con = new SqlConnection("DATA SOURCE=ANNAJIYAH\\SQLEXPRESS;INITIAL CATALOG=Rekursif; USER ID=sa; PASSWORD=123");
                String query = "select * from kategori where parent_id = '" + id + "'";
                con.Open();
                SqlDataAdapter adapter = new SqlDataAdapter(query, con);
                con.Close();
                adapter.Fill(ds);
                return ds.Tables[0];
            }
        }
    }

Silahkan kalian jalankan programnya, maka hasilnya akan seperti gambar berikut:

Algoritma rekursif

Terimakasih sudah mampir di artikel cara menampilkan data bertingkat dengan metode rekursif. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, kalau ada pertanyaan silahkan tulis di kolom komentar. Good luck

advertisement

Tags: #rekursif #algoritma #multilevel
Bagikan :

Komentar:

Silahkan berkomentar dengan baik dan bijak!

Name * :
Email :
Website :
Comment :


This website uses cookies to ensure you get the best experience on our website

learn more