<?php
class Kamus {
private $data = [ ] ;
public function tambah
( string
$kata , array $sinonim ) : void
{ if ( ! isset ( $this -> data [ $kata ] ) ) { $this -> data [ $kata ] = [ ] ;
}
}
public function ambilSinonim( string $kata ) {
$hasil = [ ] ;
if ( isset ( $this -> data [ $kata ] ) ) { $hasil = $this -> data [ $kata ] ;
}
foreach ( $this -> data as $k => $sinonim ) {
$hasil [ ] = $k ;
}
}
return null ;
}
}
}
function cetakSinonim( $kata , $kamus ) {
$hasil = $kamus -> ambilSinonim ( $kata ) ;
if ( $hasil === null ) {
echo "Sinonim untuk '{$kata} ' null.\n " ;
} else {
echo "Sinonim untuk '{$kata} ': " . implode ( ', ' , $hasil ) . "\n " ; }
}
$kamus = new Kamus( ) ;
$kamus -> tambah ( 'big' , [ 'large' , 'great' ] ) ;
$kamus -> tambah ( 'big' , [ 'huge' , 'fat' ] ) ;
$kamus -> tambah ( 'huge' , [ 'enormous' , 'gigantic' ] ) ;
cetakSinonim( 'big' , $kamus ) ;
cetakSinonim( 'huge' , $kamus ) ;
cetakSinonim( 'gigantic' , $kamus ) ;
cetakSinonim( 'colossal' , $kamus ) ;
PD9waHAKCmNsYXNzIEthbXVzIHsKICAgIHByaXZhdGUgJGRhdGEgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKHN0cmluZyAka2F0YSwgYXJyYXkgJHNpbm9uaW0pOiB2b2lkIHsKICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5kYXRhWyRrYXRhXSkpIHsKICAgICAgICAgICAgJHRoaXMtPmRhdGFbJGthdGFdID0gW107CiAgICAgICAgfQogICAgICAgICR0aGlzLT5kYXRhWyRrYXRhXSA9IGFycmF5X3ZhbHVlcyhhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJHRoaXMtPmRhdGFbJGthdGFdLCAkc2lub25pbSkpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYW1iaWxTaW5vbmltKHN0cmluZyAka2F0YSkgewogICAgICAgICRoYXNpbCA9IFtdOwoKICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmRhdGFbJGthdGFdKSkgewogICAgICAgICAgICAkaGFzaWwgPSAkdGhpcy0+ZGF0YVska2F0YV07CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAkayA9PiAkc2lub25pbSkgewogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGthdGEsICRzaW5vbmltLCB0cnVlKSkgewogICAgICAgICAgICAgICAgJGhhc2lsW10gPSAkazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGVtcHR5KCRoYXNpbCkpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYXJyYXlfdmFsdWVzKGFycmF5X3VuaXF1ZSgkaGFzaWwpKTsKICAgIH0KfQoKZnVuY3Rpb24gY2V0YWtTaW5vbmltKCRrYXRhLCAka2FtdXMpIHsKICAgICRoYXNpbCA9ICRrYW11cy0+YW1iaWxTaW5vbmltKCRrYXRhKTsKICAgIGlmICgkaGFzaWwgPT09IG51bGwpIHsKICAgICAgICBlY2hvICJTaW5vbmltIHVudHVrICd7JGthdGF9JyBudWxsLlxuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgZWNobyAiU2lub25pbSB1bnR1ayAneyRrYXRhfSc6ICIgLiBpbXBsb2RlKCcsICcsICRoYXNpbCkgLiAiXG4iOwogICAgfQp9CgoKJGthbXVzID0gbmV3IEthbXVzKCk7CiRrYW11cy0+dGFtYmFoKCdiaWcnLCBbJ2xhcmdlJywgJ2dyZWF0J10pOwoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydodWdlJywgJ2ZhdCddKTsKJGthbXVzLT50YW1iYWgoJ2h1Z2UnLCBbJ2Vub3Jtb3VzJywgJ2dpZ2FudGljJ10pOwoKY2V0YWtTaW5vbmltKCdiaWcnLCAka2FtdXMpOwpjZXRha1Npbm9uaW0oJ2h1Z2UnLCAka2FtdXMpOwpjZXRha1Npbm9uaW0oJ2dpZ2FudGljJywgJGthbXVzKTsKY2V0YWtTaW5vbmltKCdjb2xvc3NhbCcsICRrYW11cyk7Cg==