Stu Barrett, Phillip Foster
One of CORBA’s(Object Management Group, Inc.) key selling points over RMI and DCOM is that it can be used to “wrap” legacy applications that run on a wide range of platforms and are written in a wide range of languages.
This paper reviews some of the problems encountered while using CORBA to port an existing Java application. The application chosen was a simple Document Repository application, written as a test case for this effort. We took the approach of first writing the application in a “single process” fashion, debugging, and then porting the application to a distributed CORBA. This had the advantage that we could focus on the application logic in a localized environment without the distractions and complications of a distributed environment.
Another goal of this effort, driven by a primary goal of the Object Infrastructure Project, was to use this distributed application as a test bed for the investigation of how we could seamlessly add non-functional “’illities” to the application’s components. To that end, after the application was ported to CORBA, we seamlessly added a replication mechanism so that distributed replicas of a Repository would share in the updates made to any of their peer replicas. This replication service was the realization of the “high availability” non-functional requirement for the Repository.
Port to CORBA:
After we built and tested a working set of “single process” Java code, we were very interested in how to use IDL/CORBA to build the distributed wrappers to allow those Java objects to be accessed by a remote client.
We had goals that in hindsight were naïve:
Keep existing implementation code intact as much as possible. Since the implementation code was already working, there should not be a need to modify it. Furthermore, since the original implementation was done with the expectation of distribution this should be an easy task.
Hide portions of the implementation that we did not want the users to be aware of by simply not exposing those characteristics (e.g. attributes and methods) in IDL.
IDL:
The IDL file that specified the interfaces of the Java components was generated using a utility that read the Java files. This file was then hand crafted to remove translation errors and to prune any “private” aspects of the interfaces.
We should review the output of the IDL2Java compiler since this really frames the problem/solution space. First look at a sample piece of IDL that was created to “publish” the set of operations that we wanted to support.
The application’s IDL is shown in Figure 1. Consider, in greater detail, the IDL for method AddDocument in interface Repository
Module DocRepos {
………….
interface Repository {
…………..
Document AddDocument( in string DocumentName,
in string Version,
in User Owner,
in string Description,
in DocumentStream userDocStream)
raises( DuplicateDocument, StreamError );
…………..
};
This IDL illustrates some important mechanisms that need to be understood in order to port the Document Repository application:
Interfaces passed as arguments.
Interfaces returned by operations.
Exceptions.
The output of the IDL compiler resulted in the creation of a plethora of Java files (for each interface). These files defined the following types of information.
Java interface defines the method signatures for the interface.
Stub Class used by client.
Skeleton Class used by implementation.
TIE class used for delegation to implementation.
Helper Class contains static methods that provide utility methods.
Holder Class is “Container class” used to handle “out” and “inout” parameters.
Java.Util IDL issues:
An early realization was that some of the Java implementation methods returned objects of type Vector. This is a natural way in Java to handle lists. While we could have continued with this approach (define the IDL for the Vector interface), we felt that doing so would result in extremely poor performance due to superfluous distributed method calls. We modified the implementation code to return an array and then defined the IDL return as an IDL sequence.
This gave us an example of the common problem of distributing an existing application: in a single process environment, references are cheap, but in a distributed system, we have to be careful about sending a reference when we really want the data. OMG is looking at how to extend CORBA to support “pass by value” in addition to “pass by reference” (which, by the way, RMI already supports).
TIE wrapper approach:
There are two mechanisms that the implementation can use to “plug-in” to CORBA object adapter services. One way is to define your implementation classes so that extend the IDL generated “skeleton” classes. When you do that then your implementation objects *are* CORBA objects. The other was is to use separate CORBA/TIE objects..
The TIE object extends from the CORBA skeleton object and is therefor a CORBA object. It delegates all method calls to an associated implementation object. All object references that are returned to the client need to be wrapped with a TIE object.
We felt that using the TIE approach would help us keep our implementation objects “pure”.
Also of consideration was that one of the approaches under investigation for adding “’illities” to components is to implement appropriate services within the CORBA Stub and/or Skeleton wrappers. We felt that on the implementation side, the TIE wrapper objects would provide a good “platform” for the implementation of those services.
We used our own TIE wrapper (OIP_TIE) objects since we wanted to be able to put in our replication hooks.
One important concept to understand is that the implementation code had its own object definitions and the methods on those objects manipulated objects within that “object space”. Many objects contained attributes that held object references to other objects with the Document Repository “object space”. Most of the implementation methods had object references as part of their parameter list signatures or as return values. The implementation (as is the wont of typical OO design techniques) manipulated references to other implementation objects .
This means that you can think of the CORBA server as having two types of objects: Implementation objects, and TIE objects that are created, on demand, to provide access to a subset of the implementation objects at any one time. For example, if the implementation object space is populated from a persistent store (at startup time), the only TIE object in existence is the “root” object (i.e. The Repository object). As clients navigate through the implementation object space and object references are passed back, OIF_TIE object wrappers are dynamically created. This dichotomy approach will also help with scaling issues (see Fine Grain Object Issue)
Porting Issues:
Signature problems:
The first problem we ran into was the fact that the methods for the classes of the existing code (implementation classes) have different signatures than the interfaces that are generated by the IDL compiler (IDL classes/interfaces). One of the differences that was apparent at first was the IDL interfaces were scoped in a different package than the implementation objects.
This is not a problem unless your object methods return object references or have object references as parameters. Unfortunately most of the Document Repository IDL operations are of this type.
The TIE wrapper objects implement the IDL interface. The constructor for the Repository TIE wrapper requires that the delegate object be of type DocRepos.RepositoryOperations. This means that the implementation objects must have method signatures that correspond to the IDL (e.g. all object references must be of type DocRepos.XXX). While this may now appear to be obvious, it exposed our goal of non-modification of the implementation code to be naïve.
Lets look at the signature changes needed. First look at the unmodified (and abridged!) implementation code:
public class Repository {
…..
public Document AddDocument( String DocumentName,
String Version,
User Owner,
String Description,
DocumentStream userDocStream)
throws DuplicateDocument, StreamError {
………….
}}
Now look at how the code was modified with respect to signatures.
public class Repository implements DocRepos.RepositoryOperations{
………
public DocRepos.Document AddDocument( String DocumentName,
String Version,
DocRepos.User Owner,
String Description,
DocRepos.DocumentStream userDocStream)
throws DocRepos.DuplicateDocument, DocRepos.StreamError
{
………….
}}
Note that the class definition was modified to indicate that the class implements the DocRepos.RepositoryOperations interface. Also note the AddDocument method signature was modified to match the method declaration of that interface.
TIE wrapper approach:
All implementation objects that needed to be made visible to clients needed to have an OIP_TIE object created. This includes objects that are created via a "factory" method (eg. AddDocument) as well as all of the objects references that are returned in a sequence (eg. ListDocuments). This means that the implementation methods that return object references to implementation objects need to wrap that object(s) with a TIE wrapper before it is returned.
Example:
return newDoc;
Needs to be:
return new OIP_TIE_Document(newDoc);
Fine Grain object issue:
While it would have been possible for us to hide the TIE object using a smart constructor for the implementation objects which would create a TIE object as a side effect of creating the implementation object, we would have had an explosion of TIE objects; one for each fine grain implementation object, regardless of whether that object was referenced by a remote client. By deferring the creation of the TIE object until remote object reference was needed we allow for a more scaleable server implementation. This is an example of tradeoff between transparency of implementation code and performance.
Access to private implementation functionality:
A problem arises with object references that are passed as parameters. The IDL only defines a subset of the functionality of the implementation objects. For example, implementation objects contain attributes and methods that are needed for proper implementation, yet they are not defined in IDL.
This presents a problem with IDL object references that are passed as parameters and the implementation code that needs to access the actual implementation object to gain access to a non-IDL piece of functionality. The object reference is to an object that supports the IDL interface, not the actual implementation interface.
In order to do get around this problem, we needed to access implementation class via the _delegate variable in the TIE object. Luckily this is only needed when the implementation code needs to access the implementation object directly and bypass the TIE wrapper.
Call Back mechanism:
Another major change was needed in order to implement the “call back” mechanism. In order for files to actually be moved from client to server, the client needed to provide a callback object (DocumentStream) so that the server can read the contents of the file on the clients machine. This required the client to create the object (with TIE wrapper), and register it with the BOA. The client then needed to spawn off a thread for that object to be serviced by the BOA event loop. While this is straight forward, it is another example of how the code changes when clients are remote.
Miscellaneous:
We had to make changes in the implementation code that had methods that defined “out” or “inout” parameters since the IDL compiler represented these parameters with “holder” classes. This is not necessary in the “single process” version of the application since these types of parameters are passed by reference.
We had to change the method signatures that threw exceptions so that they matched the generated IDL exception classes. We had to make changes so that all of the exception objects that were thrown or caught were the IDL class. Exceptions were defined in the IDL module.
Adding Replication:
The approach that we used to implement the replication service was loosely based on the Anti-Entropy mechanisms that were used on the Bayou project. i
This approach puts the responsibility of replication on the server not the client. When the server processes a request from a client that causes its implementation object space to mutate, it will “share” that request with its replicas so that they can maintain synchronization. The implementation of the replication mechanism required the use of persistent event channels, talker and listener objects/threads and the definition of the application specific anti-entropy protocols.
The relevancy to the components topic is that our approach was done in a manner that was transparent to the implementation and client programs. We were able to add this replication feature to an existing set of components with only minor modifications, none of which required changes to the components implementation.
Since we were using OIP_TIE wrappers to delegate each request/method call to the implementation object, we were positioned to simply make extensions to that delegation wrapper. That extension composed an anti-entropy protocol message using the method arguments and broadcasted the message to all of the replicas using the event channel.
Showing posts with label compiler. Show all posts
Showing posts with label compiler. Show all posts
Sunday, October 21, 2007
Using the Microsoft Visual Studio C/C++ Integrated Development Environment (IDE)
Why C ?
C and C++ are both procedural languages. A procedural language is one in which you must specify the order in which the computer should execute instructions. C is a particular form of procedural programming language known as a block structured programming language. As a block structured programming language C allows you to structure a program into groups of instructions, or blocks, that can be repeatedly used. Exactly what this means will become clear later in the course. If you have programmed before then you will understand that the ability to define block structured program code is an important property of C. C is in many ways similar to the programming language Pascal. If these concepts are new to you don’t worry they will be explained during the course. You might have heard of another programming language, C++. C++ differs from C in the way that data and programs are associated. C uses program modules and structured data types. Structured data types allow different types of data such as a floating point value, an integer and groups of characters to be associated and given a user-defined name. This coupled with the block structuring of the program improves program clarity. C++ uses what are called Objects. Objects give C++ a number of advantages. The main advantage is to simplify the development of large, complex programs. This simplicity of program design comes at the cost of an increase in the size of the executable program and, in many cases, a reduction in the speed of execution. There is also a small increase in the complexity of the way that object-oriented programs are written, compared to block structured procedural programs.
C was introduced to program telephone systems. A telephone exchange must respond to diverse demands from users and is therefore an example of a real-time system. A telephone exchange is a real-time system of modest complexity in which speed is critical. Many real-time applications, especially those of low to modest complexity and those where speed of execution is important are more suited to implementation using a simple block structured procedural programming language such as C. In addition C allows the programmer to easily combine low-level operations that manipulate single bits in hardware and high-level operations that are concerned with searching or ordering databases in a single program. C++ preserves these benefits and makes it easier to implement complex programs and re-use software. As a result many embedded system applications are still programmed in C but this is changing as the performance of embedded computers increases and the complexity of the tasks that embedded systems are required to perform increases. It is becoming more common for embedded systems to be programmed in C++.
C++ is not the only object-oriented programming language. Java is another, much publicised, object-oriented programming language. Java is commonly used for high-level applications, to implement user interfaces and create World Wide Web based applications. Java is normally used as an interpreted language. This means that instructions are translated into computer actions line by line. Interpreted programs operate more slowly than compiled programs. However, interpreted programs are more readily moved between computer systems than compiled programs because hardware specific aspects of the actions associated with a program are determined in-situ. The syntax of both C++ and Java has much in common with C.
What is an Integrated Development Environment (IDE) ?
An integrated development environment is a set of tools for software development which commonly combine: a text editor, compiler, linker, debugging tools, profiler, version control and dependency maintenance. Consequently an IDE can appear to be complex on first encounter, DON’T PANIC.
Most people however only use a small part of the tool set and develop their understanding progressively, as needed. The essential basics are to understand how:
1.Programs are entered - the editor
2.Programs are compiled and linked
3.To manage program dependency
Getting started
Visual Studio gives you less control over the detailed setup of the C programming environment than some other IDE’s. This is both a blessing and a potential problem. It is a blessing because it simplifies initial use of the IDE. It is a problem because it is harder to achieve specific configurations when they are required. For example it is not obvious how to set the compiler, from the IDE to treat a source file as an ANSI standard source file, i.e., one which conforms strictly to the ANSI C standard definition of the C programming language syntax. This is important because compilers produced by each software house tend to adopt particular variations from the ANSI standard. Compliance to the ANSI standard can be used to ensure the portability of applications development between software platforms. The differences between individual vendors syntax for C and the ANSI standard are normally small but significant. A far greater and more common confusion is between the syntax rules for C++ and C. If you adopt the syntax rules for C++ when compiling a C program many detailed errors and potential errors of syntax will not be flagged. This will lead you into a false sense of confidence about the correctness of the program that you are developing and you may find that a program which appears to compile ok misbehaves when executed because you have used an inappropriate programming construct for C which is acceptable for C++ and therefore you are not warned of a potential error.
For most of the programming that you will perform in this course you will produce what are called “Console” applications. These are programs that do not use the windows programming interface and require a dos- or unix-like command line prompt to operate. This style of programming is being adopted so that we can concentrate on the principles of programming in C. Learning to program for Windows requires a separate course. In addition “Console” application programs are the type of programs most commonly used in embedded systems.
Starting the Microsoft Visual Studio IDE
The Microsoft Visual Studio IDE is a complex suite of software development tools for creating C, C++, Java and web-based programs, plus component software for a range of application packages. When writing C programs you will use a small subset of this functionality. It is important not to be confused or distracted by the complexity and diversity of tools in the IDE. Fig. 1. shows how the Visual Studio IDE is launched from the Windows 2000 screen. Using the left mouse button select in sequence: the “start” button on the bottom left of the screen, “Programs”, “Microsoft Visual Studio 6.0”, “Visual Studio C/C++”. In a few moments you should see a window headed “Microsoft Visual Studio C/C++ Vers 6.0”. In the following notes we will indicate a chain of selections like this using the following notation: “Start|Programs| Microsoft Visual Studio 6.0|Visual Studio C/C++”.
Creating a New Project
A project is a collection of files and compilation instructions. The project file defines how files depend on one another so that when one file is changed the appropriate files are compiled and linked together. Initially you will create simple projects with a single source file and a single target executable file. The equivalent facility is provided under Unix by a “makefile”. The Build process in Microsoft Visual Studio can generate a makefile that can be invoked from the command line. A make file can be useful when you want to define to the program build process for another person to use.
To create a New Project select “File|New” (Fig. 2) and selecting the “Project” tab, as shown in Fig. 3. You will then see a window like that in Fig. 3(a). Select “Win32 Console application”. Also enter a path to where you wish your project folder to be created and a project name. All files will be stored under a folder created with the name of the project. When you have dismissed this window by clicking on OK a window like that in Fig. 3(b) will appear. It is simplest to create an empty project folder. Dismiss the “New Project Information” screen that appears.
Files (and folders) are added to a project from the “File View” aspect of the left hand pane either by specifying existing files or a new file name. Note that under the named project files are folders for “source”, “header” and “resource files”. You will not need to add any resource files for Console applications and initially will not need to add any header files until you use separate compilation to create user defined libraries and large application programs. Primarily you will create a single source file that contains the main program. When creating the source file remember to use the file name extension “.c” to signify a C program file. This will cause the compiler to use the C programming language syntax. To do this, in the “File View” of the left pane, expand the Project folder and right click on the “Source Files” folder then select “Add files”, as shown in Fig. 4. Enter the file name in the “Insert Files into Project” window (use the “.c” filename extension) and click on “OK”. If creating a new file click “OK” on the file creation prompt that appears. To enter content into the file, select the “File View” pane, expand the “Source File” folder then double click the left mouse button on the program source file name. A window will appear in the pane on the right. Click the left mouse button in this window and type in the contents.
You are now ready to enter the text of your first program. In this window type the text shown in Fig. 6(a). Save the file to disk and left click on the icon on the toolbar (or select “Build|Build All”) to compile and link the program. Click on the “!” icon to execute the program. This program opens a simple “Console” window to run the program in, prints a line of greeting then waits for you to press any key. You must also select the “Console” window as the focus by clicking the left mouse button in that window. This will cause the next key that you press to be input for the program in that window. After you have pressed the key the program will terminate and close the “Console” window.
When compilation or linking errors occur a separate message window opens. If you click on a warning or error message for compilation the corresponding line in the program source file will be highlighted.
Opening an Existing Project
To open an existing project and associated files select “File|Open Workspace”. A file browser window will appear opened to the location of the workspace last opened. To look for another workspace navigate down the file system from here and select the appropriate workspace file, “*.dsw”, for opening.
On-line Help
On line help is available by selecting “Help|Index”. In the searchable index enter and select for display “C Language Reference”. This will allow you to browse documentation on the C programming language. Then select “Organisation of the C Language Reference” in the right hand, display pane. This is a very formal description of the C language syntax. It is a useful reference but not designed the early stages of learning to program in C. In addition pressing “F1” when the cursor is in a function name or data type definition will provide help on that topic.
When you first start programming there is no substitute for careful preparation and having a good text book at your side.
A Brief Glossary
ASCII Formally this is an abbreviation for The American Standards Committee II. In particular it is a set of integer codes used to define the characters used for formatted input and output on a computer. The character set includes the normal printable characters and a number of special control codes.
Compiler: A compiler is a program that converts a source file into a binary set of machine (computer) readable instructions.
Console Window:
This is a window that displays simple text with no graphics. It is also referred to as an MS-DOS Window because it looks like the screen presented by the now obsolete MS-DOS operating system.
Executable File: This is the executable set of binary machine readable instructions produced by a linker.
Linker: A program that connects together a set of machine readable binary files to form a program that can be executed.
Linking: The process of connecting a set of machine readable binary files to form a single program file that can be executed.
MS-DOS: An abbreviation for the MicroSoft Disk based Operating System. Some programs emulate this mode of operation using a “Console” window. The MS-DOS operating system was replaced by Windows 95.
Object File: This is the set of binary machine readable instructions produced by compiling a source file.
Source File This is a file of readable characters that define the operations of a computer.
Fig. 1. Starting the Microsoft Visual Studio 6.0 C/C++. Click the left mouse button over the start button and each menu item highlighted above until you reach the Microsoft Visual Studio C/C++ option. Clicking here will launch the Microsoft Visual Studio IDE for C/C++.
Fig 2. Creating a new project: Select “File|New”.
(a) (b)
Fig. 3. Microsoft Visual Studio 6.0 C/C++: To make a new project select “File|New”. a) This window will appear. Select the “Project” Tab to obtain this window. To create a Win32 Console application select that option in the window on the left. Select a directory path and a project name. The project name will be used for another directory and the name of the main program file (e.g. Program 1.c). b) This window will then appear. It is normally best to create an empty project. Click Finish then a summary window will appear. Dismiss this window.
Fig. 4. Adding a file. When the type of program has been selected and a skeleton project created you can start adding files. The first file to add is the main program file. Switch to “File View” using the tab at the bottom of the left pane. In the “File View” pane click on the plus sign to the left of the project files folder to reveal a pre-defined list of folders. Then right click on the “Source Files” folder and enter the filename in the pane in the middle of the screen. Remember to use the file name extension “.c”. This ensures that the C language syntax rules are used for compilation. After clicking “OK” a file creation prompt will appear; click on “OK”.
Fig. 5. Adding file content. When a file tag has been added to the workspace folder, as above, then a window in which content can be added is opened by double clicking the left mouse button over the file name tag in the pane on the left. Content is added by pacing the cursor in the window which appears on the right and clicking the left mouse button.
(b) (c)
Fig. 6. You might like to try the simple programs listed above. Their structure and operation will be discussed in the first lectures. a) This is the simplest possible program. It does not perform any visible action and has a syntactic flaw but will start and end. b) This program is syntactically correct. It has a “return 0” statement at the end. This tells the operating system that it completed ok. However it still does not perform any perceptible action. c) This program displays a message, using “printf()”, then waits for a key press, using “getch()” before exiting.
C and C++ are both procedural languages. A procedural language is one in which you must specify the order in which the computer should execute instructions. C is a particular form of procedural programming language known as a block structured programming language. As a block structured programming language C allows you to structure a program into groups of instructions, or blocks, that can be repeatedly used. Exactly what this means will become clear later in the course. If you have programmed before then you will understand that the ability to define block structured program code is an important property of C. C is in many ways similar to the programming language Pascal. If these concepts are new to you don’t worry they will be explained during the course. You might have heard of another programming language, C++. C++ differs from C in the way that data and programs are associated. C uses program modules and structured data types. Structured data types allow different types of data such as a floating point value, an integer and groups of characters to be associated and given a user-defined name. This coupled with the block structuring of the program improves program clarity. C++ uses what are called Objects. Objects give C++ a number of advantages. The main advantage is to simplify the development of large, complex programs. This simplicity of program design comes at the cost of an increase in the size of the executable program and, in many cases, a reduction in the speed of execution. There is also a small increase in the complexity of the way that object-oriented programs are written, compared to block structured procedural programs.
C was introduced to program telephone systems. A telephone exchange must respond to diverse demands from users and is therefore an example of a real-time system. A telephone exchange is a real-time system of modest complexity in which speed is critical. Many real-time applications, especially those of low to modest complexity and those where speed of execution is important are more suited to implementation using a simple block structured procedural programming language such as C. In addition C allows the programmer to easily combine low-level operations that manipulate single bits in hardware and high-level operations that are concerned with searching or ordering databases in a single program. C++ preserves these benefits and makes it easier to implement complex programs and re-use software. As a result many embedded system applications are still programmed in C but this is changing as the performance of embedded computers increases and the complexity of the tasks that embedded systems are required to perform increases. It is becoming more common for embedded systems to be programmed in C++.
C++ is not the only object-oriented programming language. Java is another, much publicised, object-oriented programming language. Java is commonly used for high-level applications, to implement user interfaces and create World Wide Web based applications. Java is normally used as an interpreted language. This means that instructions are translated into computer actions line by line. Interpreted programs operate more slowly than compiled programs. However, interpreted programs are more readily moved between computer systems than compiled programs because hardware specific aspects of the actions associated with a program are determined in-situ. The syntax of both C++ and Java has much in common with C.
What is an Integrated Development Environment (IDE) ?
An integrated development environment is a set of tools for software development which commonly combine: a text editor, compiler, linker, debugging tools, profiler, version control and dependency maintenance. Consequently an IDE can appear to be complex on first encounter, DON’T PANIC.
Most people however only use a small part of the tool set and develop their understanding progressively, as needed. The essential basics are to understand how:
1.Programs are entered - the editor
2.Programs are compiled and linked
3.To manage program dependency
Getting started
Visual Studio gives you less control over the detailed setup of the C programming environment than some other IDE’s. This is both a blessing and a potential problem. It is a blessing because it simplifies initial use of the IDE. It is a problem because it is harder to achieve specific configurations when they are required. For example it is not obvious how to set the compiler, from the IDE to treat a source file as an ANSI standard source file, i.e., one which conforms strictly to the ANSI C standard definition of the C programming language syntax. This is important because compilers produced by each software house tend to adopt particular variations from the ANSI standard. Compliance to the ANSI standard can be used to ensure the portability of applications development between software platforms. The differences between individual vendors syntax for C and the ANSI standard are normally small but significant. A far greater and more common confusion is between the syntax rules for C++ and C. If you adopt the syntax rules for C++ when compiling a C program many detailed errors and potential errors of syntax will not be flagged. This will lead you into a false sense of confidence about the correctness of the program that you are developing and you may find that a program which appears to compile ok misbehaves when executed because you have used an inappropriate programming construct for C which is acceptable for C++ and therefore you are not warned of a potential error.
For most of the programming that you will perform in this course you will produce what are called “Console” applications. These are programs that do not use the windows programming interface and require a dos- or unix-like command line prompt to operate. This style of programming is being adopted so that we can concentrate on the principles of programming in C. Learning to program for Windows requires a separate course. In addition “Console” application programs are the type of programs most commonly used in embedded systems.
Starting the Microsoft Visual Studio IDE
The Microsoft Visual Studio IDE is a complex suite of software development tools for creating C, C++, Java and web-based programs, plus component software for a range of application packages. When writing C programs you will use a small subset of this functionality. It is important not to be confused or distracted by the complexity and diversity of tools in the IDE. Fig. 1. shows how the Visual Studio IDE is launched from the Windows 2000 screen. Using the left mouse button select in sequence: the “start” button on the bottom left of the screen, “Programs”, “Microsoft Visual Studio 6.0”, “Visual Studio C/C++”. In a few moments you should see a window headed “Microsoft Visual Studio C/C++ Vers 6.0”. In the following notes we will indicate a chain of selections like this using the following notation: “Start|Programs| Microsoft Visual Studio 6.0|Visual Studio C/C++”.
Creating a New Project
A project is a collection of files and compilation instructions. The project file defines how files depend on one another so that when one file is changed the appropriate files are compiled and linked together. Initially you will create simple projects with a single source file and a single target executable file. The equivalent facility is provided under Unix by a “makefile”. The Build process in Microsoft Visual Studio can generate a makefile that can be invoked from the command line. A make file can be useful when you want to define to the program build process for another person to use.
To create a New Project select “File|New” (Fig. 2) and selecting the “Project” tab, as shown in Fig. 3. You will then see a window like that in Fig. 3(a). Select “Win32 Console application”. Also enter a path to where you wish your project folder to be created and a project name. All files will be stored under a folder created with the name of the project. When you have dismissed this window by clicking on OK a window like that in Fig. 3(b) will appear. It is simplest to create an empty project folder. Dismiss the “New Project Information” screen that appears.
Files (and folders) are added to a project from the “File View” aspect of the left hand pane either by specifying existing files or a new file name. Note that under the named project files are folders for “source”, “header” and “resource files”. You will not need to add any resource files for Console applications and initially will not need to add any header files until you use separate compilation to create user defined libraries and large application programs. Primarily you will create a single source file that contains the main program. When creating the source file remember to use the file name extension “.c” to signify a C program file. This will cause the compiler to use the C programming language syntax. To do this, in the “File View” of the left pane, expand the Project folder and right click on the “Source Files” folder then select “Add files”, as shown in Fig. 4. Enter the file name in the “Insert Files into Project” window (use the “.c” filename extension) and click on “OK”. If creating a new file click “OK” on the file creation prompt that appears. To enter content into the file, select the “File View” pane, expand the “Source File” folder then double click the left mouse button on the program source file name. A window will appear in the pane on the right. Click the left mouse button in this window and type in the contents.
You are now ready to enter the text of your first program. In this window type the text shown in Fig. 6(a). Save the file to disk and left click on the icon on the toolbar (or select “Build|Build All”) to compile and link the program. Click on the “!” icon to execute the program. This program opens a simple “Console” window to run the program in, prints a line of greeting then waits for you to press any key. You must also select the “Console” window as the focus by clicking the left mouse button in that window. This will cause the next key that you press to be input for the program in that window. After you have pressed the key the program will terminate and close the “Console” window.
When compilation or linking errors occur a separate message window opens. If you click on a warning or error message for compilation the corresponding line in the program source file will be highlighted.
Opening an Existing Project
To open an existing project and associated files select “File|Open Workspace”. A file browser window will appear opened to the location of the workspace last opened. To look for another workspace navigate down the file system from here and select the appropriate workspace file, “*.dsw”, for opening.
On-line Help
On line help is available by selecting “Help|Index”. In the searchable index enter and select for display “C Language Reference”. This will allow you to browse documentation on the C programming language. Then select “Organisation of the C Language Reference” in the right hand, display pane. This is a very formal description of the C language syntax. It is a useful reference but not designed the early stages of learning to program in C. In addition pressing “F1” when the cursor is in a function name or data type definition will provide help on that topic.
When you first start programming there is no substitute for careful preparation and having a good text book at your side.
A Brief Glossary
ASCII Formally this is an abbreviation for The American Standards Committee II. In particular it is a set of integer codes used to define the characters used for formatted input and output on a computer. The character set includes the normal printable characters and a number of special control codes.
Compiler: A compiler is a program that converts a source file into a binary set of machine (computer) readable instructions.
Console Window:
This is a window that displays simple text with no graphics. It is also referred to as an MS-DOS Window because it looks like the screen presented by the now obsolete MS-DOS operating system.
Executable File: This is the executable set of binary machine readable instructions produced by a linker.
Linker: A program that connects together a set of machine readable binary files to form a program that can be executed.
Linking: The process of connecting a set of machine readable binary files to form a single program file that can be executed.
MS-DOS: An abbreviation for the MicroSoft Disk based Operating System. Some programs emulate this mode of operation using a “Console” window. The MS-DOS operating system was replaced by Windows 95.
Object File: This is the set of binary machine readable instructions produced by compiling a source file.
Source File This is a file of readable characters that define the operations of a computer.
Fig. 1. Starting the Microsoft Visual Studio 6.0 C/C++. Click the left mouse button over the start button and each menu item highlighted above until you reach the Microsoft Visual Studio C/C++ option. Clicking here will launch the Microsoft Visual Studio IDE for C/C++.
Fig 2. Creating a new project: Select “File|New”.
(a) (b)
Fig. 3. Microsoft Visual Studio 6.0 C/C++: To make a new project select “File|New”. a) This window will appear. Select the “Project” Tab to obtain this window. To create a Win32 Console application select that option in the window on the left. Select a directory path and a project name. The project name will be used for another directory and the name of the main program file (e.g. Program 1.c). b) This window will then appear. It is normally best to create an empty project. Click Finish then a summary window will appear. Dismiss this window.
Fig. 4. Adding a file. When the type of program has been selected and a skeleton project created you can start adding files. The first file to add is the main program file. Switch to “File View” using the tab at the bottom of the left pane. In the “File View” pane click on the plus sign to the left of the project files folder to reveal a pre-defined list of folders. Then right click on the “Source Files” folder and enter the filename in the pane in the middle of the screen. Remember to use the file name extension “.c”. This ensures that the C language syntax rules are used for compilation. After clicking “OK” a file creation prompt will appear; click on “OK”.
Fig. 5. Adding file content. When a file tag has been added to the workspace folder, as above, then a window in which content can be added is opened by double clicking the left mouse button over the file name tag in the pane on the left. Content is added by pacing the cursor in the window which appears on the right and clicking the left mouse button.
(b) (c)
Fig. 6. You might like to try the simple programs listed above. Their structure and operation will be discussed in the first lectures. a) This is the simplest possible program. It does not perform any visible action and has a syntactic flaw but will start and end. b) This program is syntactically correct. It has a “return 0” statement at the end. This tells the operating system that it completed ok. However it still does not perform any perceptible action. c) This program displays a message, using “printf()”, then waits for a key press, using “getch()” before exiting.
Visual Basic (VB)
1.1Mengenal Visual Basic (VB)
Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman Visual Basic, yang dikembangkan oleh Microsoft sejak tahun 1991, merupakan pengembangan dari pendahulunya yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic merupakan salah satu bahasa pemrograman komputer yang mendukung object (Object Oriented Programming = OOP).
1.2Mengenal Integrated Development Environment (IDE) VB 6
Aktifkan VB 6 melalui tombol Start > Programs > Microsoft Visual Studio 6.0 > Microsoft VB 6.0
Menubar
Toolbar
Toolbox
Bila Toolbox tidak muncul klik tombol Toolbox ( ) pada bagian Toolbar atau klik menu
View > Toolbox.
Jendela Form
Bila Jendela Form tidak muncul klik tombol View Object ( ) pada bagian Project Explorer atau
klik menu View > Object.
Jendela Code
Bila Jendela Code tidak muncul klik tombol View Code ( ) di pada bagian Project Explorer atau
klik menu View > Code.
Project Explorer
Bila Project Explorer tidak muncul klik tombol Project Explorer ( ) pada bagian
Toolbar atau klik menu View > Project Explorer.
Jendela Properties
Bila Jendela Properties tidak muncul klik tombol Properties Window ( ) pada bagian Toolbar
atau klik menu View > Properties Window.
1.3 Memahami Istilah Object, Property, Method dan Event
Dalam pemrograman berbasis obyek (OOP), anda perlu memahami istilah object, property, method dan event sebagai berikut :
Object : komponen di dalam sebuah program
Property : karakteristik yang dimiliki object
Method : aksi yang dapat dilakukan oleh object
Event : kejadian yang dapat dialami oleh object
Object : Mobil
Property :
Merek: Toyota, Type: sedan Warna: merah
Method :
Maju,Mundur,Berhenti
Event :
Pintu dibuka, Ditabrak, Didorong
Object : Form
Property :
BackColor, BorderStyle, Caption
Method :
Hide,Move,Show
Event :
Click, Load, Resize
1.1Mengenal Data dan Variabel
Ketika seorang user (pengguna) menggunakan sebuah program komputer, seringkali komputer
memintanya untuk memberikan informasi. Informasi ini kemudian disimpan atau diolah oleh komputer.Informasi inilah yang disebut dengan DATA.
Visual Basic 6 mengenal beberapa type data, antara lain :
String adalah type data untuk teks (huruf, angka dan tanda baca).
Integer adalah type data untuk angka bulat.
Single adalah type data untuk angka pecahan.
Currency adalah type data untuk angka mata uang.
Date adalah type data untuk tanggal dan jam.
Boolean adalah type data yang bernilai TRUE atau FALSE.
Data yang disimpan di dalam memory komputer membutuhkan sebuah wadah. Wadah inilah yang
disebut dengan VARIABEL. Setiap variabel untuk menyimpan data dengan type tertentu membutuhkan
alokasi jumlah memory (byte) yang berbeda.
Variabel dibuat melalui penulisan deklarasi variabel di dalam kode program :
Dim As
Contoh : Dim nama_user As String
Aturan di dalam penamaan variabel :
Harus diawali dengan huruf.
Tidak boleh menggunakan spasi. Spasi bisa diganti dengan karakter underscore (_).
Tidak boleh menggunakan karakter-karakter khusus (seperti : +, -, *, /, <, >, dll).
Tidak boleh menggunakan kata-kata kunci yang sudah dikenal oleh VB(seperti : dim, as,string, integer, dll).Sebuah variabel hanya dapat menyimpan satu nilai data sesuai dengan type datanya.
Cara mengisi nilai data ke dalam sebuah variabel :
=
Contoh : nama_user = “krisna”
Untuk type data tertentu nilai_data harus diapit tanda pembatas. Type data string dibatasi tanda petikganda : “nilai_data”. Type data date dibatasi tanda pagar : #nilai_data#. Type data lainnya tidak perlu tanda pembatas.
Sebuah variabel mempunyai ruang-lingkup (scope) dan waktu-hidup (lifetime) :
Variabel global adalah variabel yang dapat dikenali oleh seluruh bagian program. Nilai data yang
tersimpan didalamnya akan hidup terus selama program berjalan.
Variabel lokal adalah variabel yang hanya dikenali oleh satu bagian program saja. Nilai data yang
tersimpan didalamnya hanya hidup selama bagian program tersebut dijalankan.
Variabel yang nilai datanya bersifat tetap dan tidak bisa diubah disebut KONSTANTA. Penulisan
deklarasi konstanta di dalam kode program :
Const As =
Contoh : Const tgl_gajian As Date = #25/09/2003#
1.1Mengenal Struktur Kontrol
Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang
digunakan untuk mengatur (mengontrol) jalannya program.
Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu :
1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan
dikerjakan berdasarkan suatu kondisi. Akan dibahas pada bab ini.
2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan
dibahas pada bab selanjutnya.
Ada dua bentuk struktur kontrol keputusan, yaitu :
1. Struktur IF…THEN. Akan dibahas pada bab ini.
2. Struktur SELECT…CASE. Akan dibahas pada bab selanjutnya.
Bentuk penulisan (syntax) struktur IF…THEN :
1. IF THEN
Bila bernilai True maka akan dikerjakan.
2. IF THEN
ELSE
END IF
Bila bernilai True maka akan dikerjakan, tetapi bila
bernilai False maka yang akan dikerjakan.
1.2 Struktur Kontrol Select…Case
Bentuk penulisan (syntax) struktur SELECT…CASE :
SELECT CASE
CASE
CASE
CASE
[CASE ELSE
]
END SELECT
Bila sesuai dengan maka akan dikerjakan, dst. Tetapi bila tidak ada yang sesuai dengan s/d maka yang akan dikerjakan.
1.1Mengenal Struktur Kontrol
Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program.
Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu :
1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan
dikerjakan berdasarkan suatu kondisi. Sudah dibahas pada bab lalu.
2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan
dibahas pada bab ini.
Ada dua bentuk struktur kontrol pengulangan (looping), yaitu :
1. Struktur FOR…NEXT.
2. Struktur DO…LOOP.
1.2 Struktur Kontrol For…Next
Bentuk penulisan (syntax) struktur For…Next :
FOR = TO [STEP ]
NEXT
adalah variabel (tipe: integer) yang digunakan untuk menyimpan angka pengulangan.
adalah nilai awal dari .
adalah nilai akhir dari .
adalah perubahan nilai setiap pengulangan. Sifatnya optional (boleh ditulis
ataupun tidak). Bila tidak ditulis maka nilai adalah 1.
1.2Struktur Kontrol Do…Loop
Bentuk penulisan (syntax) struktur Do…Loop :
1. DO WHILE
LOOP
akan diulang selama bernilai TRUE. Pengulangan berhenti bila
sudah bernilai FALSE.
2. DO UNTIL
LOOP
akan diulang sampai bernilai TRUE. Pengulangan berhenti bila
sudah bernilai TRUE.
1.1 Apa itu Array ?
Array merupakan sekumpulan nilai data yang “dikelompokkan” dalam sebuah variabel. Array
digunakan bila ada beberapa nilai data yang tipe datanya sama dan akan mendapat perlakuan yang sama pula. Misalnya, ada 10 nilai data dengan tipe string dan akan diolah dengan cara yang sama, maka akan lebih mudah jika menggunakan sebuah array dibandingkan bila menggunakan 10 variabel yang berbeda. Setiap nilai data di dalam sebuah array disebut elemen array dan masing-masing dibedakan dengan nomer indeksnya.
1.2 Menggunakan Array
Sebuah array dideklarasikan dengan cara yang sama dengan variabel, yaitu menggunakan perintah Dim, kemudian diikuti dengan tanda kurung dan jumlah
Dim nama_array(jumlah_elemen - 1) As tipe_data
Contoh :
Dim NamaSiswa(99) As String array NamaSiswa akan mempunyai elemen sebanyak 100 dengan
nomer indeks mulai dari 0 s/d 99.
Selanjutnya untuk mengisi nilai data ke dalam array :
nama_array(no_indeks) = nilai_data
Contoh :
NamaSiswa(0) = “umar”
Namasiswa(1) = “fatimah”
Untuk “mengosongkan” nilai data, bisa menggunakan struktur kontrol For…Next :
For i = 0 To 99
NamaSiswa(i) = “”
Next i
Lebih mudah bukan ?
Catatan :
Agar nomer indeks array dimulai dari 1 (bukan 0), bisa menggunakan perintah Option Base 1
sebelum perintah Dim-nya, contoh :
Option Base 1
Dim NamaSiswa(100) As String
Atau bisa juga menggunakan kata To di dalam penentuan jumlah elemen array, contoh :
Dim NamaSiswa(1 To 100) As String
Untuk mengetahui berapa jumlah elemen di dalam sebuah array, bisa menggunakan perintah
Ubound(nama_array), contoh :
Dim NamaSiswa(1 To 100) As String
Dim JmlElemen As Integer
JmlElemen = Ubound(NamaSiswa) hasilnya = 100
Bila jumlah elemen array yang dibutuhkan tidak diketahui atau ingin bisa diubah-ubah, maka
bagian jumlah_elemen pada perintah Dim tidak perlu diisi, contoh :
Dim NamaSiswa() As String
Teknik ini biasa disebut sebagai array dinamis, biasanya untuk mengisi data yang berkembang terus, dan
belum bisa ditentukan di awal jumlah elemennya.
Untuk mengubah jumlah elemen array digunakan perintah Redim :
Redim [Preserve] nama_array(jumlah_elemen)
Contoh :
Redim NamaSiswa(1 To 150) jumlah elemen array NamaSiswa menjadi 150 dengan
nomer indeks dari 1 s/d 150.
1.1 Apa itu Procedure ?
Procedure adalah blok kode program yang berisi perintah-perintah untuk mengerjakan tugas tertentu. Bila di dalam kode program yang kita buat ada perintah-perintah untuk melakukan tugas yang sama di beberapa tempat, maka akan lebih baik perintah-perintah tersebut dibuat dalam sebuah procedure. Kemudian, procedure itu bisa di-‘panggil’ bila diperlukan.
Penggunaan procedure sangat menghemat penulisan kode program, karena kode-kode program yang sama dibeberapa tempat cukup dibuat pada satu bagian saja. Selain itu, procedure akan memudahkan perbaikan kode program bila terjadi perubahan atau kesalahan, karena perbaikan cukup dilakukan pada satu bagian saja.
1.2 Jenis-jenis Procedure
Pada VB6 ada 4 jenis procedure, yaitu :
1Procedure Sub – procedure yang tidak mengembalikan nilai setelah ‘tugas’-nya selesai.
2Procedure Function – procedure yang mengembalikan nilai setelah ‘tugas’-nya selesai.
3Procedure Event – procedure untuk suatu event pada sebuah object. Digunakan di dalam class module.
4Procedure Property – procedure untuk mengubah (let) atau mengambil (get) nilai property pada sebuah object. Digunakan di dalam class module.
Pada bab ini akan dibahas penggunaan procedure sub dan function. Procedure event dan property akan dibahas pada bab selanjutnya.
Bentuk penulisan (syntax) procedure sub :
[Public | Private] Sub ([])
…
…
End Sub
Sedangkan bentuk penulisan (syntax) procedure function :
[Public | Private] Function ([]) As
…
…
End Function
Pernyataan [Public | Private] menentukan ruang lingkup (scope) procedure. Sebuah procedure dengan scope public bisa digunakan dalam lingkup project. Sedangkan procedure dengan scope private hanya bisa digunakan dalam lingkup form saja.
atau dibuat sebagai pengenal procedure saat di-‘panggil’. Aturan penamaan sebuah procedure sama dengan aturan penamaan sebuah variabel. Nama sebuah procedure dibuat unik, tidak boleh ada yang sama.
merupakan serangkaian nilai dan tipe data yang dipakai oleh procedure untuk mengerjakan ‘tugas’-nya. Sebuah procedure bisa saja tidak memakai argumen sama sekali.
Pernyataan As pada procedure function menentukan tipe data nilai yang akan dikembalikan (return value) setelah ‘tugas’-nya selesai.
Untuk menggunakan sebuah procedure, maka procedure tersebut harus di-‘panggil’ pada bagian tertentu dari kode program. Procedure sub di-‘panggil’ dengan pernyataan :
Call([])
Sedangkan procedure function bisa di-‘panggil’ langsung dengan menyisipkannya di dalam kode program yang memanggilnya.
Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman Visual Basic, yang dikembangkan oleh Microsoft sejak tahun 1991, merupakan pengembangan dari pendahulunya yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic merupakan salah satu bahasa pemrograman komputer yang mendukung object (Object Oriented Programming = OOP).
1.2Mengenal Integrated Development Environment (IDE) VB 6
Aktifkan VB 6 melalui tombol Start > Programs > Microsoft Visual Studio 6.0 > Microsoft VB 6.0
Menubar
Toolbar
Toolbox
Bila Toolbox tidak muncul klik tombol Toolbox ( ) pada bagian Toolbar atau klik menu
View > Toolbox.
Jendela Form
Bila Jendela Form tidak muncul klik tombol View Object ( ) pada bagian Project Explorer atau
klik menu View > Object.
Jendela Code
Bila Jendela Code tidak muncul klik tombol View Code ( ) di pada bagian Project Explorer atau
klik menu View > Code.
Project Explorer
Bila Project Explorer tidak muncul klik tombol Project Explorer ( ) pada bagian
Toolbar atau klik menu View > Project Explorer.
Jendela Properties
Bila Jendela Properties tidak muncul klik tombol Properties Window ( ) pada bagian Toolbar
atau klik menu View > Properties Window.
1.3 Memahami Istilah Object, Property, Method dan Event
Dalam pemrograman berbasis obyek (OOP), anda perlu memahami istilah object, property, method dan event sebagai berikut :
Object : komponen di dalam sebuah program
Property : karakteristik yang dimiliki object
Method : aksi yang dapat dilakukan oleh object
Event : kejadian yang dapat dialami oleh object
Object : Mobil
Property :
Merek: Toyota, Type: sedan Warna: merah
Method :
Maju,Mundur,Berhenti
Event :
Pintu dibuka, Ditabrak, Didorong
Object : Form
Property :
BackColor, BorderStyle, Caption
Method :
Hide,Move,Show
Event :
Click, Load, Resize
1.1Mengenal Data dan Variabel
Ketika seorang user (pengguna) menggunakan sebuah program komputer, seringkali komputer
memintanya untuk memberikan informasi. Informasi ini kemudian disimpan atau diolah oleh komputer.Informasi inilah yang disebut dengan DATA.
Visual Basic 6 mengenal beberapa type data, antara lain :
String adalah type data untuk teks (huruf, angka dan tanda baca).
Integer adalah type data untuk angka bulat.
Single adalah type data untuk angka pecahan.
Currency adalah type data untuk angka mata uang.
Date adalah type data untuk tanggal dan jam.
Boolean adalah type data yang bernilai TRUE atau FALSE.
Data yang disimpan di dalam memory komputer membutuhkan sebuah wadah. Wadah inilah yang
disebut dengan VARIABEL. Setiap variabel untuk menyimpan data dengan type tertentu membutuhkan
alokasi jumlah memory (byte) yang berbeda.
Variabel dibuat melalui penulisan deklarasi variabel di dalam kode program :
Dim
Contoh : Dim nama_user As String
Aturan di dalam penamaan variabel :
Harus diawali dengan huruf.
Tidak boleh menggunakan spasi. Spasi bisa diganti dengan karakter underscore (_).
Tidak boleh menggunakan karakter-karakter khusus (seperti : +, -, *, /, <, >, dll).
Tidak boleh menggunakan kata-kata kunci yang sudah dikenal oleh VB(seperti : dim, as,string, integer, dll).Sebuah variabel hanya dapat menyimpan satu nilai data sesuai dengan type datanya.
Cara mengisi nilai data ke dalam sebuah variabel :
Contoh : nama_user = “krisna”
Untuk type data tertentu nilai_data harus diapit tanda pembatas. Type data string dibatasi tanda petikganda : “nilai_data”. Type data date dibatasi tanda pagar : #nilai_data#. Type data lainnya tidak perlu tanda pembatas.
Sebuah variabel mempunyai ruang-lingkup (scope) dan waktu-hidup (lifetime) :
Variabel global adalah variabel yang dapat dikenali oleh seluruh bagian program. Nilai data yang
tersimpan didalamnya akan hidup terus selama program berjalan.
Variabel lokal adalah variabel yang hanya dikenali oleh satu bagian program saja. Nilai data yang
tersimpan didalamnya hanya hidup selama bagian program tersebut dijalankan.
Variabel yang nilai datanya bersifat tetap dan tidak bisa diubah disebut KONSTANTA. Penulisan
deklarasi konstanta di dalam kode program :
Const
Contoh : Const tgl_gajian As Date = #25/09/2003#
1.1Mengenal Struktur Kontrol
Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang
digunakan untuk mengatur (mengontrol) jalannya program.
Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu :
1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan
dikerjakan berdasarkan suatu kondisi. Akan dibahas pada bab ini.
2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan
dibahas pada bab selanjutnya.
Ada dua bentuk struktur kontrol keputusan, yaitu :
1. Struktur IF…THEN. Akan dibahas pada bab ini.
2. Struktur SELECT…CASE. Akan dibahas pada bab selanjutnya.
Bentuk penulisan (syntax) struktur IF…THEN :
1. IF
Bila
2. IF
ELSE
END IF
Bila
bernilai False maka
1.2 Struktur Kontrol Select…Case
Bentuk penulisan (syntax) struktur SELECT…CASE :
SELECT CASE
CASE
CASE
CASE
[CASE ELSE
END SELECT
Bila
1.1Mengenal Struktur Kontrol
Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program.
Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu :
1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan
dikerjakan berdasarkan suatu kondisi. Sudah dibahas pada bab lalu.
2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan
dibahas pada bab ini.
Ada dua bentuk struktur kontrol pengulangan (looping), yaitu :
1. Struktur FOR…NEXT.
2. Struktur DO…LOOP.
1.2 Struktur Kontrol For…Next
Bentuk penulisan (syntax) struktur For…Next :
FOR
NEXT
ataupun tidak). Bila tidak ditulis maka nilai
1.2Struktur Kontrol Do…Loop
Bentuk penulisan (syntax) struktur Do…Loop :
1. DO WHILE
LOOP
2. DO UNTIL
LOOP
1.1 Apa itu Array ?
Array merupakan sekumpulan nilai data yang “dikelompokkan” dalam sebuah variabel. Array
digunakan bila ada beberapa nilai data yang tipe datanya sama dan akan mendapat perlakuan yang sama pula. Misalnya, ada 10 nilai data dengan tipe string dan akan diolah dengan cara yang sama, maka akan lebih mudah jika menggunakan sebuah array dibandingkan bila menggunakan 10 variabel yang berbeda. Setiap nilai data di dalam sebuah array disebut elemen array dan masing-masing dibedakan dengan nomer indeksnya.
1.2 Menggunakan Array
Sebuah array dideklarasikan dengan cara yang sama dengan variabel, yaitu menggunakan perintah Dim, kemudian diikuti dengan tanda kurung dan jumlah
Dim nama_array(jumlah_elemen - 1) As tipe_data
Contoh :
Dim NamaSiswa(99) As String array NamaSiswa akan mempunyai elemen sebanyak 100 dengan
nomer indeks mulai dari 0 s/d 99.
Selanjutnya untuk mengisi nilai data ke dalam array :
nama_array(no_indeks) = nilai_data
Contoh :
NamaSiswa(0) = “umar”
Namasiswa(1) = “fatimah”
Untuk “mengosongkan” nilai data, bisa menggunakan struktur kontrol For…Next :
For i = 0 To 99
NamaSiswa(i) = “”
Next i
Lebih mudah bukan ?
Catatan :
Agar nomer indeks array dimulai dari 1 (bukan 0), bisa menggunakan perintah Option Base 1
sebelum perintah Dim-nya, contoh :
Option Base 1
Dim NamaSiswa(100) As String
Atau bisa juga menggunakan kata To di dalam penentuan jumlah elemen array, contoh :
Dim NamaSiswa(1 To 100) As String
Untuk mengetahui berapa jumlah elemen di dalam sebuah array, bisa menggunakan perintah
Ubound(nama_array), contoh :
Dim NamaSiswa(1 To 100) As String
Dim JmlElemen As Integer
JmlElemen = Ubound(NamaSiswa) hasilnya = 100
Bila jumlah elemen array yang dibutuhkan tidak diketahui atau ingin bisa diubah-ubah, maka
bagian jumlah_elemen pada perintah Dim tidak perlu diisi, contoh :
Dim NamaSiswa() As String
Teknik ini biasa disebut sebagai array dinamis, biasanya untuk mengisi data yang berkembang terus, dan
belum bisa ditentukan di awal jumlah elemennya.
Untuk mengubah jumlah elemen array digunakan perintah Redim :
Redim [Preserve] nama_array(jumlah_elemen)
Contoh :
Redim NamaSiswa(1 To 150) jumlah elemen array NamaSiswa menjadi 150 dengan
nomer indeks dari 1 s/d 150.
1.1 Apa itu Procedure ?
Procedure adalah blok kode program yang berisi perintah-perintah untuk mengerjakan tugas tertentu. Bila di dalam kode program yang kita buat ada perintah-perintah untuk melakukan tugas yang sama di beberapa tempat, maka akan lebih baik perintah-perintah tersebut dibuat dalam sebuah procedure. Kemudian, procedure itu bisa di-‘panggil’ bila diperlukan.
Penggunaan procedure sangat menghemat penulisan kode program, karena kode-kode program yang sama dibeberapa tempat cukup dibuat pada satu bagian saja. Selain itu, procedure akan memudahkan perbaikan kode program bila terjadi perubahan atau kesalahan, karena perbaikan cukup dilakukan pada satu bagian saja.
1.2 Jenis-jenis Procedure
Pada VB6 ada 4 jenis procedure, yaitu :
1Procedure Sub – procedure yang tidak mengembalikan nilai setelah ‘tugas’-nya selesai.
2Procedure Function – procedure yang mengembalikan nilai setelah ‘tugas’-nya selesai.
3Procedure Event – procedure untuk suatu event pada sebuah object. Digunakan di dalam class module.
4Procedure Property – procedure untuk mengubah (let) atau mengambil (get) nilai property pada sebuah object. Digunakan di dalam class module.
Pada bab ini akan dibahas penggunaan procedure sub dan function. Procedure event dan property akan dibahas pada bab selanjutnya.
Bentuk penulisan (syntax) procedure sub :
[Public | Private] Sub
…
…
End Sub
Sedangkan bentuk penulisan (syntax) procedure function :
[Public | Private] Function
…
…
End Function
Pernyataan [Public | Private] menentukan ruang lingkup (scope) procedure. Sebuah procedure dengan scope public bisa digunakan dalam lingkup project. Sedangkan procedure dengan scope private hanya bisa digunakan dalam lingkup form saja.
Pernyataan As
Untuk menggunakan sebuah procedure, maka procedure tersebut harus di-‘panggil’ pada bagian tertentu dari kode program. Procedure sub di-‘panggil’ dengan pernyataan :
Call
Sedangkan procedure function bisa di-‘panggil’ langsung dengan menyisipkannya di dalam kode program yang memanggilnya.
Diskripsi Dan Sejarah Free Pascal
Pada mulanya diberi nama FPK-Pascal, kemudian diganti dengan Free Pascal. Free Pascal sangat mirip dengan Turbo Pascal dan Delphi, yang berjalan di sistem operasi DOS, Linux, Win32, OS/2, dan AmigaOS. Untuk operating system lain, seperti FreeBSD, Solaris, BEOS, PALMOS, dan NETBSD masih dalam tahap pengembangan.
Compiler free pascal (ppc386) ditulis dalam bahasa Pascal dan bisa dikompilasi sendiri dengan ppc386. Artinya bila ingin mengubah kompiler ini, langkah yang harus dilakukan adalah mengkompile ulang source-code yang disertakan dalam setiap paket dengan ppc386. Cara yang lain yaitu dengan memakai fpcmake. Lain halnya dengan GNU Pascal yang sama-sama open-source. Bedanya GNU Pascal ditulis dalam bahasa C, sehingga bila ingin melakukan kompilasi ulang kompiler harus menggunakan compiler C.
Tetapi hal ini tidaklah menjadi persoalan bagi seorang programmer. Free Pascal mulai digarap pada bulan Juni 1993 dan baru dirilis ke internet pada tahun 1996 versi 1.0.6 yang dirilis pada bulan Maret tahun 2002. Untuk versi 1.1.x masih dalam tahap pengembangan dan uji coba. Apabila telah stabil maka akan dirilis dalam versi 1.2.x dengan perbaikan segala macam bug yang ditemukan pada versi 1.1.x. Jadi masih sangat disarankan untuk memakai versi 1.0.x bagi yang menggunakan prosessor Intel dan keluarganya. Serta versi 0.99.5 bagi yang memakai prosessor motorolla.
Untuk menghsilkan suatu program yang executable suatu compiler punya langkah dan prosedur tersendiri. Untuk mengetahui cara kerja suatu kompilator kita harus mengetahui perangkat-perangkat pembangun kompilator. Perangkat pembangun kompilator antara lain:
Scanner Generator (Lexical Analyzer), yaitu pemecahan dan pen gelompokan source code menjadi besaran-besaran leksik (token). Tujuannya untuk mengelompokkan token ke dalam konstanta, nama variabel, keyword, dan operator. Misalnya sebuah baris program sebagai berikut:
IF A=B THEN C=B+H ;
Akan dikelompokkan menjadi kelompok IF dan THEN, kelompok A, B, C, dan H, serta kelompok = dan + . Dalam hal ini Scanner harus memproses blank dan komentar.
Parser Generator, Perangkat ini yang akan menghasilkan syntax analyzer. Fungsinya untuk menentukan bagaimana dekomposisinya. Proses ini bisa dianalogikan dengan penentuan struktur kalimat dalam bahasa inggris. Yaitu subject, verb, noun, atau adjective. Dalam analisis sintaksis, yang menjadiperhatian kita adalah pengelompokan token ke dalam kelas sitaksis, seperti expression, statement, dan procedure. Parser memberikan suatu pohon sintaks dengan token sebagai daunnya dan setiap elemen non-daun merepresentasikan suatu klas sintaksis.
Syntax-directed translation Engines, Bagian ini yang akan menghasilkan intermediate form dari source code. Fungsinya untuk menentukan maksud dari suatu source code. Meskipun secara konseptual sintaks dari suatu program dipisahkan dari semantiknya, mereka bekerja sama secara dekat. Keluaran dari bagian ini akan diberikan ke code genereator.
Automatic Code Generators, Yaitu sebuah tool yang mempunya sekumpulan aturan yang akan dipakai untuk mendefinisikan setiap penerjemahan dari bahasa menengah ke bahasa mesin. Keluaran dari code generator diberikan ke code optimizer (Dataflow engines).
Data-flow Engines, Proses pada bagian ini bertujuan untuk menghasilkan object yang lebih efisien.. Optimasi tertentu yang mungkin pada level lokal meliputi evaluasi dari ekspresi konstanta, pemakaian properti operator tertentu , seperti asosiatif, komutatif, dan distributiif Optimasi global lebih lanjut juga bisa dilakukan. Ini meliputi kemunculan dari subekspresi yang identik dan penghapusan statement invariant dalam suatu loop, dan menempatkannya di luar loop. Optimasi ini termasuk optimasi machine-independent. Alokasi register secara optimal merupakan salah satu contoh optimasi yang machine-dependent. Suatu code optimizer yang baik bisa menghasilkan kode yang lebih baik daripada pemrogram assembler yang berpengalaman.
Compiler free pascal (ppc386) ditulis dalam bahasa Pascal dan bisa dikompilasi sendiri dengan ppc386. Artinya bila ingin mengubah kompiler ini, langkah yang harus dilakukan adalah mengkompile ulang source-code yang disertakan dalam setiap paket dengan ppc386. Cara yang lain yaitu dengan memakai fpcmake. Lain halnya dengan GNU Pascal yang sama-sama open-source. Bedanya GNU Pascal ditulis dalam bahasa C, sehingga bila ingin melakukan kompilasi ulang kompiler harus menggunakan compiler C.
Tetapi hal ini tidaklah menjadi persoalan bagi seorang programmer. Free Pascal mulai digarap pada bulan Juni 1993 dan baru dirilis ke internet pada tahun 1996 versi 1.0.6 yang dirilis pada bulan Maret tahun 2002. Untuk versi 1.1.x masih dalam tahap pengembangan dan uji coba. Apabila telah stabil maka akan dirilis dalam versi 1.2.x dengan perbaikan segala macam bug yang ditemukan pada versi 1.1.x. Jadi masih sangat disarankan untuk memakai versi 1.0.x bagi yang menggunakan prosessor Intel dan keluarganya. Serta versi 0.99.5 bagi yang memakai prosessor motorolla.
Untuk menghsilkan suatu program yang executable suatu compiler punya langkah dan prosedur tersendiri. Untuk mengetahui cara kerja suatu kompilator kita harus mengetahui perangkat-perangkat pembangun kompilator. Perangkat pembangun kompilator antara lain:
Scanner Generator (Lexical Analyzer), yaitu pemecahan dan pen gelompokan source code menjadi besaran-besaran leksik (token). Tujuannya untuk mengelompokkan token ke dalam konstanta, nama variabel, keyword, dan operator. Misalnya sebuah baris program sebagai berikut:
IF A=B THEN C=B+H ;
Akan dikelompokkan menjadi kelompok IF dan THEN, kelompok A, B, C, dan H, serta kelompok = dan + . Dalam hal ini Scanner harus memproses blank dan komentar.
Parser Generator, Perangkat ini yang akan menghasilkan syntax analyzer. Fungsinya untuk menentukan bagaimana dekomposisinya. Proses ini bisa dianalogikan dengan penentuan struktur kalimat dalam bahasa inggris. Yaitu subject, verb, noun, atau adjective. Dalam analisis sintaksis, yang menjadiperhatian kita adalah pengelompokan token ke dalam kelas sitaksis, seperti expression, statement, dan procedure. Parser memberikan suatu pohon sintaks dengan token sebagai daunnya dan setiap elemen non-daun merepresentasikan suatu klas sintaksis.
Syntax-directed translation Engines, Bagian ini yang akan menghasilkan intermediate form dari source code. Fungsinya untuk menentukan maksud dari suatu source code. Meskipun secara konseptual sintaks dari suatu program dipisahkan dari semantiknya, mereka bekerja sama secara dekat. Keluaran dari bagian ini akan diberikan ke code genereator.
Automatic Code Generators, Yaitu sebuah tool yang mempunya sekumpulan aturan yang akan dipakai untuk mendefinisikan setiap penerjemahan dari bahasa menengah ke bahasa mesin. Keluaran dari code generator diberikan ke code optimizer (Dataflow engines).
Data-flow Engines, Proses pada bagian ini bertujuan untuk menghasilkan object yang lebih efisien.. Optimasi tertentu yang mungkin pada level lokal meliputi evaluasi dari ekspresi konstanta, pemakaian properti operator tertentu , seperti asosiatif, komutatif, dan distributiif Optimasi global lebih lanjut juga bisa dilakukan. Ini meliputi kemunculan dari subekspresi yang identik dan penghapusan statement invariant dalam suatu loop, dan menempatkannya di luar loop. Optimasi ini termasuk optimasi machine-independent. Alokasi register secara optimal merupakan salah satu contoh optimasi yang machine-dependent. Suatu code optimizer yang baik bisa menghasilkan kode yang lebih baik daripada pemrogram assembler yang berpengalaman.
SISTEM KEAMANAN PADA ENTERPRISE JAVABEANS (EJB)
Warsito
Saat ini sistem arsitektur enterprise telah menjadi issu yang hangat di kalangan pengembang aplikasi sistem informasi dan komputerisasi. Arsitektur enterprise menghendaki suatu sistem yang terintegrasi secara lengkap meliputi seluruh data yang berkaitan dengan aktifitas bisnis perusahaan. Hal ini tentunya akan berhubungan dedngan data seluruh data perusahaan, baik yang bersifat publik maupun private.
Sementara itu akselerasi perkembangan teknologi internet saat ini ternyata diiringi pula dengan peningkatan volume kejahatan di dunia internet. Sehingga kebutuhan akan keamanan pada setiap pengembangan aplikasi internet, semakin dirasakan. Lebih-lebih untuk aplikasi berskala enterprise, maka pemasukkan unsur keamanan sistem sudah menjadi suatu keharusan.
Sun Microsystem, sebagai sebuah perusahaan pengembang software yang terkenal dengan arsitektur berorientasi obyek, saat ini telah menawarkan aplikasi baru untuk sistem berskala enterprise. Sistem baru ini dikenal dengan sebutan Enterprise JavaBeans (EJB). Arsitektur teknologi ini lebih menekankan kepada sistem yang terdistribusi, yakni bagaimana menjalankan komponen-komponen enterprise pada sistem yang terdistribusi.
Sehubungan dengan sistem terdistribusi tersebut, masalah keamanan tentunya akan semakin komplek. Hal ini karena sistem berada pada lokasi yang tersebar, yakni ke beberapa mesin. Makalah ini akan dibahas bagaimana sistem keamanan yang diterapkan dalam alikasi terdistribusi, yang dikembangkan dalam teknologi EJB.
Saat ini sistem arsitektur enterprise telah menjadi issu yang hangat di kalangan pengembang aplikasi sistem informasi dan komputerisasi. Arsitektur enterprise menghendaki suatu sistem yang terintegrasi secara lengkap meliputi seluruh data yang berkaitan dengan aktifitas bisnis perusahaan. Hal ini tentunya akan berhubungan dedngan data seluruh data perusahaan, baik yang bersifat publik maupun private.
Sementara itu akselerasi perkembangan teknologi internet saat ini ternyata diiringi pula dengan peningkatan volume kejahatan di dunia internet. Sehingga kebutuhan akan keamanan pada setiap pengembangan aplikasi internet, semakin dirasakan. Lebih-lebih untuk aplikasi berskala enterprise, maka pemasukkan unsur keamanan sistem sudah menjadi suatu keharusan.
Sun Microsystem, sebagai sebuah perusahaan pengembang software yang terkenal dengan arsitektur berorientasi obyek, saat ini telah menawarkan aplikasi baru untuk sistem berskala enterprise. Sistem baru ini dikenal dengan sebutan Enterprise JavaBeans (EJB). Arsitektur teknologi ini lebih menekankan kepada sistem yang terdistribusi, yakni bagaimana menjalankan komponen-komponen enterprise pada sistem yang terdistribusi.
Sehubungan dengan sistem terdistribusi tersebut, masalah keamanan tentunya akan semakin komplek. Hal ini karena sistem berada pada lokasi yang tersebar, yakni ke beberapa mesin. Makalah ini akan dibahas bagaimana sistem keamanan yang diterapkan dalam alikasi terdistribusi, yang dikembangkan dalam teknologi EJB.
A Compiler-guided Instrumentation for Application Behavior Understanding*
C Pedro. Diniz and Tejus Krishna
The standard approach to the problem of application behavior understanding relies on instruction-level instrumentation. This approach generates humongous volumes of data that overwhelm programmers in trying to understand the cause-effects relationships in their applications and thus improve the performance of their codes. This article describes an integrated compiler and run-time approach that allows the extraction of relevant program behavior information by judiciously instrumenting the source code, and deriving performance metrics such as range of array reference addresses, array access stride information or data reuse characteristics. This information ultimately allows programmers to understand why the performance is what it is on a given machine as they related to program constructs they can reason about. We describe the overall organization of our compiler and run-time instrumentation system and present preliminary results for a selected set of kernel codes. The approach allow programmers to derive a wealth of information about the program behavior with an run-time overhead of less than 15% of the original code’s execution time making this attractive to instrument and analysis of code with extremely long running times where binary-level approaches are simply impractical.
Understanding the performance of modern high-performance computing machines has become notoriously difficult. These architectures expose to the programmers different hardware mechanisms that interact, often, in not so predictable ways. Aiming at improving their performance, programmers must resort to low-level instrumentation techniques, such as binary rewriting, to capture run-time execution data from which they hope to understand the performance behavior of the program. This approach, however, generates huge volumes of raw data at a level of abstraction that is seldom adequate for programmers to relate to the source code of their applications. Programmers are thus left guessing which style of coding is adequate for the compiler and the target architecture at hand. Worst, when one of these two components changes the learning investment is wasted, as the process must be restarted.
In this work we describe an alternative approach that relies on high-level source code instrumentation guided by the application of compiler analyses techniques. The basic idea is to judiciously instrument the application source code to extract various execution metrics that can be related to the source code. While some of the aspects of the compiler-architecture interactions are not directly modeled, the fundamental program behavior is retained at a level of abstraction that allows the compiler to related the observed metrics to source-level program constructs programmers can understand. An added benefit consists in the isolation of the approach from the compiler effects or ideosyncraises and thus provides a path for program behavior prediction for future architectures for which a compiler or the actual machines do noy yet exist.
Consider as an illustrative example the code in figure 1. For each invocation of the innermost loop, the computation accesses m elements of the array A with a stride of 1 and m elements of the array B with a stride that is dictated by the array size of B. There are several key observations in this example. First, the accesses to the array A and B are dependent on the range of values n and m which are not known at compile time. Second, the range of addresses to the array A are repeated across the invocations of the i loop. Finally, and although some of the values are not known, such as the actual value of k, its value is not modified throughout the execution of both loops and thus can be safely considered to be loop invariant with respect to these two loops.
The standard approach to the problem of application behavior understanding relies on instruction-level instrumentation. This approach generates humongous volumes of data that overwhelm programmers in trying to understand the cause-effects relationships in their applications and thus improve the performance of their codes. This article describes an integrated compiler and run-time approach that allows the extraction of relevant program behavior information by judiciously instrumenting the source code, and deriving performance metrics such as range of array reference addresses, array access stride information or data reuse characteristics. This information ultimately allows programmers to understand why the performance is what it is on a given machine as they related to program constructs they can reason about. We describe the overall organization of our compiler and run-time instrumentation system and present preliminary results for a selected set of kernel codes. The approach allow programmers to derive a wealth of information about the program behavior with an run-time overhead of less than 15% of the original code’s execution time making this attractive to instrument and analysis of code with extremely long running times where binary-level approaches are simply impractical.
Understanding the performance of modern high-performance computing machines has become notoriously difficult. These architectures expose to the programmers different hardware mechanisms that interact, often, in not so predictable ways. Aiming at improving their performance, programmers must resort to low-level instrumentation techniques, such as binary rewriting, to capture run-time execution data from which they hope to understand the performance behavior of the program. This approach, however, generates huge volumes of raw data at a level of abstraction that is seldom adequate for programmers to relate to the source code of their applications. Programmers are thus left guessing which style of coding is adequate for the compiler and the target architecture at hand. Worst, when one of these two components changes the learning investment is wasted, as the process must be restarted.
In this work we describe an alternative approach that relies on high-level source code instrumentation guided by the application of compiler analyses techniques. The basic idea is to judiciously instrument the application source code to extract various execution metrics that can be related to the source code. While some of the aspects of the compiler-architecture interactions are not directly modeled, the fundamental program behavior is retained at a level of abstraction that allows the compiler to related the observed metrics to source-level program constructs programmers can understand. An added benefit consists in the isolation of the approach from the compiler effects or ideosyncraises and thus provides a path for program behavior prediction for future architectures for which a compiler or the actual machines do noy yet exist.
Consider as an illustrative example the code in figure 1. For each invocation of the innermost loop, the computation accesses m elements of the array A with a stride of 1 and m elements of the array B with a stride that is dictated by the array size of B. There are several key observations in this example. First, the accesses to the array A and B are dependent on the range of values n and m which are not known at compile time. Second, the range of addresses to the array A are repeated across the invocations of the i loop. Finally, and although some of the values are not known, such as the actual value of k, its value is not modified throughout the execution of both loops and thus can be safely considered to be loop invariant with respect to these two loops.
Monday, October 8, 2007
BAHASA SIMULASI
Pemrograman model simulasi, seperti yang disebutkan sebelumnya, dapat dilakukan menggunakan bahasa umum komputer (general purposes language) atau menggunakan bahasa simulasi. Pada bagian ini kita akan mempelajari beberapa bahasa simulasi, melihat dan memahami kelebihan dan kekurangan dari masing-masingnya, sehingga kita melakukan pemilihan yang tepat saat kita perlu menggunakan bahasa simulasi.
Satu bahasa simulasi tidak dapat menjadi alat yang tepat untuk semua kasus permodelan simulasi. Pembahasan pada bagian ini akan kita mulai dengan mempelajari anatomi bahasa simulasi; lalu dilanjutkan dengan penjelasan berbagai bahasa simulasi lengkap dengan kelebihan dan kelemahannya.
ANATOMI BAHASA SIMULASI
Bahasa Simulasi : Awal Mula
Kesuksesan analisis simulasi merupakan teknik campuran yang sangat tergantung pada keahlian dan keahlian analis. Elemen dan struktur bahasa komputer umum seperti Pascal atau FORTRAN, sorce codenya tidak dengan mudah dapat digunakan untuk memodelkan simulasi sistem. Msialnya, bahasa itu tidak menyediakan struktur data yang enak digunakan untuk pemrosesan kejadian, sementara hal ini merupakan elemen logis yang sangat penting dalam permodelan simulasi. Tidak ada perintah dalam FORTRAN misalnya yang dengan jelas menambah atau mengurangi antrian nasabah atau objek lainnya. Tidak ada perintah dalam FORTRAN yang mengakumulasikan jumlah objek dalam antrian dan menghitung rata-rata untuk menyediakan output statistik penting. Variabel waktu lanjt, yang penting dalam penjalanan model simulasi, juga tidak dapat ditemukan pada FORTRAN dan bahasa pemrograman umum lainnya.
Untuk memenuhi fungsi-fungsi di atas dan hal-hal penting lainnya dalam struktur model program komputer, kode pemrograman yang ekstensif, kompleks dan sulit didebug harus dibuat. Motivasi mengembangkan dan menggunakan bahasa simulasi berasal dari keinginan untuk mempersingkat waktu yagn dibutuhkan untuk mengembangkan mdoel valid yang relatif mudah didebug dan yang meneydiakan output statistik yang dibutuhkan dalam pengambilan keputusan.
Bahasa simulasi pertama yang dihasilkan untuk tujuan itu adalah GPSS (General Purpose Simulation System) yang dikembangkan oleh Geoffrey Gordon dan dipublikasikan pertama sekali tahun 1961. bahasa ini telah berevolusi dalam beberapa versi, yang pada umumnya dikembangkan ole IBM. Pengembangan terpisah versi GPSS, GPSS/H memungkinkan debugging kode interaktif. Akhir-akhir ini, GPSS tersedia pada umumnya untuk mainframe dan minikomputer, dan ada 2 versi untuk mikrokomputer IBM. Elemen GPSS dieknal mempunyai derajat isomorfis tinggi dengan elemen sistem diskrit.
GPSS diikuti dengan munculnya SIMSCRIPT tahun 1963, dikembangkan oleh perusahaan RAND. Bahasa ini memiliki kemampuan untuk permodelan sistem yang lebih kompleks. Untuk melakukan fungsi ini, elemen bahasa kurang jelas dihubungkan dengan dunia nyata. Penggunaan himpunan, kejadian, proses dan sumber daya menggambarkan secara utama pada struktur dan operasi program SIMSCRIPT.
Bahasa-bahasa pionir ini tidak lama diikuti pengemabngan bahasa-bahasa simulasi khusus lainnya dan jumlahnya sudah sangat banyak sampai saat ini.
Struktur Bahasa Simulasi
Kiviat mendefinisikan struktur statis bahasa simulasi terdiri dari 3, yaitu identifikasi objek dan karakteristik objek, relasa antara objek dan penurunan objek. Struktur dinamisnya didefinisikan sebagai metode penambahan waktu simulasi.
Objek adalah komponen model dan sistem yang menjadi perhatian utama analisis, misalnya nasabah bank, komponen dalam lini perakitan, pengguna dalam sistem jaringan, dll. Bahasa yang berbeda memberikan definisi yang berbeda pada objek, misalnya dalam SIMAN disebut entities, dalam GPSS disebut transactions. Masing-masing objek dalam sistem yang sama mempunyai karakteristik yang berbeda. Nasabah bank misalnya, ada yang ingin melakukan penarikan, ada yang ingin melakukan setoran, dll. Pendefinisian karakteristik dalam bahasa yang berbeda juga berbeda. Karakteristik dalam SIMAN dan SIMSCRIPT misalnya didefinisikan sebagai attributes sedangkan dalam GPSS didefinisikan sebagai parameters, dan ada juga yang menggunakan definisi properties, dll.
Meskipun objek mempunyai karakteristik unik, untuk tujuan pemrosesan dalam model, ada baiknya karakteristik itu dikelompokkan. Setiap bahasa mempunyai mekanisme berbeda dalam melakukan pengelompokan ini. Bahkan dalam kasus sistem yang relatif kecil, mempertahankan semua objek dalam model selama penjalanan simulasi bisa tidak memungkinkan karena keterbatasan memori komputer. Akibatnya, alat untuk menurunkan objek ketika dibutuhkan dan menghapusnya jika sudah tidak dibutuhkan harus disediakan.
Cara setiap bahasa simulasi memfasilitasi ini sangat berbeda. Dalam beberapa kasus, mekanisme digunakan untuk menelusuri karakteristik akar bahasa kompiler darimana bahasa simulasi dikembangkan. Bahasa simulasi yang kurang dekat dengan konvensi struktur data dari kompiler tertentu menurunkan objek yagn sangat mirip dengan sudut pandang dunia bahasa. Sejalan dengan perbaikan kemampuan bahasa komputer umum (general purposes), bahasa simulasi khusus pada umumnya telah dikodean kembali seperti assembly, bahasa bebas mesin seperti C. Tetapi struktur awal penurunan objek tetap dalam bahasa simulasi.
Struktur statis bahasa simulasi menempatkan objek dalam ruangan model, yaitu dimana objek secara fisik ditempatkan dalam sistem. Struktur dinamis dibutuhkan untuk menempatkan objek dalam waktu dan memungkinkan keberlanjutan dari satu titik waktu ke titik lainnya. Seperti yang sudah dijelaskan dalam topik sebelumnya, ada dua pendekatan dasar yang digunakan dalam struktur dinamis, yaitu fixed-time step dan event-tracking.
Pendekatan fixed-time memeriksa sistem pada interval waktu tetap untuk menentukan apakah statusnya sudah berubah atau belum. Jika status masih sama, variabel waktu akan ditambahkan sebesar interval waktu-tetap. Meskipuns ecara logika pendekatan ini cukup sederhana, tapi metodenya sangat tidak efisien. Mungkin ada beberapa titik waktu dimana sistem tidak berubah statusnya, dan karenanya akan ada banyak pemeriksaan sistem yang tidak perlu. Akibatnya, tidak ada bahasa simulasi kejadian diskrit yang menggunakan pendekatan ini ke struktur dinamis.
Pendekatan event-tracking memeriksa sistem hanya jika ada perubahan status. Logika diamsukkan dalam model untuk menentukan kapan kejadian atau status sistem berubah, dan variabel waktu ditambahkan dengan tepat sampai titik sebelum sistem diperiksa. Logika yang dibutuhkan untuk melakukan ini lebih kompleks dibandingkan dengan langkah waktu-tetap, tetapi akan mengehmat waktu eksekusi model secara signifikan.
Karakteristik Bahasa Simulasi
Struktur dinamis dan statis bahasa simulasi menyediakan kebutuhan jelas untuk mengeksekusi mode simulasi. Beberapa sifat bahasa simulasi lainnya dibutuhkan atau sangat diinginkan untuk penggunaan efektif analisis simulasi sebagai teknik pembantu pengambilan keputusan..
Pengembangan kode model. Kebanyakan bahasa simulasi amsih membutuhkan pemasukan pernyataan kode untuk menciptakan kode model, tetapi kemampuan grafik mikrokomputer telah memungkinkan input grafik. Cara ini paling sesuai untuk bahasa yang fokus pada aliran objek melalui elemen atau blok model.
Debugging model. Begitu mode simulasi sudah dikodekan menggunakan bahasa simulasi yang dipilih, langkah selanjutnya adalah debugging kode sehingga model simulasi berjalan ke penghentian normal. Syntax errors (kesalahan sintaks) adalah permasalahan pertama dalam proses, dan analisis untuk mendeteksi ini sudah ditanam dalam bahasa simulasi umumnya. Kesulitan berikutnya yang dihadapi adalah perbaikan kesalahan selama eksekusi kode. Analisis bahasa simulasi umumnya tidak sesuai secara total dengan permasalahan ini. Setelah menemukan kesalahan seperti ini, program berhenti dan tidak memberikan alasan dalam bentuk logika model kenapa program berhenti.
Penurunan variabel acak. Untuk kebanyakan simulasi probabilistik, kemampuan mengekstrak sampel acak dari distribusi probabilitas tertentu sangat penting. Bahasa simulasi melakukannya dengan mudah.
Pengumpulan statistik. Penjalanan model simulasi tanpa mengumpulkan data ukuran kinerja sistem sama saja dengan tidak melakukan pengamatan pada sistem dunia nyata yang sedang berlangsung. Pengamat ada selama operasi sistem dunia nyata tetapi tidak mengamati dan mencatat apa yang terjadi. Bahasa simulasi harus memungkinkan pengguna dengan mudah menspesifikasikan beragam statistik yang dikumpulkan selama eksekusi model. Juga untuk membantu interpretasi output simulasi, kemampuan penggambaran grafik dan inferensi statistik diperlukan.
Disain percobaan. Karena analisis simulasi bersifat deskriptif, kesuksesan aplikasinya tergantung pada percobaan model. Rancangan percobaan efektif dan efisien benar-benar meningkatkan kualitas solusi yang didapatkan dari model simulasi.
Animasi grafis dan output dinamis. Kemampuan menggunakan bahasa simulasi pada mikrokomputer memungkinkan kemampuan grafis mesin ini untuk mengilustrasikan penjalanan mode simulasi atau outputnya. Ilustrasi objek yang mengalir melalui elemen model disebut sebagai animasi. Animasi biasanya menggunakan monitor berwarna dan dengan mudah mengenali simbol objek dan elemen model. Dengan mengamati aliran seperti itu, analisis dapat memperhatikan penyebaba permasalahan operasi dan dapat memperbaikinya. Animasi model akan memperlambat eksekusi model. Oleh akrena itu, animasi biasanya hanya dilakukan pada mikrokomputer cepat dengan memori besar.
Pemilihan Bahasa Simulasi
Beberapa hal yang perlu diperhatikan dalam pemilihan bahasa simulasi adalah kemudahan untuk dipelajari, kemudahan menjelaskan pada orang yang bukan teknik, biaya, kode standar untuk semua komputer dan cakupan permasalahan yang dapat ditangani oleh bahasa. Pada umumnya, semakin mirip elemen bahasa simulasi dengan elemen dunia nyata, semakin mudah elemen itu dipelajari. Kemudahan menjelaskan fungsi bahasa simulasi ke manajer yang mengeluarkan dana untuk pembelian perangkat lunak dan yang tidak memahami secara teknis juga digunakan dalam memilih bahasa simulasi.
BEBERAPA BAHASA SIMULASI YANG TERKENAL
Ada beberapa sumber di internet yang bisa digunakan untuk mengikuti perkembangan bahasa simulasi. Salah satu diantaranya adalah http://www.idsia.ch/~andrea. Bahasa simulasi di bawah ini diambil dari situs tersebut. Kita mulai dengan penjelasan software libraries (arsip perangkat lunak), dimana anda dapat menemukan penjelasan berbagai bahasa simulasi..
Software libraries
C++SIM
C++ libreries untuk simulasi sistem kejadian diskrit..
JavaSIM
Versi java C++SIM.
SimTools, Version 2.7
Review beberapa alat simulasi.
The Numerical Algorithms Group Ltd (NAG)
Arsip algoritma numerik.
Netlib
Arsip algoritma numerik
Simulations in Java
Arsip Sim Java
CSIM18
Mesquite CSIM berorientasi proses, general purpose simulation toolkit yang ditulis dengan fungsi umum bahasa C. The toolkit memungkinkan programmer menciptakan dan mengimplementasikan model orientasi proses dan simulasi kejadian diskrit.
Code by Law and Kelton
Contoh-contoh Code dalam C and FORTRAN dari buku "Simulation Modelling and Analysis, by A.V. Law and W.D. Kelton
SSS
A library (coded in C) untuk simulasi sistem kejadian diskrit oleh M. A. Pollatschek (visit his home page )
Mathtools
Suatu "portal" yang menyediakan akses gratis untuk MATLAB, Excel, C, C++, Fortran and Java.
Warped
WARPED adalah domain umum Time Warp simulation kernel ditulis dalam C++. The distribution includes a plug-in sequential kernel to support comparative analysis to parallel executions. Primary development has been on Linux-based Pentium PCs, Sun Workstations, a 4-processor Sun SparcCenter 1000, and the Intel Paragon
baseSim
iBright adalah evolusi baseSim Simulation Components (pertama dikembangkan oleh solutionsBase, sekarang oleh defunct) adalah kelompok Visual Components dirancang sebagai komplemen dan perluasan fungsi Borland Delphi v.4.0/5.0. Menyediakan alat untuk pemodelan simulasi sederhana maupun kejadian diskrit kompleks.
OpEMCSS
The Operational Evaluation Modelling for Context-Sensitive Systems (OpEMCSS) adalah tambahan Extend simulation environment. Memungkinkan bagi pemakai untuk merepresentasikan sistem adaptif kompleks relatif lebih mudah.
TomasWeb
TomasWeb memberikan simulasi orientasi objek yang diimplementasikan dalam Delphi 5 and 6. berbasis pendekatan orientasi proses : metode pendiskripsian, dimana beberapa kejadian (perubahan status) dikombinasikan kedalam proses tunggal. Oleh karenanya, tools ini mendukung simulasi orientasi proses. TomasWeb dikembangkan terutama untuk pendidikan dan penelitian. Perangkat lunak ini gratis, tapi memerlukan Borland's Delphi.
HighMAST object-oriented simulation library
HighPoint Software Systems menawarkan simulasi orientasi objek. Ditulis dalam C# , dan terdiri dari 200+ classes, 70+ interfaces. HighMAST framework dibangun sebagai open architecture library on Microsoft's capable .NET technology base.
DEx
DEx, the Dynamic Experimentation toolkit, bertujuan utnuk menyediakan kecepatan, fleksibel dan mudah digunakan untuk pengembangan, analisis dan visualisasi simulasi multi dinamis. Kernel and utility classes terdiri dari kerangka kerja yang dapat digunakan dalam C++ atau kombinasi dengan bahasa DEx, bahasa khusus domain berbasis C++ dirancang untuk percepatan prootip. Dikompile dalam Linux dan tersedia gratis di internet.
Alat visualisasi Simulasi
Extend
Extend (Imagine That, Inc.) digunakan untuk memodelkan, menganalisis dan mengoptimalkan proses. Memiliki sejumlah fitur seperti kumpulan komponen, hirarki model, link dengan MS Office dan memodelkan sistem kontinu, diskrit dan hybrid. Extend mempunyai bahasa pemodelan sendiri (ModL) yang mirip dengan C, dan mampu memanggil kode dari bahasa lainnya. Mempunyai paket khusus untuk sistem industri, riset operasional dan simulasi proses kontinu.
SIMUL8
SIMUL8 oleh Visual Thinking Intl. Simul8 memungkinkan pengguna mengambil dari himpunan objek simulasi dan distribusi statistik ayng sudah didefinisikan sebelumnya untuk menciptakan model. Simul8 juga memungkinkan pemodelan hirarki. Fokus utamanya adalah simulasi kejadian diskrit.
Dymola
Dymola oleh Dynasim, alat orientasi objek untuk pemodelan dan simulasi sistem kontinu. Fokus pada sistem robotik dan sistem mekanik. Sekarang terintegrasi dengan bahasa pemodelan Modelica. Modelica memungkinkan integrasi dan penggunaan kembali lingkungan simulasi dan permodelan berbeda.
VisSim
VisSim (Visual Solutions), bahasa diagram blok visual untuk simulasi dinamis nonlinear. Versi demo dapat didownload.
Awesim
Awesim menyediakan engien simulasi fokus pada produksi animasi model. Animasi dapat dibangun secara grafis dan pemakai dapat menentukan kontrol untuk membangun simulasi interaktif.
Labview
Labview (National Instruments): pemrograman visual yang memungkinkan interfase dengan pengukuran dan peralatan bervariasi.
Goldsim
GoldSim adalah general purpose simulator untuk hampir semua sistem fisika, keuangan, finansial dan organisasi. Models dibangun secara grafis. Goldsim Academic gratis untuk pelajar, professors dan guru. Goldsim maenyediakan sebuah pemain yang memungkinkan setiap orang dapat melihat model kita, tanpa harus menginstal keseluruhan paket. Goldsim juga dapat digunakan untuk modul contaminant transport, radionuclide decay. Simulasi Goldsim juga dapat dijalankan dalam lingkungan distribusi.
BuildSim
BuildSim, oleh Tritera, lingkungan terintegrasi untuk disain, simulasi dan analisis sistem. BuildSim adalah aplikasi perangkat lunak interaktif yang mengintegrasikan analisis numerik, representasi matematik diagram blok, pemrosesan signal dan grafik. Memungkinkan untuk menurunkan source-code (C++ and Java). Tersedia untuk Macintosh. Ada versi download.
Optsim (was Artifex)
OptSim adalah hasil penggabungan Artifex, a tool based on Class-based Extended Petri Nets dan RSoft LinkSim. OptSim adalah lingkungan simulasi dan permodelan intuitif yang mendukung disain dan evaluasi kinerja level transmisi sistem komunikasi optik.
MicroSaint
Micro Saint adalah produk perangkat lunak simulasi fleksibel dan general purpose. Micro Saint mempunyai interfase pemakai grafis dan didasarkan pada pendekatan diagram alur untuk pemodelan. Demo tersedia di internet.
EcosimPro
EcosimPro adalah simulator sistem kontinu. Dapat menyelesaikan persamaan differensial aljabar. Ecosim mempunyai interfase pemakai grafis yang memfasilitasi tugas pemodelan. Ikon yang muncul dalam editor model bersesuaian dengan komponen riil sistem. Pemakai dapat menentukan model menggunakan bahasa EL, yang dapat memanggil routine FORTRAN dan C. Fitur menariknya adalah dukungan percobaan simulasi untuk model tertentu. Debugger juga tersedia.
SimCreator
SimCreator adalah permodelan dan simulasi grafis, digunakan untuk sistem kontinu. Bahasa ini sama dengan Mathworks's Simulink. Model yang lebih sederhana dapat dihubungkan untuk membangun mode kompleks. Model dapat bersarang. Spesifikasi grafis kemudian diterjemahkan ke kode C. Versi beta tersedia untuk download
Berleley Madonna
Bahasa ini digunakan untuk program simulasi numeris pada komputer Windows dan Macintosh. Dirancang sebagai pemecah umum sistem persamaan differensial biasa. Diekmbangkan pada universitas California Berkeley untuk tujuan pengajaran dan penelitian.
XJ Technologies
XJ Technologies menyediakan sekumpulan alat, semuanya dengan lingkungan pengembangan visua, untuk bidang simualsi berbeda : simulasi hybrid (AnyLogic), sistem paralel (Covers), dan diagram status
Simprocess
Simprocess adalah orientasi objek, pemodelan proses dan alat analisis. Menggabungkan kesederhanaan diagram alur dengan kehebatan simulasi, analisis statistik, pembiayaan berbasis biaya dam animasi.
SansGUI
SansGUI digunakan untuk mengembangkan dan menggunakan simulator ilmiah dan rekayasa tanpa harus menulis kode interface pemakai grafis. SansGUI saat ini tersedia untuk Microsoft Windows platforms. Microsoft Visual C++ and Compaq Visual Fortran didukung untuk menciptakan interaktif tinggi dalam simulator proses sementara bahasa lainnya dapat digunakan untuk pengembangan simulator proses eksternal.
SimCreator
SimCreator simulasi dan permodelan grafis sistem. Level paling tinggi adalah interface GUI yang memungkinkan penempatan dan koneksi berbagai komponen. Setiap komponen bisa sebagai subgrup yang dibentuk komponen tambahan atau suatu komponen kode C. Simcreator mirip dengan Simulink.
QX3D
QX3D adalah editor dan generator kdoe yang membantu visualsiasi dan animasi model mekanik. Dengan menghubungkan badan, atribut geometrinya (yaitu lokasi frame, orientasi) dan bentuk badan, akan menurunkan kode VRML untuk membuat visualisasi. Sejumlah besar bentuk dapat ditugaskan ke setiap badan. Kita juga dapat membuat animasi berdasarkan simulasi dinamis multibodi.
SimCad Pro
SimCAD Pro adalah alat permodelan dan simulasi proses yang memungkinkan permodelan top-down proses industrial kompleks. Aliran proses utama didefinisikan, kemudain setiap sel proses dilanjutkan ke proses individualnya.
SIGMA
SIGMA diklaim sebagai simulasi gafis pertama yang dijalankan di Windows. SIGMA merupakan alat pendidikan valid, karena memungkinkan pembuat model menggambarkan sistem menggunakan diagram alur proses. Juga dapat menangani sistem kompleks berkat graf kejadian. Graf kejadian dapat diedit meskipun simulasi sedang dijalankan.
Bond graphs
MS1
MS1 oelh Lorenz Simulation adalag simualtor sistem kontinu yang memungkinkan pembuat model dapat menggunakan bahasa pemodelan berbeda seperti Bond Graphs, Linear Graphs, block Diagram dan Equational Model dan juag dapat menggunakan pemecah model alternatif seperti ACSL, ESACAP, CSSL IV, DASSL, etc.
20-sim
20-sim (dikembangkan oleh Controllab products, diturunkan dari TwenteSim) bond graphs and blocks modelling system untuk sistem kontinu. Dikembangkan di University of Twente. Demo download.
Symbols 2000
Symbols 2000, produk ahsil penelitian dua dekade di Indian Institute of Technology of Kharagpur, adalah perangkat lunak pemodean grafis, simulasi dan kontrol. Menyedaikan alat pemodelan orientasi objek menggunakan bond graphs, block diagrams, dan equation models untuk memodelkan sistem dinamis. Simualsi online dengan penanganan kejadian. Pre-cast sub-models untuk komponen rekayasa lanjut. Kompatibel penuh dengan C++. Analog, digital dan analisis ruang status menggunakan model sistem kontrol.Demo untuk DOS and NT tersedia untuk download .
CAMP-G
Dapat digunakan untuk memodelkan mode Bond Graph dari sistem mekanikal, elektro, hidraulik, panas dan kontrol. CAMP-G adalah alat penurunan model yang menginterface bahasa seperti MATLAB , SIMULINK, ACSL dan lainnya untuk melaksanakan simulasi komputer sistem fisik dan kontrol.
MTT
MTT, the Model Transformation Tools, terdiri dari sekumpulan alat untuk pemodelan sistem fisik dinamis menggunakan metodelogi bond graph dan mentransformasi model kedalam representasi yang sesuai untuk analisis, kontrol dan simulasi. Alat ini menggunakan dan menurunkan m files untuk, GNU Octave. MTT adalah perangkat lunak gratis di bawah GNU General Public License.
Integrated environments (modelling language + simulation environment)
MATRIXx
MATRIXx dijual oleh WindRiver, yang mengisukan Press Release revisi terbaru MATRIXx, dan dijalankan di bawahWindows 95/98/NT/2000/ME dan Solaris.
SIMULINK and MATLAB
MATLAB: bahasa utama untuk perhitungan teknis, DSP, disain kotnrol, dst. SIMULINK menyediakan interface grafis ke beberapa fungsi MATLAB, sehingga memungkinkan pemakai mendisain model dan mengkontrol sistem secara grafis.
Octave and Scilab
Perangkat lunak yang bersaing dengan Matlab and MatrixX. Scilab adalah paket perangkat lunak ilmiah untuk perhitungan numerik yang user-friendly
SimLab
Ini adalah versi pertama perangkat lunak SimLab. Termasuk fungsionalitas matematik untuk perhitungan aljabar dan topologi dan kode untuk menciptakan triangulations area planar. Dikembangkan oleh Cornell University.
SDX
SDX adalah FORTRAN kinerja tinggi didasarkan pada pemecahan amsalah dinamis (kontinu, diskrit,hybrid) aplikasi yang sesuai dalam ilmu dan rekayasa.
ACSL Sim
ACSL dikembangkan oleh AEgis Technologies Group, Inc. ACSL Sim menggabungkan bahasa inti ACSL, dengan kumpulan lengkap ACSL runtime libraries, the ACSL translator, the ACSL system macro file, the ACSL builder, dan kemudahan menggunakan interface pemakai grafis sehingga interaktif dan user friendly.
Bahasa Simulasi
SimPy
SimPy (= Simulation in Python)adalah bahasa simulasi orientasi objek, berbasis proses kejadian diskrit didasarkan pada standar Python dan dikeluarkan di bawah GNU GPL. Menyediakan komponen model simualsi termasuk proses, untuk komponen aktif seperti pelanggan, pesan, peralatan dan sumber daya, untuk kompnen pasif yang membentuk kapasitas terbatas seperti server, counter pemeriksaan dan saluran. Juga menyediakan variabel monitor untuk mengumpulkan statistik. Variasi acak disediakan oleh modul acak standar Python. SimPy dilengkapi dengan kemampuan pengumpulan data. GUI dan paket plotting. Mudah diinterface dengan paket lainnya, seperti statistik, GUI, lembar kerja, dan basis data. SimPy masih aktif dikembangkan oleh tim pengembang internasional. Dapat didownlaod dengan gratis.
JiST
JiST adalah engine kinerja tinggi simulasi kejadian diskrit yang dijalankan atas mesin virtual Java standar. JiST adalah prototip pendekatan general-purpose baru untuk membangun simulator kejadian diskrit, disebut dengan mesin virtual berbasis simulasi, yang menggabungkan sistem tradisional dan disain simulator berbasis bahasaJiST dikembangkan oleh Cornell Research Foundation, Inc. Dan gratis untu penggunaan non komersial.
ACSL Sim
ACSL (untuk sistem kontinu ) oleh AEgis Research kedalam ACSL Sim.
SLAM II
Pritsker corptelah membentuk situs Simsource.com dimana kita dapat menemukan penjelasan Visual SLAM .
GPSS/H
The Wolverine General Purpose Simulation System. Bahasa untuk simulasi kejadian diskrit..
Ptolemy Project
Ptolemy adalah proyek penelitian dan perangkat lunak yang berfokus ke disain sistem reaktif, menyediakan dukungan level tinggi untuk pemrosesan signal, komunikasi, dan kontrol waktu riil.
DSDS+
(http://groucho.gsfc.nasa.gov/
Code_520/Code_522/Projects/DSDSPlus/)
(site out of order 27 Sep 99)
The Data Systems Dynamic Simulator Plus (DSDS+) kejadian diskrit berbasis simulator yang memudahkan ketika menghadapi kesulitan dengan simulasi, laju data tinggi, sistem akhir-ke-akhir.
MODSIM III
Bahasa simulasi untuk orientasi objek dan proses. MODSIM akhir-akhir ini dijual ke Compuware.
Simscript II.5
Bentuk bebas, bahasa pemodean dan pengembangan. SIMSCRIPT II.5 didisain untuk digunakan di kejadian diskrit dan kombinasi simulasi diskrit/kontinu.
Simple_1
SIMPLE_1 mendukung pemodelan sistem diskrit dan kontinu menggunakan orientasi pemodelan jaringan. Fiturnya termasuk kemampuan pemakai untuk mendefinisikan variabel dan statistik yang dibutuhkan, melaksanakan operasi I/O pada file dan menganimasikan hasil simulasi dalam waktu riil menggunakan fitur bahasa yang ada. SIMPLE_1 menggunakan pendekatan pengulangan untuk menjalankan kontrol untuk memfasilitasi pemodelan pencarian tujuan dan definisi panjang penjalanan (run length) berdasarkan perilaku model. SIMPLE_1 sekarang dikeluarkan di bawah GNU GPL dan dikompile di bawah RedHat Linux.
SEMoLa
SEMoLa (Simple, Easy to use, MOdelling LAnguage) adalah bahasa bukan prosedural membangun model simulasi untuk penggerak kejadian/kontinu, sistem stokastik/deterministik, dikembangkan di Agricultural and Environmental Sciences Department, University of Udine (Italy). Sukses digunakan untuk memodelkan sistem biologi, ekologi dan pertanian pada skala berbeda dan level kompleks. Bahasa SEMoLaÊ terintegrasi yang menyederhanakan tugas pembangunan model, simulasi dan dokumentasi lebih jauh menyediakan kalibrasi, validasi, manajemen data, pembangunan jaringan neural, fitur unit verifikasi dan lainnya.
Pasion
Pasion adalah bahasa simulasi berorientasi objek. Mempunyai struktur proses/kejadian. Source code diterjemahkan ke Pascal, kompatibel dengan Delphi v3 atau yang terbaru. Dapat digunakan untuk memodelkan antrian, proses kontinu dan memungkinkan penggunaan paradigma Bond Graph. Demo dapat didownload dari situs.
WinSAAM
The WinSAAM versi berbasis windows of the SAAM dan sistem pemodelan Consam. Dikembangkan oleh auspices of the Laboratory of Experimental and Computational Biology, of the Division of the Cancer Biology and Diagnosis, of the National
Cancer Institute. Gratis untuk penelitian ilmiah.
MathCore
MathCore AB menawarkan dua produk utama: MathCore C++, sebagai tambahan pada Mathematica yang mengkompile himpunan bagian matematika ke kode C++ efisiensi tinggi. MathCode C++ menyediakan platform untuk pengembangan cepat simulasi dan perhitungan mahal lainnya. MathModelica adalah implementasi Modelica dalam mathematica. MathModelica memungkinkan disain orientasi objek sistem fisik untuk simulasi dan pemrograman visual menggunakan editor grafik. MathModelica mengintegrasikan dokumentasi, kode yang dapat dijalankan, diagram koneksi grafik dan formula matematika.
Parsec
Parsec adalah bahasa simulasi berbasis C, dikembangkan oleh Parallel Computing Laboratory di UCLA, untuk eksekusi paralel dan sekuensial mode simualsi kejadian diskrit. Juga dapat digunakan sebagai bahasa pemrograman paralel. Tersedia dalam bentuk biner hanya untuk institusi akademisi. Pengguna komersial dapat melakukan order pada Scalable Networks technologies.
Simulasi Berbasis Agen
SeSAm
SeSAm (Shell for Simulated Agent Systems) untuk permodelan dan percobaan simulasi berbasis agen. Agen SeSAm terdiri dari badan, yang mengandung sekumpulan variabel status dan perilaku yang diimplementasikan dalam bentuk UML seperti diagram. Didasarkan pada sejumlah besar komponen primitif, pemakai dapat mendisain simulasis ecara grafis tanpa mengetahui sintaks bahasa pemrograman tradisional. Dituliskand alam Java dan dapat didownload gratis.
Ps-i
Bahasa simulasi untuk menjalankan simulasi berbasis agen. Model ditulis menggunakan bahasa Tcl/Tk standar dan interface grafis dapat juga digunakan.
Simulasi didasarkan pada pendekatan dinamis
Powersim
Dari Norwegia, a simulation tool which a marked "penchant" untuk simulasi situs. demos gratis tersedia.
Vensim
Vensim, simulator sistem dari Ventana Systems, didasarkan pada pendekatan dinamis. Untuk Windows dan Macintosh. Demo download tersedia. Gratis untuk penggunaan pribadi.
Stella + Ithink
Dari sistem kinerja tinggi. Stella demo tersedia.
ModelMaker
Modelmaker (formerly Cherwell Software Publisher, now from ModelKineti.comx) adalah alat untuk pemodelan dan simulasi sistem komparmental.. Demo, waktu terbatas, fungsional penuh, tersedia untuk sistem windows.
Berkeley Madonna
Sudah dijelaskan di atasjuga menyediakan paradigma pemodelan dinamis.
SIMILE/
Simile adalah perangkat lunak simulasi untuk pembangunan dan penjalanan mode simulasi dalam ekologi, biologi, ilmu lingkungan dan disiplin yang berhubungan lainnya. Meneydiakan fitur yang powerful dan expressive diagram-based language untuk mode disain, termasuk konsep sistem dinamis dan berbasis objek. Sistem Dinamis adalah notasi intuitif dan paling banyak digunakan untuk menggambarkan dinamis dalam terminologi penyimpanan dan aliran, sementara objek menyediakan cara alami untuk menggambarkan komposisi dan relasi sistem. Simile juga mendukung konstruksi model modular dan modul dapat besanrang pada sembarang kedalaman. Mode yang dihasilkand apat dijalankan sangat efisien setelah dikompile program C, dan .dikirim ke mode berdiri sendiri lainnya. Simile menyediakan banyak alat untuk menggambarkan model perilaku tapi juga memungkinkan pemakai menambahkan sendiri untuk memenuhi kebutuhannya.
Simulasi Hybrid
Simulasi Hybrid berhubungan dengan kombinasi kejadian diskrit dan kontinu.
Shift
Shift adalah bahasa pemrograman untuk emnggambarkan jaringan dinamis otomata hybrid, terdiri dari fase waktu kontinu terpisahd ari transisi kejadian diskrit. Diekmbangkan oleh Berkeley, California Path.
CESIMO
The Cesimo Group of the University of the Andes in Venezuela aktif dalam penelitian simulasi hybrid.
AnyLogic
AnyLogic adalah prototip virtual sistem kompleks dengan perilaku diskrit, kontinu dan hybrid. AnyLogic memungkinkan pemakai membangun mode simulasid engan cepat, prototip virtual. Tidak ada skrip atau bahasa diagram blok yang pemakai harus eplajari untuk menggunakan AnyLogic. Teknologi pemodelan secara keseluruhan didasarkan pada UML-RT Unified Modelling Language untukw aktu riil.
Simulasi Proses industri
SIMAS II
SIMAS II untuk simulasi instalasi produksi massal industri pada perakitan otomasi atau pengemasan makanan.
gPROMS
gPROMS, ditargetkan untuk pemodelan dan simulasi sistem kontinu, didisain baik untuk lingkungan simulasi fledged penuh maupun sebagai engine simulasi yang dapat dimasukkan dalam aplikasi vendor untuk menyediakan alat disain dan operasi yang komprehensif.
SimBax
SIMBAX adalah alat pendukung pengambil keputusan secara khusus untuk memenuhi kebutuhan industri proses dalam bidang simulasi aliran material. SIMBAX memungkinkan evaluasi dan perbandingna cepat dari beragam alternatif skenario yang bertujuan untuk memudahkan menghilangkan penyebab penundaan dan menemukan solusi pengabaian pemanfaatan peralatan dan sumber daya yang tidak produktif.
SES/Workbench
SES/Workbench, oleh HyPerformix, adalah alat simulasi untuk arsiteltur perangkat keras dan sistem kompleks secara umum. Mendukung disain mode simulasi dari perspektif orientasi objek dan menyediakan baik interface grafis untuk memasuki pendefinisian masalah dan animasi grafis simulasi untuk merepresentasikan hasil. Tersedia untuk berbagai platform mulaid ari unix sampai windows NT.
WITNESS
WITNESS, oleh Lanner Group, menyediakan lingkungan grafis untuk mendisain mode simulasi kejadian diskrit. Memungkinkan otomasi percobaan simulasi, optimasi aliran material melalui fasilitas, dan menurunkan mode realitas 3D teranimasi. WebDemos tersedia.
ARENA
ARENA (by Systems Modelling Corp) : disain orientasi objek dan kemampuan untuk digunakan pada bidang aplikasi apapun. Didasarkan pada bahasa pemodelan SIMAN.
EASY5
EASY5, dikembangkan oelh Boeing Inc., adalah perangkat lunak yang digunakan untuk memodelkan dan mensimulasikan sistem dinamis yang mengandung hidraulik, pneumatic, mechanical, thermal, electrical dan digital sub-systems. Kumpulan lengkap pemodelan sistem kontrol, analisis dan fitur disain dimasukkan. Distributor Eropa adalah Applied Dynamics International Ltd .
SIMPLORER
Simulator untukd isain industri, proyek penelitian dan tujuan pengajaran. Kode eksternal dapat tertanam. Mempunyai bahasa sendiri. Memungkinkan struktur hirarkis. free demo dapat diminta dan diterima melalui snailmail.
Promodel
ProModel adalah alat perangkat lunak berbasis simulasi untuk evaluasi, perencanaan dan disain manufaktur, gudang dan sistem logistik.
AutoMod
AutoMod menyediakan perangkat lunak simulasi yang memberikan citra visual 3D dari suatu fasilitas sebaik statistik bagaimana fasilitas melaksanakannya.
Enterprise Dynamics
Enterprise Dynamics (formerly known as Taylor ED) adalah aplikasi perangkat lunak berorientasi objek digunakan untuk pemodean, simulasi, visualisasi dan kontrol proses bisnis. Perlu dicatat, mode simulasi lengkap dapat dibangun dan disimulasikan dalam VR lengkap. Perangkat lunak dapat digunakan bukan hanya untuk aplikasi industri tapi juga untuk alat simualsi visual dimana pemakai dapat menggunakan skrip bahasa program untuk menciptakan model sendiri.
Flexsim
Flexsim adalah aplikasi perangkat lunak simulasi berbasis PC digunakan untuk memodelkan, simulasi dan visualisasi proses bisnis. Flexsim dapat membantu menentukan kapasitas pabrik, menyeimbangkan lini manufakturing, mengatur penyebab penundaan, memecahkan inventori dan permasalahan inventori dalam proses, menguji praktek penjadwalan baru, mengoptimumkan laju produksi dan menyesuaikan pengeluaran modal. Setiap model Flexsim dapat digambarkan dalam aniamsi realitas virtual 3D. Selain itu, Flexsim memungkinkan pemodel dengan kemampuan pemrograman model dan submode secara langsung dalam C++. Demo tersedia
DynaWiz
DynaWiz adalah program simulasi dinamis multibadan berfungsi umum digunakan dalam industri ruang angkasa, otomotif, dan robotik. Berlaku dengan kode kontrol C, C++ dan Fortran dan dapat dijalankan dengan Matlab/Simulink juga. Versi demo Dynawiz tersedia.
AMESim
AMESim adalah perangkat lunak yang didedikasikan untuk pemodelan dan simulasi sistem tenaga seperti gearboxes, wheel transmissions, dan lain-lain. Juga dapat emmodekan sistem pendinginan, pertuakaran panas, dan lain-lain. AMESim aplikasinya dalam industri otomotif dan pesawat terbang. AMESim dijalankan pada berbagai platforms seperti HP/UX, Silicon Graphics, IBM RS/6000, Sun SPARCs, dan Windows NT.
ShowFlow
Simulasi ShowFlow Simulation dirancang untuk memodelkan, simulasi, animasi dan analisis proses dalam logistik, manufakturing dan penangangan . menyediakan visualisasi penuh dan alat pelaporan, khususnya untuk animasi simulasi. Pemodel divasilitasi dengan ketersediaan berbagai komponen simulasi siap dijalankan. Demo percobaan dapat didownload.
Universal Mechanism 2.0
Perangkat lunak ini dimaksudkan untuk simulasi kinematik dan dinamis sistem mekanikal spatial dan planar. Kinerja berikut tersedai sebagai hasil : koordinat, kecepatan, percepatan, kekuatan reaksi, usaha dalam elemen aktif, dst. Sistem mekanikal dideskripsikan dengan merepresentasikannya sebagai sistem bahan kau yang dihubungkan oleh berbagai pasangan kinematik dan elemen usaha sehingga disebut dengan sistem multibody. Animasi online gerakan dan plot kinerja dinamis tersedia selama simulasi.
HCADWin
HCADwin adalah sebuah program untuk menggambar, mencetak dan menjalankan logika dan kontrol. Bahasa sederhana yang dimasukkan dalam perangkat lunak dapat digunakan untuk menciptakan sebuah proses. Pertama sekali dikembangkan tahun 1994 untuk simulator training waktu nyata besar (pabrik enegeri, 53.000 tags) dengan tujuan untuk menghasilkan 100 PLC's dan menyediakan alat untuk integrasi antara model (ACSL™) dengan visualisasi.
HCADwin dijalankan di Windows 95/98/NT/2000/XP. Secara khusus sesuai untuk simulator training tetapi juga dapat digunakan untuk perancangan dan pengujian diagram logik fungsional.
FoCs
FoCs (dikembangkan oleh IBM) merupakan alat produktifitas untuk penurunan otomatis monitor simulasi dari spesifikasi formal. Sangat membantu perancang chip dan teknisi verifikasi dalam tugas kompleks dan berbaiaya mahal verifikasi disain chip sebelum diserahkan ke manufakturing. FoCs sedang digunakan oleh pengguna IBM, dan juga eplanggan luar. Pemakai FoCs melaporkan peningkatan (sampai 50%) dalam "testbench" waktu pengembangan.
ITI-SIM
ITI-SIM digunakan untuk pemodelan dan simulasi perilaku dinamis komponen dan sistem teknikal. Perangkat lunak ini sangat sesuai untuk menganalisis dan mengevaluasi fenomena fibrasi nonlinier dalam mekanikal, otomotif dan rekayasa sistem. Berbagai domain fisikal didukung dalam satu model, dimana setiap domain difungsikan dengan metode dan simbol yang bersesuaian ke orientasi diagram sirkuitnya, yang menyederhanakan tugas interdisciplinary yang mendasar dan menuntut.
ML Designer
MLDesigner adalah paltform pemodelan simulasi yang mengintegrasikan area sistem utama-level pemodelan (arsitektur dan fungsi) dan kebanyakan domain pemodelan simulasi (kejadian diskrit, mesin status terbatas, aliran data dan kejadian kontinu/diskrit) dalam alat tunggal. Model MLDesigner dibangun secara grafis dengan diagram blok hirarki. MLDesigner mempunyai koleksi alat debugging yang banyak dan siap dikembangkan : pemakai dapat menambahkan awal baru, blok level tinggi, contoh, domain baru dan link ke tool lainnya. Aplikasi terbaru memasukkan analisis kinerja arsitektur komputer dan prosesor, System-on-a-Chip (SOC) co-design, analisis jaringan (kabel dan tanpa kabel), disain protokol, analisis sistem selular dan proses bisnis industri.
ReThink
ReThink, oleh GenSym, adalah alat simulasi untuk proses bisnis rekayasa ulang. ReThink mendukung siklus hidup proses bisnis dari analisis, ke disain proses baru, dan juga mendukung implementasi 'dalam-the'loop' di dalam sebuah platform otomasi on line. Dapat dijalankan dalam mesin berbasis windows standar.
Spar
Engine simulasi Monte Carlo SPAR dapat digunakan untuk menciptakan model adaptasi, terskala penuh sistem kompleks, dan melaksanakan simulasi kejadian diskrit. SPAR menggunakan reliabilitas komponen-pendekatan terpusat untuk memodelkan siklus hidup perilaku aset mahal kompleks dan lingkungan operasinya. SPAR, oleh Clockwork Solutions, adalah engine inti dimana berbagai alat biasa dan aplikasi dibangun. Alat perangkat lunak ini termasuk: ATLAST - Aviation Fleet Management; PS-PLUS - Gas Turbine Power Plants; STORM - Process Plant Analysis; ENRiCO - Electricity Distribution Systems; dan SPARopt - Spare Parts Optimization.
emPlant
emPlant adalah simualtor untuk berbagai bidang logistik, rekayasa, produksi. Menyedaikan library hirarkis modul simulasi dan bersifat objek oriented.
SimFlex
SimFlex adalah teknologi diagnostik dan pendukung keputusan untuk supply chains yang memungkinkan perusahaan mengoptimumkan keseluruhan supply chain dan menciptakan dinamika supply chain, dan variasi dunia nyata.
Simulasi Sistem Jaringan
OMNeT++ 2.1
OMNeT++ adalah simulator kejadian diskrit berorientasi objek. Simulator dapat digunakan untuk pemodelan: protokol komunikasi, jarignan komputer dan pemodelan lalu lintas, multi-processors dan sistem terdistribusi, dan lain-lain.
OMNeT++ mendukung animasi dan penjalanan. Tersedia untuk download .
ns2
Ns adalah simulator kejadian diskrit yang ditargetkan pada peneltiian jaringan. Ns menyedaikan dukungan mendasar untuk simulasi TCP, routing, and multicast protocols baik dengan jaringan kabel atau tanpa (lokal dan satelite). Ns dikembangkan oleh ISI, the Information Sciences Institute at the USC school of engineering. Source code penuh ns 2 dapat downloaded dan dapat dikompile ke berbagai platform, termasuk yang paling popular Unix flavours and Windows.
GloMoSim
GloMoSim adalah lingkungan simulasi terskala untuk sistem jaringan dengan kabel atau tanpa kabel. Menggunakan kapabilitas simulasi kejadian diskrit paralel yang disediakan Parsec. GloMoSim saat ini mendukung protokol untuk jaringan tanpa kabel saja. Di masa mendatang, kami mengantisipasi penambahan fungsionalitas untuk menciptakan dengan kabel sama dengan jaringan hybrid dengan kemampuan dengan kabel atau tanpa kabel. Source GloMoSim dan binary code dapat didownload gratis hanya oleh institusi akademis untuk penelitian. Pengguna komersial harus menggunakan QualNet, the commercial version of GloMoSim.
SWANS
SWANS adalah simualtor jaringan tanpa kabel terskala dibangun di atas platform JiST. SWANS diorganisasikan sebagai komponen perangkat lunak bebas yang dapat dibentuk untuk menciptakan jarignan tanpa kabel lengkap atau konfigurasi jarignan sensor. Kemampuannya sama dengan ns2 dan GloMoSim, tapi dapat menciptakan jaringan yang jauh lebih besar. SWANS mempengaruhi disain JiST untuk mencapai hasil simulasi tinggi, mengheamt memori, dan menjalankan aplikasi jaringan java standar atas jarignan tersimulasi. Sebagai tambahan, SWANS mengimplementasikan struktur data yang disebut hierarchical binning, untuk mengefisienkan perhitungan propagasi signal.
QualNet
QualNet adalah alat pemodelan untuk jaringan dengan kabel dan tanpa tabel. The QualNet suite dibentuk dari QualNet Simulator, yang mengklaim yang tercepat untuk pemodelan lalulintas tercepat. QualNet Animator memungkinkan disain grafis mode jaringan dan meunjukkan hasil penjalanan simulasi. QualNet Designer dimungkinkan menciptakan Finite State Automata untuk menggambarkan perilaku jaringan, sementara dengan analisis dan perancang QualNet yang membuat simulasi jalan. Versi Windows dan Linux tersedia. Demo dapat downloaded atas permintaan.
cnet
CNET adalah simulator jaringan komputer. Simulator ini tidak ebanr-benar difokuskan pada simulasi industri saja, tetapi ke aspek industri. Adalah simulator jaringan kejadian diskrit yang memungkinkan percobaan dengan beragam lapisan penghubung data, lapisan jaringan, lapisan routing dan tarnspor protokol jaringan.
OPNET
OPNET's suite produk mengkombinasikan pemodelan prediktif dan pemahaman komprehensif teknologi jaringan untuk memungkinkan pelanggan mendisain, menggunakan dan menagtur infrastruktur jaringan, peralatan jaringan dan aplikasi jaringan. Secara khusus, pembuat model OPNET, memungkinkan anda merancang dan mempelajari jaringan komunikasi, peralatan, protokol dan aplikasi.
Traffic v2.0
Traffic versi 2 adalah produk simulasi yang dirancang untuk memecahkan permasalahan pemodelan pusat panggilan kompleks, dimana persamaan tradisional Erlang gagal, dan juga dapat diaplikasikan ke sembarang permasalahan antrian lainnya. Mudah interface dengan grafik dan dijalankan di bawah Windows.
Simulasi berbasis situs dan terdistribusi
Silk
Silk adalah alat pemodelan berbasis Java untuk simulasi, studi dan perbaikan sistem industri. Silk merupakan alat pemodelan yang menggabungkan metodologi pemodelan deskripsi-proses dalam bahasa berorientasi objek. Versi pendidikan tersedia atas permintaan.
SLX
SLXmengembangkan kekuatan Wolverine's GPSS/H. SLX distruktur sebagai array berlapis-lapis, berkisar dari inti C-like SLX , pada lapisan paling bawah, melalui bahasa simulasi tradisional seperti GPSS/H, pada lapisan pertengahan, ke aplikasi khusus dialek dan ekstensi bahasa pada lapisan paling atas. SLX mengandung mekanisme yang dapat diperluas untuk pembangunan lapisan baru di atas yang sudah ada. SLX telah dipasangkan dengan perangkat luank lainnya, termasuk DoD's High Level Architecture (HLA).
STARDIS
STARDIS adalah alat simulasi yang dikembangkan oleh EDS (http://eds.com) yang telah digunakan oleh EDS selama lebihd ari 10 tahun untuk memprediksi perilaku masa mendatang peritnah militer dan sistem kontrol dan sistem komunikasi masa mendatang. Juga telah digunakan pada beberapa proyek sipil.
STARDIS digunakan sebagai orientasi objek, pendekatan berbasis kejadian untuk memodelkan entitas dunia nyata dan komunikasinya. Semua aktivitas diskrit yang relevan yang termasuk dalam sistem dunia nyata dimasukkan dalam entitas STARDIS menggunakan campuran aturan penulisan dalam struktur Inggris, dan jika dibutuhkan, routien yang lebih kompleks dituliskan dalam bahasa komputer level tinggi.
JSIM
JSIM adalah simulasi berbasis Java dan lingkungan animasi mendukung simulasi berbasis situs. Dalam JSIM, mode simulasi mungkin dibangun menggunakan paket kejadian (paradigma penjadwalan-kejadian) atau dengan paket proses (paradigma interaksi-proses). Sebagai tambahan, perancang grafis (paket model) memungkinkan proses pemodelan dengan cepat mdibangun secara grafis. Paket qds (Query Driven Simulation) masih dalam pengembangan mengontrol penyimpanan, , penarikan dan eksekusi model simulasi sebagaimana Java Beans dan menggunakan JDBC untuk mengakses basis data. Juga menyimpan model input dan output. JSIM mempunyai 3 paket dasar: antrian, statistik dan variat.
RT-LAB
RT-LAB adalah perangkat lunak simulasi yang digunakan kebanyakan perusahaan seperti Ford, GM, NASA, Toyota, Canadian Space Agency... dan memungkinkan menciptakan model Simulink and MATRIXx dalam waktu nyata dengan sebuah jaringan PCs saling terhubung dengan Internet atau Firewire atau Giganet.dapat diajlankan di bawah Windows. Demo available .
GridSim
Tujuan utama proyek GridSim adalah menyelidiki teknik alokasi sumber daya efektif berdasarkan perhitungan ekonomi melalui simulasi. Berjuta sumber daya dan ribuan pengguna dengan beragam kebutuhan harus disimulasikan. Kemampuan skala sistem, algoritma, efisiensi kebijakan alokasi sumber daya dan kepuasan pengguna dipelajari. GridSim proyek penelitian berbasis SimJava .
Forio
Forio membawa simulasi situs selangkah lebih maju karena membairkan pengguna memasukkan model sendiri, menggunakan bahasa scripting dan kemudian menyediakan alat berbasis situs untuk mendisain interface pemakai. Engine simulasi berlokasi pada Forio web server. Fokus utamanya pada simulasi bisnis dan diperlengkapi untuk isu operasional (contoh pengembangan strategi pemasaran).
Satu bahasa simulasi tidak dapat menjadi alat yang tepat untuk semua kasus permodelan simulasi. Pembahasan pada bagian ini akan kita mulai dengan mempelajari anatomi bahasa simulasi; lalu dilanjutkan dengan penjelasan berbagai bahasa simulasi lengkap dengan kelebihan dan kelemahannya.
ANATOMI BAHASA SIMULASI
Bahasa Simulasi : Awal Mula
Kesuksesan analisis simulasi merupakan teknik campuran yang sangat tergantung pada keahlian dan keahlian analis. Elemen dan struktur bahasa komputer umum seperti Pascal atau FORTRAN, sorce codenya tidak dengan mudah dapat digunakan untuk memodelkan simulasi sistem. Msialnya, bahasa itu tidak menyediakan struktur data yang enak digunakan untuk pemrosesan kejadian, sementara hal ini merupakan elemen logis yang sangat penting dalam permodelan simulasi. Tidak ada perintah dalam FORTRAN misalnya yang dengan jelas menambah atau mengurangi antrian nasabah atau objek lainnya. Tidak ada perintah dalam FORTRAN yang mengakumulasikan jumlah objek dalam antrian dan menghitung rata-rata untuk menyediakan output statistik penting. Variabel waktu lanjt, yang penting dalam penjalanan model simulasi, juga tidak dapat ditemukan pada FORTRAN dan bahasa pemrograman umum lainnya.
Untuk memenuhi fungsi-fungsi di atas dan hal-hal penting lainnya dalam struktur model program komputer, kode pemrograman yang ekstensif, kompleks dan sulit didebug harus dibuat. Motivasi mengembangkan dan menggunakan bahasa simulasi berasal dari keinginan untuk mempersingkat waktu yagn dibutuhkan untuk mengembangkan mdoel valid yang relatif mudah didebug dan yang meneydiakan output statistik yang dibutuhkan dalam pengambilan keputusan.
Bahasa simulasi pertama yang dihasilkan untuk tujuan itu adalah GPSS (General Purpose Simulation System) yang dikembangkan oleh Geoffrey Gordon dan dipublikasikan pertama sekali tahun 1961. bahasa ini telah berevolusi dalam beberapa versi, yang pada umumnya dikembangkan ole IBM. Pengembangan terpisah versi GPSS, GPSS/H memungkinkan debugging kode interaktif. Akhir-akhir ini, GPSS tersedia pada umumnya untuk mainframe dan minikomputer, dan ada 2 versi untuk mikrokomputer IBM. Elemen GPSS dieknal mempunyai derajat isomorfis tinggi dengan elemen sistem diskrit.
GPSS diikuti dengan munculnya SIMSCRIPT tahun 1963, dikembangkan oleh perusahaan RAND. Bahasa ini memiliki kemampuan untuk permodelan sistem yang lebih kompleks. Untuk melakukan fungsi ini, elemen bahasa kurang jelas dihubungkan dengan dunia nyata. Penggunaan himpunan, kejadian, proses dan sumber daya menggambarkan secara utama pada struktur dan operasi program SIMSCRIPT.
Bahasa-bahasa pionir ini tidak lama diikuti pengemabngan bahasa-bahasa simulasi khusus lainnya dan jumlahnya sudah sangat banyak sampai saat ini.
Struktur Bahasa Simulasi
Kiviat mendefinisikan struktur statis bahasa simulasi terdiri dari 3, yaitu identifikasi objek dan karakteristik objek, relasa antara objek dan penurunan objek. Struktur dinamisnya didefinisikan sebagai metode penambahan waktu simulasi.
Objek adalah komponen model dan sistem yang menjadi perhatian utama analisis, misalnya nasabah bank, komponen dalam lini perakitan, pengguna dalam sistem jaringan, dll. Bahasa yang berbeda memberikan definisi yang berbeda pada objek, misalnya dalam SIMAN disebut entities, dalam GPSS disebut transactions. Masing-masing objek dalam sistem yang sama mempunyai karakteristik yang berbeda. Nasabah bank misalnya, ada yang ingin melakukan penarikan, ada yang ingin melakukan setoran, dll. Pendefinisian karakteristik dalam bahasa yang berbeda juga berbeda. Karakteristik dalam SIMAN dan SIMSCRIPT misalnya didefinisikan sebagai attributes sedangkan dalam GPSS didefinisikan sebagai parameters, dan ada juga yang menggunakan definisi properties, dll.
Meskipun objek mempunyai karakteristik unik, untuk tujuan pemrosesan dalam model, ada baiknya karakteristik itu dikelompokkan. Setiap bahasa mempunyai mekanisme berbeda dalam melakukan pengelompokan ini. Bahkan dalam kasus sistem yang relatif kecil, mempertahankan semua objek dalam model selama penjalanan simulasi bisa tidak memungkinkan karena keterbatasan memori komputer. Akibatnya, alat untuk menurunkan objek ketika dibutuhkan dan menghapusnya jika sudah tidak dibutuhkan harus disediakan.
Cara setiap bahasa simulasi memfasilitasi ini sangat berbeda. Dalam beberapa kasus, mekanisme digunakan untuk menelusuri karakteristik akar bahasa kompiler darimana bahasa simulasi dikembangkan. Bahasa simulasi yang kurang dekat dengan konvensi struktur data dari kompiler tertentu menurunkan objek yagn sangat mirip dengan sudut pandang dunia bahasa. Sejalan dengan perbaikan kemampuan bahasa komputer umum (general purposes), bahasa simulasi khusus pada umumnya telah dikodean kembali seperti assembly, bahasa bebas mesin seperti C. Tetapi struktur awal penurunan objek tetap dalam bahasa simulasi.
Struktur statis bahasa simulasi menempatkan objek dalam ruangan model, yaitu dimana objek secara fisik ditempatkan dalam sistem. Struktur dinamis dibutuhkan untuk menempatkan objek dalam waktu dan memungkinkan keberlanjutan dari satu titik waktu ke titik lainnya. Seperti yang sudah dijelaskan dalam topik sebelumnya, ada dua pendekatan dasar yang digunakan dalam struktur dinamis, yaitu fixed-time step dan event-tracking.
Pendekatan fixed-time memeriksa sistem pada interval waktu tetap untuk menentukan apakah statusnya sudah berubah atau belum. Jika status masih sama, variabel waktu akan ditambahkan sebesar interval waktu-tetap. Meskipuns ecara logika pendekatan ini cukup sederhana, tapi metodenya sangat tidak efisien. Mungkin ada beberapa titik waktu dimana sistem tidak berubah statusnya, dan karenanya akan ada banyak pemeriksaan sistem yang tidak perlu. Akibatnya, tidak ada bahasa simulasi kejadian diskrit yang menggunakan pendekatan ini ke struktur dinamis.
Pendekatan event-tracking memeriksa sistem hanya jika ada perubahan status. Logika diamsukkan dalam model untuk menentukan kapan kejadian atau status sistem berubah, dan variabel waktu ditambahkan dengan tepat sampai titik sebelum sistem diperiksa. Logika yang dibutuhkan untuk melakukan ini lebih kompleks dibandingkan dengan langkah waktu-tetap, tetapi akan mengehmat waktu eksekusi model secara signifikan.
Karakteristik Bahasa Simulasi
Struktur dinamis dan statis bahasa simulasi menyediakan kebutuhan jelas untuk mengeksekusi mode simulasi. Beberapa sifat bahasa simulasi lainnya dibutuhkan atau sangat diinginkan untuk penggunaan efektif analisis simulasi sebagai teknik pembantu pengambilan keputusan..
Pengembangan kode model. Kebanyakan bahasa simulasi amsih membutuhkan pemasukan pernyataan kode untuk menciptakan kode model, tetapi kemampuan grafik mikrokomputer telah memungkinkan input grafik. Cara ini paling sesuai untuk bahasa yang fokus pada aliran objek melalui elemen atau blok model.
Debugging model. Begitu mode simulasi sudah dikodekan menggunakan bahasa simulasi yang dipilih, langkah selanjutnya adalah debugging kode sehingga model simulasi berjalan ke penghentian normal. Syntax errors (kesalahan sintaks) adalah permasalahan pertama dalam proses, dan analisis untuk mendeteksi ini sudah ditanam dalam bahasa simulasi umumnya. Kesulitan berikutnya yang dihadapi adalah perbaikan kesalahan selama eksekusi kode. Analisis bahasa simulasi umumnya tidak sesuai secara total dengan permasalahan ini. Setelah menemukan kesalahan seperti ini, program berhenti dan tidak memberikan alasan dalam bentuk logika model kenapa program berhenti.
Penurunan variabel acak. Untuk kebanyakan simulasi probabilistik, kemampuan mengekstrak sampel acak dari distribusi probabilitas tertentu sangat penting. Bahasa simulasi melakukannya dengan mudah.
Pengumpulan statistik. Penjalanan model simulasi tanpa mengumpulkan data ukuran kinerja sistem sama saja dengan tidak melakukan pengamatan pada sistem dunia nyata yang sedang berlangsung. Pengamat ada selama operasi sistem dunia nyata tetapi tidak mengamati dan mencatat apa yang terjadi. Bahasa simulasi harus memungkinkan pengguna dengan mudah menspesifikasikan beragam statistik yang dikumpulkan selama eksekusi model. Juga untuk membantu interpretasi output simulasi, kemampuan penggambaran grafik dan inferensi statistik diperlukan.
Disain percobaan. Karena analisis simulasi bersifat deskriptif, kesuksesan aplikasinya tergantung pada percobaan model. Rancangan percobaan efektif dan efisien benar-benar meningkatkan kualitas solusi yang didapatkan dari model simulasi.
Animasi grafis dan output dinamis. Kemampuan menggunakan bahasa simulasi pada mikrokomputer memungkinkan kemampuan grafis mesin ini untuk mengilustrasikan penjalanan mode simulasi atau outputnya. Ilustrasi objek yang mengalir melalui elemen model disebut sebagai animasi. Animasi biasanya menggunakan monitor berwarna dan dengan mudah mengenali simbol objek dan elemen model. Dengan mengamati aliran seperti itu, analisis dapat memperhatikan penyebaba permasalahan operasi dan dapat memperbaikinya. Animasi model akan memperlambat eksekusi model. Oleh akrena itu, animasi biasanya hanya dilakukan pada mikrokomputer cepat dengan memori besar.
Pemilihan Bahasa Simulasi
Beberapa hal yang perlu diperhatikan dalam pemilihan bahasa simulasi adalah kemudahan untuk dipelajari, kemudahan menjelaskan pada orang yang bukan teknik, biaya, kode standar untuk semua komputer dan cakupan permasalahan yang dapat ditangani oleh bahasa. Pada umumnya, semakin mirip elemen bahasa simulasi dengan elemen dunia nyata, semakin mudah elemen itu dipelajari. Kemudahan menjelaskan fungsi bahasa simulasi ke manajer yang mengeluarkan dana untuk pembelian perangkat lunak dan yang tidak memahami secara teknis juga digunakan dalam memilih bahasa simulasi.
BEBERAPA BAHASA SIMULASI YANG TERKENAL
Ada beberapa sumber di internet yang bisa digunakan untuk mengikuti perkembangan bahasa simulasi. Salah satu diantaranya adalah http://www.idsia.ch/~andrea. Bahasa simulasi di bawah ini diambil dari situs tersebut. Kita mulai dengan penjelasan software libraries (arsip perangkat lunak), dimana anda dapat menemukan penjelasan berbagai bahasa simulasi..
Software libraries
C++SIM
C++ libreries untuk simulasi sistem kejadian diskrit..
JavaSIM
Versi java C++SIM.
SimTools, Version 2.7
Review beberapa alat simulasi.
The Numerical Algorithms Group Ltd (NAG)
Arsip algoritma numerik.
Netlib
Arsip algoritma numerik
Simulations in Java
Arsip Sim Java
CSIM18
Mesquite CSIM berorientasi proses, general purpose simulation toolkit yang ditulis dengan fungsi umum bahasa C. The toolkit memungkinkan programmer menciptakan dan mengimplementasikan model orientasi proses dan simulasi kejadian diskrit.
Code by Law and Kelton
Contoh-contoh Code dalam C and FORTRAN dari buku "Simulation Modelling and Analysis, by A.V. Law and W.D. Kelton
SSS
A library (coded in C) untuk simulasi sistem kejadian diskrit oleh M. A. Pollatschek (visit his home page )
Mathtools
Suatu "portal" yang menyediakan akses gratis untuk MATLAB, Excel, C, C++, Fortran and Java.
Warped
WARPED adalah domain umum Time Warp simulation kernel ditulis dalam C++. The distribution includes a plug-in sequential kernel to support comparative analysis to parallel executions. Primary development has been on Linux-based Pentium PCs, Sun Workstations, a 4-processor Sun SparcCenter 1000, and the Intel Paragon
baseSim
iBright adalah evolusi baseSim Simulation Components (pertama dikembangkan oleh solutionsBase, sekarang oleh defunct) adalah kelompok Visual Components dirancang sebagai komplemen dan perluasan fungsi Borland Delphi v.4.0/5.0. Menyediakan alat untuk pemodelan simulasi sederhana maupun kejadian diskrit kompleks.
OpEMCSS
The Operational Evaluation Modelling for Context-Sensitive Systems (OpEMCSS) adalah tambahan Extend simulation environment. Memungkinkan bagi pemakai untuk merepresentasikan sistem adaptif kompleks relatif lebih mudah.
TomasWeb
TomasWeb memberikan simulasi orientasi objek yang diimplementasikan dalam Delphi 5 and 6. berbasis pendekatan orientasi proses : metode pendiskripsian, dimana beberapa kejadian (perubahan status) dikombinasikan kedalam proses tunggal. Oleh karenanya, tools ini mendukung simulasi orientasi proses. TomasWeb dikembangkan terutama untuk pendidikan dan penelitian. Perangkat lunak ini gratis, tapi memerlukan Borland's Delphi.
HighMAST object-oriented simulation library
HighPoint Software Systems menawarkan simulasi orientasi objek. Ditulis dalam C# , dan terdiri dari 200+ classes, 70+ interfaces. HighMAST framework dibangun sebagai open architecture library on Microsoft's capable .NET technology base.
DEx
DEx, the Dynamic Experimentation toolkit, bertujuan utnuk menyediakan kecepatan, fleksibel dan mudah digunakan untuk pengembangan, analisis dan visualisasi simulasi multi dinamis. Kernel and utility classes terdiri dari kerangka kerja yang dapat digunakan dalam C++ atau kombinasi dengan bahasa DEx, bahasa khusus domain berbasis C++ dirancang untuk percepatan prootip. Dikompile dalam Linux dan tersedia gratis di internet.
Alat visualisasi Simulasi
Extend
Extend (Imagine That, Inc.) digunakan untuk memodelkan, menganalisis dan mengoptimalkan proses. Memiliki sejumlah fitur seperti kumpulan komponen, hirarki model, link dengan MS Office dan memodelkan sistem kontinu, diskrit dan hybrid. Extend mempunyai bahasa pemodelan sendiri (ModL) yang mirip dengan C, dan mampu memanggil kode dari bahasa lainnya. Mempunyai paket khusus untuk sistem industri, riset operasional dan simulasi proses kontinu.
SIMUL8
SIMUL8 oleh Visual Thinking Intl. Simul8 memungkinkan pengguna mengambil dari himpunan objek simulasi dan distribusi statistik ayng sudah didefinisikan sebelumnya untuk menciptakan model. Simul8 juga memungkinkan pemodelan hirarki. Fokus utamanya adalah simulasi kejadian diskrit.
Dymola
Dymola oleh Dynasim, alat orientasi objek untuk pemodelan dan simulasi sistem kontinu. Fokus pada sistem robotik dan sistem mekanik. Sekarang terintegrasi dengan bahasa pemodelan Modelica. Modelica memungkinkan integrasi dan penggunaan kembali lingkungan simulasi dan permodelan berbeda.
VisSim
VisSim (Visual Solutions), bahasa diagram blok visual untuk simulasi dinamis nonlinear. Versi demo dapat didownload.
Awesim
Awesim menyediakan engien simulasi fokus pada produksi animasi model. Animasi dapat dibangun secara grafis dan pemakai dapat menentukan kontrol untuk membangun simulasi interaktif.
Labview
Labview (National Instruments): pemrograman visual yang memungkinkan interfase dengan pengukuran dan peralatan bervariasi.
Goldsim
GoldSim adalah general purpose simulator untuk hampir semua sistem fisika, keuangan, finansial dan organisasi. Models dibangun secara grafis. Goldsim Academic gratis untuk pelajar, professors dan guru. Goldsim maenyediakan sebuah pemain yang memungkinkan setiap orang dapat melihat model kita, tanpa harus menginstal keseluruhan paket. Goldsim juga dapat digunakan untuk modul contaminant transport, radionuclide decay. Simulasi Goldsim juga dapat dijalankan dalam lingkungan distribusi.
BuildSim
BuildSim, oleh Tritera, lingkungan terintegrasi untuk disain, simulasi dan analisis sistem. BuildSim adalah aplikasi perangkat lunak interaktif yang mengintegrasikan analisis numerik, representasi matematik diagram blok, pemrosesan signal dan grafik. Memungkinkan untuk menurunkan source-code (C++ and Java). Tersedia untuk Macintosh. Ada versi download.
Optsim (was Artifex)
OptSim adalah hasil penggabungan Artifex, a tool based on Class-based Extended Petri Nets dan RSoft LinkSim. OptSim adalah lingkungan simulasi dan permodelan intuitif yang mendukung disain dan evaluasi kinerja level transmisi sistem komunikasi optik.
MicroSaint
Micro Saint adalah produk perangkat lunak simulasi fleksibel dan general purpose. Micro Saint mempunyai interfase pemakai grafis dan didasarkan pada pendekatan diagram alur untuk pemodelan. Demo tersedia di internet.
EcosimPro
EcosimPro adalah simulator sistem kontinu. Dapat menyelesaikan persamaan differensial aljabar. Ecosim mempunyai interfase pemakai grafis yang memfasilitasi tugas pemodelan. Ikon yang muncul dalam editor model bersesuaian dengan komponen riil sistem. Pemakai dapat menentukan model menggunakan bahasa EL, yang dapat memanggil routine FORTRAN dan C. Fitur menariknya adalah dukungan percobaan simulasi untuk model tertentu. Debugger juga tersedia.
SimCreator
SimCreator adalah permodelan dan simulasi grafis, digunakan untuk sistem kontinu. Bahasa ini sama dengan Mathworks's Simulink. Model yang lebih sederhana dapat dihubungkan untuk membangun mode kompleks. Model dapat bersarang. Spesifikasi grafis kemudian diterjemahkan ke kode C. Versi beta tersedia untuk download
Berleley Madonna
Bahasa ini digunakan untuk program simulasi numeris pada komputer Windows dan Macintosh. Dirancang sebagai pemecah umum sistem persamaan differensial biasa. Diekmbangkan pada universitas California Berkeley untuk tujuan pengajaran dan penelitian.
XJ Technologies
XJ Technologies menyediakan sekumpulan alat, semuanya dengan lingkungan pengembangan visua, untuk bidang simualsi berbeda : simulasi hybrid (AnyLogic), sistem paralel (Covers), dan diagram status
Simprocess
Simprocess adalah orientasi objek, pemodelan proses dan alat analisis. Menggabungkan kesederhanaan diagram alur dengan kehebatan simulasi, analisis statistik, pembiayaan berbasis biaya dam animasi.
SansGUI
SansGUI digunakan untuk mengembangkan dan menggunakan simulator ilmiah dan rekayasa tanpa harus menulis kode interface pemakai grafis. SansGUI saat ini tersedia untuk Microsoft Windows platforms. Microsoft Visual C++ and Compaq Visual Fortran didukung untuk menciptakan interaktif tinggi dalam simulator proses sementara bahasa lainnya dapat digunakan untuk pengembangan simulator proses eksternal.
SimCreator
SimCreator simulasi dan permodelan grafis sistem. Level paling tinggi adalah interface GUI yang memungkinkan penempatan dan koneksi berbagai komponen. Setiap komponen bisa sebagai subgrup yang dibentuk komponen tambahan atau suatu komponen kode C. Simcreator mirip dengan Simulink.
QX3D
QX3D adalah editor dan generator kdoe yang membantu visualsiasi dan animasi model mekanik. Dengan menghubungkan badan, atribut geometrinya (yaitu lokasi frame, orientasi) dan bentuk badan, akan menurunkan kode VRML untuk membuat visualisasi. Sejumlah besar bentuk dapat ditugaskan ke setiap badan. Kita juga dapat membuat animasi berdasarkan simulasi dinamis multibodi.
SimCad Pro
SimCAD Pro adalah alat permodelan dan simulasi proses yang memungkinkan permodelan top-down proses industrial kompleks. Aliran proses utama didefinisikan, kemudain setiap sel proses dilanjutkan ke proses individualnya.
SIGMA
SIGMA diklaim sebagai simulasi gafis pertama yang dijalankan di Windows. SIGMA merupakan alat pendidikan valid, karena memungkinkan pembuat model menggambarkan sistem menggunakan diagram alur proses. Juga dapat menangani sistem kompleks berkat graf kejadian. Graf kejadian dapat diedit meskipun simulasi sedang dijalankan.
Bond graphs
MS1
MS1 oelh Lorenz Simulation adalag simualtor sistem kontinu yang memungkinkan pembuat model dapat menggunakan bahasa pemodelan berbeda seperti Bond Graphs, Linear Graphs, block Diagram dan Equational Model dan juag dapat menggunakan pemecah model alternatif seperti ACSL, ESACAP, CSSL IV, DASSL, etc.
20-sim
20-sim (dikembangkan oleh Controllab products, diturunkan dari TwenteSim) bond graphs and blocks modelling system untuk sistem kontinu. Dikembangkan di University of Twente. Demo download.
Symbols 2000
Symbols 2000, produk ahsil penelitian dua dekade di Indian Institute of Technology of Kharagpur, adalah perangkat lunak pemodean grafis, simulasi dan kontrol. Menyedaikan alat pemodelan orientasi objek menggunakan bond graphs, block diagrams, dan equation models untuk memodelkan sistem dinamis. Simualsi online dengan penanganan kejadian. Pre-cast sub-models untuk komponen rekayasa lanjut. Kompatibel penuh dengan C++. Analog, digital dan analisis ruang status menggunakan model sistem kontrol.Demo untuk DOS and NT tersedia untuk download .
CAMP-G
Dapat digunakan untuk memodelkan mode Bond Graph dari sistem mekanikal, elektro, hidraulik, panas dan kontrol. CAMP-G adalah alat penurunan model yang menginterface bahasa seperti MATLAB , SIMULINK, ACSL dan lainnya untuk melaksanakan simulasi komputer sistem fisik dan kontrol.
MTT
MTT, the Model Transformation Tools, terdiri dari sekumpulan alat untuk pemodelan sistem fisik dinamis menggunakan metodelogi bond graph dan mentransformasi model kedalam representasi yang sesuai untuk analisis, kontrol dan simulasi. Alat ini menggunakan dan menurunkan m files untuk, GNU Octave. MTT adalah perangkat lunak gratis di bawah GNU General Public License.
Integrated environments (modelling language + simulation environment)
MATRIXx
MATRIXx dijual oleh WindRiver, yang mengisukan Press Release revisi terbaru MATRIXx, dan dijalankan di bawahWindows 95/98/NT/2000/ME dan Solaris.
SIMULINK and MATLAB
MATLAB: bahasa utama untuk perhitungan teknis, DSP, disain kotnrol, dst. SIMULINK menyediakan interface grafis ke beberapa fungsi MATLAB, sehingga memungkinkan pemakai mendisain model dan mengkontrol sistem secara grafis.
Octave and Scilab
Perangkat lunak yang bersaing dengan Matlab and MatrixX. Scilab adalah paket perangkat lunak ilmiah untuk perhitungan numerik yang user-friendly
SimLab
Ini adalah versi pertama perangkat lunak SimLab. Termasuk fungsionalitas matematik untuk perhitungan aljabar dan topologi dan kode untuk menciptakan triangulations area planar. Dikembangkan oleh Cornell University.
SDX
SDX adalah FORTRAN kinerja tinggi didasarkan pada pemecahan amsalah dinamis (kontinu, diskrit,hybrid) aplikasi yang sesuai dalam ilmu dan rekayasa.
ACSL Sim
ACSL dikembangkan oleh AEgis Technologies Group, Inc. ACSL Sim menggabungkan bahasa inti ACSL, dengan kumpulan lengkap ACSL runtime libraries, the ACSL translator, the ACSL system macro file, the ACSL builder, dan kemudahan menggunakan interface pemakai grafis sehingga interaktif dan user friendly.
Bahasa Simulasi
SimPy
SimPy (= Simulation in Python)adalah bahasa simulasi orientasi objek, berbasis proses kejadian diskrit didasarkan pada standar Python dan dikeluarkan di bawah GNU GPL. Menyediakan komponen model simualsi termasuk proses, untuk komponen aktif seperti pelanggan, pesan, peralatan dan sumber daya, untuk kompnen pasif yang membentuk kapasitas terbatas seperti server, counter pemeriksaan dan saluran. Juga menyediakan variabel monitor untuk mengumpulkan statistik. Variasi acak disediakan oleh modul acak standar Python. SimPy dilengkapi dengan kemampuan pengumpulan data. GUI dan paket plotting. Mudah diinterface dengan paket lainnya, seperti statistik, GUI, lembar kerja, dan basis data. SimPy masih aktif dikembangkan oleh tim pengembang internasional. Dapat didownlaod dengan gratis.
JiST
JiST adalah engine kinerja tinggi simulasi kejadian diskrit yang dijalankan atas mesin virtual Java standar. JiST adalah prototip pendekatan general-purpose baru untuk membangun simulator kejadian diskrit, disebut dengan mesin virtual berbasis simulasi, yang menggabungkan sistem tradisional dan disain simulator berbasis bahasaJiST dikembangkan oleh Cornell Research Foundation, Inc. Dan gratis untu penggunaan non komersial.
ACSL Sim
ACSL (untuk sistem kontinu ) oleh AEgis Research kedalam ACSL Sim.
SLAM II
Pritsker corptelah membentuk situs Simsource.com dimana kita dapat menemukan penjelasan Visual SLAM .
GPSS/H
The Wolverine General Purpose Simulation System. Bahasa untuk simulasi kejadian diskrit..
Ptolemy Project
Ptolemy adalah proyek penelitian dan perangkat lunak yang berfokus ke disain sistem reaktif, menyediakan dukungan level tinggi untuk pemrosesan signal, komunikasi, dan kontrol waktu riil.
DSDS+
(http://groucho.gsfc.nasa.gov/
Code_520/Code_522/Projects/DSDSPlus/)
(site out of order 27 Sep 99)
The Data Systems Dynamic Simulator Plus (DSDS+) kejadian diskrit berbasis simulator yang memudahkan ketika menghadapi kesulitan dengan simulasi, laju data tinggi, sistem akhir-ke-akhir.
MODSIM III
Bahasa simulasi untuk orientasi objek dan proses. MODSIM akhir-akhir ini dijual ke Compuware.
Simscript II.5
Bentuk bebas, bahasa pemodean dan pengembangan. SIMSCRIPT II.5 didisain untuk digunakan di kejadian diskrit dan kombinasi simulasi diskrit/kontinu.
Simple_1
SIMPLE_1 mendukung pemodelan sistem diskrit dan kontinu menggunakan orientasi pemodelan jaringan. Fiturnya termasuk kemampuan pemakai untuk mendefinisikan variabel dan statistik yang dibutuhkan, melaksanakan operasi I/O pada file dan menganimasikan hasil simulasi dalam waktu riil menggunakan fitur bahasa yang ada. SIMPLE_1 menggunakan pendekatan pengulangan untuk menjalankan kontrol untuk memfasilitasi pemodelan pencarian tujuan dan definisi panjang penjalanan (run length) berdasarkan perilaku model. SIMPLE_1 sekarang dikeluarkan di bawah GNU GPL dan dikompile di bawah RedHat Linux.
SEMoLa
SEMoLa (Simple, Easy to use, MOdelling LAnguage) adalah bahasa bukan prosedural membangun model simulasi untuk penggerak kejadian/kontinu, sistem stokastik/deterministik, dikembangkan di Agricultural and Environmental Sciences Department, University of Udine (Italy). Sukses digunakan untuk memodelkan sistem biologi, ekologi dan pertanian pada skala berbeda dan level kompleks. Bahasa SEMoLaÊ terintegrasi yang menyederhanakan tugas pembangunan model, simulasi dan dokumentasi lebih jauh menyediakan kalibrasi, validasi, manajemen data, pembangunan jaringan neural, fitur unit verifikasi dan lainnya.
Pasion
Pasion adalah bahasa simulasi berorientasi objek. Mempunyai struktur proses/kejadian. Source code diterjemahkan ke Pascal, kompatibel dengan Delphi v3 atau yang terbaru. Dapat digunakan untuk memodelkan antrian, proses kontinu dan memungkinkan penggunaan paradigma Bond Graph. Demo dapat didownload dari situs.
WinSAAM
The WinSAAM versi berbasis windows of the SAAM dan sistem pemodelan Consam. Dikembangkan oleh auspices of the Laboratory of Experimental and Computational Biology, of the Division of the Cancer Biology and Diagnosis, of the National
Cancer Institute. Gratis untuk penelitian ilmiah.
MathCore
MathCore AB menawarkan dua produk utama: MathCore C++, sebagai tambahan pada Mathematica yang mengkompile himpunan bagian matematika ke kode C++ efisiensi tinggi. MathCode C++ menyediakan platform untuk pengembangan cepat simulasi dan perhitungan mahal lainnya. MathModelica adalah implementasi Modelica dalam mathematica. MathModelica memungkinkan disain orientasi objek sistem fisik untuk simulasi dan pemrograman visual menggunakan editor grafik. MathModelica mengintegrasikan dokumentasi, kode yang dapat dijalankan, diagram koneksi grafik dan formula matematika.
Parsec
Parsec adalah bahasa simulasi berbasis C, dikembangkan oleh Parallel Computing Laboratory di UCLA, untuk eksekusi paralel dan sekuensial mode simualsi kejadian diskrit. Juga dapat digunakan sebagai bahasa pemrograman paralel. Tersedia dalam bentuk biner hanya untuk institusi akademisi. Pengguna komersial dapat melakukan order pada Scalable Networks technologies.
Simulasi Berbasis Agen
SeSAm
SeSAm (Shell for Simulated Agent Systems) untuk permodelan dan percobaan simulasi berbasis agen. Agen SeSAm terdiri dari badan, yang mengandung sekumpulan variabel status dan perilaku yang diimplementasikan dalam bentuk UML seperti diagram. Didasarkan pada sejumlah besar komponen primitif, pemakai dapat mendisain simulasis ecara grafis tanpa mengetahui sintaks bahasa pemrograman tradisional. Dituliskand alam Java dan dapat didownload gratis.
Ps-i
Bahasa simulasi untuk menjalankan simulasi berbasis agen. Model ditulis menggunakan bahasa Tcl/Tk standar dan interface grafis dapat juga digunakan.
Simulasi didasarkan pada pendekatan dinamis
Powersim
Dari Norwegia, a simulation tool which a marked "penchant" untuk simulasi situs. demos gratis tersedia.
Vensim
Vensim, simulator sistem dari Ventana Systems, didasarkan pada pendekatan dinamis. Untuk Windows dan Macintosh. Demo download tersedia. Gratis untuk penggunaan pribadi.
Stella + Ithink
Dari sistem kinerja tinggi. Stella demo tersedia.
ModelMaker
Modelmaker (formerly Cherwell Software Publisher, now from ModelKineti.comx) adalah alat untuk pemodelan dan simulasi sistem komparmental.. Demo, waktu terbatas, fungsional penuh, tersedia untuk sistem windows.
Berkeley Madonna
Sudah dijelaskan di atasjuga menyediakan paradigma pemodelan dinamis.
SIMILE/
Simile adalah perangkat lunak simulasi untuk pembangunan dan penjalanan mode simulasi dalam ekologi, biologi, ilmu lingkungan dan disiplin yang berhubungan lainnya. Meneydiakan fitur yang powerful dan expressive diagram-based language untuk mode disain, termasuk konsep sistem dinamis dan berbasis objek. Sistem Dinamis adalah notasi intuitif dan paling banyak digunakan untuk menggambarkan dinamis dalam terminologi penyimpanan dan aliran, sementara objek menyediakan cara alami untuk menggambarkan komposisi dan relasi sistem. Simile juga mendukung konstruksi model modular dan modul dapat besanrang pada sembarang kedalaman. Mode yang dihasilkand apat dijalankan sangat efisien setelah dikompile program C, dan .dikirim ke mode berdiri sendiri lainnya. Simile menyediakan banyak alat untuk menggambarkan model perilaku tapi juga memungkinkan pemakai menambahkan sendiri untuk memenuhi kebutuhannya.
Simulasi Hybrid
Simulasi Hybrid berhubungan dengan kombinasi kejadian diskrit dan kontinu.
Shift
Shift adalah bahasa pemrograman untuk emnggambarkan jaringan dinamis otomata hybrid, terdiri dari fase waktu kontinu terpisahd ari transisi kejadian diskrit. Diekmbangkan oleh Berkeley, California Path.
CESIMO
The Cesimo Group of the University of the Andes in Venezuela aktif dalam penelitian simulasi hybrid.
AnyLogic
AnyLogic adalah prototip virtual sistem kompleks dengan perilaku diskrit, kontinu dan hybrid. AnyLogic memungkinkan pemakai membangun mode simulasid engan cepat, prototip virtual. Tidak ada skrip atau bahasa diagram blok yang pemakai harus eplajari untuk menggunakan AnyLogic. Teknologi pemodelan secara keseluruhan didasarkan pada UML-RT Unified Modelling Language untukw aktu riil.
Simulasi Proses industri
SIMAS II
SIMAS II untuk simulasi instalasi produksi massal industri pada perakitan otomasi atau pengemasan makanan.
gPROMS
gPROMS, ditargetkan untuk pemodelan dan simulasi sistem kontinu, didisain baik untuk lingkungan simulasi fledged penuh maupun sebagai engine simulasi yang dapat dimasukkan dalam aplikasi vendor untuk menyediakan alat disain dan operasi yang komprehensif.
SimBax
SIMBAX adalah alat pendukung pengambil keputusan secara khusus untuk memenuhi kebutuhan industri proses dalam bidang simulasi aliran material. SIMBAX memungkinkan evaluasi dan perbandingna cepat dari beragam alternatif skenario yang bertujuan untuk memudahkan menghilangkan penyebab penundaan dan menemukan solusi pengabaian pemanfaatan peralatan dan sumber daya yang tidak produktif.
SES/Workbench
SES/Workbench, oleh HyPerformix, adalah alat simulasi untuk arsiteltur perangkat keras dan sistem kompleks secara umum. Mendukung disain mode simulasi dari perspektif orientasi objek dan menyediakan baik interface grafis untuk memasuki pendefinisian masalah dan animasi grafis simulasi untuk merepresentasikan hasil. Tersedia untuk berbagai platform mulaid ari unix sampai windows NT.
WITNESS
WITNESS, oleh Lanner Group, menyediakan lingkungan grafis untuk mendisain mode simulasi kejadian diskrit. Memungkinkan otomasi percobaan simulasi, optimasi aliran material melalui fasilitas, dan menurunkan mode realitas 3D teranimasi. WebDemos tersedia.
ARENA
ARENA (by Systems Modelling Corp) : disain orientasi objek dan kemampuan untuk digunakan pada bidang aplikasi apapun. Didasarkan pada bahasa pemodelan SIMAN.
EASY5
EASY5, dikembangkan oelh Boeing Inc., adalah perangkat lunak yang digunakan untuk memodelkan dan mensimulasikan sistem dinamis yang mengandung hidraulik, pneumatic, mechanical, thermal, electrical dan digital sub-systems. Kumpulan lengkap pemodelan sistem kontrol, analisis dan fitur disain dimasukkan. Distributor Eropa adalah Applied Dynamics International Ltd .
SIMPLORER
Simulator untukd isain industri, proyek penelitian dan tujuan pengajaran. Kode eksternal dapat tertanam. Mempunyai bahasa sendiri. Memungkinkan struktur hirarkis. free demo dapat diminta dan diterima melalui snailmail.
Promodel
ProModel adalah alat perangkat lunak berbasis simulasi untuk evaluasi, perencanaan dan disain manufaktur, gudang dan sistem logistik.
AutoMod
AutoMod menyediakan perangkat lunak simulasi yang memberikan citra visual 3D dari suatu fasilitas sebaik statistik bagaimana fasilitas melaksanakannya.
Enterprise Dynamics
Enterprise Dynamics (formerly known as Taylor ED) adalah aplikasi perangkat lunak berorientasi objek digunakan untuk pemodean, simulasi, visualisasi dan kontrol proses bisnis. Perlu dicatat, mode simulasi lengkap dapat dibangun dan disimulasikan dalam VR lengkap. Perangkat lunak dapat digunakan bukan hanya untuk aplikasi industri tapi juga untuk alat simualsi visual dimana pemakai dapat menggunakan skrip bahasa program untuk menciptakan model sendiri.
Flexsim
Flexsim adalah aplikasi perangkat lunak simulasi berbasis PC digunakan untuk memodelkan, simulasi dan visualisasi proses bisnis. Flexsim dapat membantu menentukan kapasitas pabrik, menyeimbangkan lini manufakturing, mengatur penyebab penundaan, memecahkan inventori dan permasalahan inventori dalam proses, menguji praktek penjadwalan baru, mengoptimumkan laju produksi dan menyesuaikan pengeluaran modal. Setiap model Flexsim dapat digambarkan dalam aniamsi realitas virtual 3D. Selain itu, Flexsim memungkinkan pemodel dengan kemampuan pemrograman model dan submode secara langsung dalam C++. Demo tersedia
DynaWiz
DynaWiz adalah program simulasi dinamis multibadan berfungsi umum digunakan dalam industri ruang angkasa, otomotif, dan robotik. Berlaku dengan kode kontrol C, C++ dan Fortran dan dapat dijalankan dengan Matlab/Simulink juga. Versi demo Dynawiz tersedia.
AMESim
AMESim adalah perangkat lunak yang didedikasikan untuk pemodelan dan simulasi sistem tenaga seperti gearboxes, wheel transmissions, dan lain-lain. Juga dapat emmodekan sistem pendinginan, pertuakaran panas, dan lain-lain. AMESim aplikasinya dalam industri otomotif dan pesawat terbang. AMESim dijalankan pada berbagai platforms seperti HP/UX, Silicon Graphics, IBM RS/6000, Sun SPARCs, dan Windows NT.
ShowFlow
Simulasi ShowFlow Simulation dirancang untuk memodelkan, simulasi, animasi dan analisis proses dalam logistik, manufakturing dan penangangan . menyediakan visualisasi penuh dan alat pelaporan, khususnya untuk animasi simulasi. Pemodel divasilitasi dengan ketersediaan berbagai komponen simulasi siap dijalankan. Demo percobaan dapat didownload.
Universal Mechanism 2.0
Perangkat lunak ini dimaksudkan untuk simulasi kinematik dan dinamis sistem mekanikal spatial dan planar. Kinerja berikut tersedai sebagai hasil : koordinat, kecepatan, percepatan, kekuatan reaksi, usaha dalam elemen aktif, dst. Sistem mekanikal dideskripsikan dengan merepresentasikannya sebagai sistem bahan kau yang dihubungkan oleh berbagai pasangan kinematik dan elemen usaha sehingga disebut dengan sistem multibody. Animasi online gerakan dan plot kinerja dinamis tersedia selama simulasi.
HCADWin
HCADwin adalah sebuah program untuk menggambar, mencetak dan menjalankan logika dan kontrol. Bahasa sederhana yang dimasukkan dalam perangkat lunak dapat digunakan untuk menciptakan sebuah proses. Pertama sekali dikembangkan tahun 1994 untuk simulator training waktu nyata besar (pabrik enegeri, 53.000 tags) dengan tujuan untuk menghasilkan 100 PLC's dan menyediakan alat untuk integrasi antara model (ACSL™) dengan visualisasi.
HCADwin dijalankan di Windows 95/98/NT/2000/XP. Secara khusus sesuai untuk simulator training tetapi juga dapat digunakan untuk perancangan dan pengujian diagram logik fungsional.
FoCs
FoCs (dikembangkan oleh IBM) merupakan alat produktifitas untuk penurunan otomatis monitor simulasi dari spesifikasi formal. Sangat membantu perancang chip dan teknisi verifikasi dalam tugas kompleks dan berbaiaya mahal verifikasi disain chip sebelum diserahkan ke manufakturing. FoCs sedang digunakan oleh pengguna IBM, dan juga eplanggan luar. Pemakai FoCs melaporkan peningkatan (sampai 50%) dalam "testbench" waktu pengembangan.
ITI-SIM
ITI-SIM digunakan untuk pemodelan dan simulasi perilaku dinamis komponen dan sistem teknikal. Perangkat lunak ini sangat sesuai untuk menganalisis dan mengevaluasi fenomena fibrasi nonlinier dalam mekanikal, otomotif dan rekayasa sistem. Berbagai domain fisikal didukung dalam satu model, dimana setiap domain difungsikan dengan metode dan simbol yang bersesuaian ke orientasi diagram sirkuitnya, yang menyederhanakan tugas interdisciplinary yang mendasar dan menuntut.
ML Designer
MLDesigner adalah paltform pemodelan simulasi yang mengintegrasikan area sistem utama-level pemodelan (arsitektur dan fungsi) dan kebanyakan domain pemodelan simulasi (kejadian diskrit, mesin status terbatas, aliran data dan kejadian kontinu/diskrit) dalam alat tunggal. Model MLDesigner dibangun secara grafis dengan diagram blok hirarki. MLDesigner mempunyai koleksi alat debugging yang banyak dan siap dikembangkan : pemakai dapat menambahkan awal baru, blok level tinggi, contoh, domain baru dan link ke tool lainnya. Aplikasi terbaru memasukkan analisis kinerja arsitektur komputer dan prosesor, System-on-a-Chip (SOC) co-design, analisis jaringan (kabel dan tanpa kabel), disain protokol, analisis sistem selular dan proses bisnis industri.
ReThink
ReThink, oleh GenSym, adalah alat simulasi untuk proses bisnis rekayasa ulang. ReThink mendukung siklus hidup proses bisnis dari analisis, ke disain proses baru, dan juga mendukung implementasi 'dalam-the'loop' di dalam sebuah platform otomasi on line. Dapat dijalankan dalam mesin berbasis windows standar.
Spar
Engine simulasi Monte Carlo SPAR dapat digunakan untuk menciptakan model adaptasi, terskala penuh sistem kompleks, dan melaksanakan simulasi kejadian diskrit. SPAR menggunakan reliabilitas komponen-pendekatan terpusat untuk memodelkan siklus hidup perilaku aset mahal kompleks dan lingkungan operasinya. SPAR, oleh Clockwork Solutions, adalah engine inti dimana berbagai alat biasa dan aplikasi dibangun. Alat perangkat lunak ini termasuk: ATLAST - Aviation Fleet Management; PS-PLUS - Gas Turbine Power Plants; STORM - Process Plant Analysis; ENRiCO - Electricity Distribution Systems; dan SPARopt - Spare Parts Optimization.
emPlant
emPlant adalah simualtor untuk berbagai bidang logistik, rekayasa, produksi. Menyedaikan library hirarkis modul simulasi dan bersifat objek oriented.
SimFlex
SimFlex adalah teknologi diagnostik dan pendukung keputusan untuk supply chains yang memungkinkan perusahaan mengoptimumkan keseluruhan supply chain dan menciptakan dinamika supply chain, dan variasi dunia nyata.
Simulasi Sistem Jaringan
OMNeT++ 2.1
OMNeT++ adalah simulator kejadian diskrit berorientasi objek. Simulator dapat digunakan untuk pemodelan: protokol komunikasi, jarignan komputer dan pemodelan lalu lintas, multi-processors dan sistem terdistribusi, dan lain-lain.
OMNeT++ mendukung animasi dan penjalanan. Tersedia untuk download .
ns2
Ns adalah simulator kejadian diskrit yang ditargetkan pada peneltiian jaringan. Ns menyedaikan dukungan mendasar untuk simulasi TCP, routing, and multicast protocols baik dengan jaringan kabel atau tanpa (lokal dan satelite). Ns dikembangkan oleh ISI, the Information Sciences Institute at the USC school of engineering. Source code penuh ns 2 dapat downloaded dan dapat dikompile ke berbagai platform, termasuk yang paling popular Unix flavours and Windows.
GloMoSim
GloMoSim adalah lingkungan simulasi terskala untuk sistem jaringan dengan kabel atau tanpa kabel. Menggunakan kapabilitas simulasi kejadian diskrit paralel yang disediakan Parsec. GloMoSim saat ini mendukung protokol untuk jaringan tanpa kabel saja. Di masa mendatang, kami mengantisipasi penambahan fungsionalitas untuk menciptakan dengan kabel sama dengan jaringan hybrid dengan kemampuan dengan kabel atau tanpa kabel. Source GloMoSim dan binary code dapat didownload gratis hanya oleh institusi akademis untuk penelitian. Pengguna komersial harus menggunakan QualNet, the commercial version of GloMoSim.
SWANS
SWANS adalah simualtor jaringan tanpa kabel terskala dibangun di atas platform JiST. SWANS diorganisasikan sebagai komponen perangkat lunak bebas yang dapat dibentuk untuk menciptakan jarignan tanpa kabel lengkap atau konfigurasi jarignan sensor. Kemampuannya sama dengan ns2 dan GloMoSim, tapi dapat menciptakan jaringan yang jauh lebih besar. SWANS mempengaruhi disain JiST untuk mencapai hasil simulasi tinggi, mengheamt memori, dan menjalankan aplikasi jaringan java standar atas jarignan tersimulasi. Sebagai tambahan, SWANS mengimplementasikan struktur data yang disebut hierarchical binning, untuk mengefisienkan perhitungan propagasi signal.
QualNet
QualNet adalah alat pemodelan untuk jaringan dengan kabel dan tanpa tabel. The QualNet suite dibentuk dari QualNet Simulator, yang mengklaim yang tercepat untuk pemodelan lalulintas tercepat. QualNet Animator memungkinkan disain grafis mode jaringan dan meunjukkan hasil penjalanan simulasi. QualNet Designer dimungkinkan menciptakan Finite State Automata untuk menggambarkan perilaku jaringan, sementara dengan analisis dan perancang QualNet yang membuat simulasi jalan. Versi Windows dan Linux tersedia. Demo dapat downloaded atas permintaan.
cnet
CNET adalah simulator jaringan komputer. Simulator ini tidak ebanr-benar difokuskan pada simulasi industri saja, tetapi ke aspek industri. Adalah simulator jaringan kejadian diskrit yang memungkinkan percobaan dengan beragam lapisan penghubung data, lapisan jaringan, lapisan routing dan tarnspor protokol jaringan.
OPNET
OPNET's suite produk mengkombinasikan pemodelan prediktif dan pemahaman komprehensif teknologi jaringan untuk memungkinkan pelanggan mendisain, menggunakan dan menagtur infrastruktur jaringan, peralatan jaringan dan aplikasi jaringan. Secara khusus, pembuat model OPNET, memungkinkan anda merancang dan mempelajari jaringan komunikasi, peralatan, protokol dan aplikasi.
Traffic v2.0
Traffic versi 2 adalah produk simulasi yang dirancang untuk memecahkan permasalahan pemodelan pusat panggilan kompleks, dimana persamaan tradisional Erlang gagal, dan juga dapat diaplikasikan ke sembarang permasalahan antrian lainnya. Mudah interface dengan grafik dan dijalankan di bawah Windows.
Simulasi berbasis situs dan terdistribusi
Silk
Silk adalah alat pemodelan berbasis Java untuk simulasi, studi dan perbaikan sistem industri. Silk merupakan alat pemodelan yang menggabungkan metodologi pemodelan deskripsi-proses dalam bahasa berorientasi objek. Versi pendidikan tersedia atas permintaan.
SLX
SLXmengembangkan kekuatan Wolverine's GPSS/H. SLX distruktur sebagai array berlapis-lapis, berkisar dari inti C-like SLX , pada lapisan paling bawah, melalui bahasa simulasi tradisional seperti GPSS/H, pada lapisan pertengahan, ke aplikasi khusus dialek dan ekstensi bahasa pada lapisan paling atas. SLX mengandung mekanisme yang dapat diperluas untuk pembangunan lapisan baru di atas yang sudah ada. SLX telah dipasangkan dengan perangkat luank lainnya, termasuk DoD's High Level Architecture (HLA).
STARDIS
STARDIS adalah alat simulasi yang dikembangkan oleh EDS (http://eds.com) yang telah digunakan oleh EDS selama lebihd ari 10 tahun untuk memprediksi perilaku masa mendatang peritnah militer dan sistem kontrol dan sistem komunikasi masa mendatang. Juga telah digunakan pada beberapa proyek sipil.
STARDIS digunakan sebagai orientasi objek, pendekatan berbasis kejadian untuk memodelkan entitas dunia nyata dan komunikasinya. Semua aktivitas diskrit yang relevan yang termasuk dalam sistem dunia nyata dimasukkan dalam entitas STARDIS menggunakan campuran aturan penulisan dalam struktur Inggris, dan jika dibutuhkan, routien yang lebih kompleks dituliskan dalam bahasa komputer level tinggi.
JSIM
JSIM adalah simulasi berbasis Java dan lingkungan animasi mendukung simulasi berbasis situs. Dalam JSIM, mode simulasi mungkin dibangun menggunakan paket kejadian (paradigma penjadwalan-kejadian) atau dengan paket proses (paradigma interaksi-proses). Sebagai tambahan, perancang grafis (paket model) memungkinkan proses pemodelan dengan cepat mdibangun secara grafis. Paket qds (Query Driven Simulation) masih dalam pengembangan mengontrol penyimpanan, , penarikan dan eksekusi model simulasi sebagaimana Java Beans dan menggunakan JDBC untuk mengakses basis data. Juga menyimpan model input dan output. JSIM mempunyai 3 paket dasar: antrian, statistik dan variat.
RT-LAB
RT-LAB adalah perangkat lunak simulasi yang digunakan kebanyakan perusahaan seperti Ford, GM, NASA, Toyota, Canadian Space Agency... dan memungkinkan menciptakan model Simulink and MATRIXx dalam waktu nyata dengan sebuah jaringan PCs saling terhubung dengan Internet atau Firewire atau Giganet.dapat diajlankan di bawah Windows. Demo available .
GridSim
Tujuan utama proyek GridSim adalah menyelidiki teknik alokasi sumber daya efektif berdasarkan perhitungan ekonomi melalui simulasi. Berjuta sumber daya dan ribuan pengguna dengan beragam kebutuhan harus disimulasikan. Kemampuan skala sistem, algoritma, efisiensi kebijakan alokasi sumber daya dan kepuasan pengguna dipelajari. GridSim proyek penelitian berbasis SimJava .
Forio
Forio membawa simulasi situs selangkah lebih maju karena membairkan pengguna memasukkan model sendiri, menggunakan bahasa scripting dan kemudian menyediakan alat berbasis situs untuk mendisain interface pemakai. Engine simulasi berlokasi pada Forio web server. Fokus utamanya pada simulasi bisnis dan diperlengkapi untuk isu operasional (contoh pengembangan strategi pemasaran).
Subscribe to:
Posts (Atom)