Ada 22 tim yang akan ikut serta, di mana 14 tim dipastikan akan langsung berkompetisi di babak Group Stage, dan 8 tim lainnya harus berjuang melalui babak Wildcard untuk mendapatkan 2 tiket ke babak Group Stage.
Menariknya, juara M4 World Championship tahun lalu, yaitu Echo dari Filipina, tak ikut serta di M5 World Championship. Tim ini gagal masuk ke kompetisi dunia MLBB karena tak berhasil merebut juara pertama atau kedua di kompetisi lokal MPL PH S12.
Adapun juara pertama dan kedua kompetisi tersebut diambil oleh AP.Bren dan Blacklist International, dan kedua tim tersebut kini sudah sah menjadi peserta M5 World Championship untuk babak Group Stage.
Dengan absennya Echo, tim-tim lain yang berpartisipasi di M5 World Championship tentunya akan memiliki kesempatan yang sama untuk merebut gelar juara pertama kompetisi ini dari juara M4 World Championship Echo.
Kesempatan tersebut juga dimiliki oleh dua tim asal Indonesia yang juga akan bertanding di babak Group Stage M5 World Championship, yaitu Onic Esports dan Geek Fam ID. Kedua tim ini merupakan juara pertama dan kedua kompetisi MPL ID S12.
Daftar tim yang akan mengikuti M5 World Championship secara lengkap, begitu juga asal negara atau wilayahnya, bisa dilihat dalam daftar berikut ini:
Clinten Ilustrasi game Mobile Legends Bang-Bang (MLBB).
Mobile Legends M5 World Championship akan dimulai dengan babak Wildcard pada 23-26 November 2023 mendatang. Pada babak ini, 8 tim akan dibagi ke dalam dua grup, sehingga masing-masing grup akan berjumlah 4 tim.
Nantinya, dua tim teratas di tiap grup akan melaju ke pertandingan selanjutnya, sedangkan dua tim terbawah akan tereliminasi.
Kemudian, kedua tim teratas tiap grup itu akan masuk ke babak Crossover. Juara satu masing-masing grup akan dipertemukan dengan juara kedua masing-masing grup dalam sebuah pertandingan.
Dari babak Crossover ini, akan diambil dua tim pemenang yang akan melaju ke babak Group Stage M5 World Championship.
Babak Group Stage M5 World Championship sendiri akan dimulai pada 2-7 Desember 2023 mendatang.
Pada tahap ini, 16 tim akan dibagi menjadi empat grup (masing-masing grup 4 tim), dan tiap tim akan dipertemukan dengan rekan satu grup lainnya dengan format pertandingan Best of 3 (Bo3).
Pada pengujung babak Group Stage, dua tim teratas di masing-masing grup (total 8 tim) akan melaju ke babak Playoff atau Knockout Stage M5 World Championship. Di sisi lain, dua tim terbawah dari masing-masing grup akan tereliminasi.
Babak Knockout Stage M5 World Championship sendiri akan digelar pada 9-17 Desember 2023 mendatang. Format pertandingan di babak ini adalah Best of 5 (Bo5) dan Grand Final akan mengusung format Best of 7 (Bo7).
M5 World Championship akan digelar secara offline di Filipina. Namun, seperti M4 World Championship tahun lalu, keseruan pertandingan M5 World Championship bisa disaksikan secara online di kanal YouTube MPL Indonesia lewat tautan berikut ini.
Babak Wildcard: 23 November - 25 November 2023
Babak Crossover: 26 November 2023
Babak Grup: 2 - 7 Desember 2023
Babak Knockout: 9 - Desember 2023
Dapatkan update berita pilihan dan breaking news setiap hari dari Kompas.com. Mari bergabung di Grup Telegram "Kompas.com News Update", caranya klik link , kemudian join. Anda harus install aplikasi Telegram terlebih dulu di ponsel.
Pilihan Untukmu
`);
var wSpecStop = createElementFromHTML(`
Konten disembunyikan. Muat ulang halaman untuk perbarui rekomendasi.
`);
reactionPopup.querySelector('.buttonShare').setAttribute('data-title', item.title);
reactionPopup.querySelector('.buttonShare').setAttribute('data-url', itemUrl);
reactionPopup.querySelector('.buttonShare').setAttribute('data-campaign', 'AIML_Widget_Desktop');
let userFeedback = new UserFeedback(resultObj.engine['tracker_algsrc'], itemUrl + tracker_params, jxRecHelper, index);
reactionPopup.querySelector('.buttonBookmark').addEventListener('click', function() {
do_bookmark(itemUrl, index, userFeedback);
});
reactionPopup.querySelector('.buttonShare').addEventListener('click', function() {
userFeedback.event('share');
});
reactionPopup.querySelector('.buttonNotInterest').addEventListener('click', function() {
if (getCookie('kmps_usrid')) {
hideThisArt(this);
userFeedback.event('not-interested');
} else {
const parentAction = this.parentElement.parentElement.parentElement
if (!!parentAction) {
let indexElement = parentAction.getAttribute('data-index')
if (indexElement != 'undefined') {
localStorage.setItem('reaction_not_interest_temp', JSON.stringify({
urlpage: items[indexElement].url
}))
}
}
window.location.href = "" + btoa(window.location.href);
}
});
/**
* trigger action "userFeedback" that user not interest item before, when not interest without login
*/
if (getCookie('kmps_usrid') && localStorage.getItem('reaction_not_interest_temp')) {
const tempUrlNotInterest = JSON.parse(localStorage.getItem('reaction_not_interest_temp'))
if (itemUrl == tempUrlNotInterest.urlpage) {
userFeedback.event('not-interested');
localStorage.removeItem('reaction_not_interest_temp');
}
}
wSpecStop.querySelector('.wSpec-stop-undo').addEventListener('click', function() {
showThisArt(this);
userFeedback.event('un-not-interested');
});
recItem.appendChild(buttonOption);
recItem.appendChild(reactionPopup);
recItem.appendChild(wSpecStop);
}
var recItemWrapperA = createElement('a', null, null, null);
recItemWrapperA.setAttribute('href', itemUrl + tracker_params);
var titleDiv = createElement('h4', null, null, [cssClasses.title]);
var titleTextNode = document.createTextNode(item.title);
if (item.itemType == 'video') {
var iconVideo = createElement('div', null, null, ['icoInline', 'icoVideo']);
iconVideo.style.marginRight = '5px';
titleDiv.appendChild(iconVideo);
}
titleDiv.appendChild(titleTextNode);
var sourceDiv = null;
if (item.hasOwnProperty('method')) {
sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type'] + ' . ' + item.method.toUpperCase());
} else {
var sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type']);
}
var textWrapper = createElement('div', null, null, [cssClasses.text_wrapper]);
textWrapper.appendChild(categoryDiv);
textWrapper.appendChild(titleDiv);
textWrapper.appendChild(sourceDiv);
recItemWrapper.appendChild(imgWrapper);
recItemWrapper.appendChild(textWrapper);
recItemWrapperA.appendChild(recItemWrapper);
recItem.appendChild(recItemWrapperA);
widgetWrapper.appendChild(recItem);
// hook up the click handler for this item
// recItem.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index);
recItemWrapperA.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index);
});
} // end while
var endDate = new Date();
var loadtime = (endDate.getTime() - startDate.getTime());
trackEventGa('AIML Article Recommendation', 'Content Loaded', 'algsrc='+algsrc+',site=TEKNO,device=desktop,loadtime=' + loadtime)
let domain = window.location.hostname;
if(domain=='){
var url=window.location.href.split("/");
domain=url[2]+'/'+url[3]
}
let user_subs_type = "Gues";
let subs_type = "";
let is_lgn = 0;
let engine = algsrc;
if(getCookie('kmps_usrid')){is_lgn=1};
let time_load = loadtime;
resolve();
/***
* JXRECSDK NOTES 3 of 5 -
* pass all the info about the items to the rec helper
* each one is an object: ALL MANDATORY
* div
* id
* pos
*/
jxRecHelper.items(widgetItemArr);
/***
* JXRECSDK NOTES 4 of 5 -
* Call the ready() of the helper object when the recommendation
* results have been populated to the widget
* (This will register the action=ready event)
*/
if (resultObj.engine['type'] == 'api-1') {
jxRecHelper.ready(resultObj.options.algo + ":" + resultObj.options.version);
} else {
jxRecHelper.ready(resultObj.engine['type']);
}
} else {
jxRecHelper.error(204);
console.error("Error: no recommendation items");
return;
}
} catch (err) {
jxRecHelper.error(901);
console.log(err.stack);
let domain = window.location.hostname;
if(domain=='){
var url=window.location.href.split("/");
domain=url[2]+'/'+url[3]
}
let user_subs_type = "Gues";
let subs_type = ""
let is_lgn = 0;
let engine = algsrc;
if(getCookie('kmps_usrid')){is_lgn=1};
let endDate = new Date();
let time_load = (endDate.getTime() - startDate.getTime());
}
});
}
const _jxRecSdkURL = '
var startDate = new Date();
class OneWidget {
constructor() {
//this is also the one we will pass to the JX rec helper object when
//we instantiate it:
//In this implementation most of these come from the options obj
//on the publisher page.
this._options = {
accountid: '9262bf2590d558736cac4fff7978fcb1',
pageurl: '
widget_id: '1000183-6xWeiWZFIM',
type: 'pages',
container: 'rekomendasi-konten-pilihan-untukmu-aiml',
keywords: content_tags,
title: title,
customid: "7",
count: 14,
};
this._containerId = this._options.container;
this._container = document.getElementById(this._containerId);
this._engines = [{"url":"https:\/\/recommendation.jixie.media\/v1\/recommendation","method":"GET","pageurl":"https:\/\/tekno.kompas.com\/read\/2023\/11\/01\/19030097\/daftar-tim-peserta-mobile-legends-m5-world-championship-tidak-ada-juara-tahun","system":"jx","type":"api-1","tracker_params":"?source=widgetML","tracker_algsrc":"V","count":14,"page_status":"read","excludeitemids":"2023110119030097"}];
}
kickOff() {
startDate = new Date();
const rand = Math.floor(Math.random() * 1000);
/*const randSystem = Math.floor(Math.random() * 3);
this._engine = this._engines[randSystem]
if (location.hostname.indexOf('lestari') != -1) {
this._engine = this._engines[1]
}*/
this._engine = this._engines[0];
this._options.system = this._engine['system']
trackEventGa('AIML Article Recommendation', 'Widget load', 'algsrc=' + this._engine['tracker_algsrc'] + ',site=TEKNO,device=desktop')
let promJXSDK = fetchJSFileP(_jxRecSdkURL);
let thisObj = this;
// first we wait on the JX REC SDK to be loaded and initialized
let recHelperObj = null;
let recResults = null;
promJXSDK
.then(function() {
/***
* JXRECSDK NOTES 1 of 5 - INSTANTIATION OF A JX REC HELPER OBJECT
* Call this AFTER JX REC SDK is loaded but BEFORE you call your REC
* backend.
*
* param: MANDATORY options object
* options object must at a minimal have
* accountid: get from jixie
* widgetid: get from jixie
* container: DIV ID of the destination div to house the widget
* (for jixie widget this is just the options object passed from the page)
*
* (This will also register the action=load event)
*/
recHelperObj = jxRecMgr.createJxRecHelper(thisObj._options);
let basicInfo = thisObj._options;
basicInfo.engine = thisObj._engine
if (basicInfo.engine.type == 'api-1') {
var options = {
count: basicInfo['count'],
adpositions: "",
keywords: basicInfo['keywords'],
title: basicInfo['title'],
date_published: "2023-11-01",
pagecategory: "TEKNO",
algo: "mixed"
};
if(getCookie('kmps_usrid')){
var kg = {
pagetype:basicInfo.engine.page_status,
uid:getCookie('kmps_usrid'),
ukid:getCookie('kmp_uid')
}
if(basicInfo.engine.page_status=='read'){
kg['excludeitemids'] = basicInfo.engine.excludeitemids;
kg['multiFormat'] = true;
}
options['additional'] = {
kg:kg
};
}
return recHelperObj.getJxRecommendations(options);
} else {
return fetchRecommendationsP(basicInfo, recHelperObj.getJxUserInfo());
}
})
.then(function(resp) {
if (thisObj._engine.type == 'api-3') {
recResults = new Object
recResults.items = resp.docs.result;
} else {
recResults = resp;
}
recResults.engine = thisObj._engine;
if (!resp || !recResults.items || recResults.items.length == 0) {
/***
* JXRECSDK NOTES 2 of 5 -
* Call the error() function on the recHelper when either an error
* has occured in the fetching or there are no recommended items
*
* (This will register the action=error event)
*/
recHelperObj.error(204);
throw "no recommendation results";
}
})
.then(function() {
// everything is ready (recommendation results, css):
document.getElementById("rekomendasi-konten-pilihan-untukmu-aiml").classList.remove("-loading");
document.querySelector('.wSpec-list').remove();
createDisplay(rand, thisObj._container, recResults, recHelperObj)
.then(function() {
toggleDropdown();
//observe lozad
lozad('.lozad', {
load: function(el) {
el.src = el.dataset.src;
el.onload = function() {
el.classList.add('fade')
}
}
}).observe()
})
})
.catch(function(error) {
console.log(`Unable to create recommendations widget ${error.stack} ${error.message}`);
});
}
}
var limit_gtm_ready = 1;
function check_gtm_ready() {
if ('ga' in window) {
// create a new instance of our widget based on the options
const newW = new OneWidget();
newW.kickOff();
} else {
const timeout_gtm_ready = setTimeout(check_gtm_ready, 500)
limit_gtm_ready += 1;
if (limit_gtm_ready > 10) {
clearTimeout(timeout_gtm_ready);
const newW = new OneWidget();
newW.kickOff();
}
}
}
check_gtm_ready()
document.querySelector('.wSpec-secret').addEventListener('click', function(e) {
e.preventDefault();
let wSl = document.querySelectorAll('.wSpec-source');
if (wSl.length > 0) {
for (let i = 0; i < wSl.length; i++) {
wSl[i].classList.toggle('show')
}
}
})
function trackEventGa(category, action, label) {
if ("ga" in window) {
ga(function() {
tracker = ga.getAll()[0];
if (tracker) {
tracker.send("event", category, action, label);
console.log('track event ', category, action, label)
}
})
}
}
function formBody(obj) {
let formBody = [];
for (var property in obj) {
let encodedKey = encodeURIComponent(property);
let encodedValue = encodeURIComponent(obj[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
return formBody.join("&");
}
function getCookie(name) {
var name = name + '=';
var cookies = decodeURIComponent(document.cookie).split(';');
for (var i = 0; i < cookies.length; i++) {
var c = cookies[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
}
function get_guid(url) {
const videoPath = url.match(/\/watch\/(\d+)/);
if (videoPath) {
return `video.${videoPath[1]}`;
}
let arrayUrl = url.split('/');
let readPath = arrayUrl.indexOf('read');
if (arrayUrl[readPath + 1] == 'xml') {
readPath += 1;
}
let year = arrayUrl[readPath + 1];
let month = arrayUrl[readPath + 2];
let date = arrayUrl[readPath + 3];
let id = arrayUrl[readPath + 4];
let guid = `.xml.${year}.${month}.${date}.${id}`;
return guid;
}
function toggleDropdown() {
let tdd = document.querySelectorAll('[data-dropdown]')
if (!!tdd) {
tdd.forEach((el) => {
el.addEventListener('click', function() {
el.parentElement.classList.toggle('-active')
let saved = el.parentElement.getAttribute('data-saved')
let kmps_usrid = getCookie('kmps_usrid');
if (kmps_usrid && !saved && el.parentElement.classList.contains('-active')) {
let url = el.parentElement.getAttribute('data-url');
let guid = get_guid(url);
check_bookmark(
kmps_usrid,
guid
).then(function(resp) {
if (resp.hasOwnProperty('total_data')) {
if (resp.total_data > 0) {
el.parentElement.querySelector('.buttonBookmark').classList.add('-active');
el.parentElement.querySelector('.buttonBookmark').innerHTML = 'Hapus dari tersimpan';
el.parentElement.setAttribute('data-saved', 'true');
} else {
el.parentElement.setAttribute('data-saved', 'false');
}
}
})
}
})
document.addEventListener("click", function(e) {
// console.log(e.target)
if (el.contains(e.target)) {
// console.log(tdd)
} else {
el.parentElement.classList.remove('-active')
}
});
});
}
}
function check_bookmark(kmps_usrid, guid) {
let url = `
return new Promise(function(resolve, reject) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
resolve(JSON.parse(this.responseText))
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
});
}
function do_bookmark(pageurl, pos, userFeedback) {
const wSpecItem = document.querySelector(`.wSpec-item[data-index="${pos}"]`);
const btnBookmark = wSpecItem.querySelector('.buttonBookmark');
const kmps_usrid = getCookie('kmps_usrid');
const guid = get_guid(pageurl);
const type = pageurl.match(/\/watch\/(\d+)/) ? 'video' : 'article';
if (kmps_usrid) {
if (btnBookmark.classList.contains('-active')) {
set_unbookmark({
guid: guid,
kmps_usrid: kmps_usrid,
type: type
}).then(function(resp) {
btnBookmark.classList.remove('-active');
btnBookmark.innerHTML = 'Simpan artikel';
reactionToast('Artikel berhasil dihapus dari list yang disimpan');
userFeedback.event('un-save');
}).catch(function(resp) {
// message: "Data doesn't exists"
if (resp.hasOwnProperty('message') && resp.message.includes('exist')) {
btnBookmark.classList.remove('-active');
btnBookmark.innerHTML = 'Simpan artikel';
reactionToast('Artikel berhasil dihapus dari list yang disimpan');
}
})
} else {
const user_bookmark_url = "";
set_bookmark({
guid: guid,
kmps_usrid: kmps_usrid,
type: type,
publisher: 'kompas',
platform: 'desktop'
}).then(function(resp) {
btnBookmark.classList.add('-active');
btnBookmark.innerHTML = 'Hapus dari tersimpan';
reactionToast('Artikel berhasil disimpan', user_bookmark_url);
userFeedback.event('save');
}).catch(function(resp) {
// message: "Data already exist"
if (resp.hasOwnProperty('message') && resp.message.includes('exist')) {
btnBookmark.classList.add('-active');
btnBookmark.innerHTML = 'Hapus dari tersimpan';
reactionToast('Artikel berhasil disimpan', user_bookmark_url);
}
})
}
} else {
const login_url = "" + btoa(window.location.href);
window.location.href = login_url;
}
}
function set_bookmark(data) {
const url = "";
return new Promise(function(resolve, reject) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 201) {
resolve(JSON.parse(this.responseText));
} else if (this.readyState == 4 && this.status == 400) {
reject(JSON.parse(this.responseText));
}
};
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
xmlhttp.send(formBody(data));
});
}
function set_unbookmark(data) {
const url = "";
return new Promise(function(resolve, reject) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
resolve(JSON.parse(this.responseText));
} else if (this.readyState == 4 && this.status == 400) {
reject(JSON.parse(this.responseText));
}
};
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
xmlhttp.send(formBody(data));
});
}
class UserFeedback {
constructor(engine, pageurl, jxRecHelper, pos) {
this.engine = engine;
this.pageurl = pageurl;
this.jxRecHelper = jxRecHelper;
this.pos = pos;
}
event(feedback) {
if (this.engine == 'C') {
const xmlhttp = new XMLHttpRequest();
let params = {
domain: 'kompas.com',
ce_userid: getCookie('kmps_usrid'),
ce_sessionid: getCookie('ukid'),
ce_pageurl: this.pageurl,
engine: 'C',
ce_feedback: feedback
}
xmlhttp.open("GET", ' + formatParams(params));
xmlhttp.send();
} else if (this.engine == 'V') {
if (feedback == 'share') {
this.jxRecHelper.shared(this.pos);
} else if (feedback == 'save') {
this.jxRecHelper.bookmarked(this.pos);
} else if (feedback == 'not-interested') {
this.jxRecHelper.hidden(this.pos);
} else if (feedback == 'un-not-interested') {
this.jxRecHelper.unhidden(this.pos);
}
}
}
}
function formatParams(params) {
return "?" + Object
.keys(params)
.map(function(key) {
return key + "=" + encodeURIComponent(params[key])
})
.join("&")
}
document.addEventListener("click", function(e){
let dx = document.querySelectorAll('[data-dropdown]')
if(dx) {
dx.forEach(function(el){
if(el.contains(e.target)) {
el.parentElement.classList.toggle('-active')
} else {
el.parentElement.classList.remove('-active')
}
})
}
})
Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.