www.wikidata.id-id.nina.az
artikel ini perlu dirapikan agar memenuhi standar Wikipedia Tidak ada alasan yang diberikan Silakan kembangkan artikel ini semampu Anda Merapikan artikel dapat dilakukan dengan wikifikasi atau membagi artikel ke paragraf paragraf Jika sudah dirapikan silakan hapus templat ini Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini D juga dikenal dengan dlang adalah sistem pemrograman multi paradigma yang dibuat oleh Walter Bright pada Digital Mars dan dirilis pada 2001 Andrei Alexandrescu bergabung dengan upaya desain dan pengembangan pada 2007 Meskipun ini berasal sebagai rekayasa ulang dari C D adalah bahasa yang sangat berbeda fitur D dapat dianggap sebagai ide yang disederhanakan dan diperluas dari C 1 Namun D juga menarik inspirasi dari bahasa pemrograman tingkat tinggi lainnya khususnya Java Python Ruby C dan Eiffel Pengetikan disimpulkan manajemen memori otomatis dan gula sintaksis untuk tipe umum memungkinkan pengembangan yang lebih cepat sementara pemeriksaan batas dan desain dengan kontrak menemukan bug lebih awal saat waktu penggunaan dan sistem tipe sadar konkurensi menangkap bug pada waktu kompilasi 2 Bahasa pemrograman DParadigmaMulti paradigma fungsional imperatif berorientasi objekDirancang olehWalter Bright Andrei Alexandrescu sejak 2007 pengembangD Language FoundationRilis perdana8 Desember 2001 21 tahun lalu 2001 12 08 3 Rilis stabil2 104 0 4 1 Juni 2023 1 Juni 2023 Tipe SistemDisimpulkan statis kuatOSFreeBSD Linux macOS WindowsLisensiBoost 5 6 7 Websitedlang wbr orgImplementasi utamaDMD implementasi referensi GCC GDC LDC SDCTerpengaruh olehBASIC 8 C C C Eiffel 9 Java PythonMempengaruhi Genie MiniD Qore Swift 10 Vala C 11 C 14 C 17 C 20 Go C dan lainnya dlang wbr orgDaftar isi 1 Sejarah Perkembangan D 1 1 Distribusi D 2 Pustaka pemograman D 2 1 Pustaka pemograman standar 2 2 Pustaka GUI Graphical User Interface 3 Integrated Development Environment 16 4 Contoh contoh 4 1 Hello World 4 2 char 4 2 1 Konkurensi 4 3 Thread 4 4 Fungsional 4 5 Metaprogramming 5 Pranala Berkenaan 6 ReferensiSejarah Perkembangan D SuntingD bahasa pemrograman adalah bahasa yang dibuat oleh Walter Bright D mulai dibuat pada tahun 1999 dan disebarkan ke publik pertama kali pada tahun 2001 11 kemudian mencapai versi 1 0 pada tahun 2007 12 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 13 Tango memakai pendekatan yang berbeda dengan Phobos dimana Tango lebih mirip dengan Pustaka pemrograman Java kemudian pada Juni 2007 14 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 Sunting DMD compiler yang dibuat Walter Bright pencipta D GDC compiler D yang dibuat dengan backend GCC LDC compiler D yang dibuat dengan backend LLVMPustaka pemograman D SuntingPustaka pemograman standar Sunting 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 pustaka pemrograman dari D1 ada 2 satu phobos dan satu lagi tango dibuat oleh komunitas D Phobos dibuat oleh Walter Bright Tango dibuat oleh komunitas D lebih popular di masa D1 namun tidak bisa digunakan bersama dengan phobosPustaka pemrograman dari D2 ada 1 phobos meskipun begitu ada projek untuk membawa Tango dari D1 ke D2 15 Pustaka GUI Graphical User Interface Sunting Telah banyak pihak yang membuat pustaka ataupun menerjemahkan berbagai pustaka dari bahasa pemrograman lain Beberapa pustaka tersebut yang populer digunakan yaitu DWTDWT merupakan salah satu pustaka grafis jendela OOP untuk Windows DWT diterjemahkan dari SWT yang dimiliki Eclipse yang menggunakan bahasa JAVA Aplikasi yang dikembangkan dengan pustaka ini akan memiliki antarmuka seperti aplikasi jendela pada JAVA dengan SWT Poseidon merupakan salah satu editor untuk D yang dikembangkan dengan DWT DFL D Framework Library DFL merupakan salah satu pustaka grafis jendela OOP untuk Windows yang memadukan pemrograman jendela dengan operasi socket registry dan fungsi lainnya pada Windows Dalam praktiknya penggunaan pustakan ini benar benar memudahkan kita seperti halnya menggunakan object Windows pada C GLFWGLFW 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 DlangUIDlangUI merupakan pustaka gratis untuk membuat aplikasi dengan GUIIntegrated Development Environment 16 SuntingCode Blocks memiliki fungsi membuat project D auto completion dll tersedia di Windows Linux Mac OSX FreeBSD Codeit Diarsipkan 2017 03 03 di Wayback Machine DlangIDEIDE yang ditulas dalam D dengan menggunakan DlangUI yang dibuat oleh pencipta yang sama D plugin untuk Intellij plugin D untuk Visual Studio Poseidon ZeusContoh contoh SuntingHello World SuntingBerikut ini program Helo Dunia dalam Dlangimport std stdio void main string args writeln hello world char Sunting Berikut ini pengaksesan array of char yang notabene merupakan String dalam bahasa kasarnya Perhatikan bahwa ini tidak diperlukan apabila kita benar benar ingin menggunakan D Contoh ini hanya cara saya ingin menunjukkan kemudahan dalam D dibandingkan Anda yang sudah pernah berurusan dengan char dan pointer saya hanya ingin menggunakan fungsi writefln di pustaka std stdio milik phobos import std stdio writefln I can t found any of it function in phobos lib class MString static public char midDex char a int indexA int indexB return a indexA indexB 1 static public char mid char a int indexA int dlength 0 return a indexA dlength gt 0 indexA dlength a length static public char left char a int width return midDex a 0 width 1 static public char right char a int width return midDex a a length width a length 1 perhatikan unittest salah satu fungsionalitas dalam bahasa D Yang bisa memberikan kepada kita kemampuan untuk melakukan testing terhadap salah satu bagian program yang kita miliki unittest assert MString midDex 0123456789 3 6 3456 assert MString left 0123456789 3 012 assert MString right 0123456789 3 789 assert MString mid 0123456789 3 2 34 assert MString mid abcdefghijklmn 5 3 fgh assert MString mid abcdefghijklmn 5 fghijklmn void main char args char a MString left Aku suka kamu D perhatikan tanda adalah concatenation writefln Ini adalah isi dari a a mudah kan writefln Ini adalah isi dari s mudah kan a bisa juga begini char b Berpikirlah dengan mudah n a cobain ini writefln Asyik kan s b Konkurensi SuntingKonkurensi sepenuhnya diterapkan di pustaka dan tidak memerlukan dukungan dari kompilernya Implementasi alternatif dan metodologi penulisan kode bersamaan dimungkinkan Penggunaan sistem pengetikan D memang membantu memastikan keamanan memori import std stdio std concurrency std variant void foo bool cont true while cont receive Delegates digunakan untuk mencocokkan jenis pesan int msg gt writeln int received msg Tid sender cont false sender send 1 Variant v gt writeln huh Varian cocok dengan jenis apa pun void main auto tid spawn amp foo membuat sebuah thread foo berjalan baru foreach i 0 10 tid send i mengirim beberapa integer tid send 1 0f mengirim sebuah float tid send hello mengirim sebuah string tid send thisTid mengirim sebuah struct Tid receive int x gt writeln Thread utama menerima pesan x Thread Sunting Berikut ini tentang pemrograman Thread yang menggunakan library Phobos Skenarionya ini merupakan pemrograman berbasis console di mana seorang user bisa menghentikan proses yang sedang terjadi dengan menekan tombol q atau Q di keyboard Proses yang sedang terjadi dijalankan melalui sebuah Thread dan proses menunggu juga dilakukan dalam Thread yang dipanggil dari sebuah Thread utama di fungsi main import std thread import std stdio import std c stdio import std date Thread proses utama class mythread Thread private char d name private long d nloop 10 private bool d stop false this char name long nloop super writefln name called this d name name this d nloop nloop override public int run long i 0 for i 0 i lt this d nloop amp amp d stop i writefln d name called again if d stop writefln d name stopped by user in std string toString i times of loop else writefln d name Finished std string toString d nloop return 0 public void stopIt d stop true thread untuk menunggu pengguna menekan q atau Q class UserToStopAllThread Thread private bool d stop false this super override public int run while d stop char ch getch if ch q ch Q break return 0 public void stopIt d stop true ini adalah Thread utama void main char args int i 0 mythread a new mythread A 9999999999999 writefln Tekan q untuk menghentikan proses UserToStopAllThread utsa new UserToStopAllThread a start utsa start while a getState Thread TS RUNNING amp amp utsa getState Thread TS RUNNING tunggu sampai a selesai atau user menekan tombol Q or q if a getState Thread TS RUNNING a stopIt pastikan berhenti if utsa getState Thread TS RUNNING utsa stopIt pastikan berhenti Fungsional Sunting import std stdio import std algorithm map void main string args int arr 1 2 3 4 5 arr map x gt x 1 arr writeln arr 2 3 4 5 6 Metaprogramming Suntingcontoh template dalam Dauto add T T a T b return a b import std stdio https 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 Pranala Berkenaan SuntingSitus utama bahasa D Project open source Bahasa D Tutorial DReferensi Sunting Programming in D for C Programmers D Programming Language dlang org Diakses tanggal 2022 04 05 Archived at Ghostarchive and the Wayback Machine Andrei Alexandrescu 2 August 2010 Three Cool Things About D Kesalahan pengutipan Tag lt ref gt tidak sah tidak ditemukan teks untuk ref bernama D1 changelog1 Change Log 2 104 0 Diakses tanggal 25 Juni 2023 Kesalahan pengutipan Tag lt ref gt tidak sah tidak ditemukan teks untuk ref bernama D frontend license dmd Backend converted to Boost License 7 April 2017 Diakses tanggal 9 April 2017 D 2 0 FAQ Diakses tanggal 11 August 2015 On Show HN A nice C string API Hacker News December 3 2022 Diakses tanggal 4 December 2022 Alexandrescu Andrei 2010 The D programming language nbsp edisi ke First Upper Saddle River New Jersey Addison Wesley hlm 314 ISBN 978 0321635365 Building assert in Swift Part 2 FILE and LINE Diakses tanggal 25 September 2014 Change Log D Programming Language 1 0 Digital Mars www digitalmars com dalam bahasa Inggris Diakses tanggal 2018 06 17 Change Log D Programming Language 1 0 Digital Mars www digitalmars com dalam bahasa Inggris Diakses tanggal 2018 06 17 Announcing a new library forum dlang org dalam bahasa Inggris Diakses tanggal 2018 06 17 https dlang org blog 2018 03 03 dmd 2 079 0 released SiegeLord Tango D2 GitHub dalam bahasa Inggris Diakses tanggal 2018 06 17 IDEs D Wiki wiki dlang org dalam bahasa Inggris Diakses tanggal 2018 06 18 Diperoleh dari https id wikipedia org w index php title D bahasa pemrograman amp oldid 23776541