Merupakan bahasa pemrograman buatan anak bangsa, yang dikembangkan oleh Bernaridho I. Hutabarat bersama dengan Departemen Komunikasi dan Informatika Republik Indonesia. Bagi anda yang berminat mendownload Nusaptel anda dapat mendownloadnya dari : http://www.machung.ac.id/index.php?option=com_content&task=view&id=440&Itemid=77. Nusaptel ditujuakan bagi para pemula dalam dunia pemrograman agar para pemula makin mudah dalam mempelajari algoritma dalam pemrograman, Nusaptel merupakan bahasa yang lebih simple dan lebih mudah dipelajari bagi para pemula daripada bahasa pemrograman lain. Nusaptel, sebagai bahasa pemrograman tentu memiliki banyak perbedaan dengan bahasa pemrograman lain. Langsung saja kita melihat syntax-syntax pemrograman dalam Nusaptel, dibandingkan bahasa-bahasa pemrogramman lain.
Tampilan Nusaptel IPT di Ubuntu 9.10
1. The Hello World Program. Nusaptel cukup sederhana, dan simple mirip seperti C, tetapi PERL masih tetap yang paling simple.
NUSAPTEL | writeline(‘Hello World!’); |
C | printf(“Hello World!\n”); |
C# | Console.writeline(“Hello World”); |
PERL | print ‘Hello World!’; |
JAVA | System.out.println(“Hello World!”); |
2. Tinjauan Teknis
- Type strength (strong typing)
Program yang memiliki type strength berarti, semua fields atau object harus dituliskan/ dideklarasikan typenya, entah integer, long, string ataupun char. Dalam PHP deklarasi type object tidak diperlukan.
- Type safety
Sebnarnya Type safety juga berhubungan erat dengan type strengh. Semua object harus memiliki type.
- Error checking
Error checking adalah pengecekan error pada source code yang telah kita tulis.
- Static berarti pengecekan kesalahan terjadi pada saat compiling. Pada NUSA pengecekan kesalahan terjadi pada saat compiling sehingga NUSA dikategorikan Static Error Checking type, pengecekan juga terjadi apabila source NUSA telah terkompile. Pada C# dan Java, pengecekan kesalahan pada source dilakukan pada saat penulisan program, compiling, dan kadang, kesalahan bisa dideteksi setelah program di-run (throw exception error).
- Dynamic, berarti penecekan kesalahan hanya terjadi saat program dijalankan, Pada PHP, JavaScript, dan LUA pengecekan dilakukan saat program tengah berjalan.
- Real Object Oriented Programming
Program yang Object oriented, berarti program dapat memiliki object dan class. Tiap-tiap object memiliki method atau function yang berbeda dan unik tergantung dari definisi class mereka. Setidaknya object pada OOP memiliki fields, method, dan kalau perlu, constructor. Pada C# dan Java misalnya, kita dapat membuat kelas sendiri, menentukan apa saja yang dapat dilakukan oleh object dari kelas itu, atau bahkan membuat kelas yang diturunkan (inheritance) dari kelas lain. Pada NUSA, anda bisa membuat kelas sendiri dengan object bertipe Record :Di NUSA, anda bisa membuat type sendiri ( Kotak ) dan mendefinisikan apa saja member dari class Kotak ini di konstruktornya, tetapi anda tidak bisa membuat inheritance maupun interface dari type ini.
- Expression of Types
Explisit, berarti type data dari suatu object haruslah jelas (didefinisikan secara explisit), tetapi implisit berarti type data tidak disebutkan atau tidak jelas (tersirat dalam deklarasi). Contohnya, PHP yang tidak menjelaskan apa tipe data suatu object, tetapi programmer dapat mengetahui tipe data suatu object sewaktu pemberian isi/value, maka PHP merupakan bahasa yang expresinya implisit (tersirat).
- Types compatibility
Named-based berarti object-object dengan tipe berbeda dapat dilakukan operasi. Misal, float dapat dikalikan dengan integer selama type-type tersebut sesuai (sama-sama menunjukan angka,dll) atau named-based. Ada juga property based, tetapi jarang digunakan. Dalam PHP type tidak terdefinisi sehingga types compatibility tidak diketahui. Di bawah ini adalah contoh Types Compatibility dalam NUSA :
3. Primitive Types
4. Collection
Dalam bahasa NUSA, sebuah object bertipe collection dapat ditulis sebagai berikut :
Tipe_data[panjang_collection] nama_ObjectColletion := {value1,value2,……};
int[3] daftar := {0,2,3};Tetapi ada beberapa hal yang perlu diperhatikan :
a. Index array dimulai dari 1 bukan 0 jadi index terkecil dalam array di NUSA adalah satu
b. NUSA masih belum mendukung array 2 maupun multi dimensi
c. Untuk menyatakan array character tidak perlu ditulis :
char[3] kata := {‘a’,’b’,’c’};Tetapi cukup,
char[] kata := ‘HALLLO DUNIA!!!’;5. Operator –operator di Nusaptel
6. Percabangan
C dan semua bahasa turunannya memiliki bentuk keyword percabangan (branching) yang mirip ataupun sama. Berikut di C:
Berikut di Nusaptel :if ( a > 100 )printf(‘A lebih besar dari 123’);else if ( a > 90)printf(‘A lebih besar dari 90 tetapi lebih kecil dari 100’);elseprintf(‘A dibawah 90’);switch ( angka ){case 0 : printf(“Angka adalah nol”);break;case 1 : printf(“Angka adalah satu”);break;default : printf(“Ini Default”);break;}
integer a := 91;7. Perulangan
if( a > 100 )
writeline('A lebih besar daripada 100!!');
else if( a > 90)
writeline('A berada di antara 100 dan 90!!');
else
writeline('A dibawah 90');
case ( angka )
{
0 : {writeline(‘angka adalah nol’);}
1 : {writeline(‘angka adalah satu);}
else : {writeline(‘INI DEFAULT’);}
}
Contoh berikut dalam bahasa pemrogramman Nusaptel, akan menghasilkan 3 bilangan berpasangan yang memenuhi syarat segitiga siku-siku :
(Sisi A)2 + (sisi B)2 = (sisi C)2
8. Prosedur dan fungsi
penulisan prosedur di Nusaptel, hampir sama dengan penulisan prosedur di C, secara resminya penulisan prosedur dan pemanggilannya dilakukan seperti gambar di samping, dengan perkecualian, bahwa tulisan retun() dapat tidak ditullis
Sama seperti prosedur, penulisan fungsi juga tidak jauh berbeda dengan C.
Contoh program di bawah ini akan menghasilkan output sebuah bilangan integer yang menunjukkan index dari suatu abjad :
9. Beberapa kelemahan dan kekurangan Nusaptel
Tak ada sesuatu yang betul-betul sempurna di dunia ini terutama dunia IT, karenanya saya menulis bagian kekurangan ini bukan bertujuan untuk menjatuhkan melainkan sebagai bahan masukan bagi para pengembang bahasa Nusaptel agar menjadi lebih baik.
- Memiliki bug,
Seperti peribahasa tidak ada gading yang tak retak, Nusaptel pun juga tidak luput dari peribahasa ini. Salah satu bug yang saya temukan adalah :
Berdasarkan pesan dari Nusaptel IPT, program ini telah berhasil tercompile dan link, tetapi saat di-run, file run tidak terbentuk.
- Nusaptel tidak dapat melakukan rekursi
Rekursi merupakan suatu cara dimana, sebuah function dapat memanggil dirinya sendiri. Di bawah ini merupakan contoh program yang menggunakan rekursi untuk menghasilkan bilangan-bilangan segitiga Pascal :
C#.Net :
C :
Tetapi, di Nusaptel, program akan terlihat berhasil dicompile, tetapi saat dijalankan akan terjadi error seperti gambar di bawah :
Berikut juga merupakan contoh rekursi untuk menghitung bilangan-bilangan faktorial (notasi Matematika : 8! )
C:
Nusaptel :
- Penggunaan variabel byte sebagai parameter For()
Nusaptel mewajibkan penggunaan varibel byte untuk proses perulangan, tetapi dalam prakteknya sering terjadi error. Seperti proses perkalian di bawah
Jadi, penggunaan variabel byte cukup menyulitkan, terutama apabila kita akan melakukan manipulasi terhadap parameter di dalam for(), seperti program sederhana ini :
yeah,, so good...
ReplyDeletekelemahan nusaptelnya sangat mengena.... good job!!!
ReplyDeletebagus den
ReplyDeletetapi km ga salah a for e 7. Perulangan , kok isa ga ono kurung e
up up
ReplyDelete