Anda di halaman 1dari 117

C (bahasa pemrograman)

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Bahasa pemrograman C merupakan salah satu bahasa pemrograman komputer.


Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell
Telephone Laboratories.

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun


bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga
banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer,
bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara
luar biasa mempengaruhi bahasa populer lainnya, terutama C++ yang merupakan
extensi dari C.

Daftar isi [sembunyikan]

1 Filosofi

2 Versi Bahasa C

2.1 C K&R

2.2 ANSI C & ISO C

2.3 C99

3 Pustaka

4 Hello, World!

5 Pranala luar

[sunting]

Filosofi

[sunting]

Versi Bahasa C

[sunting]
C K&R

Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama
dari buku yang berjudul The C Programming Language. Buku ini hingga sekarang
diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang
pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu
lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang
dicontohkan dalam buku ini.

Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan
pemrogram sebagai C K&R. Pada buku The C Programming Language edisi kedua
kemudian melingkupi ANSI C yang diperkenalkan belakangan.

[sunting]

ANSI C & ISO C

Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat


kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American
National Standards Institute (ANSI) membuat sebuah komite untuk membuat
sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan
sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI
X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadang-kadang C89.

Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO)
dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini seringkali
dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit
perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.

[sunting]

C99

Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk
memperbanyak dukungan kepada pemrograman berorientasi objek, terutama
setelah C++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa
di kalangan pemrogram

[sunting]
Pustaka

Pustaka (seringkali dirujuk sebagai library), adalah kumpulan fungsi-fungsi yang


terkandung dalam satu file, Setiap file pustaka mempunyai satu Header file yang
menyimpan cetak biru dari fungsi-fungsi yang terkandung dalam file pustaka.

Bahasa C seringkali dipakai untuk membuat file-file pustaka yang menyimpan


fungsi-fungsi tertentu, dikarenakan C dapat dikompile menjadi bahasa mesin yang
sangat cepat dan kecil ukurannya, kemudian bahasa pemrograman lain seperti
Python yang akan menciptakan antar-muka dari fungsi-fungsi yang dikandungnya.

Pustaka yang paling sering dipakai adalah Pustaka Standar C, yang berisi fungsi-
fungsi standar yang berasal dari ANSI C. Pustaka standar ini sekarang telah
terkandung dalam hampir setiap kompiler C yang dipakai.

[sunting]

Hello, World!

Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello,
World!" dengan menggunakan pustaka stdio.h (ANSI C):

#include <stdio.h>

int main(void) {

printf("Hello, World!\n");

return 0;

[sunting]

Pranala luar

(en) Programming C di Wikibooks

(id) Buku Gratis Pemrograman Bahasa C dengan Turbo CBahasa pemrograman


(Daftar bahasa pemrngraman)
ALGOL | APL | Ada | BASIC| C | C++ | C# | COBOL | Common Lisp | Eiffel | FORTH |
Fortran | Haskell | Java | JavaScript | Jython | LISP | LOGO | Mesa | Modula-2 | Oberon
| Ocaml | Objective-C | Perl | PHP | Prolog | PL/I | Pascal | PostScript | Python | Ruby |
Scheme | Smalltalk | SQL | Tcl | Visual Basic

Artikel bertopik komputer ini adalah sebuah rintisan. Anda dapat membantu
Wikipedia dengan mengembangkannya.

Kategori: Bahasa pemrograman C | Bahasa pemrograman | Bahasa pemrograman


prosedural

Halaman Pembicaraan Sunting↑ Versi terdahulu

Coba Beta Masuk log / buat akun

Cari

Navigasi

Halaman Utama

Perubahan terbaru

Peristiwa terkini

Halaman sembarang

Komunitas

Warung Kopi

Portal komunitas

Bantuan

wikipedia

Tentang Wikipedia

Pancapilar

Kebijakan

Menyumbang

Cetak/ekspor
Buat buku

Unduh sebagai PDF

Versi cetak

Kotak peralatan

Pranala balik

Perubahan terkait

Halaman istimewa

Pranala permanen

Kutip halaman ini

Bahasa lain

Afrikaans

Alemannisch

አማርኛ

Aragonés

‫العربية‬

Asturianu

Azərbaycan

Žemaitėška

Беларуская

Беларуская (тарашкевіца)

Български

বাংলা

Brezhoneg

Bosanski

ᨅᨔ ᨕᨘᨁᨗ

Català
Mìng-dĕ̤ng-ngṳ̄

Corsu

Česky

Cymraeg

Dansk

Deutsch

Ελληνικά

English

Esperanto

Español

Eesti

Euskara

‫فارسی‬

Suomi

Français

Gaeilge

Galego

‫עברית‬

िहनदी

Hrvatski

Magyar

Interlingua

Íslenska

Italiano

日本語

ქართული
Taqbaylit

ភសែខ្រ

한국어

Kurdî / ‫كوردی‬

Latina

Lietuvių

Latviešu

Malagasy

Македонски

മലയാളം

Монгол

मराठी

Bahasa Melayu

Nederlands

Norsk (nynorsk)

Norsk (bokmål)

Occitan

Polski

Português

Română

Русский

Саха тыла

Srpskohrvatski / Српскохрватски

Simple English

Slovenčina

Slovenščina
Shqip

Српски / Srpski

Svenska

தமிழ்

తలుగు

ไทย

Türkçe

Українська

Tiếng Việt

吴语

‫יידיש‬

中文

Bân-lâm-gú

粵語

Halaman ini terakhir diubah pada 04:39, 20 Januari 2010. Teks tersedia di bawah
Lisensi Atribusi/Berbagi Serupa Creative Commons; ketentuan tambahan mungkin
berlaku. Lihat Ketentuan Penggunaan untuk lebih jelasnya. Kebijakan privasi
Tentang Wikipedia Penyangkalan

Please help with the Wikimedia strategic planning process! Discuss the Strategy
Task Forces' recommendations. [Hide]

[Help us with translations!]


C (programming language)

From Wikipedia, the free encyclopedia

The C Programming Language (aka "K&R"), the seminal book on C

Usual file extensions .h .c

Paradigm Imperative (procedural), structured

Appeared in 1972

Designed by Dennis Ritchie

Developer Dennis Ritchie & Bell Labs

Stable release C99 (March 2000)

Typing discipline Static, weak, manifest

Major implementations Clang, GCC, MSVC, Turbo C, Watcom C

Dialects Cyclone, Unified Parallel C, Split-C, Cilk, C*

Influenced by B (BCPL,CPL), ALGOL 68,[1] Assembly, PL/I, FORTRAN

Influenced AWK, csh, C++, C-- , C#, Objective-C, BitC, D, Go, Java, JavaScript,
Limbo, Perl, PHP, Pike, Processing, Python

OS Cross-platform (multi-platform)

C is a general-purpose computer programming language developed in 1972 by


Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating
system.[2]

Although C was designed for implementing system software,[3] it is also widely


used for developing portable application software.
C is one of the most popular programming languages[4][5] and there are few
computer architectures for which a C compiler does not exist. C has greatly
influenced many other popular programming languages, most notably C++, which
originally began as an extension to C.Contents [hide]

1 Design

1.1 Minimalism

2 Characteristics

2.1 Absent features

2.2 Undefined behavior

3 History

3.1 Early developments

3.2 K&R C

3.3 ANSI C and ISO C

3.4 C99

3.5 C1X

4 Uses

5 Syntax

5.1 Operators

5.1.1 Integer-float conversion and rounding

6 "Hello, world" example

7 Data structures

7.1 Pointers

7.2 Arrays

7.3 Array-pointer interchangeability

8 Memory management

9 Libraries

10 Language tools
11 Related languages

12 See also

13 Footnotes

14 References

15 External links

[edit]

Design

C is an imperative (procedural) systems implementation language. It was designed


to be compiled using a relatively straightforward compiler, to provide low-level
access to memory, to provide language constructs that map efficiently to machine
instructions, and to require minimal run-time support. C was therefore useful for
many applications that had formerly been coded in assembly language.

Despite its low-level capabilities, the language was designed to encourage machine-
independent programming. A standards-compliant and portably written C program
can be compiled for a very wide variety of computer platforms and operating
systems with little or no change to its source code. The language has become
available on a very wide range of platforms, from embedded microcontrollers to
supercomputers.

[edit]

Minimalism

C's design is tied to its intended use as a portable systems implementation


language. It provides simple, direct access to any addressable object (for example,
memory-mapped device control registers), and its source-code expressions can be
translated in a straightforward manner to primitive machine operations in the
executable code. Some early C compilers were comfortably implemented (as a few
distinct passes communicating via intermediate files) on PDP-11 processors having
only 16 address bits. C compilers for several common 8-bit platforms have been
implemented as well.

[edit]
Characteristics

Like most imperative languages in the ALGOL tradition, C has facilities for
structured programming and allows lexical variable scope and recursion, while a
static type system prevents many unintended operations. In C, all executable code
is contained within functions. Function parameters are always passed by value.
Pass-by-reference is simulated in C by explicitly passing pointer values.
Heterogeneous aggregate data types (struct) allow related data elements to be
combined and manipulated as a unit. C program source text is free-format, using
the semicolon as a statement terminator (not a delimiter).

C also exhibits the following more specific characteristics:

lack of nested function definitions

variables may be hidden in nested blocks

partially weak typing; for instance, characters can be used as integers

low-level access to computer memory by converting machine addresses to typed


pointers

function and data pointers supporting ad hoc run-time polymorphism

array indexing as a secondary notion, defined in terms of pointer arithmetic

a preprocessor for macro definition, source code file inclusion, and conditional
compilation

complex functionality such as I/O, string manipulation, and mathematical functions


consistently delegated to library routines

A relatively small set of reserved keywords

A lexical structure that resembles B more than ALGOL, for example:

{ ... } rather than either of ALGOL 60's begin ... end or ALGOL 68's ( ... )

= is used for assignment (copying), like Fortran, rather than ALGOL's :=

== is used to test for equality (rather than .EQ. in Fortran, or = in BASIC and
ALGOL)

&& and || in place of ALGOL's "∧" (AND) and "∨" (OR); note that the doubled-up
operators will never evaluate the right operand if the result can be determined from
the left alone (this is called short-circuit evaluation), and are semantically distinct
from the bit-wise operators & and |

However Unix Version 6 & 7 versions of C indeed did use ALGOL's /\ and \/ ASCII
operators, but for determining Infimum and Supremum respectively.[1]

a large number of compound operators, such as +=, ++, etc. (Equivalent to ALGOL
68's +:= and +:=1 operators)

[edit]

Absent features

The relatively low-level nature of the language affords the programmer close control
over what the computer does, while allowing special tailoring and aggressive
optimization for a particular platform. This allows the code to run efficiently on very
limited hardware, such as embedded systems.

C does not have some features that are available in some other programming
languages:

No direct assignment of arrays or strings (copying can be done via standard


functions; assignment of objects having struct or union type is supported)

No automatic garbage collection

No requirement for bounds checking of arrays

No operations on whole arrays

No syntax for ranges, such as the A..B notation used in several languages

Prior to C99, no separate Boolean type (zero/nonzero is used instead)[6]

No formal closures or functions as parameters (only function and variable pointers)

No generators or coroutines; intra-thread control flow consists of nested function


calls, except for the use of the longjmp or setcontext library functions

No exception handling; standard library functions signify error conditions with the
global errno variable and/or special return values

Only rudimentary support for modular programming

No compile-time polymorphism in the form of function or operator overloading


Only rudimentary support for generic programming

Very limited support for object-oriented programming with regard to polymorphism


and inheritance

Limited support for encapsulation

No native support for multithreading and networking

No standard libraries for computer graphics and several other application


programming needs

A number of these features are available as extensions in some compilers, or can be


supplied by third-party libraries, or can be simulated by adopting certain coding
disciplines.

[edit]

Undefined behavior

Many operations in C that have undefined behavior are not required to be


diagnosed at compile time. In the case of C, "undefined behavior" means that the
exact behavior which arises is not specified by the standard, and exactly what will
happen does not have to be documented by the C implementation. A famous,
although misleading, expression in the newsgroups comp.std.c and comp.lang.c is
that the program could cause "demons to fly out of your nose."[7] Sometimes in
practice what happens for an instance of undefined behavior is a bug that is hard to
track down and which may corrupt the contents of memory. Sometimes a particular
compiler generates reasonable and well-behaved actions that are completely
different from those that would be obtained using a different C compiler. The reason
some behavior has been left undefined is to allow compilers for a wide variety of
instruction set architectures to generate more efficient executable code for well-
defined behavior, which was deemed important for C's primary role as a systems
implementation language; thus C makes it the programmer's responsibility to avoid
undefined behavior, possibly using tools to find parts of a program whose behavior
is undefined. Examples of undefined behavior are:

accessing outside the bounds of an array

overflowing a signed integer

reaching the end of a non-void function without finding a return statement, when
the return value is used
reading the value of a variable before initializing it

These operations are all programming errors that could occur using many
programming languages; C draws criticism because its standard explicitly identifies
numerous cases of undefined behavior, including some where the behavior could
have been made well defined, and does not specify any run-time error handling
mechanism.

Invoking fflush() on a stream opened for input is an example of a different kind of


undefined behavior, not necessarily a programming error but a case for which some
conforming implementations may provide well-defined, useful semantics (in this
example, presumably discarding input through the next new-line) as an allowed
extension. Use of such nonstandard extensions generally limits software portability.

[edit]

History

[edit]

Early developments

The initial development of C occurred at AT&T Bell Labs between 1969 and 1973;
according to Ritchie, the most creative period occurred in 1972. It was named "C"
because many of its features were derived from an earlier language called "B",
which according to Ken Thompson was a stripped-down version of the BCPL
programming language.

The origin of C is closely tied to the development of the Unix operating system,
originally implemented in assembly language on a PDP-7 by Ritchie and Thompson,
incorporating several ideas from colleagues. Eventually they decided to port the
operating system to a PDP-11. B's lack of functionality to take advantage of some of
the PDP-11's features, notably byte addressability, led to the development of an
early version of the C programming language.

The original PDP-11 version of the Unix system was developed in assembly
language. By 1973, with the addition of struct types, the C language had become
powerful enough that most of the Unix kernel was rewritten in C. This was one of
the first operating system kernels implemented in a language other than assembly.
(Earlier instances include the Multics system (written in PL/I), and MCP (Master
Control Program) for the Burroughs B5000 written in ALGOL in 1961.)

[edit]

K&R C

In 1978, Brian Kernighan and Dennis Ritchie published the first edition of The C
Programming Language. This book, known to C programmers as "K&R", served for
many years as an informal specification of the language. The version of C that it
describes is commonly referred to as K&R C. The second edition of the book covers
the later ANSI C standard.

K&R introduced several language features:

standard I/O library

long int data type

unsigned int data type

compound assignment operators of the form =op (such as =-) were changed to the
form op= to remove the semantic ambiguity created by such constructs as i=-10,
which had been interpreted as i =- 10 instead of the possibly intended i = -10

Even after the publication of the 1989 C standard, for many years K&R C was still
considered the "lowest common denominator" to which C programmers restricted
themselves when maximum portability was desired, since many older compilers
were still in use, and because carefully written K&R C code can be legal Standard C
as well.

In early versions of C, only functions that returned a non-integer value needed to be


declared if used before the function definition; a function used without any previous
declaration was assumed to return an integer, if its value was used.

For example:
long int SomeFunction();

/* int OtherFunction(); */

/* int */ CallingFunction()

long int test1;

register /* int */ test2;

test1 = SomeFunction();

if (test1 > 0)

test2 = 0;

else

test2 = OtherFunction();

return test2;

All the above commented-out int declarations could be omitted in K&R C.

Since K&R function declarations did not include any information about function
arguments, function parameter type checks were not performed, although some
compilers would issue a warning message if a local function was called with the
wrong number of arguments, or if multiple calls to an external function used
different numbers or types of arguments. Separate tools such as Unix's lint utility
were developed that (among other things) could check for consistency of function
use across multiple source files.
In the years following the publication of K&R C, several unofficial features were
added to the language, supported by compilers from AT&T and some other vendors.
These included:

void functions

functions returning struct or union types (rather than pointers)

assignment for struct data types

enumerated types

The large number of extensions and lack of agreement on a standard library,


together with the language popularity and the fact that not even the Unix compilers
precisely implemented the K&R specification, led to the necessity of
standardization.

[edit]

ANSI C and ISO C

Main article: ANSI C

During the late 1970s and 1980s, versions of C were implemented for a wide variety
of mainframe computers, minicomputers, and microcomputers, including the IBM
PC, as its popularity began to increase significantly.

In 1983, the American National Standards Institute (ANSI) formed a committee,


X3J11, to establish a standard specification of C. In 1989, the standard was ratified
as ANSI X3.159-1989 "Programming Language C." This version of the language is
often referred to as ANSI C, Standard C, or sometimes C89.

In 1990, the ANSI C standard (with formatting changes) was adopted by the
International Organization for Standardization (ISO) as ISO/IEC 9899:1990, which is
sometimes called C90. Therefore, the terms "C89" and "C90" refer to the same
programming language.
ANSI, like other national standards bodies, no longer develops the C standard
independently, but defers to the ISO C standard. National adoption of updates to the
international standard typically occurs within a year of ISO publication.

One of the aims of the C standardization process was to produce a superset of K&R
C, incorporating many of the unofficial features subsequently introduced. The
standards committee also included several additional features such as function
prototypes (borrowed from C++), void pointers, support for international character
sets and locales, and preprocessor enhancements. The syntax for parameter
declarations was also augmented to include the style used in C++, although the
K&R interface continued to be permitted, for compatibility with existing source
code.

C89 is supported by current C compilers, and most C code being written nowadays
is based on it. Any program written only in Standard C and without any hardware-
dependent assumptions will run correctly on any platform with a conforming C
implementation, within its resource limits. Without such precautions, programs may
compile only on a certain platform or with a particular compiler, due, for example,
to the use of non-standard libraries, such as GUI libraries, or to a reliance on
compiler- or platform-specific attributes such as the exact size of data types and
byte endianness.

In cases where code must be compilable by either standard-conforming or K&R C-


based compilers, the __STDC__ macro can be used to split the code into Standard
and K&R sections to take advantage of features available only in Standard C.

[edit]

C99

Main article: C99

After the ANSI/ISO standardization process, the C language specification remained


relatively static for some time, whereas C++ continued to evolve, largely during its
own standardization effort. In 1995 Normative Amendment 1 to the 1990 C
standard was published, to correct some details and to add more extensive support
for international character sets. The C standard was further revised in the late
1990s, leading to the publication of ISO/IEC 9899:1999 in 1999, which is commonly
referred to as "C99." It has since been amended three times by Technical
Corrigenda. The international C standard is maintained by the working group
ISO/IEC JTC1/SC22/WG14.

C99 introduced several new features, including inline functions, several new data
types (including long long int and a complex type to represent complex numbers),
variable-length arrays, support for variadic macros (macros of variable arity) and
support for one-line comments beginning with //, as in BCPL or C++. Many of these
had already been implemented as extensions in several C compilers.

C99 is for the most part backward compatible with C90, but is stricter in some ways;
in particular, a declaration that lacks a type specifier no longer has int implicitly
assumed. A standard macro __STDC_VERSION__ is defined with value 199901L to
indicate that C99 support is available. GCC, Sun Studio and other C compilers now
support many or all of the new features of C99.

[edit]

C1X

Main article: C1X

In 2007, work began in anticipation of another revision of the C standard, informally


called "C1X". The C standards committee has adopted guidelines to limit the
adoption of new features that have not been tested by existing implementations.

[edit]

Uses

C's primary use is for "system programming", including implementing operating


systems and embedded system applications, due to a combination of desirable
characteristics such as code portability and efficiency, ability to access specific
hardware addresses, ability to "pun" types to match externally imposed data access
requirements, and low runtime demand on system resources. C can also be used for
website programming using CGI as a "gateway" for information between the Web
application, the server, and the browser.[8] Some factors to choose C over
Interpreted languages are its speed, stability and less susceptibility to changes in
operating environments due to its compiled nature.[9]
One consequence of C's wide acceptance and efficiency is that compilers, libraries,
and interpreters of other programming languages are often implemented in C.

C is sometimes used as an intermediate language by implementations of other


languages. This approach may be used for portability or convenience; by using C as
an intermediate language, it is not necessary to develop machine-specific code
generators. Some compilers which use C this way are BitC, Gambit, the Glasgow
Haskell Compiler, Squeak, and Vala.

Unfortunately, C was designed as a programming language, not as a compiler


target language, and is thus less than ideal for use as an intermediate language.
This has led to development of C-based intermediate languages such as C--.

C has also been widely used to implement end-user applications, but as applications
became larger, much of that development shifted to other languages.

[edit]

Syntax

Main article: C syntax

See also: C variable types and declarations

Unlike languages such as FORTRAN 77, C source code is free-form which allows
arbitrary use of whitespace to format code, rather than column-based or text-line-
based restrictions. Comments may appear either between the delimiters /* and */,
or (in C99) following // until the end of the line.

Each source file contains declarations and function definitions. Function definitions,
in turn, contain declarations and statements. Declarations either define new types
using keywords such as struct, union, and enum, or assign types to and perhaps
reserve storage for new variables, usually by writing the type followed by the
variable name. Keywords such as char and int specify built-in types. Sections of
code are enclosed in braces ({ and }, sometimes called "curly brackets") to limit the
scope of declarations and to act as a single statement for control structures.
As an imperative language, C uses statements to specify actions. The most common
statement is an expression statement, consisting of an expression to be evaluated,
followed by a semicolon; as a side effect of the evaluation, functions may be called
and variables may be assigned new values. To modify the normal sequential
execution of statements, C provides several control-flow statements identified by
reserved keywords. Structured programming is supported by if(-else) conditional
execution and by do-while, while, and for iterative execution (looping). The for
statement has separate initialization, testing, and reinitialization expressions, any or
all of which can be omitted. break and continue can be used to leave the innermost
enclosing loop statement or skip to its reinitialization. There is also a non-structured
goto statement which branches directly to the designated label within the function.
switch selects a case to be executed based on the value of an integer expression.

Expressions can use a variety of built-in operators (see below) and may contain
function calls. The order in which arguments to functions and operands to most
operators are evaluated is unspecified. The evaluations may even be interleaved.
However, all side effects (including storage to variables) will occur before the next
"sequence point"; sequence points include the end of each expression statement,
and the entry to and return from each function call. Sequence points also occur
during evaluation of expressions containing certain operators(&&, ||, ?: and the
comma operator). This permits a high degree of object code optimization by the
compiler, but requires C programmers to take more care to obtain reliable results
than is needed for other programming languages.

Although mimicked by many languages because of its widespread familiarity, C's


syntax has often been criticized. For example, Kernighan and Ritchie say in the
Introduction of The C Programming Language, "C, like any other language, has its
blemishes. Some of the operators have the wrong precedence; some parts of the
syntax could be better."

Some specific problems worth noting are:

Not checking number and types of arguments when the function declaration has an
empty parameter list. (This provides backward compatibility with K&R C, which
lacked prototypes.)

Some questionable choices of operator precedence, as mentioned by Kernighan and


Ritchie above, such as == binding more tightly than & and | in expressions like x &
1 == 0.
The use of the = operator, used in mathematics for equality, to indicate
assignment, following the precedent of Fortran, PL/I, and BASIC, but unlike ALGOL
and its derivatives. Ritchie made this syntax design decision consciously, based
primarily on the argument that assignment occurs more often than comparison.

Similarity of the assignment and equality operators (= and ==), making it easy to
accidentally substitute one for the other. C's weak type system permits each to be
used in the context of the other without a compilation error (although some
compilers produce warnings). For example, the conditional expression in if (a=b) is
only true if a is not zero after the assignment.[10]

A lack of infix operators for complex objects, particularly for string operations,
making programs which rely heavily on these operations (implemented as functions
instead) somewhat difficult to read.

A declaration syntax that some find unintuitive, particularly for function pointers.
(Ritchie's idea was to declare identifiers in contexts resembling their use:
"declaration reflects use".)

[edit]

Operators

Main article: Operators in C and C++

C supports a rich set of operators, which are symbols used within an expression to
specify the manipulations to be performed while evaluating that expression. C has
operators for:

arithmetic (+, -, *, /, %)

equality testing (==, !=)

order relations (<, <=, >, >=)

boolean logic (!, &&, ||)

bitwise logic (~, &, |, ^)

bitwise shifts (<<, >>)

assignment (=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=)

increment and decrement (++, --)

reference and dereference (&, *, [ ])


conditional evaluation (? :)

member selection (., ->)

type conversion (( ))

object size (sizeof)

function argument collection (( ))

sequencing (,)

subexpression grouping (( ))

C has a formal grammar, specified by the C standard.

[edit]

Integer-float conversion and rounding

The type casting syntax can be used to convert values between an integer type and
a floating-point type, or between two integer types or two float types with different
sizes; e.g. (long int)sqrt(1000.0), (double)(256*256), or (float)sqrt(1000.0).
Conversions are implicit in several contexts, e.g. when assigning a value to a
variable or to a function parameter, when using a floating-point value as index to a
vector, or in arithmetic operations on operand with different types.

Unlike some other cases of type casting (where the bit encoding of the operands
are simply re-interpreted according to the target type), conversions between
integers and floating-point values generally change the bit encoding so as to
preserve the numerical value of the operand, to the extent possible. In particular,
conversion from an integer to a floating-point type will preserve its numeric value
exactly — unless the number of fraction bits in the target type is insufficient, in
which case the least-significant bits are lost.

Conversion from a floating-point value to an integer type entails truncation of any


fractional part (i.e. the value is rounded "towards zero"). For other kinds of
rounding, the C99 standard specifies (in <math.h>) the following functions:

round(): round to nearest integer, halfway away from zero


rint(), nearbyint(): round according to current floating-point rounding direction

ceil(): smallest integral value not less than argument (round up)

floor(): largest integral value (in double representation) not greater than argument
(round down)

trunc(): round towards zero (same as typecasting to an int)

All these functions take a double argument and return a double result, which may
then be cast to an integer if necessary.

The conversion of a float value to the double type preserves the numerical value
exactly, while the opposite conversion rounds the value to fit in the smaller number
of fraction bits, usually towards zero. (Since float also has a smaller exponent range,
the conversion may yield an infinite value.) Some compilers will silently convert
float values to in some contexts, e.g. function parameters declared as float may be
actually passed as double.

In machines that comply with the IEEE floating point standard, some rounding
events are affected by the current rounding mode (which includes round-to-even,
round-down, round-up, and round-to-zero), which may be retrieved and set using
the fegetround()/fesetround() functions defined in <fenv.h>.

Integer arithmetic in C assumes the 2's complement internal encoding. In particular,


conversion of any integer value to any integer type with nbits preserves the value
modulo 2n. Thus, for example, if char is 8 bits wide, then (unsigned char)456 and
(unsigned char)(-56) both yield 200; while (signed char)456 and (signed char)(-56)
both yield -56. Conversion of a signed integer value to a wider signer integer type
entails sign-bit replication; all other integer-to-integer conversions entail discarding
bits or padding with zero bits, always at the most significant end.

[edit]

"Hello, world" example

The "hello, world" example which appeared in the first edition of K&R has become
the model for an introductory program in most programming textbooks, regardless
of programming language. The program prints "hello, world" to the standard output,
which is usually a terminal or screen display.

The original version was:

main()

printf("hello, world\n");

A standard-conforming "hello, world" program is:[11]

#include <stdio.h>

int main(void)

printf("hello, world\n");

return 0;

The first line of the program contains a preprocessing directive, indicated by


#include. This causes the preprocessor — the first tool to examine source code as it
is compiled — to substitute the line with the entire text of the stdio.h standard
header, which contains declarations for standard input and output functions such as
printf. The angle brackets surrounding stdio.h indicate that stdio.h is located using a
search strategy that prefers standard headers to other headers having the same
name. Double quotes may also be used to include local or project-specific header
files.

The next line indicates that a function named main is being defined. The main
function serves a special purpose in C programs: The run-time environment calls the
main function to begin program execution. The type specifier int indicates that the
return value, the value that is returned to the invoker (in this case the run-time
environment) as a result of evaluating the main function, is an integer. The keyword
void as a parameter list indicates that the main function takes no arguments.[12]

The opening curly brace indicates the beginning of the definition of the main
function.

The next line calls (diverts execution to) a function named printf, which was
declared in stdio.h and is supplied from a system library. In this call, the printf
function is passed (provided with) a single argument, the address of the first
character in the string literal "hello, world\n". The string literal is an unnamed array
with elements of type char, set up automatically by the compiler with a final 0-
valued character to mark the end of the array (printf needs to know this). The \n is
an escape sequence that C translates to a newline character, which on output
signifies the end of the current line. The return value of the printf function is of type
int, but it is silently discarded since it is not used. (A more careful program might
test the return value to determine whether or not the printf function succeeded.)
The semicolon ; terminates the statement.

The return statement terminates the execution of the main function and causes it to
return the integer value 0, which is interpreted by the run-time system as an exit
code indicating successful execution.

The closing curly brace indicates the end of the code for the main function.

[edit]

Data structures

C has a static weak typing type system that shares some similarities with that of
other ALGOL descendants such as Pascal. There are built-in types for integers of
various sizes, both signed and unsigned, floating-point numbers, characters, and
enumerated types (enum). C99 added a boolean datatype. There are also derived
types including arrays, pointers, records (struct), and untagged unions (union).

C is often used in low-level systems programming where escapes from the type
system may be necessary. The compiler attempts to ensure type correctness of
most expressions, but the programmer can override the checks in various ways,
either by using a type cast to explicitly convert a value from one type to another, or
by using pointers or unions to reinterpret the underlying bits of a value in some
other way.

[edit]

Pointers

C supports the use of pointers, a very simple type of reference that records, in
effect, the address or location of an object or function in memory. Pointers can be
dereferenced to access data stored at the address pointed to, or to invoke a
pointed-to function. Pointers can be manipulated using assignment and also pointer
arithmetic. The run-time representation of a pointer value is typically a raw memory
address (perhaps augmented by an offset-within-word field), but since a pointer's
type includes the type of the thing pointed to, expressions including pointers can be
type-checked at compile time. Pointer arithmetic is automatically scaled by the size
of the pointed-to data type. (See Array-pointer interchangeability below.) Pointers
are used for many different purposes in C. Text strings are commonly manipulated
using pointers into arrays of characters. Dynamic memory allocation, which is
described below, is performed using pointers. Many data types, such as trees, are
commonly implemented as dynamically allocated struct objects linked together
using pointers. Pointers to functions are useful for callbacks from event handlers.

A null pointer is a pointer value that points to no valid location (it is often
represented by address zero). Dereferencing a null pointer is therefore
meaningless, typically resulting in a run-time error. Null pointers are useful for
indicating special cases such as no next pointer in the final node of a linked list, or
as an error indication from functions returning pointers.

Void pointers (void *) point to objects of unknown type, and can therefore be used
as "generic" data pointers. Since the size and type of the pointed-to object is not
known, void pointers cannot be dereferenced, nor is pointer arithmetic on them
allowed, although they can easily be (and in many contexts implicitly are) converted
to and from any other object pointer type.

Careless use of pointers is potentially dangerous. Because they are typically


unchecked, a pointer variable can be made to point to any arbitrary location, which
can cause undesirable effects. Although properly-used pointers point to safe places,
they can be made to point to unsafe places by using invalid pointer arithmetic; the
objects they point to may be deallocated and reused (dangling pointers); they may
be used without having been initialized (wild pointers); or they may be directly
assigned an unsafe value using a cast, union, or through another corrupt pointer. In
general, C is permissive in allowing manipulation of and conversion between pointer
types, although compilers typically provide options for various levels of checking.
Some other programming languages address these problems by using more
restrictive reference types.

[edit]

Arrays

Array types in C are traditionally of a fixed, static size specified at compile time.
(The more recent C99 standard also allows a form of variable-length arrays.)
However, it is also possible to allocate a block of memory (of arbitrary size) at run-
time, using the standard library's malloc function, and treat it as an array. C's
unification of arrays and pointers (see below) means that true arrays and these
dynamically-allocated, simulated arrays are virtually interchangeable. Since arrays
are always accessed (in effect) via pointers, array accesses are typically not
checked against the underlying array size, although the compiler may provide
bounds checking as an option. Array bounds violations are therefore possible and
rather common in carelessly written code, and can lead to various repercussions,
including illegal memory accesses, corruption of data, buffer overruns, and run-time
exceptions.

C does not have a special provision for declaring multidimensional arrays, but rather
relies on recursion within the type system to declare arrays of arrays, which
effectively accomplishes the same thing. The index values of the resulting
"multidimensional array" can be thought of as increasing in row-major order.

Although C supports static arrays, it is not required that array indices be validated
(bounds checking). For example, one can try to write to the sixth element of an
array with five elements, generally yielding undesirable results. This type of bug,
called a buffer overflow or buffer overrun, is notorious for causing a number of
security problems. Since bounds checking elimination technology was largely
nonexistent when C was defined, bounds checking came with a severe performance
penalty, particularly in numerical computation. A few years earlier, some Fortran
compilers had a switch to toggle bounds checking on or off; however, this would
have been much less useful for C, where array arguments are passed as simple
pointers.

Multidimensional arrays are commonly used in numerical algorithms (mainly from


applied linear algebra) to store matrices. The structure of the C array is well suited
to this particular task. However, since arrays are passed merely as pointers, the
bounds of the array must be known fixed values or else explicitly passed to any
subroutine that requires them, and dynamically sized arrays of arrays cannot be
accessed using double indexing. (A workaround for this is to allocate the array with
an additional "row vector" of pointers to the columns.)

C99 introduced "variable-length arrays" which address some, but not all, of the
issues with ordinary C arrays.

See also: C string

[edit]

Array-pointer interchangeability

A distinctive (but potentially confusing) feature of C is its treatment of arrays and


pointers. The array-subscript notation x[i] can also be used when x is a pointer; the
interpretation (using pointer arithmetic) is to access the (i + 1)th object of several
adjacent data objects pointed to by x, counting the object that x points to (which is
x[0]) as the first element of the array.

Formally, x[i] is equivalent to *(x + i). Since the type of the pointer involved is
known to the compiler at compile time, the address that x + i points to is not the
address pointed to by x incremented by i bytes, but rather incremented by i
multiplied by the size of an element that x points to. The size of these elements can
be determined with the operator sizeof by applying it to any dereferenced element
of x, as in n = sizeof *x or n = sizeof x[0].

Furthermore, in most expression contexts (a notable exception is sizeof x), the


name of an array is automatically converted to a pointer to the array's first element;
this implies that an array is never copied as a whole when named as an argument
to a function, but rather only the address of its first element is passed. Therefore,
although function calls in C use pass-by-value semantics, arrays are in effect passed
by reference.

The number of elements in a declared array x can be determined as sizeof x / sizeof


x[0].

An interesting demonstration of the interchangeability of pointers and arrays is


shown below. The four assignments are equivalent and each is valid C code.

/* x is an array and i is an integer */

x[i] = 1; /* equivalent to *(x + i) */

*(x + i) = 1;

*(i + x) = 1;

i[x] = 1; /* uncommon usage, but correct: i[x] is equivalent to *(i + x) */

Note that the last line contains the uncommon, but semantically correct, expression
i[x], which appears to interchange the index variable i with the array variable x. This
last line might be found in obfuscated C code, but its use is rare among C
programmers.

Despite this apparent equivalence between array and pointer variables, there is still
a distinction to be made between them. Even though the name of an array is, in
most expression contexts, converted into a pointer (to its first element), this pointer
does not itself occupy any storage, unlike a pointer variable. Consequently, what an
array "points to" cannot be changed, and it is impossible to assign a value to an
array variable. (Array values may be copied, however, e.g., by using the memcpy
function.)

[edit]

Memory management

One of the most important functions of a programming language is to provide


facilities for managing memory and the objects that are stored in memory. C
provides three distinct ways to allocate memory for objects:
Static memory allocation: space for the object is provided in the binary at compile-
time; these objects have an extent (or lifetime) as long as the binary which contains
them is loaded into memory

Automatic memory allocation: temporary objects can be stored on the stack, and
this space is automatically freed and reusable after the block in which they are
declared is exited

Dynamic memory allocation: blocks of memory of arbitrary size can be requested at


run-time using library functions such as malloc from a region of memory called the
heap; these blocks persist until subsequently freed for reuse by calling the library
function free

These three approaches are appropriate in different situations and have various
tradeoffs. For example, static memory allocation has no allocation overhead,
automatic allocation may involve a small amount of overhead, and dynamic
memory allocation can potentially have a great deal of overhead for both allocation
and deallocation. On the other hand, stack space is typically much more limited and
transient than either static memory or heap space, and dynamic memory allocation
allows allocation of objects whose size is known only at run-time. Most C programs
make extensive use of all three.

Where possible, automatic or static allocation is usually preferred because the


storage is managed by the compiler, freeing the programmer of the potentially
error-prone chore of manually allocating and releasing storage. However, many
data structures can grow in size at runtime, and since static allocations (and
automatic allocations in C89 and C90) must have a fixed size at compile-time, there
are many situations in which dynamic allocation must be used. Prior to the C99
standard, variable-sized arrays were a common example of this (see malloc for an
example of dynamically allocated arrays).

Automatically and dynamically allocated objects are only initialized if an initial value
is explicitly specified; otherwise they initially have indeterminate values (typically,
whatever bit pattern happens to be present in the storage, which might not even
represent a valid value for that type). If the program attempts to access an
uninitialized value, the results are undefined. Many modern compilers try to detect
and warn about this problem, but both false positives and false negatives occur.
Another issue is that heap memory allocation has to be manually synchronized with
its actual usage in any program in order for it to be reused as much as possible. For
example, if the only pointer to a heap memory allocation goes out of scope or has
its value overwritten before free() has been called, then that memory cannot be
recovered for later reuse and is essentially lost to the program, a phenomenon
known as a memory leak. Conversely, it is possible to release memory too soon and
continue to access it; however, since the allocation system can re-allocate or itself
use the freed memory, unpredictable behavior is likely to occur when the multiple
users corrupt each other's data. Typically, the symptoms will appear in a portion of
the program far removed from the actual error. Such issues are ameliorated in
languages with automatic garbage collection or RAII.

[edit]

Libraries

The C programming language uses libraries as its primary method of extension. In


C, a library is a set of functions contained within a single "archive" file. Each library
typically has a header file, which contains the prototypes of the functions contained
within the library that may be used by a program, and declarations of special data
types and macro symbols used with these functions. In order for a program to use a
library, it must include the library's header file, and the library must be linked with
the program, which in many cases requires compiler flags (e.g., -lm, shorthand for
"math library").

The most common C library is the C standard library, which is specified by the ISO
and ANSI C standards and comes with every C implementation (“freestanding”
[embedded] C implementations may provide only a subset of the standard library).
This library supports stream input and output, memory allocation, mathematics,
character strings, and time values.

Another common set of C library functions are those used by applications


specifically targeted for Unix and Unix-like systems, especially functions which
provide an interface to the kernel. These functions are detailed in various standards
such as POSIX and the Single UNIX Specification.

Since many programs have been written in C, there are a wide variety of other
libraries available. Libraries are often written in C because C compilers generate
efficient object code; programmers then create interfaces to the library so that the
routines can be used from higher-level languages like Java, Perl, and Python.

[edit]

Language tools

Tools have been created to help C programmers avoid some of the problems
inherent in the language, such as statements with undefined behavior or
statements that are not a good practice because they are more likely to result in
unintended behavior or run-time errors.

Automated source code checking and auditing are beneficial in any language, and
for C many such tools exist, such as Lint. A common practice is to use Lint to detect
questionable code when a program is first written. Once a program passes Lint, it is
then compiled using the C compiler. Also, many compilers can optionally warn
about syntactically valid constructs that are likely to actually be errors. MISRA C is a
proprietary set of guidelines to avoid such questionable code, developed for
embedded systems.

There are also compilers, libraries and operating system level mechanisms for
performing array bounds checking, buffer overflow detection, serialization and
automatic garbage collection, that are not a standard part of C.

Tools such as Purify, Valgrind, and linking with libraries containing special versions
of the memory allocation functions can help uncover runtime memory errors.

[edit]

Related languages

C has directly or indirectly influenced many later languages such as Java, Perl, PHP,
JavaScript, LPC, C# and Unix's C Shell. The most pervasive influence has been
syntactical: all of the languages mentioned combine the statement and (more or
less recognizably) expression syntax of C with type systems, data models and/or
large-scale program structures that differ from those of C, sometimes radically.
When object-oriented languages became popular, C++ and Objective-C were two
different extensions of C that provided object-oriented capabilities. Both languages
were originally implemented as source-to-source compilers -- source code was
translated into C, and then compiled with a C compiler.

Bjarne Stroustrup devised the C++ programming language as one approach to


providing object-oriented functionality with C-like syntax. C++ adds greater typing
strength, scoping and other tools useful in object-oriented programming and
permits generic programming via templates. Nearly a superset of C, C++ now
supports most of C, with a few exceptions (see Compatibility of C and C++ for an
exhaustive list of differences).

Unlike C++, which maintains nearly complete backwards compatibility with C, the D
language makes a clean break with C while maintaining the same general syntax. It
abandons a number of features of C which Walter Bright (the designer of D)
considered undesirable, including the C preprocessor and trigraphs. Some, but not
all, of D's extensions to C overlap with those of C++.

Objective-C was originally a very "thin" layer on top of, and remains a strict
superset of, C that permits object-oriented programming using a hybrid
dynamic/static typing paradigm. Objective-C derives its syntax from both C and
Smalltalk: syntax that involves preprocessing, expressions, function declarations
and function calls is inherited from C, while the syntax for object-oriented features
was originally taken from Smalltalk.

Limbo is a language developed by the same team at Bell Labs that was responsible
for C and Unix, and while retaining some of the syntax and the general style,
introduced garbage collection, CSP based concurrency and other major innovations.
[citation needed]

Python has a different sort of C heritage. While the syntax and semantics of Python
are radically different from C, the most widely used Python implementation,
CPython, is an open source C program. This allows C users to extend Python with C,
or embed Python into C programs. This close relationship is one of the key factors
leading to Python's success as a general-use dynamic language.
Perl is another example of a popular programming language rooted in C. However,
unlike Python, Perl's syntax does closely follow C syntax. The standard Perl
implementation is written in C and supports extensions written in C.

[edit]

See also

Augmented assignment

Comparison of programming languages

International Obfuscated C Code Contest

List of articles with C programs

List of compilers

Comparison of Pascal and C

[edit]

Footnotes

^ Dennis M. Ritchie (January 1993). "The Development of the C Language".


Retrieved Jan 1 2008. "The scheme of type composition adopted by C owes
considerable debt to Algol 68, although it did not, perhaps, emerge in a form that
Algol's adherents would approve of."

^ Stewart, Bill (January 7, 2000). "History of the C Programming Language". Living


Internet. Retrieved 2006-10-31.

^ Patricia K. Lawlis, c.j. kemp systems, inc. (1997). "Guidelines for Choosing a
Computer Language: Support for the Visionary Organization". Ada Information
Clearinghouse. Retrieved 2006-07-18.

^ "Programming Language Popularity". 2009. Retrieved 2009-01-16.

^ "TIOBE Programming Community Index". 2009. Retrieved 2009-05-06.

^ C99 added a _Bool type, but it was not retrofitted into the language's existing
Boolean contexts. One can simulate a Boolean datatype, e.g. with enum { false,
true } bool;, but this does not provide all of the features of a separate Boolean
datatype.

^ "Jargon File entry for nasal demons".

^ Dr. Dobb's Sourcebook. U.S.A.: Miller Freeman, Inc.. Nov/Dec 1995 issue.
^ "Using C for CGI Programming". linuxjournal.com. 2005-03-01. Retrieved 2010-01-
04.

^ "10 Common Programming Mistakes in C". Cs.ucr.edu. Retrieved 2009-06-26.

^ The original example code will compile on most modern compilers that are not in
strict standard compliance mode, but it does not fully conform to the requirements
of either C89 or C99. In fact, C99 requires that a diagnostic message be produced.

^ The main function actually has two arguments, int argc and char *argv[],
respectively, which can be used to handle command line arguments. The C
standard requires that both forms of main be supported, which is special treatment
not afforded any other function.

[edit]

References

Brian Kernighan, Dennis Ritchie: The C Programming Language. Also known as K&R
— The original book on C.

1st, Prentice Hall 1978; ISBN 0-13-110163-3. Pre-ANSI C.

2nd, Prentice Hall 1988; ISBN 0-13-110362-8. ANSI C.

ISO/IEC 9899. Official C99 documents, including technical corrigenda and a


rationale. As of 2007 the latest version of the standard is ISO/IEC 9899:TC3PDF
(3.61 MB).

Samuel P. Harbison, Guy L. Steele: C: A Reference Manual. This book is excellent as


a definitive reference manual, and for those working on C compilers. The book
contains a BNF grammar for C.

5th, Prentice Hall 2002; ISBN 0-13-089592-X.

Derek M. Jones: The New C Standard: A Cultural and Economic Commentary,


Addison-Wesley, ISBN 0-201-70917-1, online material

Robert Sedgewick: Algorithms in C, Addison-Wesley, ISBN 0-201-31452-5 (Part 1–4)


and ISBN 0-201-31663-3 (Part 5)

William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery:


Numerical Recipes in C (The Art of Scientific Computing), ISBN 0-521-43108-5

[edit]

External links Wikibooks has a book on the topic of

C Programming
Wikiversity has learning materials about Topic:C

The current draft Standard (C99 with Technical corrigenda TC1, TC2, and TC3
included)PDF (3.61 MB)

Draft ANSI C Standard (ANSI X3J11/88-090) (May 13, 1988), Third Public Review

Draft ANSI C Rationale (ANSI X3J11/88-151) (Nov 18, 1988)

ISO C Working Group (official Web site)

The Development of the C Language by Dennis M. Ritchie

comp.lang.c Frequently Asked Questions

The C Book by M.Banahan-D.Brady-M.Doran (Addison-Wesley, 2nd ed.) — book for


beginning and intermediate students, now out of print and free to download.

The New C Standard: An economic and cultural commentaryPDF (10.0 MB) — An


unpublished book about "detailed analysis of the International Standard for the C
language."

A New C Compiler paper by Ken Thompson.[show]

v•d•e

Integrated development environments for C and C++

[show]

v•d•e

C programming language

Categories: C programming language | Curly bracket programming languages |


Procedural programming languages | American inventions

Article Discussion Edit this page History

Try Beta Log in / create account

Navigation
Main page

Contents

Featured content

Current events

Random article

Search

Interaction

About Wikipedia

Community portal

Recent changes

Contact Wikipedia

Donate to Wikipedia

Help

Toolbox

What links here

Related changes

Upload file

Special pages

Printable version

Permanent link

Cite this page

Languages

Afrikaans

Alemannisch

አማርኛ
‫العربية‬

Aragonés

Asturianu

Azərbaycan

বাংলা

Bân-lâm-gú

Беларуская

Беларуская (тарашкевіца)

Bosanski

Brezhoneg

Български

Català

Česky

Corsu

Cymraeg

Dansk

Deutsch

Eesti

Ελληνικά

Español

Esperanto

Euskara

‫فارسی‬

Français

Gaeilge

Galego
한국어

िहनदी

Hrvatski

Bahasa Indonesia

Interlingua

Íslenska

Italiano

‫עברית‬

ქართული

Kurdî / ‫كوردی‬

Latina

Latviešu

Lietuvių

Magyar

Македонски

Malagasy

മലയാളം

मराठी

Bahasa Melayu

Mìng-dĕ̤ng-ngṳ̄

Монгол

Nederlands

日本語

Norsk (bokmål)

Norsk (nynorsk)

Occitan
ភសែខ្រ

Polski

Português

Română

Русский

Саха тыла

Shqip

Simple English

Slovenčina

Slovenščina

Српски / Srpski

Srpskohrvatski / Српскохрватски

Suomi

Svenska

தமிழ்

Taqbaylit

తలుగు

ไทย

Türkçe

ᨅᨔ ᨕᨘᨁᨗ

Українська

Tiếng Việt

吴语

‫יידיש‬

粵語

Žemaitėška
中文

This page was last modified on 28 January 2010 at 15:20. Text is available under
the Creative Commons Attribution-ShareAlike License; additional terms may apply.
See Terms of Use for details.

Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-


profit organization.Contact us Privacy policy About Wikipedia Disclaimers

Pedoman Umum Ejaan Bahasa Indonesia yang Disempurnakan

Dari Wikisource Indonesia, perpustakaan bebas berbahasa Indonesia Pedoman


Umum Ejaan Bahasa Indonesia yang Disempurnakan

Wikipedia memiliki artikel ensiklopedia yang berkaitan dengan Ejaan Yang


Disempurnakan

Pedoman Umum Ejaan Bahasa Indonesia yang Disempurnakan edisi kedua


berdasarkan Keputusan Menteri Pendidikan dan Kebudayaan Republik Indonesia
Nomor 0543a/U/1987, tanggal 9 September 1987, dicermatkan pada Rapat Kerja
ke-30 Panitia Kerja Sama Kebahasaan di Tugu, tanggal 16–20 Desember 1990 dan
diterima pada Sidang ke-30 Majelis Bahasa Brunei Darussalam-Indonesia-Malaysia
di Bandar Seri Begawan, tanggal 4–6 Maret 1991.Daftar isi:

I. Pemakaian Huruf

A. Huruf Abjad

B. Huruf Vokal

C. Huruf Konsonan

D. Huruf Diftong

E. Gabungan Huruf Konsonan

F. Pemenggalan Kata

II. Pemakaian Huruf Kapital dan Huruf Miring

A. Huruf Kapital atau Huruf Besar

B. Huruf Miring

III. Penulisan Kata

A. Kata Dasar

B. Kata Turunan

C. Kata Ulang

D. Gabungan Kata

E. Kata Ganti ku, kau, mu, dan nya

F. Kata Depan di, ke, dan dari

G. Kata si dan sang

H. Partikel

I. Singkatan dan Akronim


J. Angka dan Lambang Bilangan

IV. Penulisan Huruf Serapan

V. Pemakaian Tanda Baca

A. Tanda Titik

B. Tanda Koma

C. Tanda Titik Koma

D. Tanda Titik Dua

E. Tanda Hubung

F. Tanda Pisah

G. Tanda Elipsis

H. Tanda Tanya

I. Tanda Seru

J. Tanda Kurung

K. Tanda Kurung Siku

L. Tanda Petik

M. Tanda Petik Tunggal

N. Tanda Garis Miring

O. Tanda Penyingkat (Apostrof)

[sunting]

I. Pemakaian Huruf

[sunting]

A. Huruf Abjad
Abjad yang digunakan dalam ejaan bahasa Indonesia terdiri atas huruf yang
berikut. Nama tiap huruf disertakan di sebelahnya.Huruf Nama Huruf Nama Huruf
Nama

Aa a Jj je Ss es

Bb be Kk ka Tt te

Cc ce Ll el Uu u

Dd de Mm em Vv fe

Ee e Nn en Ww we

Ff ef Oo o Xx eks

Gg ge Pp pe Yy ye

Hh ha Qq ki Zz zet

Ii i Rr er

[sunting]

B. Huruf Vokal

Huruf yang melambangkan vokal dalam bahasa Indonesia terdiri atas huruf a, e, i,
o, dan u.Huruf Vokal Contoh Pemakaian dalam Kata

Di Awal Di Tengah Di Akhir

a api padi lusa

e* enak petak sore

emas kena tipe

i itu simpan murni

o oleh kota radio

u ulang bumi ibu

* Dalam pengajaran lafal kata, dapat digunakan tanda aksen jika ejaan kata
menimbulkan keraguan.

Misalnya:
Anak-anak bermain di teras (téras).

Upacara itu dihadiri pejabat teras pemerintah.

Kami menonton film seri (séri).

Pertandingan itu berakhir seri.

[sunting]

C. Huruf Konsonan

Huruf yang melambangkan konsonan dalam bahasa Indonesia terdiri atas huruf-
huruf b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, y, dan z.Huruf Konsonan
Contoh Pemakaian dalam Kata

Di Awal Di Tengah Di Akhir

b bahasa sebut adab

c cakap kaca –

d dua ada abad

f fakir kafir maaf

g guna tiga balig

h hari saham tuah

j jalan manja mikraj

k kami paksa sesak

– rakyat* bapak*

l lekas alas kesal

m maka kami diam

n nama anak daun

p pasang apa siap

q** Quran Furqan –

r raih bara putar

s sampai asli lemas

t tali mata rapat


v varia lava –

w wanita hawa –

x** xenon – –

y yakin payung –

z zeni lazim juz

* Huruf k di sini melambangkan bunyi hamzah.

** Huruf q dan x digunakan khusus untuk nama dan keperluan ilmu.

[sunting]

D. Huruf Diftong

Di dalam bahasa Indonesia terdapat diftong yang dilambangkan dengan ai, au, dan
oi.Huruf Diftong Contoh Pemakaian dalam Kata

Di Awal Di Tengah Di Akhir

ai ain syaitan pandai

au aula saudara harimau

oi – boikot amboi

[sunting]

E. Gabungan Huruf Konsonan

Di dalam bahasa Indonesia terdapat empat gabungan huruf yang melambangkan


konsonan, yaitu kh, ng, ny, dan sy.Gabungan

Huruf

Konsonan Contoh Pemakaian dalam Kata

Di Awal Di Tengah Di Akhir

kh khusus akhir tarikh

ng ngilu bangun senang

ny nyata hanyut –
sy syarat isyarat arasy

[sunting]

F. Pemenggalan Kata1. Pemenggalan kata pada kata dasar dilakukan sebagai


berikut:

a. Jika di tengah kata ada vokal yang berurutan, pemenggalan kata


itu dilakukan di antara kedua huruf vokal itu.

Misalnya: ma-in, sa-at, bu-ah

Huruf diftong ai, au, dan oi tidak pernah diceraikan sehingga pemenggalan
kata tidak dilakukan di antara kedua huruf itu.

Misalnya: au-la bukan a-u-la

sau-da-ra bukan sa-u-da-ra

am-boi bukan am-bo-i

b. Jika di tengah kata ada huruf konsonan, termasuk gabungan huruf konsonan,
di antara dua buah huruf vokal, pemenggalan dilakukan sebelum huruf konsonan.

Misalnya:

ba-pak, ba-rang, su-lit, la-wan, de-ngan, ke-nyang, mu-ta-khir

c. Jika di tengah kata ada dua huruf konsonan yang berurutan, pemenggalan
dilakukan di antara kedua huruf konsonan itu. Gabungan huruf konsonan tidak
pernah diceraikan.

Misalnya:

man-di, som-bong, swas-ta, cap-lok, Ap-ril, bang-sa, makh-luk

d. Jika di tengah kata ada tiga buah huruf konsonan atau lebih, pemenggalan
dilakukan di antara huruf konsonan yang pertama dan huruf konsonan yang kedua.

Misalnya:

in-strumen, ul-tra, in-fra, bang-krut, ben-trik, ikh-las

2. Imbuhan akhiran dan imbuhan awalan, termasuk awalan yang mengalami


perubahan bentuk serta partikel yang biasanya ditulis serangkai dengan kata
dasarnya, dapat dipenggal pada pergantian baris.
Misalnya:

makan-an, me-rasa-kan, mem-bantu, pergi-lah

Catatan: a. Bentuk dasar pada kata turunan sedapat-dapatnya tidak


dipenggal.

b. Akhiran -i tidak dipenggal.

(Lihat keterangan tentang tanda hubung, Bab V, Pasal E, Ayat 1.)

c. Pada kata yang berimbuhan sisipan, pemenggalan kata dilakukan sebagai


berikut.

Misalnya: te-lun-juk, si-nam-bung, ge-li-gi

3. Jika suatu kata terdiri atas lebih dari satu unsur dan salah satu unsur itu
dapat bergabung dengan unsur lain, pemenggalan kata dapat dilakukan

(1) di antara unsur-unsur itu atau

(2) pada unsur gabungan itu sesuai dengan kaidah 1a, 1b, 1c, dan 1d di atas.

Misalnya:

bio-grafi, bi-o-gra-fi

foto-grafi, fo-to-gra-fi

intro-speksi, in-tro-spek-si

kilo-gram, ki-lo-gram

kilo-meter, ki-lo-me-ter

pasca-panen, pas-ca-pa-nen

[sunting]

Keterangan:

Nama orang, badan hukum, dan nama diri yang lain disesuaikan dengan Ejaan
Bahasa Indonesia yang Disempurnakan kecuali jika ada pertimbangan khusus.
[sunting]

II. Pemakaian Huruf Kapital dan Huruf Miring

[sunting]

A. Huruf Kapital atau Huruf Besar1. Huruf kapital atau huruf besar dipakai
sebagai huruf pertama kata pada awal kalimat.

Misalnya:

Dia mengantuk.

Apa maksudnya?

Kita harus bekerja keras.

Pekerjaan itu belum selesai.

2. Huruf kapital dipakai sebagai huruf pertama petikan langsung.

Misalnya:

Adik bertanya, "Kapan kita pulang?"

Bapak menasihatkan, "Berhati-hatilah, Nak!"

"Kemarin engkau terlambat," katanya.

"Besok pagi," kata Ibu, "Dia akan berangkat".

3. Huruf kapital dipakai sebagai huruf pertama dalam ungkapan yang


berhubungan dengan nama Tuhan dan kitab suci, termasuk kata ganti untuk Tuhan.

Misalnya:

Allah, Yang Mahakuasa, Yang Maha Pengasih, Alkitab, Quran, Weda, Islam, Kristen

Tuhan akan menunjukkan jalan yang benar kepada hamba-Nya.

Bimbinglah hamba-Mu, ya Tuhan, ke jalan yang Engkau beri rahmat.

4. Huruf kapital dipakai sebagai huruf pertama nama gelar kehormatan,


keturunan, dan keagamaan yang diikuti nama orang.

Misalnya:

Mahaputra Yamin

Sultan Hasanuddin
Haji Agus Salim

Imam Syafii

Nabi Ibrahim

Huruf kapital tidak dipakai sebagai huruf pertama nama gelar, kehormatan,
keturunan, dan keagamaan yang tidak diikuti nama orang.

Misalnya:

Dia baru saja diangkat menjadi sultan.

Tahun ini ia pergi naik haji.

5. Huruf kapital dipakai sebagai huruf pertama unsur nama jabatan dan pangkat
yang diikuti nama orang atau yang dipakai sebagai pengganti nama orang tertentu,
nama instansi, atau nama tempat.

Misalnya:

Wakil Presiden Adam Malik

Perdana Menteri Nehru

Profesor Supomo

Laksamana Muda Udara Husen Sastranegara

Sekretaris Jenderal Departemen Pertanian

Gubernur Irian Jaya

Huruf kapital tidak dipakai sebagai huruf pertama nama jabatan dan pangkat
yang tidak diikuti nama orang, atau nama tempat.

Misalnya:

Siapa gubernur yang baru dilantik itu?

Kemarin Brigadir Jenderal Ahmad dilantik menjadi mayor jenderal.

6. Huruf kapital dipakai sebagai huruf pertama unsur-unsur nama orang.

Misalnya:

Amir Hamzah

Dewi Sartika

Wage Rudolf Supratman


Halim Perdanakusumah

Ampere

Huruf kapital tidak dipakai sebagai huruf pertama nama orang yang
digunakan sebagai nama sejenis atau satuan ukuran.

Misalnya:

mesin diesel

10 volt

5 ampere

7. Huruf kapital sebagai huruf pertama nama bangsa, suku, dan bahasa.

Misalnya:

bangsa Indonesia

suku Sunda

bahasa Inggris

Huruf kapital tidak dipakai sebagai huruf pertama nama bangsa, suku
bangsa, dan bahasa yang dipakai sebagai bentuk dasar kata turunan.

Misalnya:

mengindonesiakan kata asing

keinggris-inggrisan

8. Huruf kapital dipakai sebagai huruf pertama nama tahun, bulan, hari, hari
raya, dan peristiwa sejarah.

Misalnya: bulan Agustus hari Natal

bulan Maulid Perang Candu

hari Galungan tahun Hijriah

hari Jumat tarikh Masehi

hari Lebaran

Proklamasi Kemerdekaan Indonesia


Huruf kapital tidak dipakai sebagai huruf pertama peristiwa sejarah yang
tidak dipakai sebagai nama.

Misalnya:

Soekarno dan Hatta memproklamasikan kemerdekaan bangsanya.

Perlombaan senjata membawa risiko pecahnya perang dunia.

9. Huruf kapital dipakai sebagai huruf pertama nama geografi.

Misalnya: Asia Tenggara Kali Brantas

Banyuwangi Lembah Baliem

Bukit Barisan Ngarai Sianok

Cirebon Pegunungan Jayawijaya

Danau Toba Selat Lombok

Daratan Tinggi Dieng Tanjung Harapan

Gunung Semeru Teluk Benggala

Jalan Diponegoro Terusan Suez

Jazirah Arab

Huruf kapital tidak dipakai sebagai huruf pertama istilah geografi yang tidak
menjadi unsur nama diri.

Misalnya:

berlayar ke teluk

mandi di kali

menyeberangi selat

pergi ke arah tenggara

Huruf kapital tidak dipakai sebagai huruf pertama nama geografi yang
digunakan sebagai nama jenis.

Misalnya:

garam inggris
gula jawa

kacang bogor

pisang ambon

11. Huruf kapital dipakai sebagai huruf pertama semua unsur nama negara,
lembaga pemerintahan dan ketatanegaraan, serta nama dokumen resmi kecuali
kata seperti dan.

Misalnya:

Republik Indonesia

Majelis Permusyawaratan Rakyat

Departemen Pendidikan dan Kebudayaan

Badan Kesejahteraan Ibu dan Anak

Keputusan Presiden Republik Indonesia, Nomor 57, Tahun 1972

Huruf kapital tidak dipakai sebagai huruf pertama kata yang bukan nama
resmi negara, lembaga pemerintah dan ketatanegaraan, badan, serta nama
dokumen resmi.

Misalnya:

menjadi sebuah republik

beberapa badan hukum

kerja sama antara pemerintah dan rakyat

menurut undang-undang yang berlaku

12. Huruf kapital dipakai sebagai huruf pertama setiap unsur bentuk ulang
sempurna yang terdapat pada nama badan, lembaga pemerintah dan
ketatanegaraan, serta dokumen resmi.

Misalnya:

Perserikatan Bangsa-Bangsa

Yayasan Ilmu-Ilmu Sosial

Undang-Undang Dasar Republik Indonesia

Rancangan Undang-Undang Kepegawaian


13. Huruf kapital dipakai sebagai huruf pertama semua kata (termasuk semua
unsur kata ulang sempurna) di dalam nama buku, majalah, surat kabar, dan judul
karangan kecuali kata seperti di, ke, dari, dan, yang, dan untuk yang tidak terletak
pada posisi awal.

Misalnya:

Saya telah membaca buku Dari Ave Maria ke Jalan Lain ke Roma.

Bacalah majalah Bahasa dan Sastra.

Dia adalah agen surat kabar Sinar Pembangunan.

Ia menyelesaikan makalah "Asas-Asas Hukum Perdata".

14. Huruf kapital dipakai sebagai huruf pertama unsur singkatan nama gelar,
pangkat, dan sapaan.

Misalnya: Dr. doktor

M.A. master of arts

S.H. sarjana hukum

S.S. sarjana sastra

Prof. profesor

Tn. tuan

Ny. nyonya

Sdr. saudara

15. Huruf kapital dipakai sebagai huruf pertama kata penunjuk hubungan
kekerabatan seperti bapak, ibu, saudara, kakak, adik, dan paman yang dipakai
dalam penyapaan dan pengacuan.

Misalnya:

"Kapan Bapak berangkat?" tanya Harto.

Adik bertanya, "Itu apa, Bu?"

Surat Saudara sudah saya terima.

"Silakan duduk, Dik!" kata Ucok.

Besok Paman akan datang.


Mereka pergi ke rumah Pak Camat.

Para ibu mengunjungi Ibu Hasan.

Huruf kapital tidak dipakai sebagai huruf pertama kata penunjuk hubungan
kekerabatan yang tidak dipakai dalam pengacuan atau penyapaan.

Misalnya:

Kita harus menghormati bapak dan ibu kita.

Semua kakak dan adik saya sudah berkeluarga.

16. Huruf kapital dipakai sebagai huruf pertama kata ganti Anda.

Misalnya:

Sudahkah Anda tahu?

Surat Anda telah kami terima.

[sunting]

B. Huruf Miring1. Huruf miring dalam cetakan dipakai untuk menulis nama buku,
majalah, dan surat kabar yang dikutip dalam tulisan.

Misalnya:

majalah Bahasa dan Kesusastraan

buku Negarakertagama karangan Prapanca

surat kabar Suara Karya

2. Huruf miring dalam cetakan dipakai untuk menegaskan atau mengkhususkan


huruf, bagian kata, kata, atau kelompok kata.

Misalnya:

Huruf pertama kata abad ialah a.

Dia bukan menipu, tetapi ditipu.

Bab ini tidak membicarakan penulisan huruf kapital.

Buatlah kalimat dengan berlepas tangan.

3. Huruf miring dalam cetakan dipakai untuk menuliskan kata nama ilmiah atau
ungkapan asing kecuali yang telah disesuaikan ejaannya.
Misalnya:

Nama ilmiah buah manggis ialah Carcinia mangostana.

Politik divide et impera pernah merajalela di negeri ini.

Weltanschauung antara lain diterjemahkan menjadi 'pandangan dunia'.

Tetapi:

Negara itu telah mengalami empat kudeta.

Catatan:

Dalam tulisan tangan atau ketikan, huruf atau kata yang akan dicetak miring diberi
satu garis di bawahnya.

[sunting]

III. Penulisan Kata

[sunting]

A. Kata DasarKata yang berupa kata dasar ditulis sebagai satu kesatuan.

Misalnya:

Ibu percaya bahwa engkau tahu.

Kantor pajak penuh sesak.

Buku itu sangat tebal.

[sunting]

B. Kata Turunan1. Imbuhan (awalan, sisipan, akhiran) ditulis serangkai dengan


kata dasarnya.

Misalnya:

bergeletar

dikelola

penetapan

menengok
mempermainkan

2. Jika bentuk dasar berupa gabungan kata, awalan atau akhiran ditulis
serangkai dengan kata yang langsung mengikuti atau mendahuluinya.

(Lihat juga keterangan tentang tanda hubung, Bab V, Pasal E, Ayat 5.)

Misalnya:

bertepuk tangan

garis bawahi

menganak sungai

sebar luaskan

3. Jika bentuk dasar yang berupa gabungan kata mendapat awalan dan akhiran
sekaligus, unsur gabungan kata itu ditulis serangkai.

(Lihat juga keterangan tentang tanda hubung, Bab V, Pasal E, Ayat 5.)

Misalnya:

menggarisbawahi

menyebarluaskan

dilipatgandakan

penghancurleburan

4. Jika salah satu unsur gabungan kata hanya dipakai dalam kombinasi,
gabungan kata itu ditulis serangkai.

Misalnya: adipati mahasiswa

aerodinamika mancanegara

antarkota multilateral

anumerta narapidana

audiogram nonkolaborasi

awahama Pancasila

bikarbonat panteisme

biokimia paripurna
caturtunggal poligami

dasawarsa pramuniaga

dekameter prasangka

demoralisasi purnawirawan

dwiwarna reinkarnasi

ekawarna saptakrida

ekstrakurikuler semiprofesional

elektroteknik subseksi

infrastruktur swadaya

inkonvensional telepon

introspeksi transmigrasi

kolonialisme tritunggal

kosponsor ultramodern

Catatan:(1) Jika bentuk terikat diikuti oleh kata yang huruf awalnya adalah huruf
kapital, di antara kedua unsur itu dituliskan tanda hubung (-).

Misalnya:

non-Indonesia

pan-Afrikanisme

(2) Jika kata maha sebagai unsur gabungan diikuti oleh kata esa dan kata yang
bukan kata dasar, gabungan itu ditulis terpisah.

Misalnya:

Mudah-mudahan Tuhan Yang Maha Esa melindungi kita.

Marilah kita bersyukur kepada Tuhan Yang Maha Pengasih.

[sunting]
C. Kata UlangBentuk ulang ditulis secara lengkap dengan menggunakan tanda
hubung.

Misalnya:

anak-anak, buku-buku, kuda-kuda, mata-mata, hati-hati, undang-undang, biri-biri,


kupu-kupu, kura-kura, laba-laba, sia-sia, gerak-gerik, huru-hara, lauk-pauk, mondar-
mandir, ramah-tamah, sayur-mayur, centang-perenang, porak-poranda, tunggang-
langgang, berjalan-jalan, dibesar-besarkan, menulis-nulis, terus-menerus, tukar-
menukar, hulubalang-hulubalang, bumiputra-bumiputra

[sunting]

D. Gabungan Kata1. Gabungan kata yang lazim disebut kata majemuk,


termasuk istilah khusus, unsur-unsurnya ditulis terpisah.

Misalnya:

duta besar, kambing hitam, kereta api cepat luar biasa, mata pelajaran, meja tulis,
model linear, orang tua, persegi panjang, rumah sakit umum, simpang empat.

2. Gabungan kata, termasuk istilah khusus, yang mungkin menimbulkan


kesalahan pengertian, dapat ditulis dengan tanda hubung untuk menegaskan
pertalian di antara unsur yang bersangkutan.

Misalnya:

alat pandang-dengar, anak-istri saya, buku sejarah-baru, mesin-hitung tangan, ibu-


bapak kami, watt-jam, orang-tua muda

3. Gabungan kata berikut ditulis serangkai.

Misalnya:

acapkali, adakalanya, akhirulkalam, alhamdulillah, astagfirullah, bagaimana,


barangkali, bilamana, bismillah, beasiswa, belasungkawa, bumiputra, daripada,
darmabakti, darmasiswa, dukacita, halalbihalal, hulubalang, kacamata, kasatmata,
kepada, keratabasa, kilometer, manakala, manasuka, mangkubumi, matahari,
olahraga, padahal, paramasastra, peribahasa, puspawarna, radioaktif, sastramarga,
saputangan, saripati, sebagaimana, sediakala, segitiga, sekalipun, silaturahmi,
sukacita, sukarela, sukaria, syahbandar, titimangsa, wasalam

[sunting]

E. Kata Ganti ku, kau, mu, dan nya


Kata ganti ku dan kau ditulis serangkai dengan kata yang mengikutinya; ku, mu,
dan nya ditulis serangkai dengan kata yang mendahuluinya.

Misalnya:

Apa yang kumiliki boleh kauambil.

Bukuku, bukumu, dan bukunya tersimpan di perpustakaan.

[sunting]

F. Kata Depan di, ke, dan dari

Kata depan di, ke, dan dari ditulis terpisah dari kata yang mengikutinya kecuali di
dalam gabungan kata yang sudah lazim dianggap sebagai satu kata seperti kepada
dan daripada.

(Lihat juga Bab III, Pasal D, Ayat 3.)

Misalnya:

Kain itu terletak di dalam lemari.

Bermalam sajalah di sini.

Di mana Siti sekarang?

Mereka ada di rumah.

Ia ikut terjun ke tengah kancah perjuangan.

Ke mana saja ia selama ini?

Kita perlu berpikir sepuluh tahun ke depan.

Mari kita berangkat ke pasar.

Saya pergi ke sana-sini mencarinya.

Ia datang dari Surabaya kemarin.

Catatan:

Kata-kata yang dicetak miring di bawah ini ditulis serangkai.

Si Amin lebih tua daripada si Ahmad.

Kami percaya sepenuhnya kepadanya.

Kesampingkan saja persoalan yang tidak penting itu.


Ia masuk, lalu keluar lagi.

Surat perintah itu dikeluarkan di Jakarta pada tanggal 11 Maret 1966.

Bawa kemari gambar itu.

Kemarikan buku itu.

Semua orang terkemuka di desa itu hadir dalam kenduri itu.

[sunting]

G. Kata si dan sangKata si dan sang ditulis terpisah dari kata yang mengikutinya.

Misalnya:

Harimau itu marah sekali kepada sang Kancil.

Surat itu dikirimkan kembali kepada si pengirim.

[sunting]

H. Partikel1. Partikel -lah, -kah, dan -tah ditulis serangkai dengan kata yang
mendahuluinya.

Misalnya:

Bacalah buku itu baik-baik.

Jakarta adalah ibu kota Republik Indonesia.

Apakah yang tersirat dalam surat itu?

Siapakah gerangan dia?

Apatah gunanya bersedih hati?

2. Partikel pun ditulis terpisah dari kata yang mendahuluinya.

Misalnya:

Apa pun yang dimakannya, ia tetap kurus.

Hendak pulang pun sudah tak ada kendaraan.

Jangan dua kali, satu kali pun engkau belum pernah datang ke rumahku.

Jika ayah pergi, adik pun ingin pergi.


Catatan:

Kelompok yang lazim dianggap padu, misalnya adapun, andaipun, ataupun,


bagaimanapun, biarpun, kalaupun, kendatipun, maupun, meskipun, sekalipun,
sungguhpun, walaupun ditulis serangkai.

Misalnya:

Adapun sebab-sebabnya belum diketahui.

Bagaimanapun juga akan dicobanya menyelesaikan tugas itu.

Baik para mahasiswa maupun mahasiswi ikut berdemonstrasi.

Sekalipun belum memuaskan, hasil pekerjaannya dapat dijadikan pegangan.

Walaupun miskin, ia selalu gembira.

3. Partikel per yang berarti 'mulai', 'demi', dan 'tiap' ditulis terpisah dari bagian
kalimat yang mendahului atau mengikutinya.

Misalnya:

Pegawai negeri mendapat kenaikan gaji per 1 April.

Mereka masuk ke dalam ruangan satu per satu.

Harga kain itu Rp 2.000 per helai.

[sunting]

I. Singkatan dan Akronim1. Singkatan ialah bentuk yang dipendekkan yang


terdiri atas satu huruf atau lebih.

a. Singkatan nama orang, nama gelar, sapaan, jabatan atau


pangkat diikuti dengan tanda titik.

Misalnya:

A.S. Kramawijaya

Muh. Yamin

Suman Hs.

Sukanto S.A.

M.B.A.master of business administration


M.Sc. master of science

S.E. sarjana ekonomi

S.Kar. sarjana karawitan

S.K.M. sarjana kesehatan masyarakat

Bpk. bapak

Sdr. saudara

Kol. kolonel

b. Singkatan nama resmi lembaga pemerintah dan ketatanegaraan, badan atau


organisasi, serta nama dokumen resmi yang terdiri atas huruf awal kata ditulis
dengan huruf kapital dan tidak diikuti dengan tanda titik.

Misalnya:

DPR Dewan Perwakilan Rakyat

PGRI Persatuan Guru Republik Indonesia

GBHN Garis-Garis Besar Haluan Negara

SMTP Sekolah Menengah Tingkat Pertama

PT Perseroan Terbatas

KTP Kartu Tanda Penduduk

c. Singkatan umum yang terdiri atas tiga huruf atau lebih diikuti satu tanda
titik.

Misalnya:

dll. dan lain-lain

dsb. dan sebagainya

dst. dan seterusnya

hlm. halaman

sda. sama dengan atas


Yth. (Sdr. Moh. Hasan) Yang terhormat (Sdr. Moh. Hasan)

Tetapi:

a.n. atas nama

d.a. dengan alamat

u.b. untuk beliau

u.p. untuk perhatian

s.d. sampai dengan

d. Lambang kimia, singkatan satuan ukuran, takaran, timbangan, dan mata


uang tidak diikuti tanda titik.

Misalnya:

Cu kuprum

TNT trinitrotoluen

cm sentimeter

kVA kilovolt-ampere

l liter

kg kilogram

Rp (5.000,00) (lima ribu) rupiah

2. Akronim ialah singkatan yang berupa gabungan huruf awal, gabungan suku
kata, ataupun gabungan huruf dan suku kata dari deret kata yang diperlakukan
sebagai kata.

a. Akronim nama diri yang berupa gabungan huruf awal dari deret
kata ditulis seluruhnya dengan huruf kapital.

Misalnya:

ABRI Angkatan Bersenjata Republik Indonesia


LAN Lembaga Administrasi Negara

PASI Persatuan Atletik Seluruh Indonesia

IKIP Institut Keguruan dan Ilmu Pendidikan

SIM Surat Izin Mengemudi

b. Akronim nama diri yang berupa gabungan suku kata atau gabungan huruf
dan suku kata dari deret kata ditulis dengan huruf awal huruf kapital.

Misalnya:

AkabriAkademi Angkatan Bersenjata Republik Indonesia

Bappenas Badan Perencanaan Pembangunan Nasional

Iwapi Ikatan Wanita Pengusaha Indonesia

Kowani Kongres Wanita Indonesia

Sespa Sekolah Staf Pimpinan Administrasi

c. Akronim yang bukan nama diri yang berupa gabungan huruf, suku kata,
ataupun gabungan huruf dan suku kata dari deret kata seluruhnya ditulis dengan
huruf kecil

Misalnya:

pemilu pemilihan umum

radar radio detecting and ranging

rapim rapat pimpinan

rudal peluru kendali

tilang bukti pelanggaran

Catatan:
Jika dianggap perlu membentuk akronim, hendaknya diperhatikan syarat-syarat
berikut:

Jumlah suku kata akronim jangan melebihi jumlah suku kata yang lazin pada kata
Indonesia

Akronim dibentuk dengan mengindahkan keserasian kombinasi vokal dan konsonan


yang sesuai dengan pola kata Indonesia yang lazim.

[sunting]

J. Angka dan Lambang Bilangan1. Angka dipakai untuk menyatakan lambang


bilangan atau nomor. Di dalam tulisan lazim digunakan angka Arab atau angka
Romawi.

Angka Arab : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Angka Romawi : I, II, III, IV, V, VI, VII, VIII, IX, X, L (50), C (100), D (500), M
(1.000)

Pemakaiannya diatur lebih lanjut dalam pasal-pasal yang berikut ini.

2. Angka digunakan untuk menyatakan:

(i) ukuran panjang, berat, luas, dan isi (ii) satuan waktu (iii) nilai uang, dan (iv)
kuantitas

Misalnya: 0,5 sentimeter

5 kilogram

4 meter persegi

10 liter 1 jam 20 menit

pukul 15.00

tahun 1928

17 Agustus 1945 Rp5.000,00

US$3.50*

$5.10*
¥100

2.000 rupiah 50 dolar Amerika

10 paun Inggris

100 yen

10 persen

27 orang

* tanda titik di sini merupakan tanda desimal.

3. Angka lazim dipakai untuk melambangkan nomor jalan, rumah, apartemen,


atau kamar pada alamat.

Misalnya:

Jalan Tanah Abang I No. 15

Hotel Indonesia, Kamar 169

4. Angka digunakan juga untuk menomori bagian karangan dan ayat kitab suci.

Misalnya:

Bab X, Pasal 5, halaman 252

Surah Yasin: 9

5. Penulisan lambang bilangan yang dengan huruf dilakukan sebagai berikut:

a. Bilangan utuh

Misalnya: dua belas

dua puluh dua

dua ratus dua puluh dua 12

22

222

b. Bilangan pecahan
Misalnya: setengah

tiga perempat

seperenam belas

tiga dua pertiga

seperseratus

satu persen

satu dua persepuluh 1/2

3/4

1/16

3 2/3

1/100

1%

1,2

6. Penulisan lambang bilangan tingkat dapat dilakukan dengan cara yang


berikut.

Misalnya: Paku Buwono X

pada awal abad XX

dalam kehidupan pada abad ke-20 ini

lihat Bab II, Pasal 5

dalam bab ke-2 buku itu di daerah tingkat II itu

di tingkat kedua gedung itu

di tingkat ke-2 itu

kantornya di tingkat II itu

7. Penulisan lambang bilangan yang mendapat akhiran -an mengikuti

Misalnya:
tahun '50-an

uang 5000-an

lima uang 1000-an

(tahun lima puluhan)

(uang lima ribuan)

(lima uang seribuan)

8. Lambang bilangan yang dapat dinyatakan dengan satu atau dua kata ditulis
dengan huruf kecuali jika beberapa lambang bilangan dipakai secara berurutan,
sperti dalam perincian dan pemaparan.

Misalnya:

Amir menonton drama itu sampai tiga kali.

Ayah memesan tiga ratus ekor ayam.

Di antara 72 anggota yang hadir, 52 orang setuju, 15 orang tidak setuju, dan 5
orang memberikan suara blangko.

Kendaraan yang ditempah untuk pengangkutan umum terdiri atas 50 bus, 100
helicak, 100 bemo.

9. Lambang bilangan pada awal kalimat ditulis dengan huruf. Jika perlu,
susunan kalimat diubah sehingga bilangan yang tidak dapat dinyatakan dengan
satu atau dua kata tidak terdapat pada awal kalimat.

Misalnya:

Lima belas orang tewas dalam kecelakaan itu.

Pak Darmo mengundang 250 orang tamu.

Bukan:

15 orang tewas dalam kecelakaan itu.

Dua ratus lima puluh orang tamu diundang Pak Darmo.

10. Angka yang menunjukkan bilangan utuh yang besar dapat dieja sebagian
supaya lebih mudah dibaca.

Misalnya:
Perusahaan itu baru saja mendapat pinjaman 250 juta rupiah.

Penduduk Indonesia berjumlah lebih dari 120 juta orang.

11. Bilangan tidak perlu ditulis dengan angka dan huruf sekaligus dalam teks
kecuali di dalam dokumen resmi seperti akta dan kuitansi.

Misalnya:

Kantor kami mempunya dua puluh orang pegawai.

DI lemari itu tersimpan 805 buku dan majalah.

Bukan:

Kantor kamu mempunyai 20 (dua puluh) orang pegawai.

Di lemari itu tersimpan 805 (delapan ratus lima) buku dan majalah.

12. Jika bilangan dilambangkan dengan angka dan huruf, penulisannya harus
tepat.

Misalnya:

Saya lampirkan tanda terima uang sebesar Rp999,75 (sembilan ratus sembilan
puluh sembilan dan tujuh puluh lima perseratus rupiah).

Saya lampirkan tanda terima uang sebesar 999,75 (sembilan ratus sembilan puluh
sembilan dan tujuh puluh lima perseratus) rupiah.

[sunting]

IV. Penulisan Huruf Serapan

Dalam perkembangannya, bahasa Indonesia menyerap unsur dari pelbagai bahasa


lain, baik dari bahasa daerah maupun dari bahasa asing seperti Sanskerta, Arab,
Portugis, Belanda, atau Inggris.

Berdasarkan taraf integrasinya, unsur pinjaman dalam bahasa Indonesia dapat


dibagi atas dua golongan besar.
Pertama, unsur pinjaman yang belum sepenuhnya terserap ke dalam bahasa
Indonesia, seperti: reshuffle, shuttle cock, I'exploitation de l'homme par I'homme.
Unsur-unsur ini dipakai dalam konteks bahasa Indonesia, tetapi pengucapannya
masih mengikuti cara asing.

Kedua, unsur pinjaman yang pengucapan dan penulisannya disesuaikan dengan


kaidah bahasa Indonesia. Dalam hal ini diusahakan agar ejaannya hanya diubah
seperlunya sehingga bentuk Indonesianya masih dapat dibandingkan dengan
bentuk asalnya.

[sunting]

Kaidah ejaan

Kaidah ejaan yang berlaku bagi unsur serapan itu sebagai berikut.

aa (Belanda) menjadi a

paal

baal

octaaf

pal

bal

oktaf

ae tetap ae jika tidak bervariasi dengan e

aerobe

aerodinamics

aerob

aerodinamika

ae, jika bervariasi dengan e, menjadi e

haemoglobin
haematite

hemoglobin

hematit

ai tetap ai

trailer

caisson

trailer

kaison

au tetap au

audiogram

autotroph

tautomer

hydraulic

caustic

audiogram

autotrof

tautomer

hidraulik

kaustik

c di muka a, u, o, dan konsonan menjadi k

calomel

construction

cubic
coup

classification

crystal

kalomel

konstruksi

kubik

kup

klasifikasi

kristal

c di muka e, i, oe, dan y menjadi s

central

cent

cybernetics

circulation

cylinder

coelom

sentral

sen

sibernetika

sirkulasi

silinder

selom

cc di muka o, u, dan konsonan menjadi k

accomodation
acculturation

acclimatization

accumulation

acclamation

akomodasi

akulturasi

aklimatisasi

akumulasi

aklamasi

cc di muka e dan i menjadi ks

accent

accessoryv vaccine

aksen

aksesori

vaksin

cch dan ch di muka a, o, dan konsonan menjadi k

saccharin

charisma

cholera

chromosome

technique

sakarin

karisma

kolera
kromosom

teknik

ch yang lafalnya s atau sy menjadi s

echelon

machine

eselon

mesin

ch yang lafalnya c menjadi c

check

China

cek

Cina

ç (Sanskerta) menjadi s

çabda

çastra

sabda

sastra

e tetap e

effect

description

synthesis

efek
deskripsi

sintesis

ea tetap ea

idealist

habeas

idealis

habeas

ee (Belanda) menjadi e

stratosfeer

systeem

stratosfer

sistem

ei tetap ei

eicosane

eidetic

einsteinium

eikosan

eidetik

einsteinium

eo tetap eo

stereo

geometry
zeolite

stereo

geometri

zeolit

eu tetap eu

neutron

eugenol

europium

neutron

eugenol

europium

f tetap f

fanatic

factor

fossil

fanatik

faktor

fosil

gh menjadi g

sorghum

sorgum

gue menjadi ge
igue

gigue

ige

gige

i pada awal suku kata di muka vokal tetap i

iambus

ion

iota

iambus

ion

iota

ie (Belanda) menjadi i jika lafalnya i

politiek

riem

politik

rim

ie tetap ie jika lafalnya bukan i

variety

patient

efficient

varietas

pasien

efisien
kh (Arab) tetap kh

khusus

akhir

khusus

akhir

ng tetap ng

contingent

congress

linguistics

kontingen

kongres

linguistik

oe (oi Yunani) menjadi e

oestrogen

oenology

foetus

estrogen

enologi

fetus

oo (Belanda) menjadi o

cartoon

proof
pool

kartun

pruf

pul

oo (vokal ganda) tetap oo

zoology

coordination

zoologi

koordinasi

ou menjadi u jika lafalnya u

gouverneur

coupon

contour

gubernur

kupon

kontur

ph menjadi f

phase

physiology

spectograph

fase

fisiologi

spektograf
ps tetap ps

pseudo

psychiatry

psychosomatic

pseudo

psikiatri

psikosomatik

pt tetap pt

pterosaur

pteridology

ptyalin

pterosaur

pteridologi

ptialin

q menjadi k

aquarium

frequency

equator

akuarium

frekuensi

ekuator

rh menjadi r
rhapsody

rhombus

rhythm

rhetoric

rapsodi

rombus

ritme

retorika

sc di muka a, o, u, dan konsonan menjadi sk

scandium

scotapia

scutella

sclerosis

scriptie

skandium

skotapia

skutela

sklerosis

skripsi

sc di muka e, i, dan y menjadi s

scenography

scintillation

scyphistoma

senografi
sintilasi

sifistoma

sch di muka vokal menjadi sk

schema

schizophrenia

scholasticism

skema

skizofrenia

skolastisisme

t di muka i menjadi s jika lafalnya s

ratio

action

patient

rasio

aksi

pasien

th menjadi t

theocracy

orthography

thiopental

thrombosis

methode

teokrasi
ortografi

tiopental

trombosis

metode

u tetap u

unit

nucleolus

structure

institute

unit

nukleolus

struktur

institut

ua tetap ua

dualisme

aquarium

dualisme

akuarium

ue tetap ue

suede

duet

sued

duet
ui tetap ui

equinox

conduite

ekuinoks

konduite

uo tetap uo

fluorescein

quorum

quota

fluoresein

kuorum

kuota

uu menjadi u

prematuur

vacuum

prematur

vakum

v tetap v

vitamin

television

cavalry

vitamin
televisi

kavaleri

x pada awal kata tetap x

xanthate

xenon

xylophone

xantat

xenon

xilofon

x pada posisi lain menjadi ks

executive

taxi

exudation

latex

eksekutif

taksi

eksudasi

lateks

xc di muka e dan i menjadi ks

exception

excess

excision

excitation
eksepsi

ekses

eksisi

eksitasi

xc di muka a, o, u, dan konsonan menjadi ksk

excavation

excommunication

excursive

exclusive

ekskavasi

ekskomunikasi

ekskursif

eksklusif

y tetap y jika lafalnya y

yakitori

yangonin

yen

yuan

yakitori

yangonin

yen

yuan

y menjadi i jika lafalnya i


yttrium

dynamo

propyl

psychology

itrium

dinamo

propil

psikologi

z tetap z

zenith

zirconium

zodiac

zygote

zenith

zirkonium

zodiak

zigot

[sunting]

Konsonan ganda

Konsonan ganda menjadi konsonan tunggal kecuali kalau dapat membingungkan.

Misalnya:gabbro

accu
effect

commision

ferrum

solfeggio gabro

aki

efek

komisi

ferum

solfegio

tetapi:

mass massa

[sunting]

Catatan

Unsur pungutan yang sudah lazim dieja secara Indonesia tidak perlu lagi diubah

Misalnya: kabar, sirsak, iklan, perlu, bengkel, hadir.

Sekalipun dalam ejaan yang disempurnakan huruf q dan x diterima sebagai bagian
abjad bahasa Indonesia, kedua huruf itu diindonesiakan menurut kaidah yang
terurai di atas. Kedua huruf itu digunakan dalam penggunaan tertentu saja seperti
dalam pembedaan nama dan istilah khusus.

[sunting]

Akhiran asing

Di samping pegangan untuk penulisan unsur serapan tersebut di atas, berikut ini
didaftarkan juga akhiran-akhiran asing serta penyesuaiannya dalam bahasa
Indonesia. Akhiran itu diserap sebagai bagian kata yang utuh.

Kata seperti standardisasi, efektif, dan implementasi diserap secara utuh di


samping kata standar, efek, dan implemen.
-aat (Belanda) menjadi -at

advokaat

advokat

-age menjadi -ase

percentage

etalage

persentase

etalase

-al, -eel (Belanda) menjadi -al

structural, structureel

formal, formeel

normal, normaal

struktural

formal

normal

-ant menjadi -an

accountant

informant

akuntan

informan

-ary, -air (Belanda) menjadi -er


complementary, complementair

primary, primair

secondary, secundair

komplementer

primer

sekunder

-(a)tion, -(a)tie (Belanda) menjadi -asi, -si

action, actie

publication, publicatie

aksi

publikasi

-eel (Belanda) menjadi -el

ideëel

materieel

moreel

ideel

materiel

morel

-ein tetap -ein

casein

protein

kasein

protein
-ic, -ics, -ique, -iek, -ica (Belanda) menjadi -ik, -ika

logic, logica

phonetics, phonetiek

physics, physica

dialectics, dialektica

technique, techniek

logika

fonetik

fisika

dialektika

teknik

-ic, -isch (adjektiva Belanda) menjadi -ik

electronic, electronisch

mechanic, mechanisch

ballistic, ballistisch

elektronik

mekanik

balistik

-ical, -isch (Belanda) menjadi -is

economical, economisch

practical, practisch

logical, logisch

ekonomis
praktis

logis

-ile, iel menjadi -il

percentile, percentiel

mobile, mobiel

-ism, -isme (Belanda) menjadi -isme

modernism, modernisme

communism, communisme

modernisme

komunisme

-ist menjadi -is

publicist

egoist

publisis

egois

-ive, -ief (Belanda) menjadi -if

descriptive, descriptief

demonstrative, demonstratief

deskriptif

demonstratif

-logue menjadi -log


catalogue

dialogue

katalog

dialog

-logy, -logie (Belanda) menjadi -logi

technology, technologie

physiology, physiologie

analogy, analogie

teknologi

fisiologi

analogi

-loog (Belanda) menjadi -log

analoog

epiloog

analog

epilog

-oid, -oide (Belanda) menjadi -oid

hominoid, hominoide

anthropoid, anthropoide

hominoid

anthropoid

-oir(e) menjadi -oar


trottoir

repertoire

trotoar

repertoar

-or, -eur (Belanda) menjadi -ur, -ir

director, directeur

inspector, inspecteur

amateur

formateur

direktur

inspektur

amatir

formatur

-or tetap -or

dictator

corrector

diktator

korektor

-ty, -teit (Belanda) menjadi -tas

university, universiteit

quality, qualiteit

universitas

kualitas
-ure, -uur (Belanda) menjadi -ur

structure, struktuur

premature, prematuur

struktur

prematur

[sunting]

V. Pemakaian Tanda Baca

[sunting]

A. Tanda Titik (.)1. Tanda titik dipakai pada akhir kalimat yang bukan pertanyaan
atau seruan.

Misalnya:

Ayahku tinggal di Solo.

Biarlah mereka duduk di sana.

Dia menanyakan siapa yang akan datang.

Hari ini tanggal 6 April 1973.

Marilah kita mengheningkan cipta.

Sudilah kiranya Saudara mengabulkan permohonan ini.

2. Tanda titik dipakai di belakang angka atau huruf dalam suatu bagan, ikhtisar,
atau daftar.

Misalnya: a. III. Departemen Dalam Negri

A. Direktorat Jendral Pembangunan Masyarakat Desa

B. Direktorat Jendral Agraria

1.

b. 1. Patokan Umum
1.1 Isi Karangan

1.2 Ilustrasi

1.2.1 Gambar Tangan

1.2.2 Tabel

1.2.3 Grafik

Catatan:

Tanda titik tidak dipakai di belakang angka atau huruf dalam suatu bagan atau
ikhtisar jika angka atau huruf itu merupakan yang terakhir dalam deretan angka
atau huruf.

3. Tanda titik dipakai untuk memisahkan angka jam, menit, dan detik yang
menunjukkan waktu.

Misalnya:

pukul 1.35.20 (pukul 1 lewat 35 menit 20 detik)

4. Tanda titik dipakai untuk memisahkan angka jam, menit, dan detik yang
menunjukkan jangka waktu.

Misalnya:

1.35.20 jam (1 jam, 35 menit, 20 detik)

0.20.30 jam (20 menit, 30 detik)

0.0.30 jam (30 detik)

5. Tanda titik dipakai di antara nama penulis, judul tulisan yang tidak berakhir
dengan tanda tanya dan tanda seru, dan tempat terbit dalam daftar pustaka.

Misalnya:

Siregar, Merari. 1920. Azab dan Sengsara. Weltevreden: Balai Poestaka.

6a. Tanda titik dipakai untuk memisahkan bilangan ribuan atau kelipatannya.

Misalnya:

Desa itu berpenduduk 24.200 orang.


Gempa yang terjadi semalam menewaskan 1.231 jiwa.

6b. Tanda titik tidak dipakai untuk memisahkan bilangan ribuan atau
kelipatannya yang tidak menunjukkan jumlah.

Misalnya:

Ia lahir pada tahun 1956 di Bandung.

Lihat halaman 2345 dan seterusnya.

Nomor gironya 5645678.

7. Tanda titik tidak dipakai pada akhir judul yang merupakan kepala karangan
atau kepala ilustrasi, tabel, dan sebagainya.

Misalnya:

Acara Kunjungan Adam Malik

Bentuk dan Kedaulatan (Bab I UUD'45)

Salah Asuhan

8. Tanda titik tidak dipakai di belakang

(1) alamat pengirim dan tanggal surat atau

(2) nama dan alamat penerima surat.

Misalnya:

Jalan Diponegoro 82

Jakarta (tanpa titik)

1 April 1985 (tanpa titik)

Yth. Sdr. Moh. Hasan (tanpa titik)

Jalan Arif 43 (tanpa titik)

Palembang (tanpa titik)

Atau:

Kantor Penempatan Tenaga (tanpa titik)

Jalan Cikini 71 (tanpa titik)


Jakarta (tanpa titik)

[sunting]

B. Tanda Koma (,)1. Tanda koma dipakai di antara unsur-unsur dalam suatu
perincian atau pembilangan.

Misalnya:

Saya membeli kertas, pena, dan tinta.

Surat biasa, surat kilat, ataupun surat khusus memerlukan perangko.

Satu, dua, ... tiga!

2. Tanda koma dipakai untuk memisahkan kalimat setara yang satu dari kalimat
setara berikutnya yang didahului oleh kata seperti tetapi atau melainkan.

Misalnya:

Saya ingin datang, tetapi hari hujan.

Didi bukan anak saya, melainkan anak Pak Kasim.

3a. Tanda koma dipakai untuk memisahkan anak kalimat dari induk kalimat jika
anak kalimat itu mendahului induk kalimatnya.

Misalnya:

Kalau hari hujan, saya tidak akan datang.

Karena sibuk, ia lupa akan janjinya.

3b. Tanda koma tidak dipakai untuk memisahkan anak kalimat dari induk kalimat
jika anak kalimat itu mengiringi induk kalimatnya.

Misalnya:

Saya tidak akan datang kalau hari hujan.

Dia lupa akan janjinya karena sibuk.

Dia tahu bahwa soal itu penting.

4. Tanda koma dipakai di belakang kata atau ungkapan penghubung


antarkalimat yang terdapat pada awal kalimat. Termasuk di dalamnya oleh karena
itu, jadi, lagi pula, meskipun begitu, akan tetapi.
Misalnya:

... Oleh karena itu, kita harus berhati-hati.

... Jadi, soalnya tidak semudah itu.

5. Tanda koma dipakai untuk memisahkan kata seperti o, ya, wah, aduh,
kasihan dari kata yang lain yang terdapat di dalam kalimat.

Misalnya:

O, begitu?

Wah, bukan main!

Hati-hati, ya, nanti jatuh.

6. Tanda koma dipakai untuk memisahkan petikan langsung dari bagian lain
dalam kalimat.

(Lihat juga pemakaian tanda petik, Bab V, Pasal L dan M.)

Misalnya:

Kata Ibu, "Saya gembira sekali."

"Saya gembira sekali," kata Ibu, "karena kamu lulus."

7. Tanda koma dipakai di antara

(i) nama dan alamat,

(ii) bagian-bagian alamat,

(iii) tempat dan tanggal, dan

(iv) nama tempat dan wilayah atau negeri yang ditulis berurutan.

Misalnya:

Surat-surat ini harap dialamatkan kepada Dekan Fakultas Kedokteran, Universitas


Indonesia, Jalan Raya Salemba 6, Jakarta.

Sdr. Abdullah, Jalan Pisang Batu 1, Bogor

Surabaya, 10 mei 1960

Kuala Lumpur, Malaysia


8. Tanda koma dipakai untuk menceraikan bagian nama yang dibalik
susunannya dalam daftar pustaka.

Misalnya:

Alisjahbana, Sutan Takdir. 1949 Tatabahasa Baru Bahasa Indonesia. Jilid 1 dan 2.
Djakarta: PT Pustaka Rakjat.

9. Tanda koma dipakai di antara bagian-bagian dalam catatan kaki.

Misalnya:

W.J.S. Poerwadarminta, Bahasa Indonesia untuk Karang-mengarang (Yogyakarta: UP


Indonesia, 1967), hlm. 4.

10. Tanda koma dipakai di antara nama orang dan gelar akademik yang
mengikutinya untuk membedakannya dari singkatan nama diri, keluarga, atau
marga.

Misalnya:

B. Ratulangi, S.E.

Ny. Khadijah, M.A.

11. Tanda koma dipakai di muka angka persepuluhan atau di antara rupiah dan
sen yang dinyatakan dengan angka.

Misalnya:

12,5 m

Rp12,50

12. Tanda koma dipakai untuk mengapit keterangan tambahan yang sifatnya
tidak membatasi.

(Lihat juga pemakaian tanda pisah, Bab V, Pasal F.)

Misalnya

Guru saya, Pak Ahmad, pandai sekali.

Di daerah kami, misalnya, masih banyak orang laki-laki yang makan sirih.

Semua siswa, baik yang laki-laki maupun yang perempuan, mengikuti latihan
paduan suara.
Bandingkan dengan keterangan pembatas yang pemakaiannya tidak diapit
tanda koma:

Semua siswa yang lulus ujian mendaftarkan namanya pada panitia.

13. Tanda koma dapat dipakai—untuk menghindari salah baca—di belakang


keterangan yang terdapat pada awal kalimat.

Misalnya:

Dalam pembinaan dan pengembangan bahasa, kita memerlukan sikap yang


bersungguh-sungguh.

Atas bantuan Agus, Karyadi mengucapkan terima kasih.

Bandingkan dengan:

Kita memerlukan sikap yang bersungguh-sungguh dalam pembinaan dan


pengembangan bahasa.

Karyadi mengucapkan terima kasih atas bantuan Agus.

14. Tanda koma tidak dipakai untuk memisahkan petikan langsung dari bagian
lain yang mengiringinya dalam kalimat jika petikan langsung itu berakhir dengan
tanda tanya atau tanda seru.

Misalnya:

"Di mana Saudara tinggal?" tanya Karim.

"Berdiri lurus-lurus!" perintahnya.

[sunting]

C. Tanda Titik Koma (;)1. Tanda titik koma dapat dipakai untuk memisahkan
bagian-bagian kalimat yang sejenis dan setara.

Misalnya:

Malam makin larut; pekerjaan belum selesai juga.

2. Tanda titik koma dapat dipakai sebagai pengganti kata penghubung untuk
memisahkan kalimat yang setara di dalam kalimat majemuk.

Misalnya:
Ayah mengurus tanamannya di kebun itu; Ibu sibuk bekerja di dapur; Adik
menghapal nama-nama pahlawan nasional; saya sendiri asyik mendengarkan siaran
"Pilihan Pendengar".

[sunting]

D. Tanda Titik Dua (:)1a. Tanda titik dua dapat dipakai pada akhir suatu
pernyataan lengkap jika diikuti rangkaian atau pemerian.

Misalnya:

Kita sekarang memerlukan perabotan rumah tangga: kursi, meja, dan lemari.

Hanya ada dua pilihan bagi pejuang kemerdekaan itu: hidup atau mati.

1b. Tanda titik dua tidak dipakai jika rangkaian atau perian itu merupakan
pelengkap yang mengakhiri pernyataan

Misalnya:

Kita memerlukan kursi, meja, dan lemari.

Fakultas itu mempunyai Jurusan Ekonomi Umum dan Jurusan Ekonomi Perusahaan.

2. Tanda titik dua dipakai sesudah kata atau ungkapan yang memerlukan
pemerian.

Misalnya: a. Ketua

Sekretaris

Bendahara :

: Ahmad Wijaya

S. Handayani

B. Hartawan

b. Tempat Sidang

Pengantar Acara

Hari

Waktu :
:

: Ruang 104

Bambang S.

Senin

09.30

3. Tanda titik dua dapat dipakai dalam teks drama sesudah kata yang
menunjukkan pelaku dalam percakapan.

Misalnya:

Ibu : (meletakkan beberapa kopor) "Bawa kopor ini, Mir!"

Amir : "Baik, Bu." (mengangkat kopor dan masuk)

Ibu : "Jangan lupa. Letakkan baik-baik!" (duduk di kursi besar)

4. Tanda titik dua dipakai:

(i) di antara jilid atau nomor dan halaman,

(ii) di antara bab dan ayat dalam kitab suci,

(iii) di antara judul dan anak judul suatu karangan, serta

(iv) nama kota dan penerbit buku acuan dalam karangan.

Misalnya:

Tempo, I (1971), 34:7

Surah Yasin:9

Karangan Ali Hakim, Pendidikan Seumur Hidup: Sebuah Studi, sudah terbit.

Tjokronegoro, Sutomo, Tjukupkah Saudara membina Bahasa Persatuan Kita?,


Djakarta: Eresco, 1968.
[sunting]

E. Tanda Hubung (–)1. Tanda hubung menyambung suku-suku kata dasar yang
terpisah oleh penggantian baris.

Misalnya:

Di samping cara-cara lama itu ada ju-

ga cara yang baru.

Suku kata yang berupa satu vokal tidak ditempatkan pada ujung baris atau
pangkal baris.

Misalnya:

Beberapa pendapat mengenai masalah itu

telah disampaikan ....

Walaupun sakit, mereka tetap tidak mau

beranjak ....

atau

Beberapa pendapat mengenai masalah

itu telah disampaikan ....

Walaupun sakit, mereka tetap tidak

mau beranjak ....

bukan

Beberapa pendapat mengenai masalah i-

tu telah disampaikan ....

Walaupun sakit, mereka tetap tidak ma-

u beranjak ....

2. Tanda hubung menyambung awalan dengan bagian kata di belakangnya atau


akhiran dengan bagian kata di depannya pada pergantian baris.

Misalnya:

Kini ada cara yang baru untuk meng-


ukur panas.

Kukuran baru ini memudahkan kita me-

ngukur kelapa.

Senjata ini merupakan alat pertahan-

an yang canggih.

Akhiran -i tidak dipenggal supaya jangan terdapat satu huruf saja pada
pangkal baris.

3. Tanda hubung menyambung unsur-unsur kata ulang.

Misalnya:

anak-anak, berulang-ulang, kemerah-merahan.

Angka 2 sebagai tanda ulang hanya digunakan pada tulisan cepat dan notula,
dan tidak dipakai pada teks karangan.

4. Tanda hubung menyambung huruf kata yang dieja satu-satu dan bagian-
bagian tanggal.

Misalnya:

p-a-n-i-t-i-a

8-4-1973

5. Tanda hubung boleh dipakai untuk memperjelas

(i) hubungan bagian-bagian kata atau ungkapan, dan (ii) penghilangan bagian
kelompok kata.

Misalnya:

ber-evolusi

dua puluh lima-ribuan (20 x 5000)

tanggung jawab-dan kesetiakawanan-sosial

Bandingkan dengan:

be-revolusi

dua-puluh-lima-ribuan (1 x 25000)
tanggung jawab dan kesetiakawanan sosial

6. Tanda hubung dipakai untuk merangkaikan

(i) se- dengan kata berikutnya yang dimulai dengan huruf kapital,

(ii) ke- dengan angka,

(iii) angka dengan -an,

(iv) singkatan berhuruf kapital dengan imbuhan atau kata, dan

(v) nama jabatan rangkap

Misalnya

se-Indonesia, se-Jawa Barat, hadiah ke-2, tahun 50-an, mem-PHK-kan, hari-H, sinar-
X, Menteri-Sekretaris Negara

7. Tanda hubung dipakai untuk merangkaikan unsur bahasa Indonesia dengan


unsur bahasa asing.

Misalnya:

di-smash, pen-tackle-an

[sunting]

F. Tanda Pisah (—)1. Tanda pisah membatasi penyisipan kata atau kalimat
yang memberi penjelasan di luar bangun kalimat.

Misalnya:

Kemerdekaan bangsa itu—saya yakin akan tercapai—diperjuangkan oleh bangsa itu


sendiri.

2. Tanda pisah menegaskan adanya keterangan aposisi atau keterangan yang


lain sehingga kalimat menjadi lebih jelas.

Misalnya:

Rangkaian temuan ini—evolusi, teori kenisbian, dan kini juga pembelahan atom—
telah mengubah persepsi kita tentang alam semesta.

3. Tanda pisah dipakai di antara dua bilangan atau tanggal dengan arti 'sampai
ke' atau 'sampai dengan'.
Misalnya:

1910—1945

tanggal 5—10 April 1970

Jakarta—Bandung

Catatan:

Dalam pengetikan, tanda pisah dinyatakan dengan dua buah tanda hubung tanpa
spasi sebelum dan sesudahnya.

[sunting]

G. Tanda Elipsis (...)1. Tanda elipsis dipakai dalam kalimat yang terputus-putus.

Misalnya:

Kalau begitu ... ya, marilah kita bergerak.

2. Tanda elipsis menunjukkan bahwa dalam suatu kalimat atau naskah ada
bagian yang dihilangkan.

Misalnya:

Sebab-sebab kemerosotan ... akan diteliti lebih lanjut.

Catatan:

Jika bagian yang dihilangkan mengakhiri sebuah kalimat, perlu dipakai empat buah
titik; tiga buah untuk menandai penghilangan teks dan satu untuk menandai akhir
kalimat.

Misalnya:

Dalam tulisan, tanda baca harus digunakan dengan hati-hati ....

[sunting]

H. Tanda Tanya (?)1. Tanda tanya dipakai pada akhir tanya.

Misalnya:

Kapan ia berangkat?

Saudara tahu, bukan?


2. Tanda tanya dipakai di dalam tanda kurung untuk menyatakan bagian
kalimat yang disangsikan atau yang kurang dapat dibuktikan kebenarannya.

Misalnya:

Ia dilahirkan pada tahun 1683 (?).

Uangnya sebanyak 10 juta rupiah (?) hilang.

[sunting]

I. Tanda Seru (!)Tanda seru dipakai sesudah ungkapan atau pernyataan yang
berupa seruan atau perintah yang menggambarkan kesungguhan,
ketidakpercayaan, ataupun rasa emosi yang kuat.

Misalnya:

Alangkah seramnya peristiwa itu!

Bersihkan kamar itu sekarang juga!

Masakan! Sampai hati juga ia meninggalkan anak-istrinya!

Merdeka!

[sunting]

J. Tanda Kurung ((...))1. Tanda kurung mengapit keterangan atau penjelasan.

Misalnya:

Bagian Perencanaan sudah selesai menyusun DIK (Daftar Isian Kegiatan) kantor itu.

2. Tanda kurung mengapit keterangan atau penjelasan yang bukan bagian


integral pokok pembicaraan.

Misalnya:

Sajak Tranggono yang berjudul "Ubud" (nama tempat yang terkenal di Bali) ditulis
pada tahun 1962.

Keterangan itu (lihat Tabel 10) menunjukkan arus perkembangan baru dalam
pasaran dalam negeri.

3. Tanda kurung mengapit huruf atau kata yang kehadirannya di dalam teks
dapat dihilangkan.
Misalnya:

Kata cocaine diserap ke dalam bahasa Indonesia menjadi kokain(a).

Pejalan kaki itu berasal dari (kota) Surabaya.

4. Tanda kurung mengapit angka atau huruf yang memerinci satu urutan
keterangan.

Misalnya:

Faktor produksi menyangkut masalah (a) alam, (b) tenaga kerja, dan (c) modal.

[sunting]

K. Tanda Kurung Siku ([...])1. Tanda kurung siku mengapit huruf, kata, atau
kelompok kata sebagai koreksi atau tambahan pada kalimat atau bagian kalimat
yang ditulis orang lain. Tanda itu menyatakan bahwa kesalahan atau kekurangan
itu memang terdapat di dalam naskah asli.

Misalnya:

Sang Sapurba men[d]engar bunyi gemerisik.

2. Tanda kurung siku mengapit keterangan dalam kalimat penjelas yang sudah
bertanda kurung.

Misalnya:

Persamaan kedua proses ini (perbedaannya dibicarakan di dalam Bab II [lihat


halaman 35–38]) perlu dibentangkan di sini.

[sunting]

L. Tanda Petik ("...")1. Tanda petik mengapit petikan langsung yang berasal dari
pembicaraan dan naskah atau bahan tertulis lain.

Misalnya:

"Saya belum siap," kata Mira, "tunggu sebentar!"

Pasal 36 UUD 1945 berbunyi, "Bahasa negara ialah Bahasa Indonesia."

2. Tanda petik mengapit judul syair, karangan, atau bab buku yang dipakai
dalam kalimat.
Misalnya:

Bacalah "Bola Lampu" dalam buku Dari Suatu Masa, dari Suatu Tempat.

Karangan Andi Hakim Nasoetion yang berjudul "Rapor dan Nilai Prestasi di SMA"
diterbitkan dalam Tempo.

Sajak "Berdiri Aku" terdapat pada halaman 5 buku itu.

3. Tanda petik mengapit istilah ilmiah yang kurang dikenal atau kata yang
mempunyai arti khusus.

Misalnya:

Pekerjaan itu dilaksanakan dengan cara "coba dan ralat" saja.

Ia bercelana panjang yang di kalangan remaja dikenal dengan nama "cutbrai".

4. Tanda petik penutup mengikuti tanda baca yang mengakhiri petikan


langsung.

Misalnya:

Kata Tono, "Saya juga minta satu."

5. Tanda baca penutup kalimat atau bagian kalimat ditempatkan di belakang


tanda petik yang mengapit kata atau ungkapan yang dipakai dengan arti khusus
pada ujung kalimat atau bagian kalimat.

Misalnya:

Karena warna kulitnya, Budi mendapat julukan "Si Hitam".

Bang Komar sering disebut "pahlawan"; ia sendiri tidak tahu sebabnya.

Catatan:

Tanda petik pembuka dan tanda petik penutup pada pasangan tanda petik itu
ditulis sama tinggi di sebelah atas baris.

[sunting]

M. Tanda Petik Tunggal ('...')1. Tanda petik tunggal mengapit petikan yang
tersusun di dalam petikan lain.

Misalnya:

Tanya Basri, "Kau dengar bunyi 'kring-kring' tadi?"


"Waktu kubuka pintu depan, kudengar teriak anakku, 'Ibu, Bapak pulang', dan rasa
letihku lenyap seketika," ujar Pak Hamdan.

2. Tanda petik tunggal mengapit makna, terjemahan, atau penjelasan kata atau
ungkapan asing. (Lihat pemakaian tanda kurung, Bab V, Pasal J.)

Misalnya:

feed-back 'balikan'

[sunting]

N. Tanda Garis Miring (/)1. Tanda garis miring dipakai di dalam nomor surat
dan nomor pada alamat dan penandaan masa satu tahun yang terbagi dalam dua
tahun takwim.

Misalnya:

No. 7/PK/1973

Jalan Kramat III/10

tahun anggaran 1985/1986

2. Tanda garis miring dipakai sebagai pengganti kata atau, tiap.

Misalnya: dikirimkan lewat darat/laut (dikirimkan lewat darat atau


laut)

harganya Rp25,00/lembar (harganya Rp25,00 tiap lembar)

[sunting]

O. Tanda Penyingkat (Apostrof) (')Tanda penyingkat menunjukkan penghilangan


bagian kata atau bagian angka tahun.

Misalnya: Ali 'kan kusurati. ('kan = akan)

Malam 'lah tiba. ('lah = telah)

1 Januari '88 ('88 = 1988)


[sunting]

Pranala luar

Wikipedia: Kata Indonesia yang sering salah dieja

Kategori: Standar dan pedoman

Halaman Pembicaraan Sunting↑ Versi terdahulu

Coba Beta Masuk log / buat akun

Navigasi

Halaman Utama

Perubahan terbaru

Halaman sembarang

Bantuan

Menyumbang

Warung kopi

Cetak/ekspor

Buat buku

Unduh sebagai PDF

Versi cetak

Cari

Kotak peralatan

Pranala balik

Perubahan terkait

Halaman istimewa

Pranala permanen

Kutip halaman ini


Halaman ini terakhir diubah pada 11:06, 9 Desember 2009. Teks tersedia di bawah
Lisensi Atribusi/Berbagi Serupa Creative Commons; ketentuan tambahan mungkin
berlaku. Lihat Ketentuan Penggunaan untuk lebih jelasnya. Kebijakan privasi
Tentang Wikisource Penyangkalan