Membuat jadwal pertandingan secara manual tentu sangat melelahkan, terutama jika jumlah tim yang mengikuti kompetisi cukup banyak. Untungnya, Excel dapat digunakan sebagai solusi praktis untuk membantu proses tersebut. Dengan VBA Macro, kita bisa membuat sistem fixture generator otomatis yang mampu menghasilkan jadwal pertandingan lengkap hanya dalam hitungan detik.
Pada artikel ini kita akan membahas secara lengkap tentang cara membuat jadwal liga otomatis di Excel menggunakan VBA Macro. Tutorial ini cocok untuk panitia turnamen sepak bola, futsal, kompetisi esport, liga sekolah, maupun siapa saja yang ingin memahami cara membuat jadwal liga otomatis dengan lebih cepat dan efisien.
Selain itu, artikel ini juga akan menjelaskan secara detail kode VBA yang digunakan agar pembaca lebih mudah memahami logika di balik proses pembuatan fixture pertandingan. Dengan memahami cara membuat jadwal liga otomatis menggunakan VBA, Anda tidak hanya bisa membuat jadwal 20 tim, tetapi juga dapat mengembangkan sistem sesuai kebutuhan sendiri.
Apa Itu Jadwal Liga Round Robin?
Sebelum membahas cara membuat jadwal liga otomatis, kita perlu memahami sistem pertandingan yang digunakan. Pada umumnya kompetisi sepak bola menggunakan sistem round robin atau kompetisi penuh. Dalam sistem ini:
- Semua tim akan saling bertemu
- Setiap tim bermain satu kali setiap pekan
- Ada pertandingan kandang dan tandang
- Tidak boleh ada bentrok jadwal
Sebagai contoh:
- 20 tim
- 1 pekan terdiri dari 10 pertandingan
- Total putaran pertama = 19 pekan
- Total home-away = 38 pekan
Dengan banyaknya kombinasi pertandingan tersebut, proses membuat jadwal secara manual tentu cukup rumit. Karena itu kita membutuhkan cara membuat jadwal liga otomatis menggunakan VBA Macro.
Persiapan Data Klub di Excel
Langkah pertama dalam cara membuat jadwal liga otomatis adalah menyiapkan daftar klub. Susun data klub pada kolom B mulai dari sel B3 sampai B22. Contoh:

Pada tutorial ini:
- B2 digunakan sebagai header
- B3:B22 digunakan untuk daftar klub
- Hasil fixture akan muncul di kolom D sampai H
Hasil Jadwal Liga Otomatis
Setelah macro dijalankan, Excel akan menghasilkan tabel seperti berikut:

Keterangan:
- Week = nomor pekan
- Home = tim tuan rumah
- HG = skor home
- AG = skor away
- Away = tim tandang
Salah satu kelebihan cara membuat jadwal liga otomatis ini adalah kolom skor dapat langsung diisi secara manual setelah jadwal berhasil dibuat.
Kode VBA Membuat Jadwal Liga Otomatis
Berikut kode VBA yang digunakan:
Sub BuatJadwalLiga()
Dim ws As Worksheet
Set ws = ActiveSheet
' DATA CLUB DI B3:B22
Dim tim() As Variant
tim = ws.Range("B3:B22").Value
Dim n As Integer
n = UBound(tim)
Dim ronde As Integer
ronde = n - 1
Dim matchPerWeek As Integer
matchPerWeek = n / 2
Dim arr()
ReDim arr(1 To n)
Dim i As Integer
For i = 1 To n
arr(i) = tim(i, 1)
Next i
' OUTPUT MULAI BARIS 3
Dim rowOut As Long
rowOut = 3
' BERSIHKAN FIXTURE LAMA
ws.Range("D:H").ClearContents
' HEADER
ws.Range("D2").Value = "Week"
ws.Range("E2").Value = "Home"
ws.Range("F2").Value = "HG"
ws.Range("G2").Value = "AG"
ws.Range("H2").Value = "Away"
Dim week As Integer
Dim m As Integer
' =========================
' PUTARAN PERTAMA
' =========================
For week = 1 To ronde
For m = 1 To matchPerWeek
' WEEK
ws.Cells(rowOut, 4).Value = week
' MATCH
If m = 1 Then
ws.Cells(rowOut, 5).Value = arr(1)
ws.Cells(rowOut, 8).Value = arr(n)
Else
ws.Cells(rowOut, 5).Value = arr(m)
ws.Cells(rowOut, 8).Value = arr(n - m + 1)
End If
rowOut = rowOut + 1
Next m
Call RotateTeams(arr)
Next week
' =========================
' PUTARAN KEDUA
' =========================
Dim lastFixtureRow As Long
lastFixtureRow = rowOut - 1
Dim r As Long
For r = 3 To lastFixtureRow
ws.Cells(rowOut, 4).Value = ws.Cells(r, 4).Value + ronde
' HOME & AWAY DIBALIK
ws.Cells(rowOut, 5).Value = ws.Cells(r, 8).Value
ws.Cells(rowOut, 8).Value = ws.Cells(r, 5).Value
rowOut = rowOut + 1
Next r
MsgBox "Jadwal 38 week berhasil dibuat!"
End Sub
Sub RotateTeams(arr As Variant)
Dim n As Integer
n = UBound(arr)
Dim temp As Variant
temp = arr(n)
Dim i As Integer
For i = n To 3 Step -1
arr(i) = arr(i - 1)
Next i
arr(2) = temp
End Sub
Berikut penampakannya dalam editor macro:

Penjelasan Kode VBA Secara Detail
Agar lebih mudah memahami cara membuat jadwal liga otomatis, mari kita bahas kode di atas satu per satu.
1. Menentukan Worksheet Aktif
Dim ws As Worksheet
Set ws = ActiveSheet
Kode ini digunakan untuk menentukan bahwa macro akan bekerja pada sheet yang sedang aktif.
2. Mengambil Data Tim
tim = ws.Range("B3:B22").Value
Bagian ini mengambil seluruh nama klub dari range B3 sampai B22. Jika jumlah klub berubah, range ini dapat disesuaikan.
3. Menghitung Jumlah Tim
n = UBound(tim)
Kode ini digunakan untuk menghitung jumlah tim yang ada di dalam array.
4. Menghitung Jumlah Pekan
ronde = n - 1
Dalam sistem round robin:
- 20 tim = 19 pekan
- 18 tim = 17 pekan
- 16 tim = 15 pekan
Karena setiap tim harus bertemu semua lawan satu kali.
5. Menghitung Jumlah Pertandingan per Pekan
matchPerWeek = n / 2
Jika ada 20 tim:
- 20 ÷ 2 = 10 pertandingan tiap pekan
Inilah salah satu bagian penting dalam cara membuat jadwal liga otomatis.
6. Membuat Array Baru
ReDim arr(1 To n)
Kode ini digunakan untuk menyiapkan array baru yang akan diputar setiap pekan.
7. Memindahkan Data Tim ke Array
For i = 1 To n
arr(i) = tim(i, 1)
Next i
Loop ini digunakan untuk memasukkan semua nama klub ke dalam array.
8. Membersihkan Fixture Lama
ws.Range("D:H").ClearContents
Bagian ini akan menghapus jadwal sebelumnya sebelum membuat fixture baru.
9. Membuat Header Tabel
ws.Range("D2").Value = "Week"
ws.Range("E2").Value = "Home"
ws.Range("F2").Value = "HG"
ws.Range("G2").Value = "AG"
ws.Range("H2").Value = "Away"
Kode ini digunakan untuk membuat header otomatis.
10. Membuat Putaran Pertama
For week = 1 To ronde
Loop ini digunakan untuk membuat pekan pertandingan. Jika ada 20 tim:
- week 1 sampai 19
11. Menentukan Tim Home dan Away
ws.Cells(rowOut, 5).Value = arr(m)
ws.Cells(rowOut, 8).Value = arr(n - m + 1)
Kode ini memasangkan klub home dan away.
12. Merotasi Tim
Call RotateTeams(arr)
Inilah inti dari cara membuat jadwal liga otomatis. Setelah satu pekan selesai dibuat, susunan tim akan diputar agar menghasilkan pasangan pertandingan baru.
13. Membuat Putaran Kedua
ws.Cells(rowOut, 5).Value = ws.Cells(r, 8).Value
ws.Cells(rowOut, 8).Value = ws.Cells(r, 5).Value
Bagian ini digunakan untuk membuat pertandingan kandang dan tandang. Home dan away dibalik sehingga total pertandingan menjadi 38 pekan.
Cara Memasang VBA Macro di Excel
Berikut langkah-langkah memasang kode VBA:
1. Buka VBA Editor
Tekan:
ALT + F11
2. Insert Module
Pilih:
- Insert
- Module
3. Paste Kode VBA
Paste seluruh kode VBA ke dalam module.
4. Simpan File
Simpan file sebagai:
Excel Macro-Enabled Workbook (*.xlsm)
Cara Menjalankan Macro
Untuk menjalankan macro:
- Tekan ALT + F8
- Pilih BuatJadwalLiga
- Klik Run
Setelah itu jadwal otomatis akan langsung dibuat.
Kelebihan Menggunakan VBA untuk Jadwal Liga
Ada banyak keuntungan menggunakan cara membuat jadwal liga otomatis dengan VBA.
- Lebih Cepat; Ratusan pertandingan dapat dibuat hanya dalam beberapa detik.
- Mengurangi Human Error; Tidak perlu menyusun pertandingan secara manual.
- Fixture Lebih Rapi; Setiap tim hanya bermain satu kali setiap pekan.
- Mendukung Home Away; Sistem otomatis membuat pertandingan kandang dan tandang.
- Mudah Dimodifikasi; Anda dapat mengembangkan sistem sesuai kebutuhan sendiri.
Tips Pengembangan Lebih Lanjut
Setelah memahami cara membuat jadwal liga otomatis, Anda juga bisa mengembangkan fitur tambahan seperti:
- klasemen otomatis
- pencetak gol terbanyak
- statistik pertandingan
- jadwal berdasarkan tanggal
- random venue
- export PDF
- dashboard liga
Dengan VBA, Excel bisa berubah menjadi aplikasi manajemen kompetisi yang cukup powerful.
Kesimpulan
Cara membuat jadwal liga otomatis di Excel menggunakan VBA Macro ternyata tidak sesulit yang dibayangkan. Dengan memanfaatkan sistem round robin dan sedikit logika pemrograman VBA, kita dapat menghasilkan fixture pertandingan lengkap secara otomatis.
Selain lebih cepat, cara membuat jadwal liga otomatis ini juga membantu mengurangi kesalahan dalam penyusunan jadwal pertandingan. Sistem ini sangat cocok digunakan untuk kompetisi sepak bola, futsal, esport, maupun turnamen sekolah.
Melalui tutorial cara membuat jadwal liga otomatis ini, kita juga belajar bagaimana VBA bekerja dalam mengolah array, melakukan perulangan, hingga membuat sistem rotasi tim otomatis.
Jika Anda sering membuat kompetisi atau turnamen, memahami cara membuat jadwal liga otomatis menggunakan Excel dan VBA tentu akan sangat membantu pekerjaan Anda. Semoga tutorial ini bermanfaat dan selamat mencoba!
Download Template Gratis
Bagi Anda yang ingin mencoba teknik ini secara langsung, kami telah menyiapkan template gratis yang dirancang khusus untuk membantu Anda mempraktikkan Cara Membuat Jadwal Liga Otomatis di Excel Menggunakan VBA Macro ini. File Excel bisa didownload melalui tautan berikut:
Atau juga jika ingin mempelajari langkah demi langkah secara visual, bisa kunjungi Youtube Channel Depot Excel. Di sana teman-teman akan melihat bagaimana rumusnya bekerja. Semoga bermanfaat!
—











0 Komentar