Membuat kode menggunakan matriks

Berikut adalah kode Python yang sudah dimodifikasi (bisa langsung dijalankan di Google Colab) beserta penjelasannya.

1. Kode Kreatif: The Digital Vortex

Saya menambahkan pustaka matplotlib untuk mengubah angka menjadi warna, sehingga kita bisa melihat "alur" pergerakan spiralnya secara visual.

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns


def create_spiral_matrix(n):

    matrix = np.zeros((n, n), dtype=int)

    left, right = 0, n - 1

    top, bottom = 0, n - 1

    num = 1

    

    # KITA AKAN LACAK ALURNYA DI SINI

    while left <= right and top <= bottom:

        # 1. Gerak ke KANAN (Baris teratas)

        for i in range(left, right + 1):

            matrix[top][i] = num

            num += 1

        top += 1 # "Tembok" atas turun satu level

        

        # 2. Gerak ke BAWAH (Kolom paling kanan)

        for i in range(top, bottom + 1):

            matrix[i][right] = num

            num += 1

        right -= 1 # "Tembok" kanan geser ke kiri

        

        # 3. Gerak ke KIRI (Baris terbawah)

        if top <= bottom:

            for i in range(right, left - 1, -1):

                matrix[bottom][i] = num

                num += 1

            bottom -= 1 # "Tembok" bawah naik satu level

        

        # 4. Gerak ke ATAS (Kolom paling kiri)

        if left <= right:

            for i in range(bottom, top - 1, -1):

                matrix[i][left] = num

                num += 1

            left += 1 # "Tembok" kiri geser ke kanan

            

    return matrix


# --- BAGIAN KREATIF: VISUALISASI ---

def visualize_vortex(n):

    # Buat matriks

    spiral_mat = create_spiral_matrix(n)

    

    # Setup plot visual

    plt.figure(figsize=(8, 6))

    plt.title(f"Visualisasi Alur Spiral ({n}x{n})", fontsize=15, fontweight='bold', pad=20)

    

    # Gunakan Seaborn untuk membuat heatmap

    # 'viridis' adalah skema warna dari gelap (angka kecil) ke terang (angka besar)

    # annot=True akan menampilkan angkanya jika matriksnya kecil

    show_numbers = True if n <= 10 else False

    

    sns.heatmap(spiral_mat, annot=show_numbers, fmt="d", cmap="viridis", 

                linewidths=.5, cbar_kws={'label': 'Urutan Langkah (1 -> Akhir)'})

    

    plt.axis('off') # Hilangkan sumbu x/y agar bersih

    plt.show()


# Jalankan Kreativitas!

# Coba ubah angka 5 menjadi 10 atau 20 untuk melihat efek pusaran yang lebih keren!

visualize_vortex(5)


2. Penjelasan Alur (The Flow)

Bayangkan matriks ini adalah sebuah ruangan persegi. Kamu adalah karakter dalam game yang harus berjalan mengisi setiap ubin lantai dengan nomor urut, mulai dari 1.

Aturan mainnya sederhana: Terus berjalan lurus sampai mentok tembok, lalu belok kanan.

Alurnya berjalan dalam siklus 4 langkah yang terus berulang hingga ruangan penuh:

 * Langkah Kanan (West to East):

   * Kamu menyusuri baris paling atas (top).

   * Setelah selesai, baris itu dianggap "sudah diisi". Jadi, batas top turun ke bawah (top += 1).

 * Langkah Bawah (North to South):

   * Kamu menyusuri kolom paling kanan (right).

   * Setelah selesai, kolom itu dianggap "sudah diisi". Batas right geser ke kiri (right -= 1).

 * Langkah Kiri (East to West):

   * Kamu menyusuri baris paling bawah (bottom).

   * Setelah selesai, baris itu dianggap "sudah diisi". Batas bottom naik ke atas (bottom -= 1).

 * Langkah Atas (South to North):

   * Kamu menyusuri kolom paling kiri (left).

   * Setelah selesai, kolom itu dianggap "sudah diisi". Batas left geser ke kanan (left += 1).

Loop while akan terus memutar 4 langkah ini. Karena batas top, bottom, left, dan right terus mendekat ke tengah (menyempit), spiral tersebut akhirnya akan bertemu di satu titik pusat dan berhenti.

3. Mengapa Ini "Kreatif"?

 * Transformasi Data: Kode asli hanya memanipulasi angka. Kode di atas mengubah angka menjadi gradien warna.

 * Warna sebagai Narasi: Skema warna viridis (Ungu \rightarrow Hijau \rightarrow Kuning) menceritakan kisah perjalanan.

   * Ungu Gelap: Awal perjalanan (angka 1, 2, 3...).

   * Hijau/Kuning Terang: Akhir perjalanan di pusat pusaran (angka terbesar).

 * Pemahaman Visual: Dengan melihat gradien warna, orang yang tidak mengerti coding pun bisa langsung paham, "Oh, alurnya memutar masuk ke dalam!" tanpa perlu membaca kode for loop.

Langkah Selanjutnya untuk Kamu:

Coba jalankan fungsi visualize_vortex(20) di Google Colab kamu. Kamla visual yang sangat memuaskan seperti terowongan waktu! 



Dan anda juga dapat mengakses kode nya melalui goggle colab ini

https://colab.research.google.com/drive/1gbJVikmKR8EW92lDe28szsb4xNwwe18b?usp=sharing

Komentar

Postingan populer dari blog ini

Tugas Menyelesaikan Game Flash Logika

Membuat Kalkulator Sederhana dengan Python

"DO DARI KAMPUS - ASELOLE BANYAK CEWEK - CIPTAKAN PRODUK - DIBENCI BANYAK ORANG - SUKSES❗"