D (bahasa pemrograman): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Ibensis (bicara | kontrib)
k Menghapus Kategori:Bahasa pemrograman menggunakan HotCat
Flaze07 (bicara | kontrib)
mengubah informasi yang sudah outdated seperti dua pustaka, Tango dan Phobos, yang sekarang hanya 1
Baris 2:
{{rapikan|topik=teknologi informasi}}
== Sejarah Perkembangan D ==
D( bahasa pemrograman ) adalah bahasa yang dibuat oleh [[Id.wikipedia.org/Walter Bright|Walter Bright]]. D mulai dibuat pada tahun 1999 dan disebarkan ke publik pertama kali pada tahun 2001<ref>{{Cite web|url=http://www.digitalmars.com/d/1.0/changelog1.html|title=Change Log - D Programming Language 1.0 - Digital Mars|website=www.digitalmars.com|language=en-US|access-date=2018-06-17}}</ref> , kemudian mencapai versi 1.0 pada tahun 2007<ref>{{Cite web|url=http://www.digitalmars.com/d/1.0/changelog2.html|title=Change Log - D Programming Language 1.0 - Digital Mars|website=www.digitalmars.com|language=en-US|access-date=2018-06-17}}</ref>.
D (bahasa pemrograman) adalah bahasa pemrograman yang berorientasi objek, imperatif dan bersistem multi-paradigma. Bahasa pemrograman ini ditemukan oleh [[Walter Bright]]. Bahasa pemrograman ini pada awalnya bernama [[bahasa pemrograman Mars]], yang kemudian seiring berjalannya waktu karena dorongan dari para sahabatnya yang sering menyebutnya dengan nama D maka kemudian namanya berubah menjadi D.
Dalam perkembangannya bahasa pemrograman ini banyak mendapat pengaruh dari [[C]], [[C++]], [[JAVA]], [[C#]], [[Ruby]], [[Python]]. Bahasa pemrograman ini memiliki banyak kesamaan dengan C.
 
pada awalnya, ketika D berada pada versi 1.0, banyak programmer yang merasa kurang puas dengan pustaka pemrograman phobos saat itu, komunitas D membuat pustaka pemrograman mereka sendiri yang mereka namakan Tango dan diberitakan beberapa tanggal setelah D versi 1.0 diluncurkan<ref>{{Cite web|url=http://forum.dlang.org/post/en9ou4$23hr$1@digitaldaemon.com|title=Announcing a new library|website=forum.dlang.org|language=en-US|access-date=2018-06-17}}</ref>Tango memakai pendekatan yang berbeda dengan Phobos, dimana Tango lebih mirip dengan Pustaka pemrograman Java.
Walaupun banyak memiliki kesamaan dengan bahasa C - ''berbeda dengan C++ yang dikatakan sebagai pengembangan dari C'' - D adalah sebuah bahasa yang didesain dengan menggunakan pendekatan dari pengalaman praktik menggunakan bahasa C++, dibandingkan dari pendekatan yang dilakukan secara teoretis. Bahkan walaupun bisa dibilang bahwa bahasa D ini menggunakan banyak pendekatan dari bahasa C++, D juga telah menghilangkan beberapa konsep C++ dalam pengembangan bahasa ini, sehingga bahasa D tidak 100% compatible dengan C/C++. D seperti yang dimaksudkan juga telah menambahkan banyak sekali fungsionalitas baru yang sangat berguna untuk meningkatkan produktivitas Anda dalam membuat sebuah aplikasi untuk sistem; seperti testing per-unit, GC (garbage Collection), inner class, anonymous function, delegate, array class, template yang lebih mumpuni, multiple inheritance dengan Interface seperti yang dimiliki oleh JAVA, Hyper-threading dan beberapa macam penambahan lainnya. Walaupun demikian, karena D dimaksudkan untuk pemrograman pada level sistem maka fungsionalitas untuk menggunakan bahasa assembler seperti yang dikenalkan pada C/C++ pun masih didukung.
 
kemudian pada Juni 2007<ref>https://dlang.org/blog/2018/03/03/dmd-2-079-0-released</ref> D2 diluncurkan, dimana banyak fitur baru dimasukkan ke dalam D, seperti sistem constant, functional, contract.
 
Andrei Alexandrescu meluncurkan buku D yang berjudul ''The D Programming Language'' pada tanggal 12 Juni 2010
 
=== Distribusi D ===
 
Sampai saat ini terdapat 2 distribusi [[bahasa pemrograman D]] ini di [[internet]]. Distribusi pertama dari [[Digital Mars]] oleh Walter Bright yang dapat berjalan di [[Windows]] dan [[Linux]]. Distribusi kedua dari [[GCC]] D [[Compiler]] yang dapat berjalan di Windows, [[Mac OS]] X, dan lainnya.
* [https://dlang.org/dmd-windows.html DMD], compiler yang dibuat Walter Bright, pencipta D
* [https://gdcproject.org/ GDC], compiler D yang dibuat dengan backend GCC
* [https://wiki.dlang.org/LDC LDC], compiler D yang dibuat dengan backend LLVM
 
== Pustaka pemograman D ==
=== Pustaka pemograman standar ===
Pustaka pemrograman standar adalah pustaka software yang bisa Anda gunakan langsung untuk membuat aplikasi yang Anda inginkan dengan menggunakan konsep OOP yang telah diimplementasikan oleh bahasa D. Secara garis besar pustaka standar yang digunakan oleh programmer bahasa D ada 2, yaitu:
 
pustaka pemrograman dari D1 ada 2, satu phobos dan satu lagi tango( dibuat oleh komunitas D ) :
* [http://www.digitalmars.com/d/2.0/phobos/phobos.html Phobos]1.1
Phobos adalah pustaka pemrograman yang akan diikutsertakan saat Anda pertama kali menginstal kompiler dan linker bahasa D, bisa dikatakan ini adalah pustaka standar yang dimiliki oleh D. Pustaka ini walaupun sederhana, sudah bisa digunakan untuk membuat beberapa program secara lebih cepat dengan cara menyediakan beberapa fungsi dan rutin yang sangat bermanfaat untuk membuat proses pengembangan program bisa lebih cepat.
* [http://www.dsource.org/projects/tango Tango]
Merupakan pengembangan dari pustaka Ares dan Phobos, dengan pengembangan yang lebih komprehensif dan menyeluruh.
 
* Phobos, dibuat oleh Walter Bright
Amat disayangkan memang, di antara Phobos dan Tango memiliki pustaka utama yang tidak saling mendukung, sehingga Anda tidak bisa begitu saja mencomot pustaka milik Phobos dan Tango secara bersamaan. Namun pada perkembangannya telah ada proses untuk mensinkronkan penggunaan Tango dan Phobos; proses ini melahirkan satu pustaka standar yang kemudian memungkinkan kita untuk menggunakan Phobos dan Tango secara bersamaan. Project ini dikenal dengan nama [http://www.dsource.org/projects/tangobos Tangobos].
* Tango, dibuat oleh komunitas D, lebih popular di masa D1, namun, tidak bisa digunakan bersama dengan phobos
 
Pustaka pemrograman dari D2 ada 1, phobos, meskipun begitu ada projek untuk membawa Tango dari D1 ke D2<ref>{{Cite web|url=https://github.com/SiegeLord/Tango-D2|title=SiegeLord/Tango-D2|website=GitHub|language=en|access-date=2018-06-17}}</ref>
 
=== Pustaka GUI ([[Graphical User Interface]]) ===
Baris 29 ⟶ 35:
* [[GLFW]]
GLFW merupakan salah satu pustaka gratis untuk pemrograman [[Open GL]]. Walaupun aplikasi ini dikembangkan untuk berbagai [[kompiler]] bahasa C seperti [[Borland]], [[Pelles]], [[Visual C]], tetapi pustaka ini juga memiliki dukungan terhadap bahasa pemrograman lain seperti [[Visual Basic]], [[LUA]], [[Assembler]], D.
 
* [https://github.com/buggins/dlangui DlangUI]
 
DlangUI merupakan pustaka gratis untuk membuat aplikasi dengan GUI
 
== [[Integrated Development Environment]] ==
Baris 41 ⟶ 51:
* [http://scite4d.chinese-blog.org/ scite4d]
Sebuah editor dengan fasilitas auto completion, Code Folding dll.
 
* [https://github.com/buggins/dlangide DlangIDE]
 
Sebuah editor dengan auto completion dan manajemen file, dibuat diatas [https://github.com/buggins/dlangui DlangUI]oleh pencipta yang sama
 
== Contoh-contoh ==
=== Hello World ===
Berikut ini program '''Helo Dunia''' menggunakandalam PhobosDlang<syntaxhighlight lang="d" line="1">
 
<source lang="D">
import std.stdio;
 
void main(char[] string[] args )
{
writefln writeln( "Halohello Duniaworld" );
}
</syntaxhighlight>
</source>
 
Berikut ini program Hello World menggunakan Tango
 
<source lang="D">
import tango.io.Stdout;
 
void main(char[][] args)
Stdout("Halo Dunia").newline;
</source>
 
=== char [] ===
Baris 206 ⟶ 207:
if(utsa.getState() == Thread.TS.RUNNING) utsa.stopIt(); // pastikan berhenti
}
</source>'''<big>Functional</big>'''
 
<syntaxhighlight lang="d" line="1">
import std.stdio;
import std.algorithm : map;
 
void main(char[] string[] args )
int[] arr = [ 1, 2, 3, 4, 5 ];
arr = map!( x => x + 1 )( arr );
writeln( arr ) //[ 2, 3, 4, 5, 6 ]
</syntaxhighlight>'''<big>Template</big>'''
 
contoh template dalam D<syntaxhighlight lang="d">
auto add( T )( T a, T b )
{
return a + b;
}
 
import std.stdio;
 
void main( string[] args )
{
int a = 10;
int b = 20;
writeln( add( a + b ) ) //30
float x = 10.3;
float y = 20.4;
writeln( add( x, y ) ) //30.7
}
</syntaxhighlight>
 
== Pranala Berkenaan ==