Bantuan:Ungkapan bersyarat: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
RaFaDa20631 (bicara | kontrib)
 
(32 revisi perantara oleh 13 pengguna tidak ditampilkan)
Baris 1:
{{update}}
'''ParserFunction''' adalah sekumpulan fungsi-fungsi logika dan kalkulasi dalam [[MediaWiki]]. Sejak pertengahan April 2006 piranti lunak MediaWiki dengan menggunakan Sintaks-Wiki memperbolehkan digunakannya beberapa konstruksi suatu bahasa pemrograman untuk diterapkan dalam templat.
{{Templat:Bantuan:Bantuan/seri tab}}<!-- templat ini hanya digunakan untuk halaman Bantuan: , bukan Wikipedia:-->
{{Templat:Bantuan:Bantuan/sidebar}}<!-- templat ini hanya digunakan untuk halaman Bantuan: , bukan Wikipedia:-->
:''Lihat versi terbaru di {{en}} [[:mw:Help:ParserFunctions]]''
{{pintas|WP:PF}}
'''''ParserFunctions''''' (fungsi-[[Bantuan:fungsi parser|fungsi parser]]) adalah sekumpulan fungsi-fungsi logika dan kalkulasi dalam [[MediaWiki]]: [[mw:Extension:ParserFunctions]]. Sejak pertengahan April 2006 piranti lunak MediaWiki dengan menggunakan Sintaks-Wiki memperbolehkan digunakannya beberapa konstruksi suatu bahasa pemrograman untuk diterapkan dalam templat.
 
Konstruksi-konstruksi bahasa program ini seharusnya hanya digunakan secara eksklusif dalam ruang nama templat dan dipertimbangkan saat digunakan. Tidak setiap kemungkinan pemanfaatannya benar-benar berarti atau bermanfaat. Sintaks-sintaks bahasa pemrograman ini masih dapat berubah. Konstruksi pemrograman yang tidak cukup terdokumentasi, akan kembali dihapuskan.
 
Berbeda dengan fungsi parser biasa yang bisa tidak menggunakan tanda pagar "'''#'''", penggunaan ParserFunctions harus memakai tanda pagar di awal fungsi. ParserFunctions memiliki sintaks seperti berikut:
ParserFunction memiliki sintaks seperti berikut:<br>
:<tt><nowiki>{{#namafungsi: argumen1 | argumen2 | argumen3..}}</nowiki></tt>
 
*: <code><nowiki>{{#namafungsi: argumen1 | argumen2 | argumen3..}}</nowiki></code>
Sekarang ini, modul ini memiliki delapan ''function'' yaitu: <tt>expr, if, ifeq, ifexpr, ifexist, switch, time</tt> dan <tt>rel2abs</tt>.
 
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.
==if==
''Function'' ini memiliki sintaks:
:<tt><nowiki>{{#if: <kondisi> | perintah jika <true> | perintah jika <false> }}</nowiki></tt>
atau bisa juga dilihat dalam pola if-then-else sebagai berikut:
:<tt><nowiki>{{#if: <kondisi> | perintah jika <then> | perintah jika <else> }}</nowiki></tt>
Jika <kondisi> merupakan ''string'' kosong atau ''whitespace'', maka hasilnya adalah <false>, sehingga perintah <false> akan dijalankan. Selain itu perintah <true> yang akan dijalankan. Perintah <false> bisa tidak diikutkan, dalam hal ini apabila kondisi menghasilkan <false> maka hasilnya adalah ''string'' kosong.
 
== Fungsi-fungsi ==
Dalam templat, ''function'' if dapat digunakan dalam sintaks berikut:
Sekarang ini, modul ini memiliki sepuluh [[fungsi]] yaitu:
<pre>
<code>[[##expr:|expr]]</code>,
{{Templat|parameter=sesuatu}} {{Templat}} {{Templat|parameter=}}
<code>[[##if:|if]]</code>,
| | |
<code>[[##ifeq:|ifeq]]</code>,
| | |
<code>[[##ifexist:|ifexist]]</code>,
| | |
<code>[[##ifexpr:|ifexpr]]</code>,
{{#if: {{{parameter|}}} | parameter didefinisikan | parameter tidak didefinisikan atau kosong }}
<code>[[##iferror:|iferror]]</code>,
</pre>
<code>[[##switch:|switch]]</code>,
Perhatikan bahwa ''function'' if tidak mendukung tanda sama dengan untuk perbandingan seperti <tt><nowiki>{{#if: 1 = 2|benar|salah}}</nowiki></tt> akan menghasilkan "benar", karena ''string'' "1 = 2" tidak merupakan ''string'' kosong. ''Function'' <tt>if</tt> lebih berupa struktur "if defined". Untuk membandingkan ''string'' gunakan <tt>ifeq</tt>. Sedangkan untuk membandingkan angka, gunakan <tt>ifexpr</tt> yang merupakan bentuk singkat dari <tt>{{#if:{{#expr}}|..|..}}</tt>
<code>[[##time:|time]]</code>,
<code>[[##rel2abs:|rel2abs]]</code>, dan
<code>[[##titleparts:|titleparts]]</code>.
 
<h3 style="background: beige">#expr:</h3>
''Function'' <tt>if</tt> digunakan untuk menggantikan pemakaian <tt>"hiddenstructure"</tt> dan templat <tt><nowiki>{{qif}}</nowiki></tt>. Templat <tt><nowiki>{{qif}}</nowiki></tt> memiliki tingkat kompleksitas tinggi yang menyebabkan waktu yang lama untuk menghasilkan halaman wiki yang memakai templat tersebut.
sintaks:
*: {{ft|#expr|ekspresi}}
 
Fungsi <code>expr</code> digunakan untuk menghitung perhitungan (ekspresi) matematika didasarkan atas permutasi dari angka-angka (atau variabel/parameter yang diterjemahkan dalam angka-angka) dan operator. Fungsi ini tidak berlaku untuk string. (gunakan [[##ifeq|ifeq]] untuk string). Keakuratan dan format angka berbeda-beda tergantung dari sistem operasi peladen.
==ifeq==
''Function'' ini memiliki sintaks:
:<tt><nowiki>{{#ifeq: <string1> | <string2> | <string sama> | <string tidak sama> }}</nowiki></tt>
 
Dalam perhitungan kompleks, operator dihitung dari kiri ke kanan dengan preseden tertentu:
==switch==
# pengelompokan (tanda kurung);
''Function'' ini digunakan untuk membandingkan beberapa kondisi seperti dalam penggunaan ''nested if''. ''Function'' ini memiliki sintaks:
# ''unary'' (tanda +/- dan NOT);
<pre>
# perkalian(*, /, div, mod);
{{ #switch: <nilai yang dibandingkan>
# penjumlahan (+, -);
|<nilai_1> = <hasil_1>
# pembulatan;
|<nilai_2> = <hasil_2>
# perbandingan (=, !=, &lt;, &gt;, dll.);
|...
# logical AND;
|<nilai_n> = <hasil_n>
# logical OR.
|<hasil_default>
}}
</pre>
<tt>switch</tt> akan mencari setiap nilai sampai sebuah nilai ditemukan cocok dengan nilai yang dibandingkan dan hasil dari nilai yang cocok itu dikembalikan. Jika tidak ada nilai yang cocok dan nilai terakhir tidak memiliki tanda "sama dengan", maka nilai tersebut yang akan dikembalikan. Nilai ''default'' dapat juga didefinisikan memakai tanda "sama dengan" menggunakan <tt>#default</tt> seperti sintaks berikut:
<pre>
{{ #switch: <nilai yang dibandingkan>
|<nilai_1> = <hasil_1>
|<nilai_2> = <hasil_2>
|...
|<nilai_n> = <hasil_n>
|#default = <hasil default>
}}
</pre>
 
Jika menghitung sebagai boolean, "0" dianggap FALSE (salah) dan karakter lain selain spasi "TRUE" (benar) (TRUE di boolean dilambangkan sebagai "{{#expr: 30 and 7}}").<!--
Untuk menghindari mengetik hasil yang sama untuk nilai yang berbeda, dapat menggunakan sintaks berikut:
<pre>
{{ #switch: <nilai yang dibandingkan>
|<nilai_1> =
|<nilai_2> =
|<nilai_3> = <hasil_3>
|...
|<nilai_n> = <hasil_n>
|<hasil default>
}}
</pre>
Perhatikan bahwa <nilai_1> dan <nilai_2> tidak memiliki tanda "sama dengan". Jika nilai ini yang cocok, hasil yang dikembalikan adalah <hasil_3>.
 
Scientific notation with <code>E</code> plus exponent is '''meanwhile''' supported also on input for expressions (see [[Help:Calculation]]).
==expr==
-->
Fungsi <tt>expr</tt> digunakan untuk menghitung ekspresi matematik didasarkan atas permutasi dari angka-angka (atau variabel/parameter yang diterjemahkan dalam angka-angka) dan operator. Fungsi ini tidak berlaku untuk string. Sintaksnya sebagai berikut:
 
:<tt><nowiki>{{ #expr: ekspresi }}</nowiki></tt>
 
Macam operator:
{| class="prettytable"
! Operator
! Operasi
! Contoh
! Hasil
|-
| rowspan="2" colspan="2" align="center"| ''tidak ada''
||operator||sintaks||hasil
| {{ft|#expr|123456789012345}}
| {{#expr:123456789012345}}
|-
| {{ft|#expr|0.000001}}
||* (perkalian)||<tt><nowiki>{{#expr:30*7}}</nowiki></tt>||{{#expr:30*7}}
| {{#expr:0.000001}}
|-
!colspan="4"| Aritmatika
||/ or div (pembagian)||<tt><nowiki>{{#expr:30/7}}</nowiki></tt>||{{#expr:30/7}}
|-
! +
||+ (penambahan)||<tt><nowiki>{{#expr:30+7}}</nowiki></tt>||{{#expr:30+7}}
| ''Unary'' tanda positif
| {{ft|#expr|+30 * +7}}
| {{#expr:+30 * +7}}
|-
!-
||- (pengurangan)||<tt><nowiki>{{#expr:30-7}}</nowiki></tt>||{{#expr:30-7}}
| ''Unary'' tanda negatif
| {{ft|#expr|-30 * -7}}
| {{#expr:-30 * -7}}
|-
! *
||mod (modulus)||<tt><nowiki>{{#expr:30 mod 7}}</nowiki></tt>||{{#expr:30 mod 7}}
| Perkalian
| {{ft|#expr|30 * 7}}
| {{#expr:30 * 7}}
|-
! /<br />div
||round (pembulatan)||<tt><nowiki>{{#expr:30/7 round 3}}</nowiki></tt>||{{#expr:30/7 round 3}}
| Pembagian
| {{ft|#expr|30 / 7}}<br />{{ft|#expr|30 div 7}}
| {{#expr:30 / 7}}<br />{{#expr:30 div 7}}
|-
! <code>+</code>
||= (pembandingan)||<tt><nowiki>{{#expr:30=7}}</nowiki></tt>||{{#expr:30=7}}
| Penjumlahan
| {{ft|#expr|30 + 7}}
| {{#expr:30 + 7}}
|-
! <code>-</code>
||<> atau != (tidak sama)||<tt><nowiki>{{#expr:30<>7}}</nowiki></tt>||{{#expr:30<>7}}
| Pengurangan
| {{ft|#expr|30 - 7}}
| {{#expr:30 - 7}}
|-
!colspan="4"| Logika
||< (lebih kecil)||<tt><nowiki>{{#expr:30<7}}</nowiki></tt>||{{#expr:30<7}}
|-
! not
||> (lebih besar)||<tt><nowiki>{{#expr:30>7}}</nowiki></tt>||{{#expr:30>7}}
| ''Unary'' NOT<br />logical NOT
| {{ft|#expr|not 0 * 7}}<br />{{ft|#expr|not 30 + 7}}
| {{#expr: not 0 * 7}}<br />{{#expr:not 30+7}}
|-
! and
||<= (lebih kecil/sama dengan)||<tt><nowiki>{{#expr:30<=7}}</nowiki></tt>||{{#expr:30<=7}}
| Logical AND
|
{{ft|#expr|4 &lt; 5 and 4 mod 2}}
|{{#expr: 4<5 and 4 mod 2}}
|-
! or
||>= (lebih besar/sama dengan)||<tt><nowiki>{{#expr:30>=7}}</nowiki></tt>||{{#expr:30>=7}}
| Logical OR
|
{{ft|#expr|4 &lt; 5 or 4 mod 2}}
|{{#expr: 4<5 or 4 mod 2}}
|-
!colspan="4"| Perbandingan
||and (logika dan)||<tt><nowiki>{{#expr:30 and 7}}</nowiki></tt>||{{#expr:30 and 7}}
|-
! =
||or (logika atau)||<tt><nowiki>{{#expr:30 or 7}}</nowiki></tt>||{{#expr:30 or 7}}
| Persamaan (numerical & logical)
| {{ft|#expr|<nowiki>30 = 7</nowiki>}}
| {{#expr:30 = 7}}
|-
! &lt;&gt;<br />!=
||not (logika bukan)||<tt><nowiki>{{#expr:30 not 7}}</nowiki></tt>||{{#expr:not 7}}
| Pertidaksamaan, ''logical exclusive or''
| {{ft|#expr|30 &lt;&gt; 7}}<br />{{ft|#expr|<nowiki>1 != 0</nowiki>}}
| {{#expr:30 <> 7}}<br />{{#expr:1 != 0}}
|-
! &lt;
||() (pengelompokkan)||<tt><nowiki>{{#expr:(30+7)*7}}</nowiki></tt>||{{#expr:(30+7)*7}}
| Kurang dari
|
{{ft|#expr|30 &lt; 7}}
|{{#expr: 30 < 7}}
|-
! &gt;
| Lebih dari
|
{{ft|#expr|30 &gt; 7}}
|{{#expr: 30 > 7}}
|-
! &lt;=
| Kurang dari sama dengan
|
{{ft|#expr|<nowiki>30 &lt;= 7</nowiki>}}
|{{#expr: 30 <= 7}}
|-
! &gt;=
| Lebih dari sama dengan
|
{{ft|#expr|<nowiki>30 &gt;= 7</nowiki>}}
|{{#expr: 30 >= 7}}
|-
!colspan="4"| Lain-lain
|-
! ( )
| Operator pengelompokan
| {{ft|#expr|(30 + 7) * 7 }}
| {{#expr:(30 + 7) * 7 }}
|-
! mod
| "Modulo" sisa pembagian.<br />Catatan: ''div'' dan ''mod'' berbeda dari semua bahasa pemrograman.
| {{ft|#expr|30 mod 7}}<br />{{ft|#expr|-8 mod -3}}<br />{{ft|#expr|8 mod 2.7}}<br />
| {{#expr:30 mod 7}}<br />{{#expr:-8 mod -3}}<br />{{#expr:8 mod 2.7}}<br />
|-
! round
| Membulatkan.
| {{ft|#expr|30 / 7 round 4}}<br />{{ft|#expr|30 / 7 round 1}}<br />{{ft|#expr|1911 round -2}}<br />{{ft|#expr|-2.5 round 0}}
| {{#expr: 30 / 7 round 4}}<br />{{#expr:30 / 7 round 1}}<br />{{#expr:1911 round -2}}<br />{{#expr:-2.5 round 0}}
|-
! trunc
| Menghilangkan desimal.
| {{ft|#expr|trunc1.2}}<br />{{ft|#expr|trunc-1.2}}
| {{#expr: trunc 1.2}}<br />{{#expr: trunc -1.2}}
|-
! floor
| Membulatkan ke intejer terdekat yang sama dengan atau lebih kecil dari angka tersebut.
| {{ft|#expr|floor1.2}}<br />{{ft|#expr|floor-1.2}}
| {{#expr: floor 1.2}}<br />{{#expr: floor -1.2}}
|-
! ceil
| Membulatkan ke intejer terdekat yang sama dengan atau lebih besar dari angka tersebut.
| {{ft|#expr|ceil1.2}}<br />{{ft|#expr|ceil-1.2}}
| {{#expr: ceil 1.2}}<br />{{#expr: ceil -1.2}}
|}
 
<h3 style="background: beige">#if:</h3>
Untuk operator logika seperti = (sama dengan), <> (tidak sama dengan) dll, hasil dari <tt>expr</tt> adalah 0 untuk "salah" (''false'') dan 1 untuk "benar" (''true'').
sintaks:
*: {{ft|#if|<nowiki><string kondisi> | <kode jika benar></nowiki>}}
atau bisa juga dilihat dalam pola ''if-then-else'' sebagai berikut:
*: {{ft|#if|<nowiki><string kondisi> | <kode jika benar> | <kode jika salah></nowiki>}}
 
Fungsi <code>if</code> bekerja seperti ''if-then-else'' (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).
==ifexpr==
''Function'' ini memiliki sintaks:
:<tt><nowiki>{{ #ifexpr: <ekspresi> | <then> | <else> }}</nowiki></tt>
Jika nilai dari eskpresi menghasilkan nol, maka <else> akan dikembalikan, selain itu <then> akan dikembalikan. <ekspresi> sama dengan pemakaian pada ''function'' <tt>expr</tt>. ''Function'' ini merupakan bentuk pendek dari <tt>{{#if:{{#expr}}|..|..}}</tt>
 
Perbandingan yang dilakukan adalah untuk teks, bukan ekspresi matematika, jadi perbandingan matematika akan selalu dianggap benar; Contoh: <code><nowiki>{{#if: 1 = 2|benar|salah}}</nowiki></code> akan menghasilkan "benar", karena [[string]] "1 = 2" tidak merupakan string kosong. Untuk membandingkan string gunakan [[##ifeq|ifeq]]. Sedangkan untuk membandingkan angka, gunakan [[#ifexpr|ifexpr]].
==ifexists==
<---
''Function'' ini memiliki sintaks:
It is not possible to distinguish between an undefined parameter in a template and a blank one (it is possible with <code>[[#.23ifexpr:|#ifexpr]]</code>).
:<tt><nowiki>{{ #ifexists: <judul> | <judul ada> | <judul tidak ada> }}</nowiki></tt>
-->
Jika suatu halaman berjudul <judul> ada, maka perintah <judul ada> dijalankan, jika tidak maka perintah <judul tidak ada> dijalankan. Function ini mirip dengan templat {{var|exists}} di en.wikipedia.
 
Fungsi <code>if</code> digunakan untuk menggantikan pemakaian <code>"hiddenstructure"</code> dan templat {{tl|qif}}. Templat {{tl|qif}} memiliki tingkat kompleksitas tinggi yang menyebabkan waktu yang lama untuk menghasilkan halaman wiki yang memakai templat tersebut.
==#time==
''Function'' ini memiliki sintaks:
:<tt>{&#123; #time: ''format'' }}</tt>
 
Contoh:
atau
* {{ft|#if|<nowiki>foo | lakukan jika benar | lakukan jika salah</nowiki>}} = {{#if:foo| lakukan jika benar | lakukan jika salah}}
* {{ft|#if|<nowiki>0 | lakukan jika benar | lakukan jika salah</nowiki>}} = {{#if:0 | lakukan jika benar | lakukan jika salah}}
* {{ft|#if|<nowiki> | lakukan jika benar | lakukan jika salah</nowiki>}} = {{#if: | lakukan jika benar | lakukan jika salah}}
 
Dalam templat, ''function'' if dapat digunakan dalam sintaks berikut:
:<tt>{&#123; #time: ''format'' | ''waktu'' }}</tt>
<pre>
{{Templat|parameter=sesuatu}} {{Templat}} {{Templat|parameter=}}
| | |
| | |
| | |
{{#if: {{{parameter|}}} | parameter didefinisikan | parameter tidak didefinisikan atau kosong }}
</pre>
 
<h3 style="background: beige">#ifeq:</h3>
Fungsi "time" digunakan untuk menampilkan waktu (jam/tanggal) dalam berbagai format. Jika waktu tidak diberikan, fungsi "time" akan memakai waktu saat artikel yang bersangkutan dikonversi ke [[HTML]]. Dikarenakan adanya ''cache'', halaman yang memakai fungsi ini perlu untuk diperbaharui dengan ''purge'' atau ''null edit''.
sintaks:
*: {{ft|#ifeq|<nowiki><teks 1> | <teks 2> | <kode jika setara></nowiki>}}
*: {{ft|#ifeq|<nowiki><teks 1> | <teks 2> | <kode jika setara> | <kode jika tak setara></nowiki>}}
 
Fungsi <code>ifeq</code> 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).
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
 
Perbandingan string ini sensitif terhadap huruf besar/huruf kecil (contoh, {{#ifeq:A|a|A = a|A != a}}). Jika kedua string dapat dijadikan angka, mereka akan dibandingkan secara numerikal (contoh, {{#ifeq:01|1|01 = 1|01 != 1}}); Untuk memaksa perbadingan string, tambahkan karakter non-angka (seperti tanda kutip <code>"</code>) pada kedua argumen.
<!--
It is possible to distinguish between undefined and empty template parameters by comparing default values (if the parameter is defined, it will overwrite the default value even if blank):
* {{ft|#ifeq|<nowiki>{{{parameter|default}}} | default | parameter not defined | parameter defined</nowiki>}} = {{#ifeq:{{{parameter|default}}} | default | parameter not defined | parameter defined}}
-->
 
Isu: (belum diterjemahkan)
<!--
* Text between &lt;nowiki&gt; tags is temporarily replaced by a unique code. This affects comparisons: {{ft|#ifeq|<nowiki>&lt;nowiki&gt;abc&lt;/nowiki&gt; | &lt;nowiki&gt;abc&lt;/nowiki&gt; | equal | not equal</nowiki>}} returns "{{#ifeq:<nowiki>abc</nowiki> | <nowiki>abc</nowiki> | equal | not equal}}".
-->
 
Contoh:
* {{ft|#ifeq|<nowiki>teks 1 | teks 2 | kode setara | kode tak setara</nowiki>}} = {{#ifeq: teks 1 | teks 2 | kode setara | kode tak setara }}
* {{ft|#ifeq|<nowiki>teks 1 | teks 1 | kode setara | kode tak setara</nowiki>}} = {{#ifeq: teks 1 | teks 1 | kode setara | kode tak setara }}
 
<h3 style="background: beige">#ifexist:</h3>
sintaks:
*: {{ft|#ifexist|<nowiki><nama halaman> | <kode jika ada> | <kode jika tidak ada></nowiki>}}
 
Fungsi <code>ifexist</code> menghasilkan salah satu dari dua kemungkinan, tergantung dari apakah nama halaman yang dimasukkan ada atau tidak.
 
Contoh:
<!--
The usual case-sensitivity applies: if a page exists then also a non-canonical name for that page gives a positive result. E.g. on Meta:
:{{ft|#ifexist|<nowiki>Bugs|Foo|RFC 3092</nowiki>}} gives {{#ifexist:Bugs|Foo|RFC 3092}}, because [[Bugs]] exists
:{{ft|#ifexist|<nowiki>bugs|Foo|RFC 3092</nowiki>}} gives {{#ifexist:bugs|Foo|RFC 3092}}, because [[bugs]] is in canonical form the existing [[Bugs]]
:{{ft|#ifexist|<nowiki>BUGS|Foo|RFC 3092</nowiki>}} gives {{#ifexist:BUGS|Foo|RFC 3092}} because [[BUGS]] does not exist
:{{ft|#ifexist|<nowiki>m:Help:Calculation|Yes|Oops</nowiki>}} gives {{#ifexist:m:Help:Calculation|Yes|Oops}} although [[m:Help:Calculation]] exists, because of the interwiki prefix.
 
The first parameter is the title to check for, the second is the positive result, and the third, the negative result. If the parameter passed does not produce a valid title object, then the result is negative.
 
{{tim|exists}} gives the same result, except that the result is positive for an interwiki link. You can also handle an interwiki link differently with {{tim|if interwiki link}}.
 
{{ft|#ifexist}} doesn't handle relative paths (like '../foo'), for that, use it in combination of {{ft|#rel2abs}}.
 
The page where <nowiki>{{#ifexist:foo}}</nowiki> appears is listed on Special:Whatlinkshere/foo (as a page which links to foo), see below.
 
On Wikimedia wikis there is a maximum for the number of distinct pages for which #ifexist is called on a page. A call of #ifexist after a transclusion of the same page does not require an extra database query and is therefore not counted. A call beyond the maximum returns "false". The html-source of each page shows the counted number of calls, as well as the maximum. The maximum is currently 500, and it has been announced that this will be lowered to 100. [http://en.wiki-indonesia.club/wiki/Wikipedia:Village_pump_(technical)#Abuse_of_#ifexist_parser_function].
 
{{ft|#ifexist}} can correctly check Special pages as well:
:{{ft|#ifexist|<nowiki>Special:Version|'''works'''|'''doesn't work'''</nowiki>}} gives {{#ifexist:Special:Version|'''works'''|'''doesn't work'''}}
:{{ft|#ifexist|<nowiki>Special:Nonsense|'''works'''|'''doesn't work'''</nowiki>}} gives {{#ifexist:Special:Nonsense|'''works'''|'''doesn't work'''}}
-->
 
<h3 style="background: beige">#ifexpr:</h3>
sintaks:
*: {{ft|#ifexpr|<nowiki><ekspresi> | <maka> | <jika tidak></nowiki>}}
 
Fungsi <code>ifexpr</code> menghitung suatu operasi (ekspresi) matematika (lihat [[##expr:|expr]]) dan menghasilkan salah satu dari dua kemungkinan, tergantung dari perhitungan tersebut benar atau salah.
 
Contoh:
:{{ft|#ifexpr| 10 > 9<nowiki> | ya | tidak</nowiki>}} {{#ifexpr: 10 > 9|ya|tidak}} -- Karena 10 lebih besar dari 9
<!--
;At the moment the ''else text'' is also returned for an empty expression:
:{{ft|#ifexpr|<nowiki>{{ns:0}}|Toast| '''or else'''</nowiki>}} gives {{#ifexpr: {{ns:0}}|Toast|'''or else'''}}
;Omitting both ''then text'' and ''else text'' gives no output except possibly an error message; this can be used to check the correctness of an expression, or to check the wording of the error message (emulated ''assertions'', forced errors):
:{{ft|#ifexpr|1/{{ft sub|#ifeq|{{ft sub|ns|4}} <nowiki>| Meta | 1 | 0</nowiki>}}}} {{#ifexpr: 1/{{#ifeq: {{ns:4}}|Meta|1|0}}}} -- no result, hence "<nowiki>1/{{#ifeq: {{ns:4}}|Meta|1|0}}"</nowiki> is a correct expression
:{{ft|#ifexpr|1/{{ft sub|#ifeq|{{ft sub|ns|0}} <nowiki>| Meta | 1 | 0</nowiki>}}}} {{#ifexpr: 1/{{#ifeq: {{ns:0}}|Meta|1|0}}}}
:{{ft|#if|{{ft sub|#ifexpr|<nowiki>1=2</nowiki>}}<nowiki> | wrong | correct</nowiki>}} {{#if:{{#ifexpr: 1=2}}|wrong|correct}} -- "1=2" is a correct Boolean expression (not to be confused with one with the value 1, representing "true")
:{{ft|#if|{{ft sub|#ifexpr|1E2}}<nowiki> | wrong | correct</nowiki>}} {{#if:{{#ifexpr: 1E2}}|wrong|correct}} -- "1E2" is '''now''' also allowed in expressions
:{{ft|#if|{{ft sub|#ifexpr|1/0}}<nowiki> | wrong | correct</nowiki>}} {{#if:{{#ifexpr: 1/0}}|wrong|correct}} -- "1/0" not allowed
 
:{{ft|#if|{{ft sub|#ifexpr|<nowiki>a=b</nowiki>}}<nowiki> | wrong | correct</nowiki>}} {{#if:{{#ifexpr: a=b}}|wrong|correct}} ("a=b" not allowed, to compare strings use #ifeq)
 
Example of an application: <nowiki>{{ #if: {{#ifexpr: {{PAGENAME}} }} || </nowiki>''action if PAGENAME is a number (or correct numeric expression)'' }}
 
For another application, see also {{tim|evalns}}.
-->
 
<h3 style="background: beige">#switch:</h3>
sintaks:
<nowiki>{{</nowiki>#switch: <span style="color: green;">''<nilai yang dibandingkan>''</span>
| ''<nilai><sub>1</sub>'' = ''<hasil><sub>1</sub>''
| ''<nilai><sub>2</sub>'' = ''<hasil><sub>2</sub>''
| ''...''
| ''<nilai><sub>n</sub>'' = ''<hasil><sub>n</sub>''
| <span style="color: blue;">''<hasil>'' default</span>
}}
 
Fungsi <code>switch</code> 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 <code>#default</code>:
<nowiki>{{</nowiki>#switch: <span style="color: green;">''<nilai yang dibandingkan>''</span>
| ''<nilai>'' = ''<hasil>''
| <span style="color: blue;">#default = ''<hasil ''default''>''</span>
}}
 
<!--
Note that it's also possible to have "fall through" for values (reducing the need to duplicate results). For example:
 
{{ft begin|#switch}} <span style="color: green;">''<comparison value>''</span>
| ''<value><sub>1</sub>''
| ''<value><sub>2</sub>''
| ''<value><sub>3</sub>'' = ''<result><sub>1, 2, 3</sub>''
| ''...''
| ''<value><sub>n</sub>'' = ''<result><sub>n</sub>''
| <span style="color: blue;">''<default result>''</span>
{{ft end}}
 
Note how value<sub>1</sub> and value<sub>2</sub> contain no equal sign. If they're matched, they are given the result for value<sub>3</sub> (that is, whatever is in result<sub>3</sub>).
 
;As for [[##ifeq:|#ifeq:]] the comparison is numerical where possible:
:{{ft|#switch|<nowiki>+07 | 7 = Yes | 007 = Bond | No </nowiki>}} gives {{ #switch: +07 | 7 = Yes | 007 = Bond | No }}
:{{ft|#switch|<nowiki>"+07"|"7"= Yes |"007"= Bond | No </nowiki>}} gives {{ #switch:"+07"|"7"= Yes |"007"= Bond | No }}
;The matched value can be empty, therefore the following constructs are equivalent:
:{{ft|#if|<nowiki>{{ns:0}} | not empty | empty </nowiki>}} gives {{ #if: {{ns:0}} | not empty | empty }}
:{{ft|#switch|<nowiki>{{ns:0}}|=empty|not empty </nowiki>}} gives {{ #switch:{{ns:0}}|=empty|not empty }}
 
Comparison of strings is case-sensitive:
:{{ft|#switch|<nowiki>A | a=lower | A=UPPER </nowiki>}} gives {{#switch: A | a=lower | A=UPPER }}
:{{ft|#switch|<nowiki>A | a=lower | UPPER </nowiki>}} gives {{#switch: A | a=lower | UPPER }}
:{{ft|#switch|<nowiki>a | a=lower | UPPER </nowiki>}} gives {{#switch: a | a=lower | UPPER }}
 
This is not to be confused with the fact that parser function names are case-insensitive:
:{{ft|#swItch|<nowiki>A | a=lower | UPPER </nowiki>}} gives {{#swItch: A | a=lower | UPPER }}
 
To have the [[##switch:|#switch]] statement be case-insensitive, use the construct <nowiki>{{lc:}}</nowiki> or <nowiki>{{uc:}}</nowiki>
:{{ft|#switch|<nowiki>{{lc:A}} | a=lower | A=UPPER </nowiki>}} gives {{#switch: {{lc:A}} | a=lower | A=UPPER }}
:{{ft|#switch|<nowiki>{{lc:A}} | a=lower | UPPER </nowiki>}} gives {{#switch: {{lc:A}} | a=lower | UPPER }}
:{{ft|#switch|<nowiki>{{lc:a}} | a=lower | UPPER </nowiki>}} gives {{#switch: {{lc:a}} | a=lower | UPPER }}
 
This is usually used in templates, when you want to have case-insensitivity on in param values:
{{ft begin|#switch}} <span style="color: green;">{{ft sub|lc|<nowiki>{{{1| B }}}</nowiki>}}</span>
| a
| b
| c = <nowiki>'''''abc''' or '''ABC'''''</nowiki>
| A
| B
| C = <nowiki>''Memory corruption due to cosmic rays''</nowiki>
| <span style="color: blue;">#default = ''N/A''</span>
{{ft end}}
gives {{#switch: {{lc: {{{1| B }}} }}
| a
| b
| c = '''''abc''' or '''ABC'''''
| A
| B
| C = ''Memory corruption due to cosmic rays''
| #default = N/A
}}
-->
"''switch''" dapat digunakan untuk semua penggunaan [[##ifeq:|#ifeq]] (tapi tidak sebaliknya):
:{{ft|#switch|<nowiki>a | a=benar| salah</nowiki>}} menghasilkan {{#switch: a | a=benar| salah}}
:{{ft|#ifeq|<nowiki>a | a | benar| salah</nowiki>}} menghasilkan {{#ifeq: a | a | benar| salah}}
 
<h3 style="background: beige">#time:</h3>
sintaks:
*: {{ft|#time|<nowiki>format</nowiki>}}
*: {{ft|#time|<nowiki>format| waktu</nowiki>}}
 
Fungsi <code>time</code> adalah untuk pemformatan waktu dan tanggal ('''hanya untuk waktu sejak 1 Jan 1970!'''). Jika "waktu" tidak diberikan, fungsi ini akan memakai waktu saat artikel yang bersangkutan dikonversi ke [[HTML]]. Dikarenakan adanya ''[[cache]]'', halaman yang memakai fungsi ini perlu untuk diperbaharui dengan ''[[purge]]'' atau ''null edit''.
<!--
The ''format'' parameter is a format string similar to the one used by [http://www.php.net/date PHP's date].
 
The following format codes have the same meaning as in PHP. Significant differences from PHP's behaviour, apart from internationalisation (i.e. language and locale differences), should be considered an error of ParserFunctions and should be reported. All numeric format codes return numbers formatted according to the local language, use the xn code described below to override this.
-->
 
Format kode/parameter:
{| class="prettytable"
! Kode
! Deskripsi
! Contoh keluaran
! Hasil
|--------------
|-
|colspan="4"| Tahun:
|-
| Y
| 4-digit tahun.
| e.g. 2006
| {{#time:Y}}
|-
| y
| 2-digit tahun.
| 00 hingga 99, e.g. 06 untuk tahun 2006.
| {{#time:y}}
|-
|colspan="4"| Bulan:
|-
| n
| Bulan ke- (tanpa awalan 0).
| 1 hingga 12
| {{#time:n}}
|-
| m
| Bulan ke- (dengan awalan 0).
| 01 hingga 12
| {{#time:m}}
|-
| M
| Tiga huruf nama bulan.
| Jan hingga Des
| {{#time:M}}
|-
| F
| Nama bulan lengkap
| Januari hingga Desember
| {{#time:F}}
|-
|colspan="4"| Minggu:
|-
| W
| ISO 8601 angka minggu (satu minggu dalam tahun ISO adalah dari senin hingga minggu, dan minggu ke-1 selalu memiliki tanggal 4 Januari atau hari kamis pertama pada kalender sipil), dengan awalan 0.
| 01 hingga 52 atau 53
| {{#time:W}}
|-
|colspan="4"| Hari:
|-
| j
| Tanggal dalam sebulan (tanpa awalan 0).
| 1 hingga 31
| {{#time:j}}
|-
| d
| Tanggal dalam sebulan (dengan awalan 0).
| Hari, dengan awalan nol jika diperlukan.
| 01 hingga 31
| {{#time:d}}
|-
|--------------
| z
| Tanggal dalam setahun (dimulai dari 0).
| 0 hingga 364 atau 365
| {{#time:z}}
|-
| D
| Tiga huruf sebagai singkatan nama hari.
| Sen hingga Min
| {{#time:D}}
|-
| <code>l</code>
| Nama hari lengkap.
| Senin hingga Minggu
| {{#time:l}}
|-
| N
| Tanggal dalam seminggu (menurut minggu ISO 8601).
| 1 (untuk Senin) hingga 7 (untuk Minggu)
| {{#time:N}}<!--
|-
| w
| Tanggal dalam seminggu (menurut minggu Amerika).
| 0 (untuk Minggu) hingga 6 (untuk Sabtu)
| {{#time:w}} -->
|-
|colspan="4"| Jam:
|-
| a
| am (dari 01:00:00 hingga 12:59:59) atau pm, dengan huruf kecil (untuk format 12-jam)).
| am atau pm
| {{#time:a}}
|-
| A
| Sama dengan kode <code>a</code> di atas, dengan huruf besar
| AM atau PM
| {{#time:A}}
|-
| g
| Jam berformat 12-jam (tanpa awalan 0, menggunakan am/pm atau AM/PM).
| 1 hingga 12
| {{#time:g}}
|-
| h
| Jam berformat 12-jam (dengan awalan 0, menggunakan am/pm or AM/PM).
| 01 hingga 12
| {{#time:h}}
|-
| G
| Jam berformat 24-jam (tanpa awalan 0).
| 0 hingga 23
| {{#time:G}}
|-
| H
| Jam berformat 24-jam (tanpa awalan 0).
| 00 hingga 23
| {{#time:H}}
|-
|colspan="4"| Menit dan detik:
|-
| i
| Menit (dengan awalan 0).
| 00 hingga 59
| {{#time:i}}
|-
| s
| Detik (dengan awalan 0).
| 00 hingga 59
| {{#time:s}}
|-
| U
| Detik sejak 1 Januari 1970 00:00:00 GMT.
| 0 hingga infiniti
| {{#time:U}}
|-
|colspan="4"| Lain-lain:
|-
| L
| Tahun kabisat atau bukan
| 1 jika tahun kabisat, 0 jika tidak.
| {{#time:L}}
|-
| t
| Jumlah hari dalam sebulan.
| 28, 29, 30, atau 31
| {{#time:t}}
|-
| c
| Tanggal berformat ISO 8601, sama dengan {{#time:Y-m-dTH:i:s{{#time:+H:i&#124;+0 hours}}}}.
| string dengan panjang tertentu
| {{#time:c}}
|-
| r
| Tanggal berformat RFC 2822, sama dengan {{#time:D, j M Y H:i:s {{#time:+H:i&#124;+0 hours}}}}.
| string dengan panjang bervariasi
| {{#time:r}}
|}
<!--
The following format codes are extensions to the PHP syntax:
 
{| cellpadding="6" style="border:1px solid #C0C0C0; border-collapse:collapse;"
! Code
! Description
|--------------
| jxn
| Format the next numeric code as a raw ASCII number. For example, in the Hindi language, {{ft|#time|H, xnH}} produces ०६, 06.
| Hari, tanpa awalan nol.
| {{#time:j}}
|--------------
| lxN
| Toggle a permanent raw number formatting flag. Like xn, except it lasts until the end of the string or until the same code appears again.
| Nama hari.
| {{#time:l}}
|--------------
| Fxr
| Format the next numeric code as a roman numeral. Only works for numbers up to 3000.
| Nama bulan.
| {{#time:F}}
|--------------
| mxg
| Output the genitive form of the month name, for languages which make such a distinction between genitive and nominative.
| Bulan, dengan awalan nol jika diperlukan.
| {{#time:m}}
|--------------
| Mxx
| A literal "x"
| Tiga huruf singkatan nama bulan.
| {{#time:M}}
|--------------
| nxij
| The day of the month in Iranian calendar.
| Bulan, tanpa awalan nol.
| {{#time:n}}
|--------------
| YxiF
| The full month name in Iranian calendar
| Empat digit tahun.
| {{#time:Y}}
|--------------
| yxin
| The month number in Iranian calendar
| Dua digit tahun.
| {{#time:y}}
|--------------
| HxiY
| The full year in Iranian calendar
| Jam, dengan awalan nol jika diperlukan.
| {{#time:H}}
|--------------
| ixjj
| The day of the month in Hebrew calendar
| Menit, dengan awalan nol jika diperlukan.
| {{#time:i}}
|--------------
| sxjF
| The full month name in Hebrew calendar
| Detik, dengan awalan nol jika diperlukan.
|--------------
| {{#time:s}}
| xjx
| Genitive form of the month name in Hebrew calendar
|--------------
| xjn
| The month number in Hebrew calendar
|--------------
| xjY
| The full year in Hebrew calendar
|--------------
| xkY
| The full year in Thai solar calendar
|}
-->
 
Ketentuan-ketentuan yang berlaku:
* Karakter format yang tidak dikenal akan ditampilkan apa adanya.
* Karakter-karakter dalam tanda kutip akan ditampilkan apa adanya tanpa diformat, contoh:
** {&#123;{ #time: "Sekarang bulan " F}} &rarr; Sekarang bulan Januari
** {&#123;{ #time:i's"}} &rarr; 20'11"
* Karakter escape ''backslash'' seperti dalam fungsi date() di PHP's juga dikenal. \H menghasilkan huruf H, \" menghasilkan ".
 
Kode-kode format tambahan mungkin akan ditambahkan di masa mendatang. Fungsi "time" juga mengenal format waktu relatif dan absolut seperti "11 Desember" dan atau "+10 hours" yang bisa digunakan dalam konversi zona waktu.
 
Jika nilai dari eskpresi menghasilkan nol, maka <else> akan dikembalikan, selain itu <then> akan dikembalikan. <ekspresi> sama dengan pemakaian pada ''function'' <ttcode>expr</ttcode>. ''Function'' ini merupakan bentuk pendek dari <ttcode>{{#if:{{#expr}}|..|..}}</ttcode>
 
====Contoh====:
*<nowiki> {{ft|#time:|<nowiki>l j F Y |-14 days}}20070304</nowiki>}} menghasilkan "{{#time:l j F Y|-14 days20070304}} (14 hari yang lalu)"
*<nowiki> {{ft|#time:H:i|+7<nowiki>l hours}}j F Y | 2007-03-04</nowiki>}} menghasilkan "{{#time:H:i|+7l hours}}j (7F jam dari UTC, =WIB)Y|2007-03-04}}"
*<nowiki> {{ft|#time:H:i|8:15<nowiki>l +6j hours}}F Y | 2007/03/04</nowiki>}} menghasilkan "{{#time:H:i|8:15l +6j hoursF Y|2007/03/04}}"
* {{ft|#time|<nowiki>l j F Y | 4 March 2007</nowiki>}} menghasilkan "{{#time:l j F Y|4 March 2007}}"
* {{ft|#time|<nowiki>l j F Y | 4 March, 2007</nowiki>}} menghasilkan "{{#time:l j F Y|4 March, 2007}}" (!kesalahan: koma seharusnya tidak diikutkan)
* {{ft|#time|<nowiki>l j F Y | March 4 2007</nowiki>}} menghasilkan "{{#time:l j F Y|March 4 2007}}"
* {{ft|#time|<nowiki>l j F Y | March 4, 2007</nowiki>}} menghasilkan "{{#time:l j F Y|March 4, 2007}}"
* {{ft|#time|<nowiki>l j F Y | -32 days</nowiki>}} menghasilkan "{{#time:l j F Y|-32 days}}" (32 hari yang lalu)
* {{ft|#time|<nowiki>H:i | +6 hours</nowiki>}} menghasilkan "{{#time:H:i|+6 hours}}" (6 jam lebih awal dari UTC)
* {{ft|#time|<nowiki>H:i | 8:15 +6 hours</nowiki>}} menghasilkan "{{#time:H:i|8:15 +6 hours}}"
* {{ft|#time|<nowiki>m/Y | -17 months</nowiki>}} menghasilkan "{{#time:m/Y|-17 months}}" (17 bulan yang lalu)
<!--
In combination with [[Help:Date formatting and linking|user-specified date formatting]]:
*{{ft|#time|<nowiki>l [[j F]] [[Y]] | 4 March 2007</nowiki>}} gives "{{#time:l [[j F]] [[Y]] | 4 March 2007}}"
*{{ft|#time|<nowiki>l [[Y-m-d]] | 4 March 2007</nowiki>}} gives "{{#time:l [[Y-m-d]] | 4 March 2007}}"
 
Both give the user-specified format; the two are different if no preference has been specified.
==rel2abs==
 
''Function'' ini memiliki sintaks:
Be careful when piping links:
:<tt><nowiki>{{ #rel2abs: <path> }}</nowiki></tt>
*{{ft|#time|<nowiki>l [[F j|Fourth of F]] [[Y]] | 4 March 2007</nowiki>}} gives "{{#time:l [[F j|Fourth of F]] [[Y]] | 4 March 2007}}"
:<tt><nowiki>{{ #rel2abs: <path> | <base path> }}</nowiki></tt>
 
<tt><nowiki>{{#rel2abs}}</nowiki></tt> melakukan konversi sebuah ''relative path'' ke ''absolute path''.
Use quotes to surround the link code:
*{{ft|#time|<nowiki>l [[F j|"Fourth of" F]] [[Y]] | 4 March 2007</nowiki>}} gives "{{#time:l [[F j|"Fourth of" F]] [[Y]] | 4 March 2007}}"
-->
 
Jangkauan:
<!--
The range of proper functioning is 01 January 1970 00:00:01 through 19 January 2038 03:14:07, or 1 through <math>2^{31}-1</math> seconds after the start of 1970 (the [[w:en:Year 2038 problem|Year 2038 problem]]). For arbitrary dates that may exceed this range, use [[:Category:Date computing template|date computing templates]] such as {{tim|dowa}} instead.
 
Dates before 1901 give an error message, dates between 1901 and 1970 even give (perhaps depending on the server) a wrong result (!):
 
*{{xpd|#time:c|5 April 1967}}
*{{xpd|#time:c|5 April 1867}}
-->
 
Tanggal tak lengkap
<!--
*{{evd|#time:c|2007}} (not a year but a time: today, 20:07)
*{{evd|#time:c|1997}} (19:97 is not a valid time, therefore interpreted as year, giving the current date and time in that year)
*{{evd|#time:c|1967}} (19:67 is not a valid time, therefore interpreted as year; this gives a date that is out of range which is changed to the start of the valid range)
*{{evd|#time:c|April 2007}} (start of the month)
*{{evd|#time:c|April, 2007}} (today's day and time, of the given month and year)
*{{evd|#time:c|2007-04}} (today's day, of the given month and year, at 0 hours)
*{{evd|#time:c|5 April}} (specified date of the current year)
-->
 
29 Februari:
<!--
Caution should be taken with February 29, as <nowiki>{{#time:j|February 29}}</nowiki> will vary with the year. For example
 
*{{ft|#time|<nowiki>j|February 29 2006</nowiki>}} gives {{#time:j|February 29 2006}}
*{{ft|#time|<nowiki>j|February 29 2008</nowiki>}} gives {{#time:j|February 29 2008}}
-->
 
Zona Waktu
<!--
Give UTC for a specified time, expressed in time zone UTC-3:
*{{evd|#time:H:i:s|7:00:00 -0300}}
*{{evd|#time:H:i:s|7:00:00 -3}}
 
Give the UTC 3 hours ago:
*{{evd|#time:H:i:s|-3 hours}}
 
Give the UTC 3 hours before a specified time expressed as UTC:
*{{evd|#time:H:i:s|7:00:00 -3 hours}}
 
Give the UTC 3 hours before a specified time expressed in time zone UTC-3:
*{{evd|#time:H:i:s|7:00:00 -3 -3 hours}}
 
Thus "-0300" and "-3" ''add'' 3 hours, while "-3 hours" subtracts them.
 
-->
 
<h3 style="background: beige">#rel2abs:</h3>
sintaks:
*: {{ft|#rel2abs|<nowiki><path></nowiki>}}
*: {{ft|#rel2abs|<nowiki><path> | <base path></nowiki>}}
 
Fungsi <code>rel2abs</code> adalah untuk mengkonversi pranala relatif ke pranala absolut. Pranala relatif adalah yang dimulai dengan '/', './', '../'. atau mengandung '/../' atau '/.' atau string '..' atau'.'.Jika base path diberikan, maka perlu ditulis dalam sintaks absolut.
 
Contoh:
* Di dalam <ttcode>Bantuan:Foo/bar</ttcode>, <ttcode><nowiki>{{#rel2abs|../baz}}</nowiki></ttcode> menghasilkan <ttcode>Bantuan:Foo/baz</ttcode>
* Di dalam <ttcode>Bantuan:Foo</ttcode>, <ttcode><nowiki>{{#rel2abs|../baz}}</nowiki></ttcode> menghasilkan <ttcode>baz</ttcode>
* Di dalam <ttcode>Bantuan:Foo</ttcode>, <ttcode><nowiki>{{#rel2abs|../../baz}}</nowiki></ttcode> menghasilkan <ttcode>Error: Invalid depth in path: "Help:Foo/../../baz" (tried to access a node above the root node)"</ttcode>
* <ttcode><nowiki>{{#rel2abs|../baz &#124; Bantuan:Bar/foo}}</nowiki></ttcode> menghasilkan <ttcode>Bantuan:Bar/baz</ttcode>
* <ttcode><nowiki>{{#rel2abs|Bantuan:Foo/bar/../baz}}</nowiki></ttcode> menghasilkan <ttcode>Bantuan:Foo/baz</ttcode>
 
<h3 style="background: beige">#titleparts:</h3>
sintaks:
*: {{ft|#titleparts|<nowiki>''namahalaman'' | ''jumlah_segmen'' | ''mulai_dari ''</nowiki>}}
* Jika mulai_dari dihilangkan, maka dianggap setara dengan 1
* Ruang Nama untuk ''namahalaman'' dikonversikan ke Ruang Nama bahasa lokal
 
Fungsi <code>titleparts</code> ini akan menghasilkan bagian dari suatu judul halaman sesuai tingkat yang diisi pada parameter.
 
Contoh:
:<code><nowiki>{{#titleparts:ABC/DEF/GHI|1}}</nowiki></code> menghasilkan <code>{{#titleparts:ABC/DEF/GHI|1}}</code>
:<code><nowiki>{{#titleparts:ABC/DEF/GHI|2}}</nowiki></code> menghasilkan <code>{{#titleparts:ABC/DEF/GHI|2}}</code>
:<code><nowiki>{{#titleparts:ABC/DEF/GHI|3}}</nowiki></code> menghasilkan <code>{{#titleparts:ABC/DEF/GHI|3}}</code>
 
Contoh dengan satu parameter numerik:
* {{evd|#titleparts:Help:Link/a/b|0|}}
* {{evd|#titleparts:Help:Link/a/b|1|}}
* {{evd|#titleparts:Help:Link/a/b|2|}}
* {{evd|#titleparts:Help:Link/a/b|3|}}
* {{evd|#titleparts:Help:Link/a/b|4|}}
 
Contoh dengan dua parameter numerik:
* {{evd|#titleparts:Help:Link/a/b|2|2}}<!--
:This gives two parts of the title, starting at the second part. Likewise: -->
* {{evd|#titleparts:Help:Link/a/b|1|2}}
* {{evd|#titleparts:Help:Link/a/b|1|3}}
 
Contoh dengan parameter negatif (artinya "dihitung dari kanan"):
* {{evd|#titleparts:Help:Link/a/b|-1|}}
* {{evd|#titleparts:Help:Link/a/b|1|-1|}}
<!--
 
Introduced in [[rev:22711|r22711]], fixed to allow negative parameters in [[rev:28708|r28708]]. See also [[bugzilla:6067|bug 6067]].
-->
<h3 style="background: beige">#iferror:</h3>
*: {{ft|#iferror|<nowiki>''ekspresi'' | ''bermasalah'' | ''berhasil''</nowiki>}}
 
Fungsi <code>iferror</code> akan menghasilkan ''bermasalah'' jika ekspresi mengandung sebuah <nowiki><strong class="error"></nowiki> 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:
* <code><nowiki>{{#iferror:{{#expr:1+1}}|masukan bermasalah|ekspresi valid}}</nowiki></code> menghasilkan {{#iferror:{{#expr:1+1}}|masukan bermasalah|ekspresi valid}}
* <code><nowiki>{{#iferror:{{#expr:1+Z}}|masukan bermasalah|ekspresi valid}}</nowiki></code> menghasilkan {{#iferror:{{#expr:1+Z}}|masukan bermasalah|ekspresi valid}}
<!--
The last two parameters are also optional. If the ''success'' parameter is omitted, then the ''expression'' is returned on success. If the ''error'' parameter is also omitted, then no output is generated on error, and ''expression'' is returned on success.
*<code><nowiki>{{#iferror:{{#expr:1+1}}|bad input}}</nowiki></code> gives {{#iferror:{{#expr:1+1}}|bad input}}
*<code><nowiki>{{#iferror:{{#expr:1+Z}}|bad input}}</nowiki></code> gives {{#iferror:{{#expr:1+Z}}|bad input}}
*<code><nowiki>{{#iferror:{{#expr:1+1}}}}</nowiki></code> gives {{#iferror:{{#expr:1+1}}}}
*<code><nowiki>{{#iferror:{{#expr:1+Z}}}}</nowiki></code> gives {{#iferror:{{#expr:1+Z}}}}
 
Thus:
*<nowiki>{{#iferror:</nowiki>''wikitext''|''alternative''}} means "render ''wikitext'' if it is correct, and otherwise ''alternative''".
*<nowiki>{{#iferror:</nowiki>''wikitext''}} means "render ''wikitext'' if it is correct".
 
:''Note: this functionality replaces a bug in the older preprocessor allowing #switch to catch expression errors.''
 
See also: [[rev:29774|r29774]], [[rev:29775|r29775]], [[rev:29877|r29877]]. -->
 
<!-- Ini merupakan bagian dari fungsi parser biasa, tidak perlu ekstensi, tanda # opsional. Lihat [[Bantuan:Fungsi parser]]
==language==
''Function'' ini memiliki sintaks:
:<ttcode><nowiki>{{ #language: <kode bahasa> }}</nowiki></ttcode>
Fungsi ini akan mengembalikan nama bahasa dalam bahasa itu sendiri sesuai dengan kode bahasa yang diinput dalam parameter. Contoh:
:<ttcode><nowiki>{{#language:en}}</nowiki></ttcode> menghasilkan {{#language:en}}
:<ttcode><nowiki>{{#language:de}}</nowiki></ttcode> menghasilkan {{#language:de}}
:<ttcode><nowiki>{{#language:nl}}</nowiki></ttcode> menghasilkan {{#language:nl}}
:<ttcode><nowiki>{{#language:zh}}</nowiki></ttcode> menghasilkan {{#language:zh}}
:<ttcode><nowiki>{{#language:ja}}</nowiki></ttcode> menghasilkan {{#language:ja}}
-->
 
== Lihat pula ==
* {{en}} [[:meta:ParserFunction|ParserFunction on meta]]
* [[Bantuan:Fungsi parser]]
* [[:Kategori:Templat yang menggunakan ParserFunction|Templat di Wikipedia bahasa Indonesia yang menggunakan ParserFunction]]
* [[Bantuan:Kata ajaib]]
 
* [[Bantuan:Variabel]]
* [[meta:ParserFunctions]]
{{Navbox Gabungan Pedoman WBI}}
[[Kategori:Fitur Wikipedia|ParserFunctions]]
[[Kategori:Bantuan Wikipedia]]
 
[[he:ויקיפדיה:חידושים בתוכנה#ParserFunctions בעברית – זה כאן!]]
[[de:Hilfe:Vorlagenprogrammierung]]
[[en:meta:ParserFunctions]]
[[es:Ayuda:Funciones_del_analizador_sint%C3%A1ctico]]
[[it:Aiuto:ParserFunctions]]
[[ja:Wikipedia:%E6%9D%A1%E4%BB%B6%E6%96%87条件文]]
[[pl:Wikipedia:Funkcje parsera]]
[[ko:%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%ED%8A%B9%EC%88%98_%ED%95%A8%EC%88%98]]
[[nl:Help:Parserfuncties]]
[[pl:Wikipedia:Funkcje_parsera]]
[[pt:Ajuda:ParserFunctions]]
[[zh:Help:模板扩展语法]]
[[ru:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8_%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80%D0%B0]]
[[vi:Tr%E1%BB%A3_gi%C3%BAp:T%C3%ADnh_to%C3%A1n]]
[[zh:help:%E6%A8%A1%E6%9D%BF%E6%89%A9%E5%B1%95%E8%AF%AD%E6%B3%95]]
[[he:%D7%95%D7%99%D7%A7%D7%99%D7%A4%D7%93%D7%99%D7%94:%D7%97%D7%99%D7%93%D7%95%D7%A9%D7%99%D7%9D_%D7%91%D7%AA%D7%95%D7%9B%D7%A0%D7%94#ParserFunctions_.D7.91.D7.A2.D7.91.D7.A8.D7.99.D7.AA_.E2.80.93_.D7.96.D7.94_.D7.9B.D7.90.D7.9F.21]]