Pengantar rekursi

Kueri Hierarkis dan Rekursif di SQL Server

Jasmin Ludolf

Content Developer

Apa itu rekursi?

Rekursi adalah penggunaan prosedur, subrutin, fungsi, atau algoritme yang memanggil dirinya sendiri satu atau beberapa kali hingga kondisi tertentu terpenuhi

Gambar properti rekursi yang memanggil dirinya berkali-kali.

Kueri Hierarkis dan Rekursif di SQL Server

Contoh dunia nyata untuk rekursi

Pohon Keluarga - Cari semua ayah hingga 5 generasi terakhir

  • Ubah masalah menjadi versi lebih kecil dari tipe yang sama
    1. Masalah penuh: Cari semua lima generasi
    2. Masalah kecil: Cari ayah, lalu ayah dari ayah, ...
  • Batasi jumlah langkah

Properti rekursi pada Menara Hanoi.

Kueri Hierarkis dan Rekursif di SQL Server

Fakta tentang rekursi

Keunggulan:

  • Memecahkan masalah secara rekursif
  • Mudah dibaca dan diikuti
  • Rekursi dapat dibatasi oleh kondisi terminasi

Kekurangan:

  • Waktu eksekusi lambat
Kueri Hierarkis dan Rekursif di SQL Server

Contoh rekursi - Jumlah bilangan

Definisi matematis

Jumlah bilangan berurutan didefinisikan secara rekursif sebagai berikut:

number = 1 
    for iteration = 1
number = number + (iteration - 1) 
    for iteration > 1

Jumlah bilangan hingga 5 adalah:

1+2+3+4+5 = 15
Kueri Hierarkis dan Rekursif di SQL Server

Contoh rekursi - Jumlah bilangan

  • Rekursi di SQL: Common Table Expression - CTE
WITH calculate_SumOfNumber AS
     ( -- Initial Query
    SELECT 1 AS iteration, 1 AS SumOfNumber

UNION ALL -- Recursive Part SELECT iteration + 1, SumOfNumber + (iteration + 1) FROM calculate_SumOfNumber
WHERE iteration < 6 )
SELECT SumOfNumber FROM calculate_SumOfNumber
Kueri Hierarkis dan Rekursif di SQL Server

Ayo berlatih!

Kueri Hierarkis dan Rekursif di SQL Server

Preparing Video For Download...