Lompat ke isi

Bantuan:Fungsi parser

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Lihat versi terbaru di (Inggris)m:Help:Parser function dan (Inggris)m:Help:ParserFunctions

"Fungsi parser" (bahasa Inggris: ParserFunction) adalah semacam templat yang memberikan nilai sesuai dengan paling sedikit satu parameter tak bernama, yang dipisahkan dari nama fungsi menggunakan tanda titik dua ":"; seperti templat biasa, fungsi ini mungkin memiliki beberapa parameter, masing-masing diawali dengan garis tegak "|". Sintaks dapat ditulis dengan atau tanpa tanda pagar "#" di awalnya:

{{#namafungsi: argumen 1 | argumen 2 | argumen 3...}}

Untuk daftar kata-kata istimewa di Wikipedia, lihat pula m:Help:Magic words

Pemformatan

LC

(LowerCase) atau huruf kecil.
Membuat teks menjadi huruf kecil dan menghilangkan karakter newline dan spasi di awal dan akhir teks.

{{lc:AbC dEf}} menghasilkan abc def.
{{lc:Ä Β Ç}} menghasilkan ä β ç, yang dikehendaki ä β ç.

UC

(UpperCase) atau huruf besar.
Membuat teks menjadi huruf besar dan menghilangkan karakter newline dan spasi di awal dan akhir teks.

{{uc:AbCdEf}} menghasilkan ABCDEF.
{{uc:ä β ß}} menghasilkan Ä Β SS, yang dikehendaki Ä Β SS.

LCFIRST

(LowerCaseFirst) atau huruf pertama huruf kecil.
Membuat huruf pertama teks menjadi huruf kecil dan menghilangkan karakter newline dan spasi di awal dan akhir teks.

{{lcfirst:Ab Cd}} menghasilkan ab Cd.

UCFIRST

(UpperCaseFirst) atau huruf pertama huruf besar.
Membuat huruf pertama teks menjadi huruf besar dan menghilangkan karakter newline dan spasi di awal dan akhir teks.

{{ucfirst:aB cD}} menghasilkan AB cD.

URLENCODE

Menghilangkan karakter newline dan spasi di awal dan akhir teks, dan mengkonversi teks menjadi format yang ramah-URL

{{urlencode:halo dunia ?&=#/:}} menghasilkan halo+dunia+%3F%26%3D%23%2F%3A.

  • {{urlencode:"#$%&<!->'()*,;?[]^`{} }} menghasilkan %22%23%24%25%26%3C%21-%3E%27%28%29%2A%2C%3B%3F%5B%5D%5E%60%7B%7D [http://wiki-indonesia.club/w/index.php?title=Special:ExpandTemplates&input={{urlencode:{{subst:"#$%&<!->'()*,;?[%5D^`{}}}}}
  • {{urlencode:<}} menghasilkan %3C <}} (preposesor yang lama tidak menghasilkan kode %3C dari simbol tersebut, tapi kode dari HTML &lt;)
  • {{urlencode:>}} menghasilkan %3E >}} (preposesor yang lama tidak menghasilkan kode %3E dari simbol tersebut, tapi kode dari HTML &lt;)
  • {{urlencode:{{!}}}} menghasilkan %7C

NB: Untuk pranala di dalam suatu halaman, gunakan {{anchorencode}}

ANCHORENCODE

Untuk pranala di dalam suatu halaman, gunakan {{anchorencode}}, bukan {{urlencode}}. Hasil dari penggunaan {{anchorencode}} kompatibel dengan referensi intra-halaman yang dihasilkan oleh [[#link|pranala]], sedangkan hasil dari penggunaan {{urlencode}} belum tentu demikian.

NS

(NameSpace) atau Ruang Nama.
Memberikan nama Ruang Nama
Kode
dengan Angka
Hasil
dengan Angka
Kode
dengan Nama
Hasil
dengan Nama
{{ns:-2}} Media {{ns:Media}} Media
{{ns:-1}} Istimewa {{ns:Special}} Istimewa
{{ns:0}} {{ns:0}}
{{ns:1}} Pembicaraan {{ns:Talk}} Pembicaraan
{{ns:2}} Pengguna {{ns:User}} Pengguna
{{ns:3}} Pembicaraan Pengguna {{ns:User_talk}} Pembicaraan Pengguna
{{ns:4}} Wikipedia {{ns:Project}} Wikipedia
{{ns:5}} Pembicaraan Wikipedia {{ns:Project_talk}} Pembicaraan Wikipedia
{{ns:6}} Berkas {{ns:Image}} Berkas
{{ns:7}} Pembicaraan Berkas {{ns:Image_talk}} Pembicaraan Berkas
{{ns:8}} MediaWiki {{ns:MediaWiki}} MediaWiki
{{ns:9}} Pembicaraan MediaWiki {{ns:MediaWiki_talk}} Pembicaraan MediaWiki
{{ns:10}} Templat {{ns:Template}} Templat
{{ns:11}} Pembicaraan Templat {{ns:Template_talk}} Pembicaraan Templat
{{ns:12}} Bantuan {{ns:Help}} Bantuan
{{ns:13}} Pembicaraan Bantuan {{ns:Help_talk}} Pembicaraan Bantuan
{{ns:14}} Kategori {{ns:Category}} Kategori
{{ns:15}} Pembicaraan Kategori {{ns:Category_talk}} Pembicaraan Kategori
Ruang Nama dengan nomor 100 ke atas dapat dikustomisasi di masing-masing situs wiki
{{ns:100}} Portal {{ns:Portal}} Portal
{{ns:101}} Pembicaraan Portal {{ns:Pembicaraan_Portal}} Pembicaraan Portal

Benar:

  • {{ns:Pembicaraan_{{ns:12}}}} menghasilkan Pembicaraan Bantuan.[1]
  • {{ns:{{SITENAME}}}} menghasilkan Wikipedia.[2]
  • {{ns:Pembicaraan_{{ns:8}}}} menghasilkan Pembicaraan MediaWiki.[3]
  • {{ns:Pembicaraan {{ns:8}}}} menghasilkan Pembicaraan MediaWiki[4].

Salah

URL dll

{{localurl:namahalaman}} /wiki/Namahalaman
{{localurl:halaman|query=x}} /w/index.php?title=Halaman&query=x
{{localurl:halaman|action=edit}} /w/index.php?title=Halaman&action=edit
{{localurl:a&b! c}} /wiki/A%26b!_c
{{localurle:a&b! c}} /wiki/A%26b!_c
{{urlencode:a&b! c}} a%26b%21+c
{{fullurl:namahalaman}} //wiki-indonesia.club/wiki/Namahalaman
{{fullurl:ab}} //wiki-indonesia.club/wiki/Ab
{{fullurl:a b}} //wiki-indonesia.club/wiki/A_b
{{fullurl:ab|u=v}} //wiki-indonesia.club/w/index.php?title=Ab&u=v
{{fullurl:a b|u=v}} //wiki-indonesia.club/w/index.php?title=A_b&u=v
{{fullurl:a b|u=v w}} //wiki-indonesia.club/w/index.php?title=A_b&u=v w
{{fullurl:a&b!|u=v}} //wiki-indonesia.club/w/index.php?title=A%26b!&u=v
{{fullurle:a&b!|u=v}} //wiki-indonesia.club/w/index.php?title=A%26b!&u=v
Dengan prefiks interwiki
{{fullurl:m:a b|u=v}} https://meta.wikimedia.org/wiki/a_b?u=v
{{fullurl:m:ab|u=v}} https://meta.wikimedia.org/wiki/ab?u=v

Perhatikan bahwa dengan prefiks interwiki, maka format "wiki/" digunakan meskipun untuk menyunting halaman dll.

For interwiki links localurl and fullurl give the same:

{{localurl:w:a}} https://en.wiki-indonesia.club/wiki/a
{{fullurl:w:a}} https://en.wiki-indonesia.club/wiki/a
Bagian ini belum diterjemahkan

The parser function localurl: replaces spaces by underscores and special characters by escape codes, e.g. {{localurl:a !}} gives /wiki/A_!. The main purpose was
to create a link to a given page in external link style in the same project or a project which uses the same string in the URL between the server name and the page name. This function is
now better served by less verbose fullurl: constructs, {{fullurl:page}} is a shorthand for {{SERVER}}{{localurl:page}}.

Both fullurle: and localurle: performed additional character escaping on the resulting link, but no example is known where that still has any additional effect.

Note that fullurl: and localurl: don't encode special characters and spaces in the optional query-string parameter. At least for spaces this will result in broken URLs:

{{fullurl:m:Special:Contributions|target=Jimbo Wales&limit=10}}

https://meta.wikimedia.org/wiki/Special:Contributions?target=Jimbo Wales&limit=10

With target={{urlencode:Jimbo Wales}}&limit=10 as query-string it works:

https://meta.wikimedia.org/wiki/Special:Contributions?target=Jimbo+Wales&limit=10

The new urlencode: encodes spaces as "+", not "_" or the generally supported "%20", this might have interesting effects, take care. Leading and trailing spaces are stripped, but all internal spaces are preserved:
{{urlencode:  @  !  }} yields %40++%21.

LANGUAGE

atau Bahasa

{{#language:kode}} menghasilkan nama bahasa lokal sesuai dengan kode RFC 3066 yang dimasukkan, jika tidak dikenali maka ditampilkan apa adanya. Untuk daftar lengkap lihat pula http://www.iana.org/assignments/language-subtag-registry IANA registry.

{{#language:da}} menghasilkan dansk
{{#language:fo}} menghasilkan føroyskt
{{#language:zh}} menghasilkan 中文
{{#language:zh-min-nan}} menghasilkan 閩南語 / Bân-lâm-gú
{{#language:ang}} menghasilkan Ænglisc
{{#language:tlh}} menghasilkan tlh (hilang, daftar tak lengkap)
{{#language:frr}} menghasilkan Nordfriisk (hilang, dimasukkan tahun 2006)
{{#language:mw}} menghasilkan mw (tidak ada kode bahasa ini di tahun 2006)

Fungsi ini diharapkan akan menggantikan templat-templat berawalan 'lang-'.

Halaman di kategori

Kata Contoh Contoh hasil
{{PAGESINCATEGORY:category}} {{PAGESINCATEGORY:Rintisan umum}} 62
{{PAGESINCAT:category}} {{PAGESINCAT:Rintisan umum}} 62
{{PAGESINCATEGORY:category|R}} {{PAGESINCATEGORY:Rintisan umum|R}} 62
{{PAGESINCAT:category|R}} {{PAGESINCAT:Rintisan umum|R}} 62

[MW1.13+] Menampilkan jumlah halaman di dalam suatu kategori, termasuk jumlah subkategori dan berkas yang terkategorikan.


Ekstensi ParserFunction

Ekstensi MediaWiki ParserFunctions adalah kumpulan Fungsi parser. Fungsi-fungsi ini memiliki tanda pagar "#" di awalnya, jadi biasanya mereka memiliki sintaks:

{{#namafungsi: argumen 1 | argumen 2 | argumen 3...}}

Mohon perhatikan bahwa ekstensi ini harus dipasang secara manual, dan tidak langsung terpasang ketika sebuah MediaWiki baru dipasang. Lihat Istimewa:Versi untuk mengetahui apakan ekstensi ini sudah dipasang atau belum.

Fungsi-fungsi

Ekstensi ini mengandung sembilan fungsi: expr, if, ifeq, ifexist, ifexpr, switch, time, rel2abs, and titleparts.

#expr:

sintaks:

  • {{ #expr: ekspresi }}


Fungsi expr digunakan untuk menghitung perhitungan (ekspresi) matematika. Keakuratan dan format angka berbeda-beda tergantung dari sistem operasi peladen.

Dalam perhitungan kompleks, operator dihitung dari kiri ke kanan dengan preseden tertentu:

  1. pengelompokan (tanda kurung);
  2. unary (tanda +/- dan NOT);
  3. perkalian(*, /, div, mod);
  4. penjumlahan (+, -);
  5. pembulatan;
  6. perbandingan (=, !=, <, >, dll.);
  7. logical AND;
  8. logical OR.

Jika menghitung sebagai boolean, "0" dianggap FALSE (salah) dan karakter lain selain spasi "TRUE" (benar) (TRUE di boolean dilambangkan sebagai "1").

Macam operator:

Operator Operasi Contoh Hasil
tidak ada {{ #expr: 123456789012345 }} 1.2345678901234E+14
{{ #expr: 0.000001 }} 1.0E-6
Aritmatika
+ Unary tanda positif {{ #expr: +30 * +7 }} 210
- Unary tanda negatif {{ #expr: -30 * -7 }} 210
* Perkalian {{ #expr: 30 * 7 }} 210
/
div
Pembagian {{ #expr: 30 / 7 }}


{{ #expr: 30 div 7 }}

4.2857142857143
4.2857142857143
+ Penjumlahan {{ #expr: 30 + 7 }} 37
- Pengurangan {{ #expr: 30 - 7 }} 23
Logika
not Unary NOT
logical NOT
{{ #expr: not 0 * 7 }}


{{ #expr: not 30 + 7 }}

7
7
and Logical AND

{{ #expr: 4 < 5 and 4 mod 2 }}

0
or Logical OR

{{ #expr: 4 < 5 or 4 mod 2 }}

1
Perbandingan
= Persamaan (numerical & logical) {{ #expr: 30 = 7 }} 0
<>
!=
Pertidaksamaan, logical exclusive or {{ #expr: 30 <> 7 }}


{{ #expr: 1 != 0 }}

1
1
< Kurang dari

{{ #expr: 30 < 7 }}

0
> Lebih dari

{{ #expr: 30 > 7 }}

1
<= Kurang dari sama dengan

{{ #expr: 30 <= 7 }}

0
>= Lebih dari sama dengan

{{ #expr: 30 >= 7 }}

1
Lain-lain
( ) Operator pengelompokan {{ #expr: (30 + 7) * 7 }} 259
mod "Modulo" sisa pembagian.
Catatan: div dan mod berbeda dari semua bahasa pemrograman.
{{ #expr: 30 mod 7 }}


{{ #expr: -8 mod -3 }}
{{ #expr: 8 mod 2.7 }}

2
-2
0
round Membulatkan. {{ #expr: 30 / 7 round 4 }}


{{ #expr: 30 / 7 round 1 }}
{{ #expr: 1911 round -2 }}
{{ #expr: -2.5 round 0 }}

4.2857
4.3
1900
-3
trunc Menghilangkan desimal. {{ #expr: trunc1.2 }}


{{ #expr: trunc-1.2 }}

1
-1
floor Membulatkan ke intejer terdekat yang sama dengan atau lebih kecil dari angka tersebut. {{ #expr: floor1.2 }}


{{ #expr: floor-1.2 }}

1
-2
ceil Membulatkan ke intejer terdekat yang sama dengan atau lebih besar dari angka tersebut. {{ #expr: ceil1.2 }}


{{ #expr: ceil-1.2 }}

2
-1

#if:

sintaks:

  • {{ #if: <string kondisi> | <kode jika benar> }}
  • {{ #if: <string kondisi> | <kode jika benar> | <kode jika salah> }}


Fungsi if bekerja seperti jika-maka-jika_tidak. Kondisi yang diberikan akan selalu benar kecuali dikosongkan atau hanya berisi spasi. Kode di argumen kedua akan dijalankan jika nilai fungsinya benar, dan argumen ketiga akan dijalankan jika nilai fungsinya salah (salah satu atau keduanya dapat kosong, dan kode-jika-salah dapat tidak ditulis sama sekali).

Contoh:

  • {{ #if: foo | lakukan jika benar | lakukan jika salah }}
= lakukan jika benar
  • {{ #if: 0 | lakukan jika benar | lakukan jika salah }}
= lakukan jika benar
  • {{ #if: | lakukan jika benar | lakukan jika salah }}
= lakukan jika salah

#ifeq:

sintaks:

  • {{ #ifeq: <teks 1> | <teks 2> | <kode jika setara> }}
  • {{ #ifeq: <teks 1> | <teks 2> | <kode jika setara> | <kode jika tak setara> }}


Fungsi ifeq membandingkan dua string atau angka, dan akan menghasilkan argumen ketiga jika nilai fungsinya benar, atau akan menghasilkan argumen keempat jika nilai fungsinya salah (salah satu atau keduanya dapat kosong, dan kode-jika-tak-setara dapat tidak ditulis sama sekali). Contoh:

  • {{ #ifeq: teks 1 | teks 2 | kode setara | kode tak setara }}
= kode tak setara
  • {{ #ifeq: teks 1 | teks 1 | kode setara | kode tak setara }}
= kode setara

#ifexist:

sintaks:

  • {{ #ifexist: <nama halaman> | <kode jika ada> | <kode jika tidak ada> }}


Fungsi ifexist menghasilkan salah satu dari dua kemungkinan, tergantung dari apakah nama halaman yang dimasukkan ada atau tidak.

Contoh:

#ifexpr:

sintaks:

  • {{ #ifexpr: <ekspresi> | <maka> | <jika tidak> }}


Fungsi ifexpr menghitung suatu operasi (ekspresi) matematika (lihat expr) dan menghasilkan salah satu dari dua kemungkinan, tergantung dari perhitungan tersebut benar atau salah.

Contoh:

{{ #ifexpr: 10 > 9 | ya | tidak }}
ya -- Karena 10 lebih besar dari 9

#ifexpr:

sintaks:

  • {{ #ifexpr: <ekspresi> | <maka> | <jika tidak> }}


Fungsi ifexpr menghitung suatu operasi (ekspresi) matematika (lihat expr) dan menghasilkan salah satu dari dua kemungkinan, tergantung dari perhitungan tersebut benar atau salah.

Contoh:

{{ #ifexpr: 10 > 9 | ya | tidak }}
ya -- Karena 10 lebih besar dari 9

#switch:

sintaks:


Fungsi switch membandingkan antara suatu nilai dengan banyak nilai lainnya, dan menghasilkan string (yang berada setelah tanda samadengan) jika ada yang cocok. Jika tidak ada yang cocok, maka nilai terakhir yang tidak memiliki (jika ada) tanda samadengan-lah yang akan dihasilkan. Anda dapat memberikan hasil default dengan #default:


"switch" dapat digunakan untuk semua penggunaan #ifeq (tapi tidak sebaliknya):

{{ #switch: a | a=benar| salah }}
gives benar
{{ #ifeq: a | a | benar| salah }}
gives benar

#time:

Fungsi time adalah untuk pemformatan waktu dan tanggal (hanya untuk waktu sejak 1 Jan 1970!). Sintaks:

  • {{ #time: format }}
  • {{ #time: format | time }}


Kode/parameter:

Contoh:

  • {{ #time: l j F Y | 20070304 }}
menghasilkan "Minggu 4 Maret 2007"
  • {{ #time: l j F Y | 2007-03-04 }}
menghasilkan "Minggu 4 Maret 2007"
  • {{ #time: l j F Y | 2007/03/04 }}
menghasilkan "Minggu 4 Maret 2007"
  • {{ #time: l j F Y | 4 March 2007 }}
menghasilkan "Minggu 4 Maret 2007"
  • {{ #time: l j F Y | 4 March, 2007 }}
menghasilkan "Senin 4 Maret 2024" (!error: the comma in this case should not be there)
  • {{ #time: l j F Y | March 4 2007 }}
menghasilkan "Minggu 4 Maret 2007"
  • {{ #time: l j F Y | March 4, 2007 }}
menghasilkan "Minggu 4 Maret 2007"
  • {{ #time: l j F Y | -32 days }}
menghasilkan "Kamis 10 Oktober 2024" (32 days ago)
  • {{ #time: H:i | +6 hours }}
menghasilkan "05:44" (6 hours later than UTC)
  • {{ #time: H:i | 8:15 +6 hours }}
menghasilkan "14:15"
  • {{ #time: m/Y | -17 months }}
menghasilkan "06/2023" (17 months ago)

Jangkauan:

Tanggal tak lengkap

29 Februari:

Zona Waktu

#rel2abs:

Fungsi rel2abs adalah untuk mengkonversi pranala relatif ke pranala absolut.

  • {{ #rel2abs: path }}
  • {{ #rel2abs: path | base path }}


Pranala relatif adalah yang dimulai dengan '/', './', '../'. atau mengandung '/../' atau '/.' atau string '..' atau'.'.Jika base path diberikan, maka perlu ditulis dalam sintaks absolut.

Contoh:

  • If standing in Help:Foo/bar and is calling {{ #rel2abs: ../baz }}

, the result will be Help:Foo/baz

  • If standing in Help:Foo and is calling {{ #rel2abs: ../baz }}

, the result will be baz

  • If standing in Help:Foo and is calling {{ #rel2abs: ../../baz }}

, the result will be Kesalahan: Kedalaman path tidak valid: "Help:Foo/../../baz" (mencoba mengakses simpul di atas simpul akar)

  • If calling {{ #rel2abs: ../baz | Help:Bar/foo }}

, the result will be Help:Bar/baz

  • If calling {{ #rel2abs: Help:Foo/bar/../baz }}

, the result will be Help:Foo/baz

#titleparts:

Fungsi rel2abs adalah untuk mengkonversi pranala relatif ke pranala absolut.

  • {{ #titleparts: ''namahalaman'' | ''jumlah_segmen'' | ''mulai_dari '' }}
  • Jika mulai_dari dihilangkan, maka dianggap setara dengan 1
  • Ruang Nama untuk namahalaman dikonversikan ke Ruang Nama bahasa lokal

Contoh dengan satu parameter numerik:

Contoh dengan dua parameter numerik:

Contoh dengan parameter negatif (artinya "dihitung dari kanan"):

#iferror:

  • {{ #iferror: ''ekspresi'' | ''bermasalah'' | ''berhasil'' }}


Fungsi iferror akan menghasilkan bermasalah jika ekspresi mengandung sebuah <strong class="error"> yang terkadang dihasilkan oleh #expr, #ifexpr, #time, #rel2abs, dan beberapa situasi lainnya di MediaWiki seperti kedalaman rekursif, dan loop templat. Fungsi ini berguna untuk menangkap masukan yang bermasalah.

Contoh:

  • {{#iferror:{{#expr:1+1}}|masukan bermasalah|ekspresi valid}} menghasilkan ekspresi valid
  • {{#iferror:{{#expr:1+Z}}|masukan bermasalah|ekspresi valid}} menghasilkan masukan bermasalah