Lua (bahasa pemrograman): Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k Bot: Penggantian teks otomatis (-atmosfir +atmosfer) |
Fitur saranan suntingan: 3 pranala ditambahkan. |
||
(28 revisi perantara oleh 15 pengguna tidak ditampilkan) | |||
Baris 1:
'''Lua''' ({{IPAc-en|icon|ˈ|l|uː|.|ə}} {{respell|LOO|ə}}; dari {{lang-pt|[[wikt:en:lua#Portugis|lua]]}} yang berarti "[[bulan]]") merupakan [[bahasa pemrograman]] ringkas yang dirancang sebagai [[bahasa pemrograman dinamis]] berbasis [[bahasa skrip|skrip]] dengan semantik yang dapat dikembangkan atau ditambahkan. Sebagai bahasa skrip, Lua memiliki [[API]] dalam bahasa [[C (bahasa pemrograman)|C]] yang relatif lebih sederhana dibandingkan bahasa skrip lainnya.▼
| name = Lua
| logo = [[Berkas:Lua-Logo.svg|128px]]
| paradigm = [[paradigma pemrograman#Multiparadigma|Multiparadigma]]: [[bahasa skrip|skrip]], [[pemrograman imperatif|imperatif]] ([[pemrograman prosedural|prosedural]], [[pemrograman berbasis prototipe|berbasis prototipe]] [[pemrograman berorientasi objek|berorientasi objek]]), [[pemrograman fungsional|fungsional]]
| year = {{Start date and age|df=yes|1993}}
| designer = [[Roberto Ierusalimschy]]<br /> Waldemar Celes<br /> Luiz Henrique de Figueiredo
| developer =
| latest_release_version = {{wikidata|property|reference|edit|Q207316|P348}}
| latest_release_date = {{start date|{{wikidata|qualifier| Q207316 |P348|P577}}}}
| latest_preview_version =
| latest preview date =
| typing = [[Pengetikan dinamis|Dinamis]], [[Tipe sistem#Pengetikan kuat dan lemah|kuat]], [[Duck typing|duck]]
| implementations = [//www.lua.org/download.html Lua], [[LuaJIT]], [//eliasdaler.github.io/luavela/ LuaVela],
[https://www.moonsharp.org/ MoonSharp], [//luvit.io Luvit], [//www.luart.org LuaRT], [https://luau-lang.org LuaU]
| dialects = [http://metalua.luaforge.net/ Metalua], [http://idle.thomaslauer.com/ Idle], [http://www.nongnu.org/gsl-shell/ GSL Shell], [https://luau-lang.org/ Luau]
| influenced_by = [[C++]], [[CLU (bahasa pemrograman)|CLU]], [[Modula-2|Modula]], [[Scheme (bahasa pemrograman)|Scheme]], [[SNOBOL]]
| influenced = [[Io (bahasa pemrograman)|Io]]<!--2002-->, [[GameMonkey Script|GameMonkey]]<!--2003-->, [[Squirrel (bahasa pemrograman)|Squirrel]]<!--2003-->, [[Falcon (bahasa pemrograman)|Falcon]]<!--2003-->, [[MiniD]]<!--2006-->
| operating_system = [[Multiplatform]]
| license = [[Lisensi MIT]]
| File extensions = <code>.lua</code>
| website = {{URL|http://www.lua.org/}}
| wikibooks =
}}
▲'''Lua''' ({{IPAc-en
== Sejarah ==
Lua ditulis pertama kali oleh Roberto Ierusalimschy, Luiz Henrique de Figueiredo, dan Waldemar Celes yang merupakan anggota '''Computer Graphics Technology Group''' ('''Tecgraf''') pada universitas '''Pontifical Catholic''', [[Rio de Janeiro]], [[
Sebelumnya, sejak tahun 1977 hingga tahun 1992, pemerintah Brazil menerapkan kebijakan perdagangan yang membatasi perdagangan termasuk pertukaran baik [[perangkat keras]] ataupun [[Perangkat lunak|perangkat lunak komputer]]. Dalam atmosfer yang demikian, banyak klien '''Tecgraf''' tidak mampu, baik secara politik maupun finansial, untuk membeli perangkat lunak dari luar. Alasan itulah yang mendorong Tecgraf untuk mengimplementaskan perangkat utilitas dasar yang dibutuhkan.<ref name=hopl2007>{{Cite book|
Secara historis, bahasa pemrograman Lua berawal dari bahasa pemrograman yang digunakan untuk pendeskripsian serta entri data, serta pengkonfigurasian suatu sistem yang masing-masing dikembangkan secara terpisah oleh tecgraf dari tahun 1992 hingga tahun 1993.<ref name=luahist2001>{{cite web|url=http://www.lua.org/history.html|title=The evolution of an extension language: a history of Lua|accessdate=2008-12-18|year=2001}}</ref> Tujuan pengembangan tersebut awalnya merupakan usaha untuk menambahkan fitur serta meningkatkan fleksibilitas atas dua proyek pengembangan perangkat lunak yang sedang mereka kerjakan saat itu. Namun terdapat kekurangan atas alur kontrol atas bahasa tersebut sehingga menumbuhkan ide untuk mengembangkannya lebih lanjut dengan fitur-fitur dasar yang lengkap sebagai sebuah bahasa pemrograman.
== Fitur ==
Secara umum Lua digambarkan sebagai bahasa pemrograman multi paradigma yang menyediakan seperangkat kecil atas fitur-fitur umum yang dapat dikembangkan lebih lanjut untuk memenuhi ragam kebutuhan yang berbeda-beda, karenanya Lua tidak menyediakan fitur yang lengkap dan kompleks yang hanya berfokus pada satu paradigma pemrograman. Sebagai contoh, Lua tidak secara eksplisit mendukung ''inheritance'' yang merupakan kemampuan untuk menurunkan sifat sebuah
Secara umum, Lua berusaha untuk menyediakan fitur-fitur abstrak/meta yang lebih fleksibel dan dapat dikembangkan jika dibutuhkan dibandingkan menyediakan seperangkat pustaka yang lengkap untuk memenuhi satu kebutuhan tertentu. Hal tersebut menjadikan Lua sebagai bahasa pemrograman
Lua merupakan [[bahasa pemrograman dinamis]] yang ditujukan untuk digunakan sebagai [[bahasa skrip]], dan cukup ringkas untuk disisipkan dalam berbagai jenis platform utama. Lua hanya mendukung beberapa jenis struktur data atomik seperti; boolean, floating point, serta string. Jenis-jenis tipe/struktur data lainnya seperti; larik, set, ataupun list direpresentasikan dalam Lua melalui satu bentuk tipe data, table.
== Contoh program Lua ==
Contoh klasik sebuah program [[hello world]] dapat ditulis dengan bahasa Lua sebagai berikut:
<syntaxhighlight lang="lua">
print("Hello World!")
</syntaxhighlight>
Komentar menggunakan sintaksis yang lebih kurang sama dengan [[Ada (bahasa pemrograman)|Ada]], [[Eiffel (bahasa pemrograman)|Eiffel]], [[SQL]] dan [[VHDL]]:
<syntaxhighlight lang="lua">
-- Sebuah komentar di Lua dimulai dengan tanda hubung ganda dan berlaku sampai ke akhir baris.
--[[ String dengan beberapa baris & komentar
dibuka dan ditutup dengan kurung siku ganda. ]]
--[=[ Komentar seperti ini dapat memiliki --[[komentar]] didalamnya. ]=]
</syntaxhighlight>
Contoh lainnya, fungsi rekursif atas faktorial:
<syntaxhighlight lang="lua">
function factorial(n)
if n == 0 then
Baris 29 ⟶ 61:
end
end
</syntaxhighlight>
== Lihat pula ==
* [[Bahasa pemrograman dinamis]]
* [[Bahasa skrip]]
* [[Interpreter]]
== Rujukan ==
{{reflist}}
== Bacaan lanjutan ==
{{refbegin}}
* {{en}} {{Cite book
* {{en}} {{Cite book
* {{en}} {{Cite book|
* {{en}} {{Cite book
* {{en}} {{Cite book
* {{en}} {{Cite book
* {{en}} {{cite journal|last=Quigley|first=Joseph|date=1 June 2007|title=A Look at Lua|journal=Linux Journal|url=http://www.linuxjournal.com/article/9605}}
* {{en}} {{cite web|url=http://www.ibm.com/developerworks/linux/library/l-lua.html|title=Embeddable scripting with Lua|last=Streicher|first=Martin|date=28 April 2006|work=developerWorks|publisher=[[IBM]]}}
* {{en}} {{cite news|url=http://www.computerworld.com.au/article/260022/a-z_programming_languages_lua/|title=The A-Z of Programming Languages: Lua|last=Hamilton|first=Naomi|date=11 September 2008|work=Computerworld|publisher=IDG}}{{Pranala mati|date=Februari 2021 |bot=InternetArchiveBot |fix-attempted=yes }} – Interview with Roberto Ierusalimschy
* {{en}} {{cite journal|url=http://queue.acm.org/detail.cfm?id=1983083|title=Passing a Language through the Eye of a Needle|last1=Ierusalimschy|first1=Roberto|last2=de Figueiredo|first2=Luiz Henrique
{{refend}}
== Pranala luar ==
{{wikibooks|Lua Functional Programming}}
* {{
* {{en}} [http://lua-users.org lua-users.org] – Community website for and by users (and authors) of Lua
* {{en}} [http://www.lua.org/papers.html Lua papers and theses]
* {{en}}
* {{en}} [http://www.eluaproject.net/en_overview.html eLua – Embedded Lua] {{Webarchive|url=https://web.archive.org/web/20110723114641/http://www.eluaproject.net/en_overview.html |date=2011-07-23 }}
* {{en}} [http://luaforge.net Projects in Lua] {{Webarchive|url=https://web.archive.org/web/20070202005230/http://luaforge.net/ |date=2007-02-02 }}
{{Bahasa pemrograman}}
{{Authority control}}
{{DEFAULTSORT:Lua}}▼
[[Kategori:Bahasa pemrograman| ]]▼
[[Kategori:Perangkat lunak bebas| ]]▼
▲{{DEFAULTSORT:Lua}}
▲[[en:Lua (programming language)]]
|