Lewati ke konten utama

Pengenalan Optimisasi Server Java Edition

Informasi dasar yang perlu diketahui untuk memudahkan penjelasan optimisasi pada laman lainnya.

Sebagian kata pada laman ini ditulis menggunakan terminologi aslinya supaya pencarian informasi di internet bisa lebih mudah setelah pembaca memahami panduan ini.

Terdapat juga beberapa kata serapan Bahasa Inggris.

Jika ada kata yang asing, silakan buka laman panduan "Glosarium" untuk melihat singkatan dan terminologi lainnya.


Target Optimisasi

Target Optimisasi utama server Minecraft adalah mengupayakan supaya server selalu berjalan di bawah 50 MSPT dan di angka 20 TPS pada jam-jam sibuk, serta mengupayakan server berjalan dengan maksimal 16 GB RAM

Berikutnya adalah memastikan semua mekanisme vanilla Minecraft berjalan sebagaimana mestinya. Contoh:

  • Mob Farm yang copy-paste dari YouTube
  • Desain redstone yang copy-paste dari YouTube
  • Cara kerja item atau block seperti hopper, juga sistem redstone seperti redstone sorting system.

Tiga poin di atas adalah hal yang paling sering dilakukan oleh player. Kebanyakan player belum memahami mekanisme Minecraft dan akan meniru plek ketiplek semua yang ada di youtube. Jika Anda salah melakukan konfigurasi, besar sekali kemungkinan apa yang player Anda tiru dari YouTube tidak akan bekerja sebagaimana mestinya.


Tick

Tick adalah satuan waktu yang digunakan di Minecraft, sesuatu yang mirip dengan detik (tetapi kata tick bukan diambil dari detik ya).

Semua hal di Minecraft selalu mengikuti game tick. Sebagian contoh:

  • Durasi effect
  • Durasi siklus siang dan malam
  • Kecepatan gerak minecart
  • Pathfinding* mob dan pergerakan mob
  • Pergerakan air dan lava
  • Redstone tick
  • Waktu yang diperlukan untuk menghancurkan block
  • Waktu yang diperlukan spawner untuk menyala

Tick normal adalah 20 tick per detik. Ini adalah standar, dan tidak boleh dinaikkan atau diturunkan kecuali untuk keperluan yang khusus.

20 tick setara dengan 1 detik dunia nyata.

1 tick setara dengan 0.05 detik (50 milidetik) dunia nyata.


Beda TPS dan MSPT

TPS adalah __T__ick __P__er __S__econd. Angka idealnya adalah 20.

MSPT adalah __M__ili__s__econds __P__er __T__ick. Angka idealnya di bawah 50.

TPS adalah hasil dari MSPT. MSPT lebih akurat karena menghitung hingga milisecond dibandingkan TPS yang hanya menghitung second.

Kebanyakan orang hanya peduli dengan "TPS ga 20 nih, servernya lag", tetapi tidak ada yang peduli dengan MSPT yang di mendekati 50.

Setelah MSPT melewati 50, maka TPS akan berkurang dari 20 secara bertahap, dimulai dari 19.99, 19.98 dst hingga 0.01 TPS pada 100000 MSPT.

tick

T= Tick,s= second,ms` = milisecond

Pada gambar di atas, terlihat tick tercepat membutuhkan 20ms, sementara tick terlambat membutuhkan 100ms.

Dalam situasi normal, server setiap 1s seharusnya udah mendapatkan 20 tick, tetapi karena ada salah satu tick yang membutuhkan waktu 100ms (di atas batas wajar 50ms per satu tick), maka hasilnya dalam satu detik tersebut server hanya berjalan sebanyak 16 tick, kurang 4 tick dari standar normal 20 tick.

Ini adalah sesuatu yang disebut dengan lag spike, karena hanya satu tick yang berjalan lebih lambat dibanding tick-tick lainnya.

Jika semua tick berjalan lebih dari 50ms per tick, ini lebih umum disebut lag. Tidak ngespike, tetapi lag konstan.

Sekali lagi, server sehat memiliki 20 TPS dan di bawah 50 MSPT.


Server Implementation / Server Software / Game Server

Lebih umum disebut dengan server.jar, .jar server, dan penyebutan sejenis.

Ini adalah 'program' atau 'aplikasi' utama yang digunakan untuk menjalankan server Minecraft.

Ada banyak sekali server implementation Minecraft, dimulai dari Spigot, Paper (dan turunan-turunannya), hingga yang berbasis Java, C++, Rust, dan bahasa pemrograman lainnya.

Server implementation yang paling banyak digunakan oleh semua administrator server minecraft adalah Paper. Data: bStats.

Sebagai server admin, gunakanlah Paper atau Purpur. Jangan gunakan server implementation lain! Banyak patch dari server lain yang kurang stabil, seringkali menimbulkan bug yang mempersulit analisis server.

Informasi tambahan mengenai sejarah Server Minecraft Java:

Minecraft Java multiplayer dahulu membutuhkan Vanilla server.jar, kemudian muncul hMod yang membuat fitur-fitur administrator dan plugin untuk server.

Setelah proyek hMod dihentikan, muncul Bukkit (CraftBukkit) yang memperluas fitur dari hMod dan Vanilla server untuk mendapatkan performa yang lebih baik.

Setelah proyek Bukkit dihentikan, muncul Spigot yang dibangun di atas Bukkit. Spigot juga dibuat untuk memperluas fitur dan mendapatkan perforrma yang lebih baik, serta beragam kustomisasi.

Pada tahun 2014, Muncul PaperSpigot (Paper), yang dibangun di atas Spigot, sehingga server minecraft menjadi seperti ini:

Vanilla server -> Bukkit (CraftBukkit) -> Spigot -> PaperSpigot (Paper)

Untuk setiap update versi minecraft, keseluruhan alur di atas perlu diupdate terlebih dahulu. Ini menyebabkan bottleneck karena semua server minecraft sangat bergantung pada Spigot yang perlu diupdate terlebih dahulu.

Spigot hanya memiliki satu orang maintainer. Seringkali proses update Spigot membutuhkan waktu hingga satu minggu sejak versi minecraft baru telah rilis.

Kemudian pada desember 2024, Paper memutuskan untuk melakukan hard fork keluar dari Spigot, supaya proses update server bisa berlangsung lebih cepat tanpa perlu menunggu upstream.

Pada tahun 2023, tim developer Paper mengembangkan Folia. Sebuah server implementation yang mengelompokan berbagai chunk sebagai region dinamis, yang kemudian dilakukan ticking per region secara individual.

Pendekatan ini memungkinkan server yang memiliki banyak core dan thread untuk memaksimalkan kemampuan komputasinya, karena server implementation tradisional masih condong ke single thread meskipun sudah banyak upaya multi-threading yang dilakukan.


Daftar Pustaka:

Lucko. finding the cause of lag spikes.


Suntingan Termutakhir: 13 Desember 2025.

Penulis: Jan Wafa Karsiena. Lisensi: CC BY-SA 4.0.

license-cc-by-sa